GM:S 2.0 のプレビュー版


先週から GM:S 2.0 プレビュー版へのアクセスが可能になっています。


気になる新機能はどうなっているのか?自分でインストールするのは面倒なので(!?)、筆者は動画を見て新機能に触れた気分に浸ってみました。

game_maker_studio_2_0_logo_preview

マダ動画もしっかり探していないのですが、ざっと見た感じ、主に海外ユーザが率先してプレビュー版を紹介する動画を公開しているようです。おっと、HeartBeast の動画を発見。GM:S の Surface 機能を調べている時にとても参考になった人なので名前を覚えていますね。

というわけで HeartBeast の GameMaker Studio 2 – WHATS NEW? を紹介。これを見ながら GM:S 2.0 の新機能に触れた気分になってみましょう。Here we Go!

参考(Youtube):GameMaker Studio 2 - WHATS NEW?

スタートアップの変更

スタートアップはコードオンリーモードと DnD モード、2種類から選択可能になった。

初心者は DnD でアイコン使って作成する手段が用意されており、コードを使った製作に慣れ親しんだユーザはコードオンリーモードを選択できる。従来はこの二つを別々にせず、ゴッチャにして使わせていたためユーザインターフェース(以下 U.I. と略す)や機能へのアクセス性が悪くなっていました。

GM:S 2.0 からはユーザの好みに応じて姿を変える開発環境として、良いアイディアを実装したと思います。DnD には触れたくない人は触らずに済むし、コードなんか分かるかよバーカバーカな人はコードを無視できる。同じ箱で棲み分けできるし、余計なものを見ずに済むということは、それぞれのユーザにとってのアクセス性が改善される。

しかしコードと DnD を混在させていたユーザの場合は、今後どちらかの陣営に移動しなければならないだろう。

ワークスペースとマルチモニタ

ワークスペースという概念が導入され、一つのプロジェクトは最低一つのワークスペースを持つようになります。ワークスペースはマルチモニタへ対応、オブジェクト単位で個別のモニタへ View window を飛ばすことができるらしい。

オブジェクトプロパティからイベント/アクションの定義はノードベースに変更された。GM:S 2.0 になって最初に気が付く一番大きな変更点に見える。

オブジェクト単位で動作を定義/作成する手順などは GM:S 1.x シリーズと同様、オブジェクトの概念も旧シリーズから踏襲され変更が無い。

だが、U.I. には大幅な改良が施された。

ウィンドウ管理に親子の概念が用いられ、ノードはオブジェクト単位で一つの閉じたグループを作り、ウィンドウにも親子が関連付けされている。ノードベースと言ってもオブジェクト単位で完全独立しているので、他オブジェクトへノード接続して複数オブジェクトで一つのイベントを作るような作業は無さそう。こうするとイベント作成時、複雑に絡み合ったノードに由来する混乱は無いが、逆に言うと複雑なノードは作れないから、UE のような BulePrints とは使われ方がだいぶ違う。GM:S 2.0 のノードはかなりシンプル……というか、ノードベースである必然性がなく、単なる飾りにしか見えなくもない。

コードエディタ(外観

コードエディタは外観がシンプルになった。

余計なボタンやアイコンが全て排除され、とてもすっきり。ウィンドウ左に行番号と下にステータス。これくらいシンプルな方が個人的にも好み。カラーハイライト機能も美しく、見易い。オブジェクト単位でウィンドウが管理される手法が徹底され、作成されたコードに対するアクセスも効率化されている。

コードエディタ(機能

地味だが強力な改良が施されたのはインテリセンス(コード入力支援)。

GM:S 1.x の時から要望としてはあったが、開発から 1.x では実装されないとしっかり宣言されていた部分。GM:S 2.0 ではこれをきっちり搭載してきた。作成されたローカル変数やインスタンス変数は入力支援機能から管理・把握ができる。

GameMakerLanguage(機能

マクロ(いわゆる #define = 定数の定義)は GM:S 2.0 で非常に扱いやすくなった。

従来は専用の「マクロ登録ウィンドウ」から定数リストを作成し、そこで一元管理していた。GM:S 2.0 ではコード中、自由な位置でマクロ定義が可能になる。

また、新しい文法として、変数へ値代入に if が不要、簡潔に書ける。

従来だと
if (x > 0) { var a = true; } else { var a = false; };

これが GM:S 2.0 では

var a = (x > 0) ? true : false;

上記が可能になった。合理的です。

もっと色々知りたいけれど HeartBeast の動画で紹介されていた GML の変更点はこの程度だった。

スプライト/アニメーションエディタ

クソ U.I. が改良・合理化され使い勝手が向上した。

スプライトアニメーションの一覧性やリアルタイムプレビュー、編集機能強化は喜ばしい。従来はアクセスできなかったアニメーション再生速度がスプライトエディタからアクセスできるになり、コリジョンマスクの作成もウィンドウが一元化され、機能へアクセスするためのルーチンが効率的になった。

強化されたタイルマップエディタ

一応地味ながら GM:S 1.x にもタイルマップエディタは付属していたが、GM:S 2.0 でタイルマップエディタも強化された。従来だとタイルマップの機能強化はマーケットプレイス上から拡張機能を探すか、別エディタで作業するかだったが、不要になりそう?

タイルアニメーションに対応。

ルームエディタ

待望のレイヤーが搭載され、リソースツリーからオブジェクトインスタンスを DnD (ドラッグアンドドロップ)でルームへ直接配置も可能になった。「GM:S = クソルームエディタ」の伝統的汚名返上なるか?

まず独特だった奇妙な操作性は、常識的な改善が施された。

ルームに5つのレイヤー概念

レイヤーはタイプ(型のようなもの)が五つあり、背景/インスタンス/タイル/アセットなど、レイヤータイプ毎にアクセスできる機能も異なる。レイヤーは上下の位置関係=重なりを自由に入れ替えでき、あたかも Adobe Photoshop や illustrator のような操作性を実現。

インスタンス・レイヤーにはリソースツリーからオブジェクトを選択、インスタンスを DnD で配置できる。これだけでも大きな改善。むしろなぜ今までできなかったこれ。背景レイヤーには背景を配置できる。

タイルレイヤーはタイルマップエディタと連携した機能。アニメーションタイルを配置したらコンパイルせずにルームエディタからプレビュー可能。そうだよね、これできなくっちゃ!が実現されている。

ルームに親子関係を構築可能

大きな変更点の一つともされる。ルームに Child Room を作る(ルームに階層構造を持たせる)ことができる。親の設定を子が引き継ぐことも一発で可能だし、親と子で独立した設定にすることもできる。Clickteam の F3 も似たような実装をする予定があるらしい。


Leave a comment

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