リソース


ゲームのコア部分は リソース ツリー に追加されているアセットから構成されています。リソース ツリーには、たとえばゲーム ルームやスプライト、オブジェクト、パス、そのほかゲームの実行に必要なあらゆるアセットを追加することができます。実行するためのルームと、少なくとも1つのオブジェクトとスプライトがあれば、GameMaker Studio 2 の最も基本的なゲームとして成立しますが、実際にはもっとたくさんのアセットが必要になるでしょう! リソース ツリー リソース ツリーへリソースを追加するには、リソースを右クリック して表示されるポップアップ メニュー (詳細については後述します) から 作成 を選択します。すべてのリソースにはそれぞれ対応するエディターが存在し、リソースを作成すると対応するエディターが開くようになっています。リソース ツリー左上には、開いているリソース フォルダーをすべて閉じるための すべて展開 ボタン があります。

リソース ツリーで利用可能な各リソースについて簡単に説明します。次の各項目をクリックして、概要を表示します:

スプライトは、あなたが作成するゲームにおける視覚表現のひとつです。GameMaker Studio 2 の画像エディターで作成された画像や、外部のペイント ツールで作成された画像をインポートしたものをスプライトと呼びます。使用する画像は、単一の静止したものでなくともかまいません... いわゆる "スプライト シート" 状の画像を使うこともできます。つまり、ひとつの画像のなかに複数の画像を並べて、そこからアニメーションつきのスプライトを作成できたりします。たとえば、次の10枚の画像は、組み合わせるとスカイダイビング中に手をふっているキャラクターのスプライトになります。

スプライト シート
実際のアニメーションをゲームに配置してみると、次のようになります:

スプライト アニメーション
このように、スプライトには通常 PNG 形式のファイルを使用します。加えて GameMaker Studio 2 では、SWF 形式と、テクスチャー アトラスを含む JSON 形式の Spine スプライトもサポートしています。

スプライトの右クリック メニューには、次のオプション (およびこのページで後述するオプションと同じ) があります:

  • 画像からスプライトを作成 - このオプションを選択すると、ファイル エクスプローラーが開き、スプライトを作成するために使用する1つまたは複数の画像を選択できます。複数の画像を選択した場合は、それぞれの画像をフレームに持つ単一のスプライトが作成されます。

  • テクスチャー グループへアサイン - このオプションを選択すると、利用可能なテクスチャー グループの一覧が表示され、選択したテクスチャー グループへスプライトを追加するか、必要であればテクスチャー グループを新規作成することもできます。リソース ツリーで複数のスプライトが選択されているとき、またはスプライトのグループ フォルダーが選択されているときは、選択されているすべてのスプライトがテクスチャー グループへ追加されます。テクスチャー グループの詳細については、こちら を参照してください。
リソース ツリーのスプライトの右クリック メニュー

スプライトの追加についての詳細は、スプライト エディター のセクションを参照してください。

タイルセットはスプライト リソースから作成されますが、GameMaker Studio 2 ではこの2つを区別して取り扱うため、別々のリソースへ分類されています。ここでタイルセットとは、GameMaker Studio 2 で設定した値に基づいて、細かく分割して表示させるための単一の画像のことを指します。ルーム エディター上から (あるいはコードから手続き的に) タイルセットを使用して、ルームで使うタイルマップを生成することができます。オブジェクトのようなオーバーヘッドが生じないため、地形や壁、背景など、ルーム上の静的なアイテムをデザインするのに便利です。

タイルセット
上の画像は、壁を作るためのタイルセットとして使われるスプライトの一例です。見てのとおり、このスプライトは 64x64 ピクセルずつに "分割" してルーム エディターで使用することができます。

: タイルは かならず正方形 でなければなりません。それ以外の形状が必要な場合は、なんらかのインスタンスへスプライトを持たせるか、ルーム エディターでアセット レイヤーを使う必要があります。


タイルセットの右クリック メニューには、次のオプション (このページで後述するものと同じです) があります:

  • テクスチャー グループへアサイン - このオプションを選択すると、利用可能なテクスチャー グループの一覧が表示され、選択したテクスチャー グループへタイルセットを追加するか、必要であればテクスチャー グループを新規作成することもできます。リソース ツリーで複数のタイルセットが選択されているとき、またはタイルセットのグループ フォルダーが選択されているときは、選択されているすべてのスプライトがテクスチャー グループへ追加されます。テクスチャー グループの詳細については、こちら を参照してください。
