プロフィール

Na-7

Author:Na-7
SE(システムエンジニア)として約15年間システム系ソフト会社を勤めあげ、2008年3月退社。現在、ゲーム制作会社設立を目指して活動中。


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:Softimage Mod Tool
孫皎
孫皎
呉将。孫権の従弟。若くして曹操の濡須侵攻を防ぎ止め、精鋭と讃えられた。荊州の戦いでは呂蒙に従い参戦し、関羽討伐に貢献したが、直後に病死した。



◎不完全な個別制御

ボーントランスフォームを退避復元する手法により、メモリを浪費しなくてもモデルの個別制御が可能となりましたが、この手法では「増やせば増やすほどアニメーションが速くなる」という問題が再発しました。(現象についてはコチラ

最初は速度だけの問題と認識していたので、PlayBackの引数か、XSIAnimationContentクラスのDurationやCurrentTimeあたりを何とかすれば良いのだろうと考えていました。

しかしいろいろ試していたら、同一モーションのタイミングは必ず同期し、タイミングをずらせないことに気付きました。

不完全な個別制御

つまり、この方式による個別制御は不完全だったのです。
トホホ…。



◎CurrentTimeの退避復元

モーションが同期するということは、モーション関連データのどれかが共通的に参照されている、ということです。

Update()内のModels[*].Animations[Models[*].AnimationIndex].CurrentTimeなんかが怪しいと思って値を確認すると、インスタンス毎に異なる値が格納されてました。

これは問題無さそうなので別のことを調べたりしましたが、なかなか手掛かりが掴めません。振り出しに戻ってもう一度考え直すと、やっぱりCurrentTimeが怪しい気がします。

デバッグコードを確認すると、ループ中に値を出力してました。つまり、異なる値が格納されていたわけではなくて、異なるタイミングの値を出力していたわけです(ー_ー;

その後、CurrentTimeは同じ値であることが確認できたので、これを退避復元するようにしたら、「増やせば増やすほどアニメーションが速くなる」という現象は解消しました。

しかしアニメーションは相変わらず同期します。う~ん、Durationは固定値のはずだけど、他にもまだ何かあるのかなぁ?ブツブツ…。



◎CurrentTimeの初期化

しばらく試していると、ある条件を満たす場合、個別のタイミングで動くことが判明しました。

・最初から表示する6体の腕振り&スクワットモーションは必ず同期する(CurrentTimeのUpdate処理開始タイミングが一緒のため)

・最初から表示する6体の回転モーションは、個別に動くこともある(謎)

・途中から追加する4体は、全てのモーションが個別に動く(CurrentTimeのUpdate処理開始タイミングがバラバラのため)

いずれにしても、個別に動くケースがあるということは、(CurrentTimeを退避復元した段階で)個別制御が出来ている、と言えそうです。

試しに、キーを押すとCurrentTimeを初期化するように改修しました。



最初から表示したモデル6体のモーションは同期します。モデル4体追加後、個別操作により最初のモデル6体をバラバラに動かし、最後(1分15秒)に同期させています。

ちゃんと個別制御できてますよ~!w



◎HPとサンプルプロジェクトについて

Softimage付属ランタイムの使用に関するノウハウをHPにまとめました。

Softimage付属ランタイムをXNAに組み込みスキンアニメする

できればサンプルプロジェクトも作成&掲載したかったのですが、コンテンツのファイルサイズが1MBを超えると巡回削除対象となってしまうので、対策を検討中です。



◎次回予告

今回はちゃんと個別制御できました!
トランスフォームもタイミングも自由自在です!w

HPでのノウハウのまとめも完了したので、今後はサンプルプロジェクトを作成し、ACLへの適用テストと性能比較テストを行う予定です。

スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

コメント

ACLでの個別制御はできないかと
あきらめていましたので、期待しております

こんばんは~

お久し振りです(^^)

>ACLでの個別制御
できました!
…と言うか、ACLは(Softimage付属ランタイムと違って)個別制御の問題は発生しないようですw


ACLの個別制御サンプルプログラムをHPに追加しましたので、よろしければダウンロードしてください。

開発者向け技術資料>XNA3.0でスキンアニメーション


次回の記事はACLユーザー必見ですよ~!(笑)

コメントの投稿


管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー)



copyright © ゲーム制作の舞台裏 all rights reserved.Powered by FC2ブログ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。