[GameMaker: Studio] 光源周辺だけ明るくする方法・番外編

atg_sample_1

実際に動いているところはこちらの動画で確認できます。
http://www.nicovideo.jp/watch/sm25889798

GameMaker: Studioは2D専用のゲームエンジンだと誤解されることも多いのですが、エディターとしてのUIや機能が2Dのものしか用意されていないというだけで、ゲームエンジンとしてのGameMakerは3Dにも対応しており、FPSやTPS等の3Dゲームを作っている方も少数ながら存在しています。

OpenGLGLESWebGLにも自動で変換してビルドしてくれるので、3Dプロジェクトでももちろんマルチプラットフォーム対応で、ブラウザでもプラグイン無しで3D描画が可能です。例によってIEでは駄目なんですが。
(GLSLとHLSL間は自動変換はできなさそうで、それぞれに書かないと駄目なようです)

手間はかかりますが、この3D機能を使うと2Dゲームでもライティングによる本格的な立体感のある陰影の表現ができます。
そのためにはGM:S標準のシェーダーを拡張して、ノーマルマップとライトの位置や強度を使って最終出力カラーを決定するようにしなければならないので、それなりにシェーダープログラムの知識は必要になります。

ノーマルマップの作成は、AutoTileGenのようなツールを使うと、2Dのパーツを作るときに一緒にノーマルマップも出力することができるので便利です。

光源周辺だけ明るくする方法・1
光源周辺だけ明るくする方法・2