GameMaker:Studio 1.4 用、GLSL ES シェーダに関するページ公開


GM:S + GLSL ES シェーダに関するページを公開


GM:S のシェーダ(OpenGL ES)に関する情報まとめ。

参考(prester.org/gms):GameMaker:Studio 1.4 Shaders

参考(prester.org):GameMaker:Studio 1.4 GLSLES:Shader48

WP ブログ+専用サイト+GitHub の三段構成になる予定。専用サイトではシェーダサンプルコードを公開していますが、まだ数が揃ってません。ファイルダウンロードは GitHub を利用しようと思っているので、そちらは更にもうちょっと後となります。

YoYoGames は GM(7 〜 8) シリーズの頃にシェーダへ初めて対応、その頃にはシェーダ記述言語も HLSL を標準としていたようです。それが GM:S 1.2 から GLSL ES という OpenGL 系のシェーダを標準として扱うよう仕様を変更しました。

なぜ GLSL ES なのか?

GLSL ES は GPU 上で動く「シェーダ」という小さなプログラムを制御するために利用される「シェーダ記述言語」と呼ばれるもの、OpenGL ES というグラフィックス API で利用される C / C++ に似たプログラミング言語です。

OpenGL ES というのは OpenGL のモバイル/組み込み用サブセットです。OpenGL の全機能が使えるものをフルセット版と呼び、モバイル用に最初から機能制限された OpenGL のサブセット(機能制限版)が OpenGL ES という位置付。

現在のスマートフォンは iPhone/Android ともに OpenGL ES を採用、PlayStation 3/4 などコンシューマ機も OpenGL ES をベースに独自拡張を施した PSGL を採用しています。

主要モバイルが採用、勢い付く

スマートフォンは iPhone と Android が OpenGL ES を採用し、これでモバイル用グラフィックス API の覇権が決まりました。そしてモバイルでカジュアルゲームがもてはやされるようになると、プログラマブルシェーダと GLSL ES の需要が順調に増えていきました。

YoYoGames は GM シリーズの頃は PC ゲーム開発をメインターゲットにしていたので、その頃 PC = WindowsPC だったから、すなわちシェーダも DirectX 系の HLSL にとりま対応していれば良かった。

しかしスマートフォン普及と共に事情は急変。ゲーム用も GLSL ES の需要が増え、GM:Studio では標準のシェーダ記述言語を GLSL ES へ変更。

この時 YoYoGames は HLSL を切り捨てることはせず、GLSL ES コードを HLSL へ変換する「クロスコンパイラ」の採用で互換性を維持しました。開発者は GLSL ES でシェーダを記述、Windows PC 用ビルドの際に自動で HLSL へ変換されるため、HLSL 向けコードを別途書かなくて済みます。

どうなる? Clickteam の F3 と OpenGL

ClickTeam が F3 の開発に Qt を使うと宣言した頃、つまり約3年くらい前、「次製品で DirectX を捨てるのか?」と開発陣に質問したことがあります。その頃質問に対する回答は「無回答(原文まま)」でしたが、先日行われた Clickteam AMA on Reddit でようやく回答に近いものを得ました。

最新の DirectX へ対応することを重視せず、動作互換性のために OpenGL を重視しているというもの。F3 は全てのプラットフォームでシェーダに対応しているから、つまり GLSL ES は F3 でも必ず重宝するし、役に立ちます。

吉里吉里のユニバーサルトランジションを GLSL ES で再現

Shader48 では GLSL ES のシェーダサンプルコードを掲載しています。

吉里吉里のユニバーサルトランジションを GM:Studio で再現したり、フォトショップのブレンドモードを再現、その他様々な効果を実現するためのシェーダソースコードを公開。ソースコードは今後もゆっくり追加されます。目標 48 個。

GM:Studio でシェーダを利用する際、どうぞご利用ください。ページ閲覧はモバイルに対応。

連絡先

シェーダは WebGL も動作確認してありますが、全てのブラウザおよび環境で正常に動く保証はありません。特にモバイルのブラウザ上では WebGL ほぼ動かないです。

Android などモバイル機器のネイティブでは一部シェーダを動作確認済み、しかし実機でのテストがまだ全く足りていません。実機での動作検証結果を個人的に集めているので、動いた/動かなかったなど、ご利用中の実機・環境等の情報を提供して頂けたら幸いです。

各ブログコメント欄かメール、twitter 等でご連絡ください。

GMC Member Profile:prester

ブログ・問い合わせフォーム

メール:guest@prester.org

ツィッター:Presbyter


Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です