プロフィール

Na-7

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


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:Softimage Mod Tool
満寵
満寵
魏の武将。荊州の戦いでは、曹仁の参謀として曹仁を叱咤激励し関羽の猛攻を耐え抜いた。その後も合肥新城を築いたり自ら迎撃するなど対呉戦で大いに活躍し、太尉(軍事大臣)にまで昇進した。



◎メタセコイアのエクスポーター

以前メタセコイアで作成したモデルをSoftimageで読み込んで修正し、XNAで動かすことを目指します。


まずメタセコイアのエクスポーター(データ出力機能)を探すと、こちらにフリーのものが公開されていました。城モデルをこれで出力し、Softimage Mod ToolのdotXSI読み込み機能で読み込むと…

「ファイルは存在しないか、アクセスできません。何も読み込まれません。」

むむ、ダメでしたね。ファイルの中を覗くと、フォーマットが全然違うようです。4年前のエクスポーターなので、ソフトのバージョンアップ仕様変更により使えなくなってしまったのでしょう。


メタセコイアの公式HPを見ると、(株)ボーンデジタルからdotXSI Exporter for Metasequoiaが提供されているとのことで、軽く探しましたが見当たりませんでした。

でもまぁ多分有料でしょうから今回は見送りですね。モデルは2つだけだし、アニメやボーンは渡せないでしょうから、金かけて変換するぐらいなら1から作り直します。



◎ModToolの読み込みスクリプト

他に無いかと探したら、こちらにメタセコイアのオブジェクトを読み込むスクリプトがありました。

なるほど、メタセコファイルを読みに行く方が、バージョンアップの影響を受ける割合が少ない気がします。でもスクリプトの利用方法を調べないといけませんね。…と思ったら、トラックバック記事に奮闘記がありました(笑)

その奮闘記に記載されていたこちらの記事を頼りに、スクリプトを組み込んで実行すると…

城モデル   槍兵モデル

おお!テクスチャまでちゃんと再現されてるようですね!
素晴らしい!



◎XNAで表示

まだアニメーションがありませんが、とりあえずXNAで表示できるか確認しましょう。Convert to XNA ModelでコンバートしてPublish Modelsで出力し、XNAで読み込んでみました。

マテリアル未設定の城

マテリアル未設定なので色無しですが、モデルはちゃんと表示されましたね。しかしテクスチャのマテリアルはともかく、色のマテリアルぐらい自動的に変換してくれないかなぁ。



◎マテリアル設定について

マテリアル毎にいちいちシェーダーを置き換えるのは少々手間なんですが、XNA&Softimageユーザは、毎回手動設定してるんでしょうか?

チュートリアルでマテリアル設定が一切触れられていないってことは、モデリングを綺麗に済ませておくと、自動的にDirectXシェーダーに変換してくれるとか??
…期待を込めた妄想です(笑)


マテリアルに関しては、まだ何か見落としているような気がするので、XNAViewer付属ロボットのマテリアル設定をもう一度確認しました。

ロボットのRenderTree   ロボットのExplorer
ロボットのRender Tree(左図)とExplorer(右図)


・DXFX2でphong.fxを指定している(Render Tree)

・マテリアルオブジェクトにPhongオブジェクトが
 接続されている(Render Tree)

・マテリアル設定はPolygon MeshのClusters階層下に
 存在する(Explorer)


まず気になるのは、最初から(ロボットのモデリング段階から)DXFX2マテリアルだったのか、それともXNA向けにコンバートする段階でDXFX2マテリアルになったのか、という疑問。

次に気になったのは、phong.fxを指定している点です。もしかしたら、こっちの方が安定するかも…って、表示モードをDirectXに切り替えてモデルをクリックしたら落ちました。安定度は変わらないのかw

マテリアルがクラスタ単位でまとめられているのも気になりますね。これが本来の姿かもしれません。



◎クラスタとマテリアル設定

クラスタが気になって城モデルを確認すると、クラスタが既に存在してました。

城モデルのクラスタとマテリアル
城モデルのクラスタとマテリアル

どうやらこのスクリプトは、以下のように動くようですね。

①メタセコイアのオブジェクト毎にSoftimageのメッシュを生成
②メタセコイアの材質毎にSoftimageのクラスタを生成
③クラスタ毎にマテリアル設定を割り当て

この構造はロボットと同様なので、XNAと親和性が高そうです。しかしこの構造でも自動変換してくれないってことは、シェーダーは全て手動設定するしかなさそうですね。



◎DirectXシェーダー設定

というわけで、シェーダーを手動設定しようとしたのですが、上手くいきません。DirectXシェーダーをRealTime接続する際にModToolが落ちてしまいます。

元のオブジェクトを残してもダメ、削除してもダメ、元の接続を解除してもダメ。シーンマテリアルをDirectXシェーダーに変更してもダメ、ビューをDirectXに切り替えてもダメ。テクスチャ付きのマテリアルはダメ、テクスチャ無しのマテリアルもダメ。
う~ん何が悪いんでしょうか?

英語ヘルプを再読すると「タンジェントと従法線を取得しろ」という記述が気になりました。もしやコレでは?実際に試すと…おお、ようやく落ちずに切り替えできました!


さらに試すと、テクスチャ無しで色設定のみの場合、シェーダーは「DXカラー(HLSL)」でもOKだということがわかりました。いちいちfxファイルを指定せずに済むので、この方が手間が減ります。元のオブジェクトは消さずに残しておくと、色指定せずにすむのでさらに楽です。

柱だけ色設定した


ただし、テクスチャ有りの場合は、イメージファイルが何故か接続できません。FXファイルを指定してもプロパティが追加されないし、ドラッグ&ドロップでイメージファイルを接続してもRenderTreeを再度表示すると接続が切れてます。これはどういうことでしょうか?


行き詰ってきたので、もう一度最初からやり直したら、今度はタンジェントと従法線を取得してもModToolが落ちました。何でそうなるかなぁ…。

Softimageは「もう一度試すと違う結果になる」というのが非常に多い気がします。原因は多分私の勘違いだと思いますが、勘違いを防ぐために同じ試行を繰り返してるので、普段の倍疲れます(--;



◎次回予告

メタセコイアからSoftimageへの変換は上手くいきましたが、XNA向けシェーダー設定でつまづいてしまいました。XNAでの表示まで一気に行きたかったんですけどね。

次回は引き続きテクスチャのDirectXシェーダー設定です。早いとこ終わらせてアニメしたいなぁ。

スポンサーサイト

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

コメント

コメントの投稿


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

トラックバック


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



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