最近朝起きてから日記を更新する習慣になったので、油断すると日付が一日ずれてしまっていることが多い。今回もやってしまった。どこかで辻褄を合わせないと・・・。
今日は地球防衛軍を買いに行く予定だったのに、結局一日中引きこもってシレン->昼寝->シレン->昼寝->シレン・・・のループを繰り返してた。とりあえずテーブルマウンテンの26Fまで到達。どこまで続くのかはわからないけど、先は長そう。
DSの蓋を開けるとその場でゲームが始まり、閉じればすぐやめられる気軽さが逆に怖い。気が向いたときにいつでもはじめられ、いつでも止められるはずなのに時間を無尽蔵に持っていかれる。これは危険。
あと、Wi-Fiの救助が楽しい。ネットごしの非アクションゲームでは、プレイ時間を共有しなければならない重たい協力よりも、こういった緩やかなつながりの方が好き。
丸一日シレンだけで終わるのはさすがにもったいないので、救助待ちの合間にXNAを触ってみる。とりあえず自前でコンパイルしたプログラムをXbox360の実機で起動するところまで。
手続きさえ覚えてしまえば結構簡単。とりあえずXSIで作ったモデルが出せるかどうか試してみよう。
■ [XNA]とりあえずモデル表示を試してみた
モデルをXファイルで書き出し、プロジェクトに追加してからプログラムをちょっと書き足すと、テクスチャなしのマテリアルカラー付きのモデルは簡単に出た。
三角形換算で約15000ポリゴン弱くらいの人間モデルが80体、60fpsで動いている。テクスチャなしのモデルとはいえ、おそらく大雑把に見て1フレームあたり100万ポリゴンくらいは出ている計算になる*1。このくらいならたぶんXbox360のGPUだとそれほど非現実的な値ではなさそうだから、少なくともGPUはかなりいい感じに回っている気配がする。
サンプルソースに何も考えずに適当にデータを追加しながら作ったので「漆黒の宇宙空間で太陽をバックに80体の全裸の男性像が揺れながら回転している」という異様な光景になってしまったけれど、比較的簡単な手順で高性能なハードウェアが利用できるのはとても楽しい。これはいい環境かも。
■ [XNA]テクスチャ付きモデルがうまく出力できない・・・。
自前でテクスチャを張ったモデルの出力がうまくいかない。
サンプルのSpacewarから持ってきた「p1_wedge.fbx」はちゃんとテクスチャつきで表示されるのだけど、XSIで作ったXファイルやfbxファイルにテクスチャを張ったものだと、何も表示されない。
最初はテクスチャにα値が入っていないのが原因だろうと思ってαつきテクスチャに変えてみたのだけど改善されず。
Xファイルのテキストを見てもちゃんとテクスチャのファイル名は指定されていて、p1_wedge.fbxで指定されているテクスチャをこちらで作ったものに差し替えるとちゃんとそのテクスチャが表示されるので、テクスチャファイル側の問題ではなさそう。また、ちゃんとパスの通ったところにテクスチャファイルを置かないと変換時にエラーが出ているので、テクスチャが読めてないわけでもない気配。
原因不明・・・。たぶんXファイル側の問題だと思うんだけど、何をミスっているのか?ヘルプとかをちゃんと読まなくてはダメかも。
追記:
fbxをバイナリ出力でなくテキスト形式で出力するとテクスチャが表示された。xファイルだとなにか設定しないといけないのかな?
*1:概算/目算なので数値の正確さは当てにしないでください