LAGライブラリを試してみる
LAG氏が開発しているXNA用モーションライブラリ「LAGライブラリ」が
使えるかどうか試してみたよ。
開発者さんのサイト「
http://lurgee.xii.jp/」
※ちなみに許可は一切得てないのでいろいろ危うい。
実験開始
まずは公式解説にあるとおり、dllファイルをプロジェクトで参照できるようにしとく
ダウンロードするとライブラリが3種類入ってたけど、sample1で使うのはこのうち2種類だけみたいだ。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (dll.png)
で、このdllをプロジェクトのしかるべき場所に加えておく。参照設定ってとこだな。
dllだけ入れたら、とりあえずビルドしてみて異常がおきないか確かめておく。
dllが壊れてたり、ソリューションのアップグレードが必要だったりしたら
ゲーム内容を開発していくより前に発見しておきたいからね。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (exproler.png)
今回は実験程度の試験起動だから、サンプル1に入ってるplayer.xのファイルを利用させてもらった。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (player.png)
そして同時に、xファイルと共に忘れちゃいけない大事なデータがエフェクトファイル。.fxってやつだな。
このfxデータを仲介にして、テクスチャ情報とかボーン情報をXNAに渡してるみたいなのだ。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (effect.png)
ちなみに、player.xのファイルのほうはコンテンツプロセッサの欄がただのXmodelじゃなくてLskinnedModelになってる。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (propaty.png)
さてここからプログラミング。
重要になってくる変数が,AnimationPlayerとSkinEffectというクラスのようだった。
AnimationPlayerに3Dモデルをアニメ開始させたりする命令が詰まってて、
SkinEffectにボーンの変換情報などを入れてXNAに渡しているらしい。よくわからんがとにかく宣言しとく。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (hensuu.png)
で、LoadContent内で3Dモデルのロードとエフェクトデータのロードをする。
ここで同時にインスタンス作ったり起動最初にどのアニメーションをするか設定しとくらしい。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (load.png)
次はUpdate内にアニメーションのアップデート命令を書く。
経過時間、アニメ再生かどうか、モデルの位置回転情報の順で引数を入れるみたい。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (animationupdate.png)
で、Update側で3Dモデルのアニメーションをアップデートしたら、
Draw内で描画命令を使うわけなんだが・・・
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (draweffect.png)
ここで使われてる「Modeldraw」関数は自作しなくてはならないらしい。
sampleのをほぼ直接写したんだが、なにやらGraphicDeviceなどXNAに直結しそうな難しい命令が書かれてたので
一度作った後はできたら触りたくない部分だった。
多分、ただの3Dモデルならmesh.Draw()の一文で全部XNAが自動でやってくれるところを、モーションつきということで
自分でエフェクト情報を渡す命令を一個一個書かなきゃならないんだと思う。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (modeldraw.png)
ここまでやり終えたらビルドして実行。
まぁ大抵はうまくいかないものだけど、うまくいくとこんな感じに
サンプルの3Dモデルが走ってるシーンが映し出された。良かった良かった。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (finish.png)
結果
日本人の方が作ったライブラリということで、説明ページも日本語で書かれてるし
XNAで3Dにモーションをつけてやりたい人にはかなりありがたいライブラリだと思う。
今のところ俺の環境では問題なく動いてるので、これからもいくつかsampleを追うかたちで
LAGライブラリの実験をしていきたいと思う。
あとこのライブラリで使える形式のモーション付きXファイルを作るためのRokdebone2とかRDBxnaとかも重要なので、
そこらへんも一緒に実験してみた方がいいかな。
最終更新:2010年08月19日 03:09