「ゲームプログラミング」の版間の差分

削除された内容 追加された内容
318 行
 
 
まず、ゲーム制作では画面のチラツキを押さえるために、ほとんどのゲームで「ダブルバッファリング」という手法が必要になります。なお、このダブルバッファリングはDirectXまたはDXライブラリを使うと、ほぼ自動的に画像表示の際にダブルバッファリングの設定を行ってくれるので、これらのライブラリを用いる場合なら普段はダブルバッファリングを意識する必要は無いです。
 
 
そして、ゲーム開発では、PNGなどの背景の透過のある画像が必要です。なぜなら、もし背景を透過させないと、たとえばマップ上を歩くキャラクター画像を背景上に表示したい場合でも、キャラの周囲の画像ファイル幅の四角い枠ごと表示されてしまうからです。そのせいで、背景の一部が、キャラ周囲の四角い枠で塗りつぶされてしまいます。
324 ⟶ 325行目:
つまり、ファミコンのスーパーマリオ1やドラクエ1のようなゲームですら、Windowsでは、キャラクター画像の周囲を透過させないと、そういうシステムのゲームは作成できないのです。
 
なお、実はDXライブラリによる透明の機能は、[[w:クロマキー|クロマキー合成]]と同じ原理です。つまりDXライブラリでは、PNGなどの透明部分を黒色 (R,G,B)=(0,0,0) に変換しています。そして(0,0,0)のドット部分だけ描画をしないという仕組みで、DXライブラリでは透明を実装しています。なので、DXライブラリ用の画像には、(0,0,0)を色としては使用できません。むりやり使用しても(0,0,0)のドット部分が描画されないので下の画像が見えてしまいます。なのでゲーム用のイラストを描く場合などは色(0,0,0)の使用を避けなければなりません。なお、たとえ色が(20,20,20)くらいでも人間の目では充分に黒色に見えます。(1,1,1)だと保存などの際に色情報が変化した場合に(0,0,0)になって透明化してしまいかねないので、もし黒色を使うなら余裕をもって(20,20,20)くらいにしておきましょう。裏を返すと、実は2Dゲームでは、完全な黒色を再現するのは基本的に無理です。もし仮に透明色を変更したとしても、今度はその色が使えなくなります。
 
 
[[File:Girl in front of a green background.jpg|200px|thumb|right|クロマキー合成の現場]]
なお、これはゲームだけなく、実写映像の合成なども同じような仕組みです。実写撮影では青色がよく透明色に使われます。だからよく、合成シーンの撮影では、青色の背景ボードの前で役者が演技してたりします。テレビ番組の収録映像などで、そういう撮影シーンを見たことある人もいるでしょう。(おそらく、当然ですが、そういう合成シーンの撮影では、役者の服などでは青色を使えなくなるハズです。)
[[File:Girl in room, green screen example.jpg|200px|thumb|right|クロマキー合成の現場]]
なお、これはゲームだけなく、実写映像の合成([[w:クロマキー]]合成)なども同じような仕組みです。実写撮影では青色がよく透明色に使われます(ブルーバック撮影)。だからよく、合成シーンの撮影では、青色の背景ボードの前で役者が演技してたりします。テレビ番組の収録映像などで、そういう撮影シーンを見たことある人もいるでしょう。(おそらく、当然ですが、そういう合成シーンの撮影では、役者の服などでは青色を使えなくなるハズです。)
 
実を言うと、上述のようなDXライブラリの透明色の仕組みは、DXライブラリを使わない場合のwindows標準の透明の実装方法と原理的には同じです。つまり、windowsAPIには特定の一色を描画しない機能によって、透明機能を実装する機能があります。そして実はDXライブラリの透明機能は、windowsAPIのその機能を流用しています。
 
なので原理的にはPNG画像を使わなくてもwindowsAPIだけでも透明の機能は実装できるのですが、まあ、せっかくPNGという規格があるのでそれを活用したほうがラクだし、ゲーム処理速度などの都合でDXライブラリを使うほうが効率的でしょう。
354 ⟶ 358行目:
 
ゲーム以外の話題になりますが、実はよく鉄道駅やバス交通機関など公共交通機関にある液晶モニター([[W:デジタルサイネージ|デジタルサイネージ]])に表示されている動画は、Windowsで作成・表示されている動画だったりします。日本だけでなく世界各地で、そのような傾向です。なので、ときどきWindowsアップデートなどで画面が動画からWindowsメイン画面に切り替わるシーンがみられる場合があります(時々ネット上で、その交通機関の利用客などからSNSなどでそういう画面が報告されたりします)。おそらくWindowsの全画面モードにて、DirextXを用いて動画表示をしていると思われます。DirectXには、こういったゲーム以外の用途もありますので、操作の際など御参考に。
Ø
 
== 目次 ==