廖化蜀将。演義では元黄巾賊として描かれ、蜀滅亡に至るまで現役で戦い続けた。荊州の戦いでは関羽の主簿(幕僚長)を勤め、上庸の劉封、孟達へ援軍を求めに走った。
◎落ちまくりな日々城モデルのテクスチャをDirectXシェーダーに置き換えたくて、いろいろ試してみましたが、どうしてもうまくいきません。
ロボットのサンプルと見比べても、違いはなさそうに見えるのですが…そうだ!ロボットのサンプルで同様に試してみましょう。既存のDXFX2を削除、作成、接続すると…あれ?Mod Toolが落ちましたよ?
サンプルが落ちるということは、データではなく環境か手順に問題がある、ということでしょうか?
でも元のデータのままPublishすると問題無く動くので、環境は悪く無さそうです。また、手順は円柱モデルや人体モデルと同様なので、これも悪く無さそうな気がしますが…でも、以前から頻繁に落ちていたので、やはり手順が怪しいと見るべきかもしれません。
もしかしたら、RealTime接続前に、予めパラメータ設定を済ませておく必要があるのかも?サンプルのDXFX2の接続を全て解除し、パラメータを削れるだけ削って再度接続すると…落ちませんね。パラメータは関係無いかもしれないなぁ。でもこの状態からDXFX2を再作成して接続するとやっぱり落ちます。う〜む…。
念のためパラメータをチェックすると、
サンプルのDXFX2は「相対パス指定、コード編集ボタンを押すとFXのコードが表示されない、XNAできちんと表示される」
追加したDXFX2は「絶対パス指定、コード編集ボタンを押すとFXのコードが表示される、RealTime接続時に落ちる」
パス指定やファイルの配置場所、或いはフォルダ階層構造が悪いのかと思い、いろいろ変えて試したものの成果なし。
その後、円柱モデルのマテリアルを見直していたら、シーンマテリアルであることに気付きました。そういえば、城モデルのシーンマテリアルは従来の手順で設定できたので、もしかしたら、従来の手順はシーンマテリアルにしか通用しないのかもしれない…とこの時は思いました。◎救世主現る?!その後、紆余曲折を経て、ようやく辿り着いたのが「マテリアルマネージャ」です。RenderTreeと似てるので今まで軽視してましたが、マテリアルを新規作成するならこちらを活用した方が良さそうです。

右下段はRenderTreeと同様らしく、既存のマテリアルにDXFX2を追加してRealTime接続すると、やっぱり落ちます。しかし右上段で作成>リアルタイム OGL/DirectX>DirectX FXとすると、DXFX2 Presetが作成できます。

このDXFX2は最初からRealTime接続されてますし、.fxファイルを指定するとプロパティやデフォルトマップが再構築されます。これならいけそうですね!
◎日本語パスの問題しかし意気込んで城モデルでマテリアルマネージャを起動すると、ModToolが落ちました。ガーン!
ようやく何とかなりそうだったのに〜!!
…おや?今回はエラーメッセージらしきものを画面下方に残してから落ちましたよ。
while defining texture "tex_wall_jpg":failed to open texture file c:\[省略]\tex_wall.jpgテクスチャファイルが見付からなかったようですね。
tex_wall_jpgのパスを確認すると…あっ、日本語パスが含まれてました!そうか〜メタセコイアのパスは日本語を含んでいたのに、そのまま変換したのが悪かったんですね!Softimageではテクスチャも綺麗に再現されていたので気付きませんでした!
…というわけで、日本語を含まないフォルダにメタセコデータを移してから読み込むと、日本語パスの問題が解消され、マテリアルマネージャが正常に起動しました。

ちなみに、「RealTime接続時に落ちる」という最初の問題は変わってません。ロボットサンプルは日本語パスを含まないのに落ちたので、これは別の問題ですね。
◎テクスチャのDirectXシェーダ設定というわけで、改めてマテリアルマネージャでテクスチャを貼り直しましょう。新たにテクスチャマテリアルを作成して、差し替えます。
1.マテリアルを新規作成
(作成>リアルタイム OGL/DirectX>DirectX FX)
2.新規マテリアルの名称を変更する
3.DXFX2_Presetをダブルクリックし、.fxファイルを指定する
4.AmbientColorとDiffuseColorを調整する
5.default_surface_map_png1等をダブルクリックし、
リファレンスソースを変更する
(コンバート時に設定されたものを選択する)
6.設定が終わったマテリアルを、エクスプローラ上の
クラスタにドラッグ&ドロップで上書きする
7.全テクスチャマテリアルに対して、1〜6を実施する
尚、テクスチャを使用しないカラーマテリアルの場合、前回記述したとおり「DXカラー(HLSL)」を使用した方が楽です。既存設定にDXFX2を追加するだけで、1〜6の手順を全て省略できます。但し、(ポリゴンメッシュに対して)タンジェントの取得が必要かもしれないので注意してください。
◎次回予告ようやくテクスチャが貼れましたが、RealTime接続時に落ちる原因は謎のままです。このような問題が生じるのは私だけなんでしょうか?いい加減PC買い替えるべきかなぁ…。
次回はようやくアニメーションです。
それと、メタセコイア>Softimage>XNAのデータ変換手順もHPにまとめる予定です。
テーマ : ゲーム製作 関連 - ジャンル : ゲーム
コメントの投稿