インターポレータは、アクションを格納した後、中間値を自動計算して、オブジェクトにアクションを適用する方法を提供する。インターポレータを使用して、色を混合し、異なる位置間でオブジェクトを円滑に移動し、メッシュをモーフィングし、さらに、ほかのさまざまな変換も行うことができる。
Direct3DRMLightオブジェクトは、Direct3DRMLightInterpolatorオブジェクトにアタッチできる。インターポレータの詳細については、追加情報の「インターポレータ」を参照すること。
Direct3DRMLightInterpolatorインターフェイスには、次のメソッドが含まれる。
オブジェクトのアタッチ AttachObject DetachObject GetAttachedObjects 減衰 SetConstantAttenuation SetLinearAttenuation SetQuadraticAttenuation 色 SetColor SetColorRGB 補間の実行 GetIndex Interpolate SetIndex 範囲 SetRange スポットライトオプション SetPenumbra SetUmbra
さらに、Direct3DRMLightInterpolatorは、Direct3DRMObjectインターフェイスから次のメソッドを継承する。
オブジェクトをインターポレータに接続する。
構文
object.AttachObject(mObject As Direct3DRMObject)
要素
- object
- Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
- mObject
- インターポレータにアタッチするDirect3DRMObjectオブジェクト。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
アタッチされるオブジェクトは、別のインターポレータでも、インターポレータがxInterpolator型となるタイプxのオブジェクトでも良い。たとえば、Direct3DRMLightオブジェクトは、Direct3DRMLightInterpolatorオブジェクトにアタッチできる。
インターポレータからオブジェクトのアタッチを解除する。
構文
object.DetachObject(mObject As Direct3DRMObject)
要素
- object
- Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
- mObject
- インターポレータからアタッチを外すDirect3DRMObjectオブジェクト。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
インターポレータに現在アタッチされているオブジェクトを取得する。
構文
object.GetAttachedObjects( ) As Direct3DRMObjectArray
要素
- object
- Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
戻り値
Direct3DRMObjectArrayオブジェクトを返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
インターポレータの現在の内部インデックス(時間)を取得する。
構文
object.GetIndex( ) As Single
要素
- object
- Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
戻り値
インターポレータの現在の内部インデックスを含む値を返す。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
インターポレータに格納されている各キーは、インデックス値を持つ。キーを(メソッドを使って)記録するとき、キーには、現在のインターポレータのインデックス値でスタンプが押される。キーのインデックス値は、スタンプを押された後、変わることはない。
インターポレータに格納されているキー間を補間して、一連のアクションを生成する。その後、アクションは、指定のオブジェクトに適用される。オブジェクトの指定がなければ、アクションは、現在アタッチされているオブジェクトに適用される。
構文
object.Interpolate(val As Single, mObject As Direct3DRMObject, options As CONST_D3DRMINTERPOLATIONFLAGS)
要素
- object
- Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
- val
- インターポレータの現在の内部インデックスを含む値。
- mObject
- Direct3DRMObjectオブジェクト。このオブジェクトは、インターポレータに格納されているすべてのプロパティに対する補間値を割り当てるオブジェクトを表す。このポインタはNOTHINGでも良い。その場合には、すべての接続されているオブジェクトのプロパティ値には、補間値がセットされる。
- options
- 実行する補間の種類を制御するCONST_D3DRMINTERPOLATIONFLAGS列挙型の値の1つ。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMLightInterpolatorオブジェクトにカラーキーを追加する。
構文
object.SetColor(c As Long)
要素
- object
- Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
- c
- フレームの新しい色。赤、緑、青の色要素のほかにアルファ要素もセットする。そうしないと、オブジェクトが可視にならないことがある。色は4バイトのLongで表される。高バイトはアルファ要素であり、後続のバイトが赤、緑、青を定義する。より簡単に色を構築するにはDirectX7オブジェクトのCreateColorRGBAを使い、フルアルファを希望しているだけの場合はSetColorRGBを使う。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
Direct3DRMLightInterpolatorオブジェクトにRGBカラーキーを追加する。
構文
object.SetColorRGB(r As Single, g As Single, b As Single)
要素
- object
- Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
- r, g, b
- 照明の新しい赤、緑、青の色要素。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
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オブジェクトに減衰定数キーを追加するためにも使用する。
インターポレータの内部インデックス(時間)に指定の値をセットする。他のインターポレータがそのインターポレータにアタッチされていれば、このメソッドは、再帰的にそれらのインデックスを同じ値に同期させる。
構文
object.SetIndex(val As Single)
要素
- object
- Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
- val
- インターポレータの内部インデックスに対してセットされる時間。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
インターポレータに格納されている各キーは、インデックス値を持つ。キーを(メソッドを使って)記録するとき、キーには、現在のインターポレータのインデックス値でスタンプが押される。キーのインデックス値は、スタンプを押された後、変わることはない。
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オブジェクトに影角度キーを追加する。
構文
object.SetPenumbra(p As Single)
要素
- object
- Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
- p
- ラジアン単位の新しい暗影部の角度。この角度は暗部の角度より大きいか、等しくなくてはいけない。暗影部の角度を明部の角度よりも小さく設定した場合、暗影部は明部と同じ角度になる。デフォルト値は0.5ラジアンである。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
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次減衰キーを追加するためにも使用する。
参照
Direct3DRMLightInterpolatorオブジェクトに範囲キーを追加する。
構文
object.SetRange(mg As Single)
要素
- object
- Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
- mg
- 新しい範囲。デフォルト値は、256モデル空間単位である。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
注意
範囲プロパティは、スポットライトだけのものである。
Direct3DRMLightInterpolatorオブジェクトに影角度キーを追加する。
構文
object.SetUmbra(u As Single)
要素
- object
- Direct3DRMLightInterpolatorオブジェクトを表すオブジェクト式。
- u
- ラジアン単位の新しい明部の角度。この角度は、暗影部の角度よりも小さいか、等しくなくてはいけない。明部の角度を暗影部の角度より大きく設定した場合、明部は暗影部と同じ角度となる。デフォルト値は0.4ラジアンである。
エラー値
エラーのリストについては、「Direct3D保持モードのエラー値」を参照すること。
トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.