プロフィール

Na-7

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


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:Softimage Mod Tool
劉封
劉封
劉備の養子。孟達と共に上庸を攻略し守備するが、関羽の援軍要請は断った。孟達が魏に寝返った際、誘いに乗らず抵抗したが敗北、関羽見殺しと上庸失陥の罪を問われて死罪となった。



◎何かおかしい

前回記事で「ライトをモデルの階層下に移動したら色が鮮明になった」と書きましたが、その後いろいろ試してみると、何かおかしな感じです。

・AmbientColorのみ反映される
・DiffuseColorが反映されない
・モデルに陰影が付かない
・ライトを削除しても色が変わらない

AmbientColorのみが有効で、ライトが無視されているようです。ライトの作り方が悪いのかなぁ?



◎ライトあれこれ

ライトに関する英語ヘルプを読むと、モデルの中にライトを置くのは正解のようですし、それ以前に、XNAViewerはデフォルトでscene_data.xsiが読み込まれているので、ライトを別途用意する必要は無さそうな気もします。

Point1~3に関しては、ライトタイプがポイントなので、ポイントライトであることは間違いなさそうですが、自分で選択して移動する方法がわかりません。新たにポイントライトを作成して移動すると、Point1~3も同位置に移動します。いまいち正体が掴めないなぁ。

ロボットのサンプルシーンを見ると、ロボットモデル内にライトは存在せず、scene_dataの中にPoint1~3が存在するだけです。これが基本構成と思いますが、Lambert.fxを使用する場合はどうすべきなんでしょうね?



◎ポリゴン数と頂点数

最近蒸し暑くなってきた上に、PC3台の熱気の中で試行錯誤してると、やる気も集中力もどんどん落ちてきます。せめてもう少し効率的にできないものかなぁ?

一番ウザイのは、毎回サブPCにデータを持って行く所です。もう百回ぐらいやってます。いい加減USBメモリ壊れそう…。
メインPCで発生するインデックス要素サイズエラーを回避できれば、この手間は省けます。


モデルメッシュを選択して 編集>選択の情報 とすると、こんな情報が表示されました

編集>選択の情報

ポリゴン:844 triangles, 6786 quads, 0 polys with 5+ pts
三角形:59352 triangles

ポリゴンには、三角形、四辺形、nポリゴンの個数が計上されているようですが、三角形の数と計算が合わないなぁ…まぁいいや無視しましょう。

三角形の方がXNA的ポリゴン数に該当すると考えて良さそうです。尚、シーン全体の三角形は62392だそうです。

三角形が約6万ということは、頂点数は約18万。インデックス要素数は不明ですが、この様子だと16ビット超えてもおかしくありませんね。多分これがエラーの原因でしょう。

それにしても、デフォルト取得モデルの頂点数が約18万とは驚きですね。ゲーム用のモデラーとは思えないんですけど…最近のゲームってこれが普通なんでしょうか?



◎頂点数を減らす

私が知っている頂点数を減らす方法は、マイナスキーを押すだけなんですが、これはModTool表示上だけ有効かもしれません。とりあえずやってみましょう。

おや?三角形が14416に減りましたね?ひょっとすると…



おお!エラーを回避してメインPCで動きましたよ!しかもDiffuseColorの赤とAmbientColorの緑が両方反映されていて、ちゃんと陰影も付いてます。サブPCのアレはいったい何だったんだ~!



◎結論

同じプログラムをサブPCで動かしたら、やっぱり以前の通りでした。

サブPC

色がおかしかったり陰影が無かったりするのは、どうやらグラボの違いによるもののようです。サブPCはインデックスエラーが出ないので、グラボはサブPCの方が上と思っていましたが、一概には言えないようですね。尚、ドライバの設定はデフォルトのままなので、設定をいじれば見た目が変わるかもしれません。

また、メインPCで試してみましたが、結局「ライトをわざわざ作る必要は無い」という結論に至りました。Scene_Data.xsiにポイントライトが組み込まれているためか、Lambert.fxもそのまま使えるようです。



◎サブディビジョンについて

テンキーの「-」を押すと、頂点数やインデックスサイズが減ることは間違いありません。私はこれを「サブディビジョンレベルを下げる操作」と認識しているのですが、ヘルプを読んでもいまいち確証が得られませんでした。

また、人体モデルのPolygon Meshプロパティには、「サブディビジョンルール」と「三角形にループを使用」は表示されているのに、「サブディビジョンレベル」が表示されていません。

「メッシュ全体ではなくポリゴン単位で指定すべきなのか?」
「テンキーが無い人はどうするのか?」
「三角形がXNA上のポリゴンに該当するという認識で間違いないか?」
などの疑問もありますが、当面の不都合は無いので、今はこれ以上追及しません。



◎DirectXとFBX

dotXSIでスキンアニメするモデルが作成できたわけですが、これを.Xや.FBXでXNAに持って行ってACLで表示することはできないでしょうか?

ではまずDirectX書き出し機能による出力を…って、ModToolが落ちました!オプション指定が悪かったかなぁ?…いや、デフォルトでも落ちますね。どうやら、このモデルの構成はDirectX書き出し機能の想定外らしいです。


次にFBXの書き出し機能による出力を試みると、警告が2種類出ました。1つはテクスチャ関連ですが、もう1つは…よくわかりません。ボーンかな?

「このジオメトリはサポート外です。exportする前に、コンバートしてください」と言われました。ちなみに、エラーログのパスも表示されていますが、そこにログファイルが存在しません。何故?

ファイルは出力されたので、とりあえずXNA&ACLに組み込むと、ビルドエラーになりました。

Vertex is bound to bone "Biped_Shadow:LFootBone1", but this bone is not present in the skeleton.

スケルトンに存在しないボーンがあるってことでしょうか?
何やら根が深そうです。


これは憶測ですが「モデルは各フォーマット向けに調整してから出力しないと、XNAで読み込めない」ってことじゃないでしょうか?.Xや.FBXで渡すスキルを身に付けるには、また試行錯誤しないといけないのかもしれません。

もう勘弁してください!(笑)



◎次回予告

Softimage Mod Tool修得シリーズは今回で終わりです。XNA連携でこんなに苦戦するとは思いもしませんでしたが、でも半分はグラボのせいかもしれません。素直に買い替えた方が早かったなぁ。

次回は自作モデルを修正します。

スポンサーサイト

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

コメント

コメントの投稿


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

トラックバック


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



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