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.スクリプトの準備

2.XNA用シーンの準備

3.Metasequoia用3Dモデルデータの読み込み

4.XNAモデルへの変換

5−1.XNA向けマテリアル設定の準備

5−2.XNA向けマテリアル設定(カラーマテリアル)

5−3.XNA向けマテリアル設定(テクスチャマテリアル)

6.ファイルの出力

7.XNAViewerによる表示

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のセットアップが完了していることを前提としている。(未完了の場合はこちら

番号 画面イメージ 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 ・作業中のシーンを保存するか聞かれたら、適当に対処する(不要であれば「いいえ」)

 

 

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) ・右上のリンゴはマテリアルサンプル

・右上のリンゴを選択すると、右下にツリーが表示される
(カラーマテリアルの場合は2階層、テクスチャマテリアルの場合は4階層)

・マテリアルの種類を確認し、以降の手順を行うこと

 

5−2.XNA向けマテリアル設定(カラーマテリアル)

筆者モデルの場合、タンジェントを追加するだけで色が再現された。モデルによっては従法線が必要かもしれないので適宜追加すること。

もしタンジェントと従法線を両方追加しても色が再現されない場合は、テクスチャマテリアル方式で設定すること。

尚、タンジェントを設定したポリゴンメッシュは、Softimageテクスチャビューモードにおいて表示色が変わることがあるが、これはXNAViewer付属サンプルのロボットシーンでも同様なので「仕様通り(本来あるべき姿)」と 思われる。

また、タンジェントは一旦取得すると、元に戻す(削除する)方法が不明なので注意すること(エクスプローラ上のタンジェントノードを削除しても表示は元に戻らない ようだ)。

番号 画面イメージ Softimage Mod Tool操作 詳細
1 表示>一般>Explorer(または8) ・エクスプローラで、カラーマテリアルを含むポリゴンメッシュを選択する

・カラーマテリアルか否かは、以下の手順で確認できる
 1.Polygon Mesh階層下のClusters階層下にクラスタオブジェクトが存在し、その階層下にマテリアルが存在する
 2.マテリアルを選択した状態で7キーを押すとRenderTreeが表示されるので目視確認する(カラーマテリアルはテクスチャ無しの2階層)

2 (エクスプローラでカラーマテリアルを含むメッシュを選択した状態で)取得>プロパティ>タンジェント ・表示されたウィンドウはそのまま閉じる

・成功すればこの段階で色が付くので、試しにPublishしてXNAで表示しても良い

3 1〜2の手順を、全ての カラーマテリアルを含むメッシュに対して実施する

 

5−3.XNA向けマテリアル設定(テクスチャマテリアル)

筆者PC環境と筆者モデルの組み合わせでは、DirectXシェーダーを追加しマテリアルにRealTime接続しようとすると、ModToolが落ちたり、DirectXシェーダーのテクスチャプロパティが表示されないといった不具合が発生する(原因不明)。

これを回避するため、DirectXマテリアルを新規に作成し、これに置き換えるという手順を行う。

尚、上記不具合が発生しない場合は、置き換え手順は不要と思われる。(要はDirectXシェーダーがあれば良い)

番号 画面イメージ Softimage Mod Tool操作 詳細
1 (マテリアルマネージャで)作成>リアルタイム OGL/DirectX>DirectX FX ・マテリアルが新規に作成されるので、名称を適当に変更する
(例:New_Wall1)
2 ・DXFX2_Presetをダブルクリックし、DX9FXファイルに.fxファイルを指定する
(例:C:\Documents and Settings\username\My Documents\Visual Studio 2008\Projects\XNAViewerTest1\SOFTIMAGE_XNAViewer\Content\Effects\Lambert.fx)

・しばらくすると、カラーやテクスチャのプロパティが追加されるので、色を適当に調整する

・Material Managerにはノードが追加されている
(右下のツリー構造はCTRL+Rキーで整理できるので適宜活用すること)
(noIcon_picは放置しても問題無さそうだが、筆者は削除することが多い)

3 ・default_surface_map_pngをダブルクリックし、リファレンスソース設定を変更する
(既存のテクスチャが登録済なので、選択するだけで良い)

・クリップ名称を変更しても良い(任意)
(例:New_Wall1)

・この段階でテクスチャマテリアル新規作成が完了したが、りんごが表示されない原因は不明(何か不足してる?)

4 ・作成したマテリアルを、クラスタにドラッグ&ドロップして上書きする
(エクスプローラの場合、Polygon Mesh配下のClusters配下に個々のクラスタが存在する)
(個々のクラスタの配下に既存マテリアル設定があるので、事前に確認すると良い)
5 1〜4の手順を、全てのテクスチャマテリアルに対して実施する

以上でXNA向けマテリアル設定完了。

 

6.ファイルの出力

番号 画面イメージ Softimage Mod Tool操作 詳細
1 (Explorerで モデルを選択した状態で)XNA Game Studio>Publish Models ・ファイルの出力先パスとモデル名を指定する
(例:C:\Documents and Settings\username\My Documents\Visual Studio 2008\Projects\XNAViewerTest1\SOFTIMAGE_XNAViewer\Content\Models\SkinModel01.xsi)

以上でファイル出力完了。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はかなり明るい感じなので、カラー調整した方が良いかもしれない。

 

inserted by FC2 system