そろそろXNAで3Dグラフィックあたりを触ろうかな…と思ってサンプルモデルどーしよ?と思っていた矢先…XNA Creators Club Onlineのトップページにこんなニュースがありました。
SOFTIMAGE|XSI Mod Tool Now Plugs In To XNA Game Studio Express …お、XSI Mod Tool用のXNAプラグインでもできたかな…?そりゃーうれしい…と内容も読まずにそのプラグインとやらを探すこと数分間…。ない。そんなものない。
…しかし、XSI の(英語の方ね)XSI Mod Tool のページが以前より華やかになっている気がする…。
それとNoesis(メーカーか何かの名前なのかな?)のチュートリアルでXSI Mod Tool の使い方を覚えよう…といった内容がちらほら。
…うーん、XSI Mod Tool ごとまたダウンロードしなきゃいけないのかなぁ…以前すでにダウンロードしてインストールしてあったので気が重い。
まぁそれでもとダウンロードしようとダウンロードページまでたどり着いてアンケートみたいなのに答えていくと、その中に「ちみは どのゲーム環境で Mod Tool を使う予定だい?」という答えの選択肢の中に
XNA -> PC
XNA -> XBox
という欄が…。(以前からあったっけ?)
ちょっとだけ期待してダウンロード後、インストール。
ツールが立ち上がった後(しまった、内容覚えてないや)、ダイアログが出てくるので、OKを押す…。(多分これであってる。)
何かをダウンロードかインストールしている内容のプログレスバーが出たあと、無事終了っぽい。
ディスクトップに作られたショートカットアイコンを見てみると XSI 6 Mod Tool と…あ、バージョンアップ?UIフェースも昔のものと比べて全然違うし、メニューバーに XNA Game Studio の欄が。
後で調べてわかったことだけど、FBXとかシェーダーとかそういったものをサポートするようになったっぽい。
吐き出せるのは64000ポリゴン(三角形)までで、商用利用不可。
あとレンダリングについての制約がちょこっと。
法線マップとかの解像度が512x512まで(UVしっかり吐いてるんだろうから、XNAで使うときに高解像度のやつに差し替えればいいんじゃ…?)。
----------
8/18 12:19 追記 - 日本のXSIサイトできちんと英語だった XSI 6 Mod Tool の紹介ページが日本語訳されて掲載されてた。
そこにはこうある。
Ultimapper を使って作成するマップの最大解像度は512x512です。
ハードウェアレンダラを使った画像出力の最大解像度は512x512に制限されています。
----------
それとXSIファイル自体をXNAのコンポーネントとして登録して描画できるらしい。
…ちょっとすごくねーか?やるなーXSI。M○○aの使えん試用版とは大違いじゃ(勉強する分にはいいんですが)。
さて、いろいろ"XSI Mod Tool XNA"で検索して調べているとLAGさんのブログでSOFTIMAGE_XNAViewerというものについて知った。
これついて記載しておく。
これは私の感じたところXNAでXSIファイルのインポートと描画のサンプルプロジェクトっぽい。
試すにあたってちょこっと改変した。
まず、原本をいじるのはいやなので、フォルダごとコピーします。
フォルダは XSI 6 Mod Tool をインストールしたフォルダ以下のAddons\XNAGSE\Dataの中にあるXNA_SAMPLESってやつです。
どっか適当な場所にコピーしたら(私は念のため日本語を使わない場所にいつもしています)フォルダの中にあるソリューションファイル(SOFTIMAGE_XNAViewer.sln)をダブルクリックしてXNA環境を立ち上げましょう。
すでにコンテントの中にはサンプルのXSIモデルが入っているのですが、このままビルドすると参照しているシェーダーファイルが無いよんとコンテント・パイプラインのエラーで止まります。
どうもファイルの中の外部ファイルへの参照パスがT:\\Storm\\src\\XNA\\SOFTIMAGE_XNAViewer\\Content......とかになっているのが原因のようです。
なので xsi_logo.xsi ファイルを開いて"T:\\Storm\\src\\XNA\\SOFTIMAGE_XNAViewer\\Content"という文字列を".."で全置換してしまいましょう。
次にソリューションプラットフォームがMixed Platformsになっているので、お好きな環境にセットします。

そしたらいつもどおり、ビルドして実行しましょう。
XSIのロゴ(?)の丸い球体が出たら成功です。(たぶん)
ただ私の環境だとアスペクト比が変です。
なのでこの部分
// - Game1.cs 471行目あたり -
// float aspectRatio = 1.3333333f; // graphics.GraphicsDevice.Viewport.Width / graphics.GraphicsDevice.Viewport.Height;
float aspectRatio = (float)graphics.GraphicsDevice.Viewport.Width / graphics.GraphicsDevice.Viewport.Height;
と変更します。(コメントアウト部分をそのまま使うのではなく、floatでキャストするのをお忘れなく)
それともっと高解像度にしたければ
// - Game1.cs 44行目あたり -
// use this for 720P
graphics.PreferredBackBufferWidth = 1280;
graphics.PreferredBackBufferHeight = 720;
// for NTSC, use a 4:3 ratio
//graphics.PreferredBackBufferWidth = 720;
//graphics.PreferredBackBufferHeight = 480;
なんて変えればOKです。
※どっちもコメントアウトで用意されてた…
あと操作方法ですが、UpdateGamePad() メソッドを見ればわかると思いますが
START + BACK … 終了
START … アニメーション再生・停止
BACK … アニメーションのリセット
左スティック押し込み … カメラのリセット
十字キー右 … アニメーションの切り替え
Lトリガー … ズームアップ
Rトリガー … ズームダウン
Lボタン … カメラの移動(前)
Rボタン … カメラの移動(後)
左スティック … 視点を中心に回転移動(始点を向いたまま)
【↑これちょっと自信ない】
右スティック … カメラの移動(上下左右)
です。
ぱっと見、フォンシェーディングと法線マップによるバンプマップが確認できます。
それとソースコード見てみると…アニメーションのブレンドしてるかも。
自分のモデルとか表示できるように、XSI 6 Mod Tool 勉強しますかね。
今のところ、XNAのプラグインで発見した内容に、モデルの診断機能があるらしく
1つのモデルの最大ボーン数 … 58
1つの頂点に対して影響するボーンの最大数 … 4
と設定されていました。
1つのモデルの最大ボーン数の58っていうのは、なんとなく見に覚えがあって、たしかシェーダーのレジストリにのっけられる変換マトリクスの配列数の最大がそれくらいだった気がする。
以前大蛇のような蛇のモデルとかスカートふりふりの女の子のモデルを(両方ともアニメーション付き)XNAで表示しようとしたら、その制約にひっかかって表示できなかったんだよね…。
その制約はずすためには、どうしたらいいんだろう?
CPU側でマトリクスの変換してからシェーダーにデータ渡せばいいのかな?
…あぁ、頭がまわらん…歳のせいかしら???
最近のコメント