「LAGライブラリを試してみるその2」の編集履歴(バックアップ)一覧はこちら
「LAGライブラリを試してみるその2」(2010/07/25 (日) 21:28:31) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*&bold(){LAGライブラリを試してみるその2}
LAGライブラリのsample2でアニメーションの切り替えってのが書かれてたから
できるかどうか試してみたよ。
開発者さんの許可は取ってないよ。危うい。
sample2に入っていた3Dモデル「player」を使った。自作3Dモデルをモーション付きで新作するのはかなりキツいから。
この3Dモデルには2種類ほどモーションが入っていて、その場に立っているだけの「Idle」というモーションと、
走る動きの「run」というモーションがsampleで使われていた。
*&bold(){LAGライブラリを試してみるその2}
LAGライブラリのsample2でアニメーションの切り替えってのが書かれてたから
できるかどうか試してみたよ。
開発者さんの許可は取ってないよ。危うい。
sample2に入っていた3Dモデル「player」を使った。自作3Dモデルをモーション付きで新作するのはかなりキツいから。
この3Dモデルには2種類ほどモーションが入っていて、その場に立っているだけの「Idle」というモーションと、
走る動きの「run」というモーションがsampleで使われている。
*&bold(){追加する命令はたった1行の簡単な}
プログラム的にはごく簡単みたいで、update()内にたった一文、AnimationPlayerクラスの「ChangeClip」
というメソッド命令を書いてやればいいだけらしいのだ。
&ref(update.png)
この命令に、アニメーションの名前(もしくは番号)とモーション切り替え時のなめらか率を渡してやれば、簡単にモーションの
切り替えができるというのだ。
*&bold(){改造してみようでないの}
サンプルではZキーを押すと動かずに待機するモーションを、Xキーを押すと走るモーションを実行するというプログラムになってたが、
要はこの部分を十字キーの上を押してる間だけ走るモーションを実行っていう風にしつつ、左右キーでモデルの座標・回転を変化させてやれば
キー操作で本当に走ってるようにできるというわけだ。
改造してみたよ。
&ref(moving.png)
Keystate.isKeyDown命令で上キーが押されてるかどうかを確認して、その間は「run」のモーションを実行する。
Keystate.isKeyUp命令で上キーが押されてないかどうかを確認して、その間は「Idle」のモーションを実行する。
3Dモデルの回転は、左右キーで角度変数の値を増減してやって、位置回転情報が入った変数にMatrix.CreateRotationY命令でかけあわせてやる。
座標の移動は、左右キーで増減した角度変数を使って、CosとかSinとかの三角関数でキャラが向いてる方向へ前進するように
3Dモデルの位置回転情報が入った変数の値を変えてやる。
という風にすれば、初代バイオハザードみたいな感じの、「左右キーでキャラが回って、上下キーで前進・後退する」っていう操作が
できるようになるというわけだ。
使ってるのはサンプルなのであんまり独自性はないけど、まぁこんな風に3Dゲームの初歩の「キャラを走らせる」はできた。
&ref(moving1.FLV)
*&bold(){結果}
LAGライブラリの最初の表示段階ができてさえいれば、今回のはたった1行加えるだけで簡単にモーションを切り替えられたから、
かなり便利だし楽だった。
切り替え時のブレンドも十分違和感のないものだったので、ゲーム開発のストレスにならなくてとても良いかんじだった。
今回の実験は大満足。
画像数も少なくて済んでよかったよ。
ちなみに、動画を申し訳程度にFLV化したけど、これってページから直接見るのは無理なのね・・・