インターポレータは、アクションを格納した後、中間値を自動計算して、オブジェクトにアクションを適用する方法を提供する。インターポレータを使用して、色を混合し、異なる位置間でオブジェクトを円滑に移動し、メッシュをモーフィングし、さらに、ほかのさまざまな変換も行うことができる。
IDirect3DRMInterpolatorインターフェイスは、IDirect3DRMAnimation2インターフェイスを包含する集合であり、アニメーションを行うことができるオブジェクトパラメータの種類が多くなっている。IDirect3DRMAnimation2インターフェイスがオブジェクトの位置、サイズ、および方向のアニメーションを可能にする一方で、IDirect3DRMInterpolatorは、色、メッシュ、テクスチャ、およびマテリアルのアニメーションも使用可能にしている。
概要は、「IDirect3DRMInterpolatorインターフェイス」を参照すること。
標準的なIUnknownおよびIDirect3DRMObjectメソッドに加えて、IDirect3DRMInterpolatorは、以下のメンバも含む。
オブジェクトの接続 | AttachObject |
DetachObject | |
GetAttachedObjects | |
補間の実行 | GetIndex |
Interpolate | |
SetIndex |
すべてのCOMインターフェイスと同様、IDirect3DRMInterpolatorインターフェイスはIUnknownインターフェイスメソッドを継承する。IUnknownインターフェイスは、以下の3つのメソッドをサポートする。
AddRef |
QueryInterface |
Release |
さらに、IDirect3DRMInterpolatorインターフェイスは、IDirect3DRMObjectインターフェイスから以下のメソッドを継承する。
AddDestroyCallback |
Clone |
DeleteDestroyCallback |
GetAppData |
GetClassName |
GetName |
SetAppData |
SetName |
オブジェクトをインターポレータに接続する。
構文
HRESULT AttachObject(
LPDIRECT3DRMOBJECT lpD3DRMObject
)
パラメータ
- lpD3DRMObject
- インターポレータに接続されるIDirect3DRMObjectオブジェクトのアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
接続されるオブジェクトは、別のインターポレータでも、インターポレータがxInterpolator型となるタイプxのオブジェクトでも良い。たとえば、ビューポートは、ViewportInterpolatorに接続できる。インターポレータのタイプは、以下のとおりである。
- FrameInterpolator
- LightInterpolator
- MaterialInterpolator
- MeshInterpolator
- TextureInterpolator
- ViewportInterpolator
インターポレータからオブジェクトの接続を解除する。
構文
HRESULT DetachObject(
LPDIRECT3DRMOBJECT lpD3DRMObject
)
パラメータ
- lpD3DRMObject
- インターポレータから接続を外すIDirect3DRMObjectオブジェクトのアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
インターポレータに現在接続されているオブジェクトの配列を取得する。
構文
HRESULT GetAttachedObjects(
LPDIRECT3DRMOBJECTARRAY lpD3DRMObjectArray
)
パラメータ
- lpD3DRMObjectArray
- 現在インターポレータに付加されているIDirect3DRMObjectオブジェクトを含んだIDirect3DRMObjectArrayオブジェクトのアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
インターポレータの現在の内部インデックス(時間)を取得する。
構文
D3DVALUE GetIndex( )
戻り値
インターポレータの現在の内部インデックスを含むD3DVALUEを返す。
注意
インターポレータに格納されている各キーは、インデックス値を持つ。キーを(メソッドを使って)記録するとき、キーには、現在のインターポレータのインデックス値でスタンプが押される。キーのインデックス値は、スタンプを押された後、変わることはない。
インターポレータに格納されているキー間を補間して、一連のアクションを生成する。その後、アクションは、指定のオブジェクトに適用される。オブジェクトの指定がなければ、アクションは、現在接続されているオブジェクトに適用される。
構文
HRESULT Interpolate(
D3DVALUE d3dVal,
LPDIRECT3DRMOBJECT lpD3DRMObject,
D3DRMINTERPOLATIONOPTIONS d3drmInterpFlags
)
パラメータ
- d3dVal
- インターポレータの現在の内部インデックスを含むD3DVALUE。
- lpD3DRMObject
- IDirect3DRMObjectオブジェクトのアドレス。このオブジェクトは、インターポレータに格納されているすべてのプロパティに対する補間値を割り当てるオブジェクトを表す。このポインタはNULLでも良い。その場合には、すべての接続されているオブジェクトのプロパティ値には、補間値がセットされる。
- d3drmInterpFlags
- 実行する補間の種類を制御する1つまたは複数のフラグ。可能な値は、以下のとおりである。
- D3DRMINTERPOLATION_CLOSED
- D3DRMINTERPOLATION_LINEAR
- D3DRMINTERPOLATION_NEAREST
- D3DRMINTERPOLATION_OPEN
- D3DRMINTERPOLATION_SLERPNORMALS
- D3DRMINTERPOLATION_SPLINE
- D3DRMINTERPOLATION_VERTEXCOLOR
- これらのオプションの記述は、「補間オプション」を参照すること。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
インターポレータの内部インデックス(時間)に指定の値をセットする。他のインターポレータがそのインターポレータに接続されていれば、このメソッドは、再帰的にそれらのインデックスを同じ値に同期させる。
構文
HRESULT SetIndex(
D3DVALUE d3dVal
)
パラメータ
- d3dVal
- インターポレータの内部インデックスに対してセットされる時間。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
インターポレータに格納されている各キーは、インデックス値を持つ。キーを(メソッドを使って)記録するとき、キーには、現在のインターポレータのインデックス値でスタンプが押される。キーのインデックス値は、スタンプを押された後、変わることはない。
トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.