ページ 11

DXライブラリの関数について

Posted: 2011年8月01日(月) 15:29
by CAM
質問させていただきます

DXライブラリにある




宣言 MATRIX MV1GetFrameLocalMatrix( int MHandle, int FrameIndex ) ;


概略 フレームの座標変換行列を取得する


引数 int MHandle : モデルのハンドル
int FrameIndex : フレームの番号
戻り値 フレームの変換行列
解説  MHandle のモデルハンドルが示すモデルに含まれるフレームの変換行列を取得します。





宣言 int MV1SetFrameUserLocalMatrix( int MHandle, int FrameIndex, MATRIX Matrix ) ;


概略 フレームの座標変換行列を設定する


引数 int MHandle : モデルのハンドル
int FrameIndex : フレームの番号
MATRIX Matrix : フレームに設定する変換行列
戻り値  0:成功
  -1:エラー発生


解説  MHandle のモデルハンドルが示すモデルに含まれるフレームの変換行列として引数で渡す Matrix の値を使用するようにします。

 この関数を使用して行列を設定すると、 以降 MV1ResetFrameUserLocalMatrix で設定が解除されるまでこの関数で設定した行列が使用されます。 ( 行列を設定したフレームに対するキーが打たれているアニメーションを再生しても、 この関数で設定した行列が優先されます )



などの関数の”フレーム”とは何なのでしょうか?

fpsのことなのでしょうか?

ご回答のほどよろしくお願いします

Re: DXライブラリの関数について

Posted: 2011年8月01日(月) 16:37
by softya(ソフト屋)
フレームとは映像などの1コマの事で、フレーム番号は3Dモデルのモーションの動きを制御するための番号です「[間違いを訂正]。
fpsはフレーム・パー・セック( frame per sec)の略で1秒あたりのフレームの数の事を言いますので同じではありません。

それとモデルのフレーム番号とfpsの周期が一致している必要もありません。

Re: DXライブラリの関数について

Posted: 2011年8月01日(月) 17:59
by ISLe
DXライブラリで3Dを使ったことないので、リファレンスからの想像ですが、
アニメーションのフレームではなくて、メッシュ構造のことみたいです。

モデリングソフトではメッシュ(オブジェクト)に名前を付けて、さらにそれぞれ親子関係を定義します。
body(胴体)
 +- head(頭)
 +- rarm1(右上腕) +- rarm2(右下腕) +- rhand(右手)
 +- larm1(左上腕) +- larm2(左下腕) +- lhand(左手)
...
というふうな感じに。
このようなオブジェクト単位のことをDXライブラリではフレームと呼んでいるようです。

例えばrarm1に変換行列を設定して右腕を上げればrarm2やrhandもいっしょに動くわけです。
剛体の簡単なアニメーションや、あるいは状況に応じた動的なアニメーションを、あらかじめ用意したアニメーションデータを使うのではなく、制御することができます。

Re: DXライブラリの関数について

Posted: 2011年8月01日(月) 18:05
by softya(ソフト屋)
これは失礼しました。構造上のフレームのことですね。
と言うことでDXライブラリの成り立ち上、Xファイルのフレームのことだと思われます。

「その24 アニメーションの根っこ:フレームって何だ?」
http://marupeke296.com/DXG_No24_WhatIsFrame.html