XNAにおける3Dゲーム描画設計 (Visual C#+XNAプロジェクトにスプライト用ビットマップファイルを登録する)
3/23に引き続き、Texture2Dクラスにスプライト情報となるビットマップファイルを登録する手順を説明します。
XNAにおいて、スプライトとなるビットマップファイルはWindowsでは一般的な「.BMP/.JPG/.PNG」等が読み込むことができ、これらを登録することになります。
(他にも、Direct Drawなどでお馴染の.DDSや昔から存在する.TGAなどもあります)
このビットマップファイルの登録はモデルファイル同様、ソリューションエクスプローラーにアセットとして登録することができます。
サンプルソースでは"Sprite"というフォルダを作成し、この下にエネルギーメーターのビットマップ"EnergyGage.png"をアセット"EnergyGage"として登録しています。
[エネルギーメータのビットマップ]

[ソリューションエクスプローラーに登録]

スプライトのビットマップにおける留意点としては「マゼンダ色(R:255,G:0,B:255)が透過属性」として認識されます。これにより、スプライトの抜きの部分を実現することが可能となります(逆に言えば、マゼンダ色は使用できないということになります)。
これはXNAのデフォルトコンテンツライブラリの仕様のようです。(Windows上はWindows 3.1のVideo for Windows時代からクロマキー=マゼンダみたいな文化がありますね)
このため、JPEGのようなカラー情報が曖昧になるファイルフォーマットは抜きの処理を行うのは向いていないことになるので注意が必要となります。
このようにアセット名を登録することにより、Texture2Dクラスがこの名前でアクセスできるようになります。
アセット名を用いてのビットマップの読み込みはモデル同様、至極簡単で、
Texture2D = ContentManager.Load("アセット名");
というだけでTexture2Dにビットマップ情報が設定できます。
サンプルソースでは上述のコードをモデル情報の読み込みの時同様に、SpriteToolというクラスを作成しています。
XNAにおいて、スプライトとなるビットマップファイルはWindowsでは一般的な「.BMP/.JPG/.PNG」等が読み込むことができ、これらを登録することになります。
(他にも、Direct Drawなどでお馴染の.DDSや昔から存在する.TGAなどもあります)
このビットマップファイルの登録はモデルファイル同様、ソリューションエクスプローラーにアセットとして登録することができます。
サンプルソースでは"Sprite"というフォルダを作成し、この下にエネルギーメーターのビットマップ"EnergyGage.png"をアセット"EnergyGage"として登録しています。
[エネルギーメータのビットマップ]

[ソリューションエクスプローラーに登録]

スプライトのビットマップにおける留意点としては「マゼンダ色(R:255,G:0,B:255)が透過属性」として認識されます。これにより、スプライトの抜きの部分を実現することが可能となります(逆に言えば、マゼンダ色は使用できないということになります)。
これはXNAのデフォルトコンテンツライブラリの仕様のようです。(Windows上はWindows 3.1のVideo for Windows時代からクロマキー=マゼンダみたいな文化がありますね)
このため、JPEGのようなカラー情報が曖昧になるファイルフォーマットは抜きの処理を行うのは向いていないことになるので注意が必要となります。
このようにアセット名を登録することにより、Texture2Dクラスがこの名前でアクセスできるようになります。
アセット名を用いてのビットマップの読み込みはモデル同様、至極簡単で、
Texture2D = ContentManager.Load
というだけでTexture2Dにビットマップ情報が設定できます。
サンプルソースでは上述のコードをモデル情報の読み込みの時同様に、SpriteToolというクラスを作成しています。
コメント
コメントの投稿
« 昔のゲームの想い出 [0035] 「Mr.Do!」 [ユニバーサル] [1982] [アーケード] l Home l Sample Action Gameの紹介 [ステージ1-2 (その2)] »