3Dプログラミング応用 1-1C

~モーションの再生~

1-1-13.動かしてみる

Xfileの静止表示ができたので、次はモーションの再生ができるようにコードを追加していこう。

モーション再生に必要な処理は


   0.ID3DXAnimationController に再生するモーションを設定

   1.ID3DXAnimationController でモーションの時間を進める

   2.更新されたフレーム行列を元に、ボーン行列を演算

   3.描画

   4.1にもどる


である。

上記リストのうち「0」はデフォルトで「歩き」のモーションがセットされているので省略可。

2,3はすでに実装済みなので、ここで追加するのは、実質1の処理だけである。

具体的には以下の関数を呼び出す。


モーション時間を進める関数

[ TimeDelta ]  → 進める時間を秒単位で指定する

[ pCallbackHandler ]  → 独自実装のアニメーションセットでコールバック処理をさせたいときに関数ポインタをわたす。

今回は不要なのでNULLで省略。


↓これを追加したコードが以下のものである

◆ EmptyProject.cpp(※処理を[1-1B]に追加したもの)

EmptyProject.cpp(一部追加)

▲TOP

1-1-14.拡大、縮小、回転、一時停止

つづいて「キーボード入力に反応して人形が歩き/停止を切り替える機能」、

および「拡大、縮小、回転」する機能を実装する。


◆ EmptyProject.cpp(一部)

3Dメッシュ変数と関連変数

◆ EmptyProject.cpp(キーボード入力)

Handle updates to the scene
  

▲TOP

1-1-15.動作確認

カーソルキー上下で拡大縮小、左右で回転する。

スペースキーで歩き/停止の切り替えができていれば成功。

1-1-15 動作確認

↓参考動画

▲TOP

>「1-2 キャラクターの移動に伴う座標変更」へ続く