2009/6/24 Na-7
Metasequoia用データをSoftimage Mod Toolで読み込みXNA向けに編集する
注意 | この資料は、筆者が自らの経験を記録したものであり、他人に勧めるものではありません。 この資料を参考として行った行為がいかなる結果になろうとも、筆者は責任を負いませんので予めご承知おきください。 |
◎使用ツール
ツール名 | 入手元 |
メタセコイア(Metasequoia 2.4:3Dポリゴンモデラー) | http://www.metaseq.net/metaseq/index.html |
Softimage(旧名称XSI:Softimage Mod Tool 7.5:三次元CG製作用ソフトウェア) | http://www.softimage.com/products/modtool/ |
XNAViewer(Softimageで作成したデータをXNAで表示するXNA用サンプルプロジェクト) | Softimage添付(セットアップ方法はこちら) |
XNA3.0(XNA GameStudio 3.0:ゲーム開発用フレームワーク) | http://msdn.microsoft.com/ja-jp/xna/default.aspx |
◎概要
Metasequoia用3DモデルデータをSoftimage Mod Toolで読み込み、XNAで表示できるように編集する。
Metasequoia用データの読み込みは個人製作のスクリプトを活用し、SoftimageとXNAの連携は公式手順をベースとする。(SoftimageとXNAの連携概要についてはこちら)
◎全体の流れ
1.スクリプトの準備
5−1.XNA向けマテリアル設定の準備
6.ファイルの出力
8.実行結果
1.スクリプトの準備
番号 | 画面イメージ | Softimage Mod Tool操作 | 詳細 |
1 | − | − | ・Softimage用スクリプトMqoImport.jsをダウンロードする ・パスやファイル名は任意(但し日本語を含まないこと) (例:C:\Softimage\MqoImport.js) |
2 | 表示>オプションパネル>Main Shelf | ・画面上部にMain Shelfツールバーが表示される | |
3 | − | ・ダウンロードした.jsファイルをMain
Shelfツールバーにドラッグ&ドロップする ・表示されたダイアログはそのままOK ・Main Shelfツールバーにスクリプト実行ボタンが追加される |
|
4 | Main Shelfツールバー上で右クリックメニューを表示>保存 | ・この操作を行うことにより、次回Softimage起動時にスクリプト実行ボタンが追加済の状態となる |
2.XNA用シーンの準備
XNAViewerのセットアップが完了していることを前提としている。(未完了の場合はこちら)
3.Metasequoia用3Dモデルデータの読み込み
番号 | 画面イメージ | Softimage Mod Tool操作 | 詳細 |
1 | − | − | ・メタセコイア用データファイル(.mqoファイルやテクスチャファイル)を日本語を含まないフォルダパスにコピーする |
2 | スクリプト実行ボタンを押す | ・ファイル選択ダイアログで.mqoファイルを選択すると3Dモデルが読み込まれる ・ビューポート右上の表示モードを「テクスチャ」に変更し、テクスチャが再現されているか確認する |
※以上でメタセコイアからSoftimageへのデータ変換完了。以後、ファイル>保存でシーンを適宜保存すること。
4.XNAモデルへの変換
番号 | 画面イメージ | Softimage Mod Tool操作 | 詳細 |
1 | (モデルを選択した状態で)XNA Game Studio>Convert to XNA Model | ・1シーン1モデルの場合、モデルを選択しなくても変換される |
以上でXNAモデルへの変換完了。
5−1.XNA向けマテリアル設定の準備
XNA向けマテリアル設定とは、DirectXシェーダーの追加または置き換えのことである。これを省くと、XNAViewerではマテリアルが再現されず、白いモデルが表示されることになる。尚、「XNA側で独自プログラミング等によりマテリアルを設定する」という場合は、この手順を省略できると思われる。
番号 | 画面イメージ | Softimage Mod Tool操作 | 詳細 |
1 | 表示>レンダリング/テクスチャ>Material Manager(またはCTRL+7) | ・右上のリンゴはマテリアルサンプル
・右上のリンゴを選択すると、右下にツリーが表示される ・マテリアルの種類を確認し、以降の手順を行うこと |
5−2.XNA向けマテリアル設定(カラーマテリアル)
筆者モデルの場合、タンジェントを追加するだけで色が再現された。モデルによっては従法線が必要かもしれないので適宜追加すること。
もしタンジェントと従法線を両方追加しても色が再現されない場合は、テクスチャマテリアル方式で設定すること。
尚、タンジェントを設定したポリゴンメッシュは、Softimageテクスチャビューモードにおいて表示色が変わることがあるが、これはXNAViewer付属サンプルのロボットシーンでも同様なので「仕様通り(本来あるべき姿)」と 思われる。
また、タンジェントは一旦取得すると、元に戻す(削除する)方法が不明なので注意すること(エクスプローラ上のタンジェントノードを削除しても表示は元に戻らない ようだ)。
5−3.XNA向けマテリアル設定(テクスチャマテリアル)
筆者PC環境と筆者モデルの組み合わせでは、DirectXシェーダーを追加しマテリアルにRealTime接続しようとすると、ModToolが落ちたり、DirectXシェーダーのテクスチャプロパティが表示されないといった不具合が発生する(原因不明)。
これを回避するため、DirectXマテリアルを新規に作成し、これに置き換えるという手順を行う。
尚、上記不具合が発生しない場合は、置き換え手順は不要と思われる。(要はDirectXシェーダーがあれば良い)
以上でXNA向けマテリアル設定完了。
6.ファイルの出力
以上でファイル出力完了。XNAViewerで読み込んで表示すること。
7.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 | − | ・ビルドしてプログラムを開始する ・ (パッドを操作してアニメーションを開始する) |
8.実行結果
テクスチャやカラーがXNA上で再現された。
添付のLambert.fxはかなり明るい感じなので、カラー調整した方が良いかもしれない。