XNAにおける3Dゲーム描画設計 (キャラクタータスクに描画情報を持たせる)
このところはJavaの描画について設計をしていましたが、これからしばらくは XNA の描画設計について検討していこうと思います。
本日記は1/22に説明した「キャラクタータスクに描画属性を持たせた設計」の流れから継続している流れとなります。
そしてJavaの設計の時もそうなのですが、ゲームプログラミングには定石というのがあまり存在しないと思っているので、「とりあえずこんな感じで設計していってみよう」的な感じで進めて行こうと思います。
さて、XNAにおけるフレームワークですが、これは1/7にて説明したとおり、フレームワークのスケルトンだけで、ウィンドウ生成やメインループ、フレーム管理における更新イベント、描画イベントが盛りこまれます。
描画を行うイベントは、Microsoft.Xna.Framework.Game.Drawイベントにて行われます。このイベント内で描画情報を描画するのですが、ここからは自前で設計を行う必要が出てきます。
3D描画には一般的にポリゴン、またはモデルと呼ばれるデータを用いて3D描画を行います。
また、XNAにはこれ以外にも2Dの表現が行えるスプライト(テクスチャ)データを用いた2D描画も行え、これを用いて2DのゲームもXNAでは開発が行えるのですが、今回は3D表現をメインとした設計を検討して行こうと思うので、この2D機能は主にプレイヤーの情報を表示するための機能として設計していきます。
◇ ◇ ◇
さて、キャラクタータスクに描画属性を持たせた設計では、
【3Dゲームの開発の場合の情報】
・モデルデータ(これは単純な物の場合は1つ)
・アニメーション(モーション)情報
ということを説明しましたが、上述の説明のように2Dのテキスチャ情報も持つケースもあるので、以下のような派生を行った設計を行います。

この図では、「何かキャラクターを持つ」というCharacterTaskクラスと、それから派生を行う「モデル情報を持つ」ModelCharacterTask、「テスクチャ(スプライト)情報を持つ」SpriteCharacterTaskという設計をしています。
次回はモデルデータファイルをフレームワークに設定し、これをクラスに設定する説明をしたいと思います。
実際に画面に描画されるまで道のりはまだまだですが、一つずつ説明していきたいと思います。
本日記は1/22に説明した「キャラクタータスクに描画属性を持たせた設計」の流れから継続している流れとなります。
そしてJavaの設計の時もそうなのですが、ゲームプログラミングには定石というのがあまり存在しないと思っているので、「とりあえずこんな感じで設計していってみよう」的な感じで進めて行こうと思います。
さて、XNAにおけるフレームワークですが、これは1/7にて説明したとおり、フレームワークのスケルトンだけで、ウィンドウ生成やメインループ、フレーム管理における更新イベント、描画イベントが盛りこまれます。
描画を行うイベントは、Microsoft.Xna.Framework.Game.Drawイベントにて行われます。このイベント内で描画情報を描画するのですが、ここからは自前で設計を行う必要が出てきます。
3D描画には一般的にポリゴン、またはモデルと呼ばれるデータを用いて3D描画を行います。
また、XNAにはこれ以外にも2Dの表現が行えるスプライト(テクスチャ)データを用いた2D描画も行え、これを用いて2DのゲームもXNAでは開発が行えるのですが、今回は3D表現をメインとした設計を検討して行こうと思うので、この2D機能は主にプレイヤーの情報を表示するための機能として設計していきます。
◇ ◇ ◇
さて、キャラクタータスクに描画属性を持たせた設計では、
【3Dゲームの開発の場合の情報】
・モデルデータ(これは単純な物の場合は1つ)
・アニメーション(モーション)情報
ということを説明しましたが、上述の説明のように2Dのテキスチャ情報も持つケースもあるので、以下のような派生を行った設計を行います。

この図では、「何かキャラクターを持つ」というCharacterTaskクラスと、それから派生を行う「モデル情報を持つ」ModelCharacterTask、「テスクチャ(スプライト)情報を持つ」SpriteCharacterTaskという設計をしています。
次回はモデルデータファイルをフレームワークに設定し、これをクラスに設定する説明をしたいと思います。
実際に画面に描画されるまで道のりはまだまだですが、一つずつ説明していきたいと思います。
| HOME |