IDirect3DRMAnimation2

アプリケーションはIDirect3DRMAnimation2インターフェイスのメソッドを利用して、位置、向き、ビジュアルオブジェクトのスケーリング、照明、ビューポートのアニメーションを行うことができる。

保持モードのアニメーションは、キーセットによって定義される。キーはスケーリング操作、方向、または位置に関連付けられた時間値である。Direct3DRMAnimationオブジェクトは、時間値に応じた変換の修正方法を定義する。アニメーションをDirect3DRMFrameオブジェクト上で動作するようにセットし、Direct3DRMVisual、Direct3DRMLightおよびDirect3DRMViewportオブジェクトの位置、方向、スケーリングのアニメーションを行うために使用することができる。

IDirect3DRMAnimation2::AddPositionKeyAddRotateKeyおよびAddScaleKeyの各メソッドは、単位が任意の時間値を指定する。アプリケーションが時間値99の位置キーを追加した場合、たとえば、時間値49の新しい位置キーは、アニメーションの(0を基準とした) 開始点と最初の位置キーとの間のちょうど中間で発生する。

アニメーションの操作は、IDirect3DRMAnimation2::SetTimeメソッドを呼び出すことで行われる。これは、ビジュアルオブジェクトの変換をアニメーション中の近くのキーの補間位置、方向、スケールにセットする。アニメーションキーを追加するメソッドと同様に、IDirect3DRMAnimation2::SetTimeの時間値は、アプリケーションがすでに追加済のキー位置に基づく任意の値である。

Microsoft DirectX version 6.0は、IDirect3DRMAnimation2インターフェイスを導入している。IDirect3DRMAnimation2は、アニメーションのキーへのアクセスを可能にするAddKeyDeleteKeyByIDGetKeysおよびModifyKeyメソッドを追加することで、それが置換する旧のIDirect3DRMAnimationインターフェイスを拡張する。これは、対応するアニメーションのフレームを返すGetFrameメソッドも追加する。Direct3D保持モードインターフェイスの履歴については、「インターフェイスの変更点」を参照すること。

IDirect3DRMAnimation2インターフェイスのメソッドは、以下のグループにまとめることができる。

キー AddKey
AddPositionKey
AddRotateKey
AddScaleKey
DeleteKey
DeleteKeyByID
GetKeys
ModifyKey
その他 GetFrame
SetFrame
SetTime
オプション GetOptions
SetOptions

すべてのCOMインターフェイスと同様、IDirect3DRMAnimation2インターフェイスはIUnknownインターフェイスメソッドを継承する。IUnknownインターフェイスは次の3つのメソッドをサポートする。
AddRef
QueryInterface
Release

さらにIDirect3DRMAnimation2インターフェイスは、IDirect3DRMObjectインターフェイスから次のメソッドを継承する。
AddDestroyCallback
Clone
DeleteDestroyCallback
GetAppData
GetClassName
GetName
SetAppData
SetName

Direct3DRMAnimationオブジェクトは、IDirect3DRM3::CreateAnimationメソッドの呼び出しによって取得できる。

IDirect3DRMAnimation2::AddKey

IDirect3DRMAnimation2

新しいキーを追加する。

構文

HRESULT AddKey
(LPD3DRMANIMATIONKEY lpKey);

パラメータ

lpKey
新しいキーを定義するD3DRMANIMATIONKEY構造体。構造体のdwIDメンバは無視され、返る時点で新しいキーのIDがセットされる。

戻り値

次の値のうち1つを返す。
 
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

IDirect3DRMAnimation2::AddPositionKey

IDirect3DRMAnimation2

アニメーションに位置キーを追加する。

構文

HRESULT AddPositionKey(
  D3DVALUE rvTime,
  D3DVALUE rvX,
  D3DVALUE rvY,
  D3DVALUE rvZ
  );

パラメータ

rvTime
アニメーションの中で位置キーを設定するときの時間。0を原点とする任意の単位の時間を指定することができる。最後のキーのrvTimeの値が99のとき、rvTimeが49であるキーがアニメーションのちょうど中間である。
rvX, rvY, rvZ
位置。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドによって移動変換が行われるようになる。変換を含む行列計算については、「3D変換」を参照すること。

参照

IDirect3DRMAnimation2::DeleteKey

IDirect3DRMAnimation2::AddRotateKey

IDirect3DRMAnimation2

アニメーションに回転キーを追加する。

構文

HRESULT AddRotateKey(
  D3DVALUE rvTime,
  D3DRMQUATERNION *rqQuat
  );

パラメータ

rvTime
アニメーションの中で回転キーを設定するときの時間。0を基準とする任意の単位の時間を指定することができる。最後のキーのrvTimeの値が99のとき、rvTimeが49であるキーがアニメーションのちょうど中間である。
rqQuat
回転を表す4次元行列。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドによって、回転変換が適用される。変換を含む行列計算については、「3D変換」を参照すること。

参照

IDirect3DRMAnimation2::DeleteKey

IDirect3DRMAnimation2::AddScaleKey

IDirect3DRMAnimation2

アニメーションにスケールキーを追加する。

構文

