XNAにおける3Dゲーム描画設計 (モデルファイルを読み込む)
3/4に引き続き、Modelクラスにモデル情報を読み込む処理を説明します。
前回はモデルファイルをVisual C#のソリューションエクスプローラに登録して、これにアセット名をつけるところまでを説明しました。
XNAではこの登録したモデルファイルをXNAのクラス、ContentManagerクラスを用いて読み込むことができます。
ContentManagerクラスはXNAのウィザードにてゲームのインスタンスクラス(Microsoft.Xna.Framework.Game)から派生したクラスのコンストラクト時に生成されます。
そして、このクラスのLoad関数を用いるとモデル情報が取得できるようになります。
Load関数の引数には登録したアセット名を指定し、戻り値としてモデル情報であるModelクラスを返します。
サンプルソース (2008.02.29.zip)では、ゲームのインスタンスクラスにあるContentManagerクラスに毎回アクセスするのではなく、このContentManagerクラスを内包したstaticクラス、ModelToolを用意して、これにLoadModel関数というのを実装しています。ModelToolクラスはプログラム開始時に初期化として、ContentManagerクラスを設定して、その後からプログラム内のツールとしてモデルの操作を提供するポリシーを持ちます。
(GlobalクラスのInitialize関数内で初期化を行っています)
そして、このツールクラスを用いた実現は、ModelCharacterTaskクラスから派生したPlayerTaskクラスがModelTool.Load関数を呼び出して、モデル情報の読み込みを行っています。

前回と今回の説明により、モデルの情報をプログラム上に読み込むことが出来ました。次回はモデルの描画について説明をしたいと思います。
前回はモデルファイルをVisual C#のソリューションエクスプローラに登録して、これにアセット名をつけるところまでを説明しました。
XNAではこの登録したモデルファイルをXNAのクラス、ContentManagerクラスを用いて読み込むことができます。
ContentManagerクラスはXNAのウィザードにてゲームのインスタンスクラス(Microsoft.Xna.Framework.Game)から派生したクラスのコンストラクト時に生成されます。
そして、このクラスのLoad関数を用いるとモデル情報が取得できるようになります。
Load関数の引数には登録したアセット名を指定し、戻り値としてモデル情報であるModelクラスを返します。
サンプルソース (2008.02.29.zip)では、ゲームのインスタンスクラスにあるContentManagerクラスに毎回アクセスするのではなく、このContentManagerクラスを内包したstaticクラス、ModelToolを用意して、これにLoadModel関数というのを実装しています。ModelToolクラスはプログラム開始時に初期化として、ContentManagerクラスを設定して、その後からプログラム内のツールとしてモデルの操作を提供するポリシーを持ちます。
(GlobalクラスのInitialize関数内で初期化を行っています)
そして、このツールクラスを用いた実現は、ModelCharacterTaskクラスから派生したPlayerTaskクラスがModelTool.Load関数を呼び出して、モデル情報の読み込みを行っています。

前回と今回の説明により、モデルの情報をプログラム上に読み込むことが出来ました。次回はモデルの描画について説明をしたいと思います。
コメント
コメントの投稿
« 昔のゲームの想い出 [0026] 「クレイジーバルーン」 [タイトー] [1980] [アーケード] l Home l 昔のゲームの想い出 [0025] 「メトロイド」 [任天堂] [1986] [ファミリーコンピュータ] »