アプリケーションは、Direct3DRMAnimationオブジェクトをグループ化するためにIDirect3DRMAnimationSet2インターフェイスのメソッドを使用することができる。このインターフェイスによって複雑なアニメーションの流れを再生することが簡単になる。
Direct3DRMAnimationSetオブジェクトによって、Direct3DRMAnimationオブジェクトをグループにまとめることができる。これで、アニメーションセット中のすべてのアニメーションが同じ時間パラメータを共有し、複雑に分割されたアニメーションの流れを簡単に再生できるようになる。アプリケーションは、IDirect3DRMAnimationSet2::AddAnimationメソッドを使用してアニメーションをアニメーションセットに追加し、IDirect3DRMAnimationSet2::DeleteAnimationメソッドを使用してそれを削除できる。アニメーションセットは、IDirect3DRMAnimationSet2::SetTimeメソッドを呼び出すことで操作する。
Microsoft DirectX version 6.0は、IDirect3DRMAnimationSet2インターフェイスを導入している。IDirect3DRMAnimationSet2は、構成アニメーションの取り出しを可能にするGetAnimationsメソッドを追加することで、それが置換する旧のIDirect3DRMAnimationSetインターフェイスを拡張する。Direct3D保持モードインターフェイスの履歴については、「インターフェイスの変更点」を参照すること。
IDirect3DRMAnimationSet2インターフェイスのメソッドは、以下のグループにまとめることができる。
追加、削除、取得、ロード | AddAnimation |
DeleteAnimation | |
GetAnimations | |
Load | |
時間 | SetTime |
すべてのCOMインターフェイスと同様、IDirect3DRMAnimationSet2インターフェイスはIUnknownインターフェイスメソッドを継承する。IUnknownインターフェイスは、以下の3つのメソッドをサポートする。
AddRef |
QueryInterface |
Release |
さらに、IDirect3DRMAnimationSet2インターフェイスは、IDirect3DRMObjectインターフェイスから次のメソッドを継承する。
AddDestroyCallback |
Clone |
DeleteDestroyCallback |
GetAppData |
GetClassName |
GetName |
SetAppData |
SetName |
Direct3DRMAnimationSetオブジェクトは、IDirect3DRM3::CreateAnimationSetの呼び出しによって取得できる。
アニメーションをアニメーションセットに追加する。
構文
HRESULT AddAnimation(
LPDIRECT3DRMANIMATION2 lpD3DRMAnimation
);
パラメータ
- lpD3DRMAnimation
- アニメーションセットに追加するDirect3DRMAnimationオブジェクト。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。
アニメーションをアニメーションセットから削除する。
構文
HRESULT DeleteAnimation(
LPDIRECT3DRMANIMATION2 lpD3DRMAnimation
);
パラメータ
- lpD3DRMAnimation
- アニメーションセットから削除されるDirect3DRMAnimationオブジェクト。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。
アニメーションセット中のアニメーションを含む配列を取り出す。
構文
HRESULT GetAnimations (LPDIRECT3DRMANIMATIONARRAY *lplpArray);
パラメータ
- lplpArray
- 対応するDirect3DRMAnimationArrayオブジェクトへのポインタを受け取る配列。
戻り値
次の値のうち1つを返す。
DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
アニメーションセットをロードする。
構文
HRESULT Load(
LPVOID lpvObjSource,
LPVOID lpvObjID,
D3DRMLOADOPTIONS d3drmLOFlags,
D3DRMLOADTEXTURE3CALLBACK d3drmLoadTextureProc,
LPVOID lpArgLTP,
LPDIRECT3DRMFRAME3 lpParentFrame
);
パラメータ
- lpvObjSource
- オブジェクトがロードされるソースへのポインタ。d3drmLOFlagsパラメータが示すソースフラグによって、ファイル、リソース、メモリブロック、またはストリームを指定する。
- lpvObjID
- ロードするオブジェクトの名前または位置へのポインタ。このパラメータは、d3drmLOFlagsパラメータが示す識別子フラグによって解釈される。D3DRMLOAD_BYPOSITIONフラグを指定した場合、このパラメータは、ファイルの中のオブジェクトの順序を示すDWORD値へのポインタである。このパラメータにはNULLを指定することもできる。
- d3drmLOFlags
- ロードオプションを示すD3DRMLOADOPTIONS型の値。
- d3drmLoadTextureProc
- D3DRMLOADTEXTURE3CALLBACKコールバック関数。これは、特別なフォーマットを必要とするオブジェクトが用いるテクスチャを読み出すときに呼び出される。このパラメータにはNULLを指定することができる。
- lpArgLTP
- D3DRMLOADTEXTURE3CALLBACKコールバック関数に渡されるアプリケーション定義のデータ。
- lpParentFrame
- 親Direct3DRMFrameオブジェクトのアドレス。この引数は、アニメーションセットのロードだけに影響する。xファイルからロードされたアニメーションが、xファイル中の親のないフレームを参照するときは、その親には、lpParentFramがセットされる。ただし、xファイル中の任意のフレームをロードするように、Loadを使った場合には、lpParentFrameは、親のないxファイル中のフレームに対する親フレームとして使用されることはない。すなわち、lpParentFrameは、アニメーションセットをロードしたときに限り使用される。lpParentFrameの値はNULLにすることができる。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
デフォルトでは、このメソッドはlpvObjSourceパラメータで指定されるファイルの最初のアニメーションセットをロードする。デフォルトでは、パースペクティブ補正がオンである。
アニメーションの現在の時間を設定する。
構文
HRESULT SetTime(
D3DVALUE rvTime
);
パラメータ
- rvTime
- 新しい時間。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。可能な戻り値のリストについては、「Direct3D保持モードの戻り値」を参照すること。
トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.