プロフィール

Na-7

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


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:Softimage Mod Tool
于禁
于禁
数々の軍功を挙げた歴戦の勇者。魏の五大将。
軍規を守ること甚だ厳しく、曹操から「古の名将を凌ぐ」と称賛されたが、荊州戦で関羽に降伏し、後世に汚名を残した。



◎高速再生解消しました

前回は、DirectX書き出し機能で出力したxファイルをDirectX Viewerで読み込むと高速再生されると書きましたが、その後LAGさんからコメントを頂いて、Xファイルの中程にAnimTicksPerSecondを追加したら綺麗に再生されました。

LAGさん、どうもありがとうございました!



◎調査開始

Softimage(旧XSI)で作成したアニメをXNAで表示する方法をいろいろ調べたのですが、LAGさんをはじめ、先駆者の方々は皆さん苦労されている御様子です。

参考記事

・MODTOOLとXNAの連携 その1
・MODTOOLとXNAの連携 その2
・XSIのモデルでSkinning Sampleを使う場合の注意点
・公式パイプラインを使ったdotXSIスキンメッシュの表示
・XSIでXNAのまとめ

・[XNA]:XSI 6 Mod Tool
・SOFTIMAGE_XNAViewer

・DirectX Exporter for XSI
・DirectX exporterの罠

・XNAのACLで正常にアニメーションするFBXを出力する

・とりあえず dotXSIで
・Biped改修中


Softimage/XSIはXNAと親和性が強そうなイメージがあったのに、こんなに厄介とは思いませんでした。DirectX Viewerで動くxファイルを出力するRokDeBone2って、実はそれだけで偉大なのかも。



◎XNAViewer

LAGさんによると、公式のdotXSIコンテントパイプラインかFBXを使ったほうが良さそうとのことでしたので、まずdotXSIからやってみましょう。

まず、前回のシンプルなアニメをファイル>書き出し>dotXSIで出力すると、拡張子.xsiという独自形式ファイルが出力されます。

問題は、これをXNAで表示する方法です。前述のこちらの記事を参照しながら、SOFTIMAGE_XNAViewerというサンプルプロジェクトを動かしてみました。


・デフォルト時の格納場所
C:\Softimage\Softimage_Mod_Tool_7.5\Addons\XNAGSE\Data\XNA_SAMPLES\SOFTIMAGE_XNAViewer.sln


・実行時のエラー
2のn乗をサポートしてませんエラー
このエラーは、テクスチャの幅と高さが2のn乗でないとグラボが表示できないと言ってます。私のPC環境はマザーボード内臓グラボで貧弱なため、このエラーが発生しました。まともなグラボなら、このエラーは発生しないでしょう(^^;

どうやらModTool_Logo.xsiが該当するらしく、Game1.csのLoadContent()の中の

Models.Add(new ModelAsset("Content/Models/ModTool_Logo", content));

この行をコメントアウトするとエラーを回避できました。


・改修点
細かい説明は省きますが、画面アスペクト比やView座標、(パッドを持っていないので)パッド操作からキーボード操作への変更を行いました。


XNAViewer

おお、動きました!
今更ですが、動くとちょっと感動しますね~



◎アニメーションライブラリ?

XNA上でアニメーションするってことは、これも立派なアニメーションライブラリってことですよね?
中身はまだよく見ていませんが、ランタイムのプロジェクトが付属してるということは、独自カスタマイズ可能ってことじゃないですか?

ACLはエフェクト関連に不安があるので、他の手法(Skinning SampleやXNAnimationなど)も視野に入れています。いずれ機能/性能/汎用性/稼働率などを比較検証するつもりですが、これも候補の1つとして心に留めておきましょう。



◎自作ファイルへの差し替え検証

では、先程出力した.xsiファイルに差し替えて、動くかどうか試してみましょう。.xsiファイルをContentに追加すると…おや?Content Processorの値が自動的に「Crosswalk Model Processor」になりました。ちょっとだけ感心。

で、とりあえずそのままビルドを実行すると、ビルドエラーになりました。

Building content threw NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。

げっ!!この超シンプルアニメさえもビルド出来ないとは…もしかして空ノードがいるとかいらないとかの話?
でもあれは複数の親から骨が始まる場合の話じゃなかったかなぁ??

ひょっとして、ボーンが無いからエラーになるのかも?
というわけで、ボーンを入れたFKアニメを作成し入れ替えてみました。

…ダメです。dotXSI Export Optionsを何度か変えて試してみましたが、現象変わらず。そんな単純な話じゃないのかな?



◎はっきり言って大変です

結局前述の記事を参考に、必要な手順を踏みました。

この手順、はっきり言って複雑で面倒です。私は資料を見ながら手順を追いかけただけなのに、モデルやバージョンのちょっとした違いだけで苦戦しました。ModToolが5回も落ちましたよ(笑)

ろくな資料も無しに手探りでやってきた先駆者の方々には脱帽モノです。本当にお疲れさまでした。


ちなみに、手順の後半で「データ診断機能」を実行したら、私の場合「テクスチャがXNA projectの中に無いよ」とエラーが出ました。

これは「Connect to XNA Project」をしてこなかったため?
でもこの機能は「XNAプロジェクトへの接続」じゃなくて「XNA向けのSoftimageプロジェクトへの接続」みたいだから、関係無さそうな気がします。他に警告も1件出てますが、とりあえず無視してdotXSIファイルを出力。

XNAViewerで表示すると…やった!エラーなしで画面に表示されましたよ!

表示はされたが動かず

が、モデルが表示されただけで動きません。
何故かって?心当たりありすぎてわかりません(爆)



◎次回予告

アクセス数が9,000件を超えたので、アクセスカウンターを5桁に増やしました。開設当初は1日数件程度で「アクセス数伸びないな~」と悩んだものですが、いつのまに増えたんでしょうか?(笑)

次回は、FBX出力&ACL表示を試すつもりです。もうちょっと手軽にXNA連携できないもんですかね~?

スポンサーサイト

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

コメント

自己レスです

すみません、記事をアップしてから気付いたので自己レスです。

LAGさんの記事
http://lurgee.xii.jp/feel/2009/04/dotxsi.html
を見直すと、アニメーション情報の登録手順が抜けている気がするので、次回やります。

コメントの投稿


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

トラックバック


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



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