Direct3DRMLightInterpolator

インターポレータは、アクションを格納した後、中間値を自動計算して、オブジェクトにアクションを適用する方法を提供する。インターポレータを使用して、色を混合し、異なる位置間でオブジェクトを円滑に移動し、メッシュをモーフィングし、さらに、ほかのさまざまな変換も行うことができる。

Direct3DRMLightオブジェクトは、Direct3DRMLightInterpolatorオブジェクトにアタッチできる。インターポレータの詳細については、追加情報の「インターポレータ」を参照すること。

Direct3DRMLightInterpolatorインターフェイスには、次のメソッドが含まれる。

オブジェクトのアタッチ AttachObject
DetachObject
GetAttachedObjects
減衰 SetConstantAttenuation
SetLinearAttenuation
SetQuadraticAttenuation
SetColor
SetColorRGB
補間の実行 GetIndex
Interpolate
SetIndex
範囲 SetRange
スポットライトオプション SetPenumbra
SetUmbra

さらに、Direct3DRMLightInterpolatorは、Direct3DRMObjectインターフェイスから次のメソッドを継承する。

Direct3DRMLightInterpolator.AttachObject

Direct3DRMLightInterpolator

オブジェクトをインターポレータに接続する。

構文

object.AttachObject(mObject As Direct3DRMObject)

要素

object
Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
mObject
インターポレータにアタッチするDirect3DRMObjectオブジェクト。

エラー値

エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。

注意

アタッチされるオブジェクトは、別のインターポレータでも、インターポレータがxInterpolator型となるタイプxのオブジェクトでも良い。たとえば、Direct3DRMLightオブジェクトは、Direct3DRMLightInterpolatorオブジェクトにアタッチできる。

Direct3DRMLightInterpolator.DetachObject

Direct3DRMLightInterpolator

インターポレータからオブジェクトのアタッチを解除する。

構文

object.DetachObject(mObject As Direct3DRMObject)

要素

object
Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
mObject
インターポレータからアタッチを外すDirect3DRMObjectオブジェクト。

エラー値

エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。

Direct3DRMLightInterpolator.GetAttachedObjects

Direct3DRMLightInterpolator

インターポレータに現在アタッチされているオブジェクトを取得する。

構文

object.GetAttachedObjects( ) As Direct3DRMObjectArray

要素

object
Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。

戻り値

Direct3DRMObjectArrayオブジェクトを返す。

エラー値

エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。

Direct3DRMLightInterpolator.GetIndex

Direct3DRMLightInterpolator

インターポレータの現在の内部インデックス(時間)を取得する。

構文

object.GetIndex( ) As Single

要素

object
Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。

戻り値

インターポレータの現在の内部インデックスを含む値を返す。

エラー値

エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。

注意

インターポレータに格納されている各キーは、インデックス値を持つ。キーを(メソッドを使って)記録するとき、キーには、現在のインターポレータのインデックス値でスタンプが押される。キーのインデックス値は、スタンプを押された後、変わることはない。

Direct3DRMLightInterpolator.Interpolate

Direct3DRMLightInterpolator

インターポレータに格納されているキー間を補間して、一連のアクションを生成する。その後、アクションは、指定のオブジェクトに適用される。オブジェクトの指定がなければ、アクションは、現在アタッチされているオブジェクトに適用される。

構文

object.Interpolate(val As Single,
  mObject As Direct3DRMObject,
  options As CONST_D3DRMINTERPOLATIONFLAGS)

要素

object
Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
val
インターポレータの現在の内部インデックスを含む値。
mObject
Direct3DRMObjectオブジェクト。このオブジェクトは、インターポレータに格納されているすべてのプロパティに対する補間値を割り当てるオブジェクトを表す。このポインタはNOTHINGでも良い。その場合には、すべての接続されているオブジェクトのプロパティ値には、補間値がセットされる。
options
実行する補間の種類を制御するCONST_D3DRMINTERPOLATIONFLAGS列挙型の値の1つ。

エラー値

エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。

Direct3DRMLightInterpolator.SetColor

Direct3DRMLightInterpolator

Direct3DRMLightInterpolatorオブジェクトにカラーキーを追加する。

構文

object.SetColor(c As Long)

要素

object
Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
c
フレームの新しい色。赤、緑、青の色要素のほかにアルファ要素もセットする。そうしないと、オブジェクトが可視にならないことがある。色は4バイトのLongで表される。高バイトはアルファ要素であり、後続のバイトが赤、緑、青を定義する。より簡単に色を構築するにはDirectX7オブジェクトのCreateColorRGBAを使い、フルアルファを希望しているだけの場合はSetColorRGBを使う。

エラー値

エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。

Direct3DRMLightInterpolator.SetColorRGB

Direct3DRMLightInterpolator

Direct3DRMLightInterpolatorオブジェクトにRGBカラーキーを追加する。

構文

object.SetColorRGB(r As Single,
  g As Single,
  b As Single)

要素

object
Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
r, g, b
照明の新しい赤、緑、青の色要素。