リソース ツリーのタイルセットの右クリック メニュー

タイルセットの追加についての詳細はタイルセット エディター のセクションを参照してください。

効果音というかたちでフィードバックを表現したり、音楽というかたちで雰囲気づくりをしたり... ゲーム プレイに深みを持たせるという点で、サウンドはあらゆるゲームの重要な要素です。GameMaker Studio 2 では、WAVMP3OGG 形式のファイルをサポートしています。

WAV ファイルは、通常、再生時間の短い効果音に使用されます。WAV ファイルはファイル サイズが大きくなるかわり、特別なデコードを必要としないために、再生までのオーバーヘッドが小さいからです。一方で BGM のように、再生時間が長いためにファイル サイズが大きくなってしまうような場合には、MP3OGG ファイルを使用する必要があります。これらのファイルは WAV ファイルに比べはるかにサイズが小さいかわりに、再生前にデコードが必要であるため CPU 上のオーバーヘッドが生じます。

サウンドの右クリック メニューには、次のオプション (このページで後述するものと同じです) があります:

  • サウンド ミキサーで開く - 選択されているすべてのサウンドを サウンド ミキサー で開きます。

  • オーディオ グループへアサイン - このオプションを選択すると、利用可能なオーディオ グループの一覧が表示され、選択したオーディオ グループへサウンドを追加するか、必要であればオーディオ グループを新規作成することもできます。リソース ツリーで複数のサウンドが選択されているとき、またはサウンドのグループ フォルダーが選択されているときは、選択されているすべてのサウンドがオーディオ グループへ追加されます。オーディオ グループの詳細については、こちら を参照してください。
リソース ツリーのサウンドの右クリック メニュー

サウンドの追加についての詳細は、サウンド エディター のセクションを参照してください。

ゲームを作っていると、あるオブジェクトのインスタンスを指定した線にそって動かしたくなることがあります。このとき、ルームの座標を配列へ入れておいて、そのあいだをインスタンスが移動する... という方法をとることも可能です。ただ、とても面倒なうえ、あとから変更したりテストをするのが困難で、柔軟性に欠けます。そういったときにパス リソースを活用しましょう。

パス リソースの基本的な考え方はとてもシンプルです。まずはパス エディターからパスを描画して作成し、オブジェクト イベントへアクションまたはコードを配置して、ゲーム ルーム内をパスに従って移動させるようにすることができます。ほかにも、パスをたどる速度であったり、ルーム内でのパスの座標や方向などに関するさまざまなアクションが用意されています。

パスの追加についての詳細は、パス エディター のセクションを参照してください。

スクリプト リソースとは、独自の関数を作成するために記述するコードの集合体です。たとえばあなたがゲームを作っているとして、敵を倒したときにお金や爆発、血液などのインスタンスを作成し、またサウンドも再生させるようにしたいと考えているとします。このとき、すべての敵オブジェクトひとつひとつに同じコードを追加してやれば実現は 可能 です。ですが、それらのコードを含んでいるスクリプト リソースをひとつ作成しておいて、各オブジェクトから呼び出すようにしてみたらどうでしょう。スクリプトの関数を呼び出すだけなら、各オブジェクトにコードをたった1行追加するだけで済みます。あとから内容を変更したくなったときも、各オブジェクトはスクリプトを呼び出して実行しているのですから、スクリプト リソースのほうを変更するだけでよいことになります。わざわざすべてのオブジェクトを調べて、複数の箇所で同じ変更をする手間が省けます。

