2009/6/5 Na-7
2009/6/11 Na-7
2009/6/24 Na-7
2009/7/24 Na-7
2009/8/24 Na-7
2010/8/11 Na-7
Softimage Mod Toolで作成したスキンアニメモデルをXNAで動かす
注意 | この資料は、筆者が自らの経験を記録したものであり、他人に勧めるものではありません。 この資料を参考として行った行為がいかなる結果になろうとも、筆者は責任を負いませんので予めご承知おきください。 |
◎使用ツール
ツール名 | 入手元 |
Softimage(旧名称XSI:Softimage Mod Tool 7.5:三次元CG製作用ソフトウェア) | http://www.softimage.com/products/modtool/ |
XNA3.0(XNA GameStudio 3.0:ゲーム開発用フレームワーク) | http://msdn.microsoft.com/ja-jp/xna/default.aspx |
◎ターゲット読者
この記事は「XNAで3Dモデルを表示するスキルはあるが、Softimage(旧名称:XSI))は詳しくない」という人をターゲットに記述している。
そのため、Softimageの手順はわりと詳しく記述したが、XNAの手順はあまり詳しく記述していない。
◎Softimage初心者へ
Softimageを全く知らない初心者は、予めこちらの教材でトレーニングしておくことをお勧めする。
◎SoftimegeとXNAの連携概要
筆者が知る限り、Softimageで作成したアニメーションモデルデータをXNAに渡す方法(ファイル形式)は3つある。
番号 | ファイル形式 | 拡張子 | 解説 |
1 | DirectX形式 | .X | 筆者が試した時は、ACLで動かなかった(参考)。但し、当時は「XNA向けの調整を施していない状態」であったことを付け加えておく。 |
2 | FBX形式 | .FBX | 筆者が試した時は、ACLで動かなかった(参考)。但し、当時は「XNA向けの調整を施していない状態」であったことを付け加えておく。 |
3 | dotXSI形式 | .XSI | ファイル形式はXSIオリジナルだが、XNA連携手順が公式にサポートされており、XNA連携用のアニメーションライブラリ、サンプルプロジェクト、ヘルプ(英語)などが用意されている。 |
ここでは3番のdotXSI形式を使用したXNA公式連携手順を紹介する。初めに記述しておくが、メニューからファイル出力機能を選択すればファイル出力は可能だが、これだけではXNAでスキンアニメしないので覚悟すること。
「データを渡す所で煩わしい思いはしたくない」という人には、メタセコイア+RokDeBone2の組み合わせをお勧めする。こちらのツールであれば、作成したデータを保存するだけでXNAに渡すことができる (参考)。但し、Softimageが持つ豊富な機能は利用できない。
◎SoftimegeとXNAの連携手順(公式手順ベース)
Softimage Mod Toolの英語ヘルプ(メニューバー>XNA Game Studio>ヘルプ)には、XNA用のアニメーションライブラリを利用したチュートリアルが記述されている。基本的にはこの手順をベースに進めるが、一部異なる点もあるので注意すること。
1.Softimage Mod Toolのセットアップ
ダウンロードしてインストールすること。詳しい説明は省略するが、ディレクトリパスやファイル名は日本語を使用しないこと。
XNAViewerは、XNA開発者向けのXNAサンプルプロジェクトである。以降の手順で必要となるので、予め準備しておくこと。
3.Softimage Mod Tool と XNA の連携手順 (その1:オリジナルモデル)
超シンプルなオリジナルモデルを作成し、XNAでスキンアニメする手順である。
4.Softimage Mod Tool と XNA の連携手順(その2:デフォルトモデルシャドウリグなし)
Softimageから取得できるデフォルトモデルを利用して、XNAでスキンアニメする手順 を作成するつもりであったが、デフォルトモデルはボーン数が76であり、XNAモデルの上限値58を上回るため、このままではXNA側で「指定されたキャストは有効ではありません。」といったエラーが発生する(参考)。
下記の手順はボーン数を節約できるので、そちらを参照すること。
2010/8/11追記:XNAの最大ボーン数を増やす手法により、デフォルトリグモデルが実装可能になりました。
5.Softimage Mod Tool と XNA の連携手順(その3:デフォルトモデルシャドウリグ付き)
Softimageから取得できるデフォルトモデルを利用して、XNAでスキンアニメする手順である。こちらの方式では、ボーン数がXNA制限値以下に節約できるので、エラーは発生しない。
2010/8/11追記:シャドウリグ方式は構造が複雑で使いこなすのはかなり難しいのでお勧めできません。