HRESULT AddScaleKey(
  D3DVALUE rvTime,
  D3DVALUE rvX,
  D3DVALUE rvY,
  D3DVALUE rvZ
  );

パラメータ

rvTime
アニメーションの中でスケールキーを記憶するときの時間。0を原点とする任意の単位の時間を指定できる。最後のキーのrvTimeの値が99のとき、rvTimeが49であるキーがアニメーションのちょうど中間である。
rvX, rvY, rvZ
スケール係数。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドによって、スケール変換が適用される。変換を含む行列計算については、「3D変換」を参照すること。

参照

IDirect3DRMAnimation2::DeleteKey

IDirect3DRMAnimation2::DeleteKey

IDirect3DRMAnimation2

キーをアニメーションから削除する。たとえば、アニメーションに時間tのスケールキーと時間tの回転キーがある場合、両方のキーが削除される。

構文

HRESULT DeleteKey(
  D3DVALUE rvTime
  );

パラメータ

rvTime
アニメーションから削除されるキーを識別する時間。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

IDirect3DRMAnimation2::DeleteKeyByID

IDirect3DRMAnimation2

固有のIDに対応するキーを削除する。

構文

HRESULT DeleteKeyByID
(DWORD dwID);

パラメータ

dwID
削除するキーのID。

戻り値

次の値のうち1つを返す。
 
D3DRMERR_NOSUCHKEY
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

IDirect3DRMAnimation2::GetFrame

IDirect3DRMAnimation2

アニメーションに対応するフレームを取り出す。

構文

HRESULT GetFrame
(LPDIRECT3DRMFRAME3 *lplpFrame);

パラメータ

lplpFrame
アニメーションが参照する現在のDirect3DRMFrameオブジェクトのインターフェイスを受け取るポインタ。この値はNULLが可能である。

戻り値

次の値のうち1つを返す。
 
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

IDirect3DRMAnimation2::GetKeys

IDirect3DRMAnimation2

固有の時間に対応するキーを取り出す。

構文

HRESULT GetKeys
(D3DVALUE dvTimeMin,
D3DVALUE dvTimeMax,
LPDWORD lpdwNumKeys,
LPD3DRMANIMATIONKEY lpKey);

パラメータ

dvTimeMin
返されるキーの最小時間値。
dvTimeMax
返されるキーの最大時間値。
lpdwNumKeys
中に返されるキーの数を含む変数へのポインタ。lpKeyがNULLの場合、lpdwNumKeysは指定の時間にキーの数がセットされる。
lpKey
キー値がセットされるD3DRMANIMATIONKEY構造体へのポインタ。lpKeyがNULLの場合、lpdwNumKeysは指定の時間にキーの数がセットされる。lpKeyがNULLでない場合、lpdwNumKeysiで示されるキーの最大数まで指定の時間に対応するキーがセットされる。

戻り値

次の値のうち1つを返す。
 
D3DRMERR_NOSUCHKEY
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

IDirect3DRMAnimation2::GetOptions

IDirect3DRMAnimation2

アニメーションオプションを取得する。

構文

D3DRMANIMATIONOPTIONS GetOptions( );

戻り値

アニメーションオプションを示すD3DRMANIMATIONOPTIONS型の値を返す。

参照

IDirect3DRMAnimation2::SetOptions

IDirect3DRMAnimation2::ModifyKey

IDirect3DRMAnimation2

キー値を修正する。

構文

HRESULT Modify
(LPD3DRMANIMATIONKEY lpKey);

パラメータ

lpKey
既存のキーの値を定義するD3DRMANIMATIONKEY構造体。構造体のdwIDメンバは、既存のキーでなければならない。

戻り値

次の値のうち1つを返す。
 
D3DRMERR_INCOMPATIBLEKEY
D3DRMERR_NOSUCHKEY
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

キーのタイプを修正することはできない。キーのタイプを変更するには、オリジナルキーを削除し、新しいキーを追加しなければならない。キーの時間、位置、回転、スケール値を修正することはできる。

IDirect3DRMAnimation2::SetFrame

IDirect3DRMAnimation2

アニメーションにフレームを設定する。

構文

HRESULT SetFrame(
  LPDIRECT3DRMFRAME3 lpD3DRMFrame
  );

パラメータ

lpD3DRMFrame
アニメーションに設定するフレームを指定する変数のアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

IDirect3DRMAnimation2::SetOptions

IDirect3DRMAnimation2

アニメーションオプションを設定する。

構文

HRESULT SetOptions(
  D3DRMANIMATIONOPTIONS d3drmanimFlags
  );

パラメータ

d3drmanimFlags
アニメーションオプションを指定するD3DRMANIMATIONOPTIONS型の値のアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

参照

IDirect3DRMAnimation2::GetOptions

IDirect3DRMAnimation2::SetTime

IDirect3DRMAnimation2

アニメーションに現在の時間を設定する。

構文

HRESULT SetTime(
  D3DVALUE rvTime
  );

パラメータ

rvTime
アニメーションに設定する新しい現在の時間。0を原点とする任意の単位の時間を指定することができる。最後のキーのrvTimeの値が99のとき、rvTimeが49であるキーがアニメーションのちょうど中間である。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。


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