見出し画像

#5:ゲーム制作初心者が「GB Studio」でゲームをつくる

シカダです。好きなスペシャルわざはつきでろボボーンです。

第5回はアクターとトリガーで何ができるかを確認しつつ、実際のゲーム制作も少しずつ進めます。

アクター

これはスーツアクター

アクターとは「シーン内における対話可能なキャラクター/オブジェクト」のことです。
意味がわかりませんね。
わかったらごめんなさい。

要するに、決定キーで調べたり話しかけたりできるものは全部アクターです。アクターはシーンと同じように左上のメニューから追加できます。

アクターを選ぶと、カーソルが以下のように変化し、任意の場所に設置できます。

設置すると、右サイドバーにアクター用のメニューが出てきます。

一番上はアクターの座標。8px単位で調整できます。1px単位での調整はできないので、細かい部分はCollisionの設定でなんとかするしかなさそう。

右上のピン📌を選んで「Pin to Screen」とすると、選択しているアクターを画面内に固定できます。(追記:トリガーになってたので修正しました)

画面内固定のやり方

Pin to Screenにチェックを入れるとこの画面に。

左上(縦8マスx横10マス)だけ明るくなっています。これはプレイヤーの画面を表していますので、画面固定するアクターを明るい範囲の任意の位置に持っていくと、その位置に固定できます。

謎のお姉さんがずっと右下にいる

使いどころはステータスや残機数などのUIでしょうか。今回は一旦不要そうなので使用しないことにします。

アクターのサイドバーに戻りましょう。

スプライトシートはあらかじめ入れておいたスプライトを設定できます。確認してないですが、使用できないサイズの場合は警告が出ると思います。

方向はデフォルトの方向を選べます。
移動速度も移動速度を選べます。
アニメーション速度もアニメーション速度を選べます。字面通り。

Collision Groupは、以後スクリプトで衝突設定をする際に、どのグループに衝突するかを選べるので、そのために設定するもの。上手い使い方は思いつきませんが、プレイヤーが撃った弾に当たったら消えるみたいなことに使う?(物騒)

その下はイベント設定用のタブになっています。ここが大変。

「On Intaract」は決定キーで調べたときのスクリプト。テキストを表示するのが基本ですかね。Collision Groupを設定しているときは「On Hit」になり、触れたときの挙動に変わります。

「On Init」は、アクターがいるシーンが読み込まれたらすぐに動作するスクリプト。BGMなんかがそうです。

「On Update」は第4回でも触れていますが、公式ドキュメントを読む限り「画面に表示されている間に繰り返し呼び出され、スクリプトが終了すると繰り返す」もの。ランダム移動するオブジェクトなどに使用します。

イベント追加ボタンを押すとスクリプトの種別や詳細などを設定できます。ゲーム制作においてけっこう大変な作業の一つだと思います。

では早速イベント作成……の前にトリガーにも触れましょう。

トリガー

これはTRIGGER制作のアニメ

トリガーは「プレイヤーがその上を歩くと、スクリプトが再生されるシーン内の領域」のことです。意味がわかりませんね。いや……わかるか

要するにトリガーを使うと「建物の扉に重なったら(上に乗ったら)建物内のシーンに移動する」みたいなことができます。

アクターと同じように左上のメニューから追加。

アクターと同じように設置ができます。アクターと違ってトリガーは縦横のサイズを任意で変更できます。

トリガーの右サイドバーはこんな感じ。

XYは座標、WHは横縦のサイズ。

「On Enter」はその領域に入ったら動作するスクリプト。「On Leave」はその逆。Enterはシーンの移動、Leaveは特定の範囲から出ようとすると戻されるみたいな感じでチュートリアルなどに使えそうです。多分。

アクターとトリガーの設定について簡単に触れてみたところで、早速イベントを作成してみます。

イベントを作ろう

お姉さんと話す

お姉さんと話せると楽しいので、お姉さんと話すイベントを作ります。

誰がなんと言おうとお姉さんです

お姉さんのアクターを適当な位置に作成。

基本設定はこんな感じ。このお姉さんは「落としものを探していて、プレイヤーが探して渡してあげると良いことが起きる」というイベントにしたいので、わかりやすい名前にします。

とりあえず「最初に話しかけると落し物を探していて、2回目以降は探してほしいと頼んでくる」というイベントを設定してみました。

変数名!
  • 変数:woman1_talked

    • 女性に話しかけたかどうかを管理する変数(というかフラグ)

    • 初期状態はFalse

  • 話しかけると「おとしものどこかしら……。」と話す

    • 会話後にwoman1_talkedがTrueになる

  • 2回目以降は「おとしものみつけたらおしえてくれないかしら?」と話す

みたいな構造です。変数名は適当ですが、「あとから変数名を変更した場合、影響箇所がすべて自動で変更されているか」を見てみたいので、適当なままにしておきます。この変数を使う機会なさそうだけど。『クロノ・トリガー』みたいなことしたいなら活用できる?

建物内に入る

続いてはトリガーを作ってみます。お姉さんの落としものを探すために「ちかてつインフォメーションセンター」に入ってみるトリガーを作成します。

トリガーの領域を扉の下半分にしているのは、プレイヤーのCollisionを下半分にしているからです。理由は壁やキャラクターと縦に重ねられるようにするためです。他にも方法はありますが、多分これが一番楽。

トリガーの設定はこんな感じ。

駅にある扉と重なると「ちかてつインフォメーションセンター」に入ることができます。もちろん出ることも可能。

入ったときの初期位置を、もう0.5マス下にしても良さそうですね。
建物から出るときのトリガーですが、「GB Studio」はシーン外にトリガーを置くことはできないので、画面外扱いの領域をスプライトに入れておき(一番下の黒線部分)、そこに重なったら外に出る、という挙動にしています。

出るときの設定は、「On Enter」のトリガーではなく「On Hit」のアクター(透明なスプライト)にすると、ポケモンと似たような挙動にできるかも? 後で試してみます。

簡単なイベントを作ってみたところで、今回はここまで。
次回は音楽制作に触れてみます。ちょっと時間がかかるかも。

それではまた。


小話

思い入れのあるGBソフト第2弾は『もんすたあ★レース』です。『ポケモン』と同じくらいやり込んだかもしれない。PS版のRTAもやってます。


この記事が気に入ったらサポートをしてみませんか?