2009/6/5 Na-7
2009/6/11 Na-7

技術資料一覧に戻る

「Softimage Mod Toolで作成したスキンアニメモデルをXNAで動かす」に戻る

 

Softimage Mod Tool と XNA の連携手順

その 1:オリジナルモデル)

 

 

Softimage Mod Tool でオリジナルモデルを作成し、XNAでスキンアニメする手順です。

 

注意 この資料は、筆者が自らの経験を記録したものであり、他人に勧めるものではありません。

この資料を参考として行った行為がいかなる結果になろうとも、筆者は責任を負いませんので予めご承知おきください。

 

 

◎使用ツール

・XNA 3.0

・Softimage Mod Tool 7.5

・XNAViewer(XNA Viewerのセットアップはこちら

 

 

◎XNA用シーンの準備

番号 画面イメージ Softimage Mod Tool操作 詳細
1 XNA Game Studio>Connect to XNA Project ・XNA Project Pathを指定してOK

・SOFTIMAGE_XNAViewer.slnの親フォルダではなく、SOFTIMAGE_XNAViewerフォルダを指定する
(例:C:\Documents and Settings\username\My Documents\Visual Studio 2008\Projects\XNAViewerTest1\SOFTIMAGE_XNAViewer)

・パスを初めて指定した場合、Softimageデータ格納用の空フォルダが沢山作成される(この機能のパスを使わないと、エラーチェック機能でエラーと表示されるので素直に使う方が無難)

2 XNA Game Studio>New XNA Scene ・作業中のシーンを保存するか聞かれたら、適当に対処する(不要であれば「いいえ」)

 

◎モデルの準備

モデルとなる円柱を作成します。以下、Animateツールバーで作業します。

番号 画面イメージ Softimage Mod Tool操作 詳細
1 取得>プリミティブ>ポリゴンメッシュ>円柱 ・Geometryのサブディビジョン内のvを8とする
2 (モデルを選択した状態で)メインコマンドパネル(画面右)のEdit>フリーズ ・オペレータスタックによる以前の操作修正はできなくなるが、データ量は低減する

・Editメニューが画面下に消えている場合は、SelectやTransform等のメニュー文字部を数回右クリックすると現われる(一回目は表示されないことがある(バグ?)が、Select等を複数回右クリックすると出現する)

以上でモデルの準備が完了しました。ファイル>保存でシーンを保存してください。(今後は適当なタイミングで各自保存してください)

 

◎XNAモデルへの変換

番号 画面イメージ Softimage Mod Tool操作 詳細
1 XNA Game Studio>Create Skinned Model ・画面には箱が表示され、Explorer(8キーを押して起動)には「Model」が追加される

・Model階層下の「SkinnedMesh」を選択し、Delキーを押して削除する(画面に表示されていた箱も同時に消える)

2 ・「cylinder」をドラッグ&ドロップで「Model」配下に移動する

・「Model」を任意の名称に変更する(全角文字不可)
→ここではSkinModel01とした

 

以上でXNAモデルへの変換が完了しました。

 

◎ボーン作成とエンベロープ設定

番号 画面イメージ Softimage Mod Tool操作 詳細
1 作成>スケルトン>2Dチェインを描く ・フロントビューにて、下から図のように3ヶ所クリックし最後に右クリックでチェインの描画を終了

・Explorerには「root」が作成されている

2 ・「root」をドラッグ&ドロップで「DeformerRoot」配下に移動する

・「root」を任意の名称に変更する(全角文字不可)
→ここではbodyとした

3 (円柱モデルメッシュを選択した状態で)デフォーム>エンベロープ>エンベロープの設定 ・表示されるメッセージは「はい」を選択し、Explorerで 「DeformerRoot」をマウス中ボタンクリックで選択し、右クリックで完了

・成功すると、動くポイントがボーンごとに色分けされる

以上でボーン作成とエンベロープ設定が完了しました。

 

◎アニメーションの登録

番号 画面イメージ Softimage Mod Tool操作 詳細
1 XNA Game Studio>Manage Animation

・シーン内にモデルが複数存在する場合は、予め対象モデルを選択してからアニメーションマネージャを開くこと(今回は単数なので不要)

・アニメーションマネージャを開くと、自動的にキーセットが初期化される (自動作成されなかった場合は、Create Key Set From Deformersボタンを押して作成すること)

・キーセットリストにキーセットが登録されたことを確認する(このキーセットが「現在のキーセット」として自動的に選択された状態となっている)

2 ボーンに対して、適当にアニメーションを付ける

1.タイムライン(画面下)で適当なフレームを選択する

2.適当なボーンを選択し、Transform内のrボタン(回転)やtボタン(移動)などを利用して動きを付ける

3.kキーを押してキーを付加する

・念のため、先頭と最後のフレームにキーを付加すること
3

・タイムラインの再生ボタン

・アニメーションの動きを確認する
4 XNA Game Studio>Manage Animation ・アクション内のNewボタンを押す

・アクションリストに「NewAction」が追加されたことを確認する

・アクション名を変更したい場合はArtion Infoで名称変更する

・アニメーションを更新した場合は、Update Action Clipボタンを押してアクションを更新する

以上でアニメーションの登録が終わりました。

 

◎マテリアルの設定

マテリアル設定手順はこちらの記事を参考とさせて頂きました。テクスチャを使用したい場合も同記事が参考になります。但し、同記事に記述されている通り、以下のマテリアル設定手順はSoftimage Mod Toolが落ちる可能性がありますので適宜保存してください。

正規の手順を知りたい場合は、ヘルプ(英語)等を参考に各自研究してください。

尚、XNA向けのマテリアル設定を省略すると、(モデルはデフォルト色で表示されますが)XNAでスキンアニメしない場合がありますのでご注意ください。(少なくとも、私のPC環境ではスキンアニメしませんでした)

番号 画面イメージ Softimage Mod Tool操作 詳細
1 (円柱モデルメッシュを選択した状態で)表示>レンダリング/テクスチャ>Render Tree ・マテリアル以外のオブジェクトは不要なので削除する(この場合はPhong)
2 ノード>リアルタイム>DirectX>DX Fx(.fx) ・(CTRL+R)キーを押すと表示アイテムが整列されるので適宜活用する

・メニューからDX Fx(.fx)を選択しても画面に変化が無く無視される場合は、左側メニューからリアルタイム>DirectX>DX Fx(.fx)を選択してドラッグ&ドロップすると、メニュー選択時と同じ操作になる。

3 ・DXFX2などと書かれたオブジェクトの右上の青丸をドラッグすると矢印が伸びるので、マテリアルオブジェクトの上まで伸ばしてマウスボタンを離す

・メニューが表示されるのでRealTimeを選択すると、2つのオブジェクトが接続される

4 ・DXFX2などと書かれたオブジェクトをダブルクリックし、表示されたダイアログの「DX9 FX ファイル」にエフェクトファイルのパスを入力する
(例:C:\Documents and Settings\username\My Documents\Visual Studio 2008\Projects\XNAViewerTest1\SOFTIMAGE_XNAViewer\Content\Effects\Lambert.fx)

・しばらくするとダイアログが変化するので、DirectXFX_ParametersのTechniqueをSkinnedに変更し、AmbientColorとDiffuseColorを適当に調整する

余談 (余談なので手順としては無視して良い) ・(筆者PCでは)ビューポートの右上の表示モードをリアルタイムシェーダ>DirectX9に変更して表示状態を確認しようとすると、円柱がぱっと消えてしまう(原因不明)

・(筆者PCでは)前述のTechniqueをスタティックに戻して表示モードをDirectX9とすると、円柱が色付きで表示される

・(筆者PCでは)Techniqueはどちらを選択してもDirectX9モード表示時に円柱をクリックするとSoftimage Mod Toolが落ちる

・(筆者PCでは)Techniqueはどちらを選択してもXNAではスキンアニメする

以上でマテリアルの設定が終わりました。

 

◎ファイルの出力

番号 画面イメージ Softimage Mod Tool操作 詳細
1 XNA Game Studio>Publish Models ・シーン内にモデルが複数存在する場合は、予め対象モデルを選択してからPublishメニューを開くこと(今回は単数なので不要)

・ファイルの出力先パスとモデル名を指定する
(例:C:\Documents and Settings\username\My Documents\Visual Studio 2008\Projects\XNAViewerTest1\SOFTIMAGE_XNAViewer\Content\Models\SkinModel01.xsi)

以上でファイルの出力は完了しました。XNAViewerで読み込んで表示します。

 

 

◎XNAViewerによる表示

以下はXNAでの操作です。

番号 画面イメージ XNA操作
1 ・予め準備したサンプルプロジェクト「XNAViewer」を開く
2 ・ソリューションエクスプローラのSOFTIMAGE_XNAViewer→Content→Modelsで右クリックし、追加>既存の項目

・オブジェクトの種類を「すべてのファイル」とし、Modelsフォルダ内の先程作成した〜.xsiファイルを追加する

3 ・追加したファイルのプロパティを確認する
 →Content ImporterがCrosswalk Importerに、Content ProcessorがCrosswalk Model ProcessorになっていればOK
4 ・LoadContent()内の
Models.Add(new ModelAsset("Content/Models/Robot_Articulated", content));
のアセット名を、先の名称に変更する
(例:Models.Add(new ModelAsset("Content/Models/SkinModel01", content));)
5 ・ビルドしてプログラムを開始する

・パッドを操作してアニメーションを開始する

オリジナルモデル(と言っても円柱)がスキンアニメしました。

 

 

◎アニメーションの登録(パターンその2)

以下は、今後に備えた手順確認です。アニメーションの登録を、以下の手順で登録できるか試してみます。

番号 画面イメージ Softimage Mod Tool操作 詳細
1   前述の手順を参考に、適当にアニメーションを付ける
2 (ExplorerでSkinModel01を選択した状態で)ツール>プロット>すべての変換 ・Fカーブオプション内の「プロット値をFカーブにフィット」をチェックしてOK(こうするとデータ量が減る??)
3 (ExplorerでSkinModel01を選択した状態で)アクション>格納>アニメートパラメータ-Fカーブ&エクスプレッション
 

・新規ソース内のアクション名を指定してOK(デフォルトはStoredFcvAction)

4

XNA Game Studio>Manage Animation

・キャラクターキーセットと先程のアクションが登録されていることを確認する

・アクションを選択して再生ボタンを押し、アニメーションの状態を確認する

以上でアニメーションの登録が終わりました。他の手順は最初のパターンと一緒です。

 

◎パターンその2の実行結果

 

こちらの手順でもXNAでスキンアニメーションしました。こちらの手順は「デフォルトモデルシャドウリグ付き」の手順で使用します。

 

inserted by FC2 system