エラー値

エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。

Direct3DRMLightInterpolator.SetConstantAttenuation

Direct3DRMLightInterpolator

Direct3DRMLightInterpolatorオブジェクトに減衰定数キーを追加する。

構文

object.SetConstantAttenuation(atn As Single)

要素

object
Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
atn
新しい減衰定数。

エラー値

エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。

注意

位置を持つ(無限に遠くない)照明には減衰定数があり、照明からの距離に基づいて照明の減衰を計算できる。

全減衰係数の公式は次のとおりである。

1 / [constant_attenuation_factor + distance * linear_attenuation_factor + (distance**2) * quadratic_attenuation_factor]

全減衰係数は1より大きくならない。減衰係数が指定されないと、デフォルト値は、減衰定数に対しては1.0、1次減衰係数に対しては0.0、2次減衰係数に対しては0.0である。

このメソッドは、Direct3DRMLightInterpolatorオブジェクトに減衰定数キーを追加するためにも使用する。

Direct3DRMLightInterpolator.SetIndex

Direct3DRMLightInterpolator

インターポレータの内部インデックス(時間)に指定の値をセットする。他のインターポレータがそのインターポレータにアタッチされていれば、このメソッドは、再帰的にそれらのインデックスを同じ値に同期させる。

構文

object.SetIndex(val As Single)

要素

object
Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
val
インターポレータの内部インデックスに対してセットされる時間。

エラー値

エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。

注意

インターポレータに格納されている各キーは、インデックス値を持つ。キーを(メソッドを使って)記録するとき、キーには、現在のインターポレータのインデックス値でスタンプが押される。キーのインデックス値は、スタンプを押された後、変わることはない。

Direct3DRMLightInterpolator.SetLinearAttenuation

Direct3DRMLightInterpolator

Direct3DRMLightInterpolatorオブジェクトに1次減衰キーを追加する。

構文

object.SetLinearAttenuation(atn As Single)

要素

object
Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
atn
新しい1次減衰係数。

エラー値

エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。

注意

位置を持つ(無限に遠くない)照明には減衰定数があり、照明からの距離に基づいて照明の減衰を計算できる。

全減衰係数の公式は次のとおりである。

1 / [constant_attenuation_factor + distance * linear_attenuation_factor + (distance**2) * quadratic_attenuation_factor]

全減衰係数は1より大きくならない。減衰係数が指定されないと、デフォルト値は、減衰定数に対しては1.0、1次減衰係数に対しては0.0、2次減衰係数に対しては0.0である。

Direct3DRMLightInterpolator.SetPenumbra

Direct3DRMLightInterpolator

Direct3DRMLightInterpolatorオブジェクトに影角度キーを追加する。

構文

object.SetPenumbra(p As Single)

要素

object
Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
p
ラジアン単位の新しい暗影部の角度。この角度は暗部の角度より大きいか、等しくなくてはいけない。暗影部の角度を明部の角度よりも小さく設定した場合、暗影部は明部と同じ角度になる。デフォルト値は0.5ラジアンである。

エラー値

エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。

Direct3DRMLightInterpolator.SetQuadraticAttenuation

Direct3DRMLightInterpolator

Direct3DRMLightInterpolatorオブジェクトに2次減衰キーを追加する

構文

object.SetQuadraticAttenuation(atn As Single)

要素

object
Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
atn
新しい2次減衰係数。

エラー値

エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。

注意

位置を持つ(無限に遠くない)照明には減衰定数があり、照明からの距離に基づいて照明の減衰を計算できる。

全減衰係数の公式は次のとおりである。

1 / [constant_attenuation_factor + distance * linear_attenuation_factor + (distance**2) * quadratic_attenuation_factor]

全減衰係数は1より大きくならない。減衰係数が指定されないと、デフォルト値は、減衰定数に対しては1.0、1次減衰係数に対しては0.0、2次減衰係数に対しては0.0である。

このメソッドは、Direct3DRMLightInterpolatorオブジェクトに2次減衰キーを追加するためにも使用する。

参照

Direct3DRMLight.GetQuadraticAttenuation

Direct3DRMLightInterpolator.SetRange

Direct3DRMLightInterpolator

Direct3DRMLightInterpolatorオブジェクトに範囲キーを追加する。

構文

object.SetRange(mg As Single)

要素

object
Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
mg
新しい範囲。デフォルト値は、256モデル空間単位である。

エラー値

エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。

注意

範囲プロパティは、スポットライトだけのものである。

Direct3DRMLightInterpolator.SetUmbra

Direct3DRMLightInterpolator

Direct3DRMLightInterpolatorオブジェクトに影角度キーを追加する。

構文

object.SetUmbra(u As Single)

要素

object
Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
u
ラジアン単位の新しい明部の角度。この角度は、暗影部の角度よりも小さいか、等しくなくてはいけない。明部の角度を暗影部の角度より大きく設定した場合、明部は暗影部と同じ角度となる。デフォルト値は0.4ラジアンである。

エラー値

エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。


トップに戻る トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.