DirectX Graphicsでの2D表示

3Dゲームしか作れない?

DirectX7では、2Dの画像データを扱うためのDirectDraw、3Dの画像データを扱うためのDirect3Dがそれぞれ用意されていた。しかし、DirectX8からはDirectDrawが廃止され、Direct3DがDirectX Graphicsという名前に変更になり、描画はすべてDirectX Graphicsで行われるようになった。つまり、DirectX8は3Dゲームを作るためのコンポーネントであり、2Dゲームを作るためのものではない。
しかし、3Dゲームを作るには3次元の世界を表現するためのさまざまな数学的な知識が必要であり、初心者がいきなり3Dのゲームを作るには相当の努力が必要である。では、2Dのゲームは作れないのだろうか?

3Dとは、縦と横で構成される2Dの世界に「奥行き」という概念を取り入れたものである。つまり、奥行きのない3Dの世界が2Dであると考えられる。

この授業では、DirectX8を使って奥行きのない3D空間を作成し、その上で2Dゲームを作成する方法を学ぶことにする。この方法を用いて2Dのゲームがスムーズに作れるようになれば、3Dゲームも作れるようになるだろう。

ポリゴンについて

DirectX Graphicsでの描画は、ポリゴンとよばれる平面を3D空間に配置することにより行われる。ポリゴンは頂点情報により管理され、X、Y、Z座標のほか、色、透明度などさまざまな情報を持つことが可能である。頂点情報は「柔軟な頂点構造を持つ構造体」になっており、プログラマが必要とする項目(メンバ)を選択しなければならない。

DirectX Graphicsでは表示される画像がポリゴンのみとなり、DirectDrawのような画像単位の描画はできない。が、ポリゴンを用いて平面を表現することは可能である。つまり、2Dゲームは平面を表現するポリゴンに2D画像を貼り付け、そのポリゴンを動かすことによって画像が動くように見せかけるのである。

ポリゴンは本来3D画像を扱うためのものであり、扱うためにはさまざまな技術を学ばなければならない。しかし、2Dの世界を表現することだけを考えるのであれば、わずかな知識だけでポリゴンを利用することができる。ここでは2Dを表現するためのポリゴンの使い方(作り方)だけを紹介する(3Dに必要な知識は、3Dゲームを作る授業で改めて解説する)。

《備考》

ゲームマシンやビデオカードの性能を表す基準のひとつとして、1秒間に表示できるポリゴン数がある。PS2では毎秒6600万ポリゴン、Xboxでは1億2000万ポリゴンを表示する能力がある。
ただし、1秒間に60フレーム表示するなら、1フレーム当たりPS2では110万ポリゴン、Xboxでは200万ポリゴンである。


BACK(描画処理の基礎) NEXT(ポリゴンの描画(三角形))