スクリプトの右クリック メニューには、次のオプション (このページで後述するものと同じです) があります:

  • DnD™ / GML へ変換 - 選択されているスクリプトを DnD™ または GML へ変換します。そのスクリプトが GML であった場合は コードの実行 アクション内へ配置されますが、DnD™ であった場合は直接 GML コードへ変換されます (詳細については DnD™ をコードへ変換する" のセクションを参照)。
リソース ツリーのスクリプトの右クリック メニュー

スクリプトの追加についての詳細は、スクリプト エディター のセクションを参照してください。

シェーダーは、ゲームが画面へレンダリングするグラフィックを操作するための非常に協力なツールです。たとえば、スプライトの色相を微妙に変化させたり、画面全体にゆがみ効果を加えたり、さまざまな効果を非常に高速に実行できます。グラフィック ボード上で実行される頂点シェーダーとフラグメント シェーダー (ピクセル シェーダーとも呼ばれます) の2つのプログラムから構成されており、実際にゲーム コードを実行する CPU ではなく GPU 側で処理を行うため、非常に高速なのが特徴です。この2つのプログラムは、グラフィック ボードの画面へのレンダリングを操作するために連携して動作します。これによって、表示バッファーへ実際にレンダリングされる座標や色、アルファ値をリアル タイムで操作できます。

GameMaker Studio 2 では、次のシェーダー言語をサポートしています:
シェーダー言語 ターゲット プラットフォーム
GLSL ES すべて
GLSL Mac、Ubuntu (Linux)
HLSL11 Windows、UWP、XboxOne
PSSL Playstation 4


シェーダーの右クリック メニューには、次のオプション (このページで後述するものと同じです) があります:

  • シェーダーの種類 - シェーダー リソースに使用されるシェーダー言語の種類を指定します。
Resource Tree右クリック Menu For Shaders

シェーダーの追加についての詳細は、シェーダー エディター のセクションを参照してください。

ゲーム内で文字を描画するとき、デフォルトでは 12pt サイズの Arial フォントで描画します。より面白くユニークなテキスト表現を望む場合は、フォント エディターを使用して異なるフォントを用意する必要があるでしょう。フォント エディターでは、コンピューター上のフォントを選択して GameMaker Studio 2 へインポートし、サイズや太さ、スタイルなどの属性を指定してリソースとして追加できます。リソースとしての追加が完了したら、コードやアクションを使用してゲーム内で描画できるようになります。

: パブリック ドメインまたは著作権フリーでないフォントをリソースとして追加する場合は、あなたが再配布可能なライセンスを取得している必要があります。


フォントの右クリック メニューには、次のオプション (このページで後述するものと同じです) があります:

  • テクスチャー グループへアサイン - このオプションを選択すると、利用可能なテクスチャー グループの一覧が表示され、選択したテクスチャー グループへタイルセットを追加するか、必要であればテクスチャー グループを新規作成することもできます。リソース ツリーで複数のタイルセットが選択されているとき、またはタイルセットのグループ フォルダーが選択されているときは、選択されているすべてのスプライトがテクスチャー グループへ追加されます。テクスチャー グループの詳細については、こちら を参照してください。
リソース ツリーのフォントの右クリック メニュー

フォントの追加についての詳細は、フォント エディター のセクションを参照してください。

ほとんどのゲームでは、ある特定の瞬間に特定の物事を発生させたいと考えることが多いはずです。インスタンスで アラーム イベント を使用すれば実現することが可能ですが、特にアラームは最大で12個までしか持つことができないという制限などから、より複雑な一連のアクションを起こさせたい場合は適しません。そうしたケースに対応するためにタイムライン リソースが用意されています。タイムラインはなんらかのオブジェクトへ割り当てて使用するもので、ゲーム内の特定の瞬間に発生させたいアクション (オブジェクトのイベントやコードで利用可能なすべてのアクション) を指定することができます。タイムラインを持つオブジェクトのインスタンスがルーム内へ配置または生成されると、指定された時間に指定されたアクションまたはコードが実行されます。

タイムラインの追加についての詳細は、 タイムライン エディター のセクションを参照してください。

オブジェクトとは、ゲームを部分的に制御し、任意の処理を行うために使用する特別なリソースです。スプライトが割り当てられたオブジェクトは、ゲーム ルーム上で可視化することができ、事実そのようにして使われるケースがほとんどです。ただし、ユーザー操作やタイミングに関連する処理を行うための "舞台裏" の制御装置として使われるケースもあります。オブジェクトにはふるまいを持たせることができ、外部のなんらかのできごとに反応させるだけでなく、オブジェクトどうしを反応させることも可能です。ゲーム中で目にするもののほとんどは、オブジェクトと、その相互作用によって成り立っています。なお、実際にはゲーム ルームへオブジェクトを直接配置するのではなく、そのコピー (またはクローン) である インスタンス を配置します。したがって、オブジェクトそのものをインスタンスと対比させ "ベース" と呼ぶことがあります。インスタンスとオブジェクトは異なる概念であり、それぞれ独自の関数セットを持っています。このことをよく覚えておいてください。

すべてのオブジェクトには、物理処理を使用するか、または別のオブジェクトの "子" オブジェクトへ指定するかなど、スプライトと同様にオブジェクト エディターからいくつかのプロパティを指定することができます。また、アクションやスクリプト、コードから使用することのできるいくつかの組み込み変数を持っています。組み込み変数を使用して、ゲーム ルームへ配置されたときのインスタンスの座標やアニメーション速度、移動する方向など、さまざまな要素を定義できます。時間経過とともにオブジェクトがどのようにふるまうかを制御するために、ひとつのゲーム フレームは細かい一連の イベント へ分割されています。これらに加え、マウスのボタンが押された、ほかのインスタンスと衝突した、などのさまざまなイベントが多数用意されています。各イベントにはコードやアクションを追加することができ、イベントの発生条件が満たされると、そのイベントがトリガーされます。

オブジェクトは、ほんとうの意味でゲームを形づくる重要な要素であり、ルームとともにプロジェクトの中核を成すものです。

オブジェクトの右クリック メニューには、次のオプション (このページで後述するものと同じです) があります:

  • すべてのイベント スクリプトを開く - オブジェクトへ割り当てられているすべてのイベントを、新しいワークスペース上でタブとして開きます。
リソース ツリーのオブジェクトの右クリック メニュー

オブジェクトの追加についての詳細は、オブジェクト エディター のセクションを参照してください。

GameMaker Studio 2で作成するすべてのゲームは、実行するために少なくとも1つのルームを必要とします (もちろん、実際にはもっと多くのルームを使用しますが)。ルームとは、主にゲームを構成するオブジェクトのインスタンスを配置する空間であり、ゲームのアクションが実行される場所のことです。また、ルーム エディターではオブジェクトのインスタンスを追加するだけでなく、ゲーム ルームへ "ビュー" を設定したり、描画される背景やタイルを追加したり、オブジェクト/インスタンスのしくみに依存しない特殊効果やコードを実行したりすることができます。したがって、ルームは最も強い権限を持つリソースと考えてよいでしょう。ルームは、ほかのルームのプロパティを 継承 することもできます。たとえば、たくさんのタイルを配置したルームを作成し、そのルームを継承した別のルームを作成すれば、またタイルを配置しなおす手間を省くことができます。

ルームの右クリック メニューには、次のオプション (このページで後述するものと同じです) があります:

  • 子ルームの作成 - 選択されているルームの ルームを作成します。子ルームは、親ルームのプロパティやレイヤー構成、レイヤーの内容を継承する新しいルーム リソースで、リソース ツリー上では親ルームにリンクされた状態で表示されます。
リソース ツリーのルームの右クリック メニュー

ルームの追加についての詳細は、ルーム エディター のセクションを参照してください。

メモは、単になんらかのテキストを書いておけるコード エディターのウィンドウです。たとえば、コード スニペットやゲームの情報、ToDo リスト、チームでのコミュニケーションなどを保管しておくための場所として設計されています。

メモの追加についての詳細は、メモ エディター のセクションを参照してください。

埋め込みファイルとは、その名のとおり、ゲームをターゲット プラットフォームへエクスポートするときにゲーム バンドルへ埋め込んでおきたいファイルのことです。埋め込みファイルは、テキストに画像、ZIP ファイルなどのありとあらゆるファイルを対象としており、ファイル システム のルールに従って、ファイル操作関数 を使用してアクセスすることができます。

埋め込みファイルの右クリック メニューには、次のオプション (このページで後述するものと同じです) があります:

  • 外部で開く - 指定されているファイルの種類に応じて、外部のエディターでファイルを開きます。
リソース ツリーの埋め込みファイルの右クリック メニュー

埋め込みファイルの追加についての詳細は、埋め込みファイル のセクションを参照してください。

拡張機能は、Marketplace からゲームへアセットを追加するのと同じ操作で追加できるファイルとコードの集合体で、GameMaker Studio 2 の機能を拡張するために使用します。拡張機能の形式はターゲットとするプラットフォームによって異なりますが、一般的には C++ や C#、JavaScript で記述され、GML の 特定の関数 を使用して解釈されます。

拡張機能の追加についての詳細は、拡張機能エディター のセクションを参照してください。

ゲーム オプション リソースは、プロジェクト全体およびエクスポートする各ターゲット プラットフォームの一連の設定項目です。常に利用できる メイン ゲーム オプションでは、プラットフォームに依存しないプロジェクト全体の設定 (ゲーム速度など) を行います。詳細については、ゲーム オプション のセクションを参照してください。

リソース ツリー、ひいてはプロジェクト全体で使用する構成を選択または作成できます。はじめのうちは、構成の必要性をあまり感じられないかもしれません。ですが、ターゲットとなるプラットフォームの数と複雑さが増えてくるにつれ、構成とはゲームを整理しながらエクスポートするための貴重で便利なツールであることに気づくでしょう。構成は、リソース ツリーのゲーム オプションとエクスポート オプションを保存するために使用されます。つまり、たとえば Android 用の構成、Windows 用の構成といったふうに、特定の構成を保存しておくことが可能になるのです。詳細については、構成 のページを参照してください。

ここに記載されているさまざまなエディターの使用方法について、より詳細なガイドがほしい場合は、マニュアルの次のセクションをチェックしてください:

  1. エディター


右クリック メニュー


リソース ツリーを操作するときは、任意のリソースまたはフォルダーをマウスの右クリック してオプション メニューを開くことができます: リソース ツリーの右クリック メニュー 次のようなオプションがあります:

すべてのオプションで同じオプションを使用できるわけではなく、リソースまたはフォルダーの種類によって異なることがあるので注意してください。


プロジェクト ビュー


リソース ツリー上部には ビュー と書かれたセクションがあります。現在行っている作業に必要な部分のみを表示させたり、プロジェクトをステージごとに分けたい場合など、カスタマイズしたリソース ツリーを複数用意してプロジェクトを分割し整理することができます。デフォルトでは、これまでに説明したレイアウトのリソース ツリーが使用されます。必要に応じて新しいビューを作成するための2つのオプションがあります:

ビューの複製 選択されているビューを複製し、新しいビューを作成します。たとえば、デフォルトのビューを複製して編集用のコピーを作成することができます。
ビューの追加 リソースのない、空のリソース ビューを作成します。作成後、マウスの右クリック メニュー (詳細は後述) を使用してリソースを追加したり整理することができます。

デフォルト以外のプロジェクト ビューでは、リソースを好きな場所へ移動させたり、フォルダーの名前を自由に変更したりして、あなたのニーズどおりのリソース ツリー ビューを構築することができます。たとえば、あなたが複数のワールドを持つゲームを作ろうとしているとするなら、"ワールド1"、"ワールド2" のようなフォルダーを持つ "ワールド ビュー" を作成して、それぞれに必要なスプライトやタイルセット、インスタンス、ルームなどをフォルダー分けすることができます。あるいは複数人のチームで作業をしている場合、メンバーごとにスプライトやインスタンス、ルームを分類する "アーティスト ビュー" を作成できます。

また、 ボタンでビューを削除することができます。このボタンは、デフォルトのビューでは使用できません。ビューの名前をクリックして新しい名前を入力すれば、ビューの名前を変更できます。デフォルト以外のビューでは、右クリック メニューの内容が異なっており、次のようなオプションがあります。: プロジェクト ビューの右クリック メニュー ほとんどのオプションは共通ですが、作成 では、カスタム ビューの任意の場所へ新規リソースを作成できると同時に、デフォルト ビューの対応するリソース フォルダーにもリソースが追加されます。また、デフォルト ビューから追加 では、デフォルト ビューからカスタム ビューへ任意のリソースを持ち込むことができます。デフォルト ビューを複製した場合は現在のリソースがすべて含まれているため問題ありませんが、そこから任意のリソースを 削除 したり、または空のビューを作成したときは、必要に応じて現在のリソースを追加する必要があります。なお、カスタム ビューの右クリック メニューから 削除 を実行しても、プロジェクトからリソースが削除されるわけではなく、デフォルトのリソース ツリーには表示されたままになります。リソースをプロジェクトから完全に削除したい場合は、デフォルトのビューで操作をする必要があります。

これで、ゲームを制作するために使用できるリソースの基本について理解できたはずです。次のセクションでは、実際に GameMaker Studio 2 で新規プロジェクトを開始するときの一般的な流れについて学んでいきます。