LAGライブラリを試してみるその2

LAGライブラリを試してみるその2


LAGライブラリのsample2でアニメーションの切り替えってのが書かれてたから
できるかどうか試してみたよ。
開発者さんの許可は取ってないよ。危うい。


sample2に入っていた3Dモデル「player」を使った。自作3Dモデルをモーション付きで新作するのはかなりキツいから。
この3Dモデルには2種類ほどモーションが入っていて、その場に立っているだけの「Idle」というモーションと、
走る動きの「run」というモーションがsampleで使われている。


追加する命令はたった1行の簡単な

プログラム的にはごく簡単みたいで、update()内にたった一文、AnimationPlayerクラスの「ChangeClip」
というメソッド命令を書いてやればいいだけらしいのだ。

#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (update.png)

この命令に、アニメーションの名前(もしくは番号)とモーション切り替え時のなめらか率を渡してやれば、簡単にモーションの
切り替えができるというのだ。

改造してみようでないの

サンプルではZキーを押すと動かずに待機するモーションを、Xキーを押すと走るモーションを実行するというプログラムになってたが、
要はこの部分を十字キーの上を押してる間だけ走るモーションを実行っていう風にしつつ、左右キーでモデルの座標・回転を変化させてやれば
キー操作で本当に走ってるようにできるというわけだ。
改造してみたよ。

#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (moving.png)

Keystate.isKeyDown命令で上キーが押されてるかどうかを確認して、その間は「run」のモーションを実行する。
Keystate.isKeyUp命令で上キーが押されてないかどうかを確認して、その間は「Idle」のモーションを実行する。

3Dモデルの回転は、左右キーで角度変数の値を増減してやって、位置回転情報が入った変数にMatrix.CreateRotationY命令でかけあわせてやる。

座標の移動は、左右キーで増減した角度変数を使って、CosとかSinとかの三角関数でキャラが向いてる方向へ前進するように
3Dモデルの位置回転情報が入った変数の値を変えてやる。


という風にすれば、初代バイオハザードみたいな感じの、「左右キーでキャラが回って、上下キーで前進・後退する」っていう操作が
できるようになるというわけだ。

使ってるのはサンプルなのであんまり独自性はないけど、まぁこんな風に3Dゲームの初歩の「キャラを走らせる」はできた。
moving1.FLV

結果

LAGライブラリの最初の表示段階ができてさえいれば、今回のはたった1行加えるだけで簡単にモーションを切り替えられたから、
かなり便利だし楽だった。
切り替え時のブレンドも十分違和感のないものだったので、ゲーム開発のストレスにならなくてとても良いかんじだった。
今回の実験は大満足。
画像数も少なくて済んでよかったよ。
ちなみに、動画を申し訳程度にFLV化したけど、これってページから直接見るのは無理なのね・・・

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2010年07月25日 21:28
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。