チュートリアルでわかったことメモ
イベント
「宝箱を開ける」「村人Aに話しかける」などの出来事。
関数とか、コントローラー的なものと考えて良さそう。
・基本の流れは自動で「実行内容」が上から順に動作
・出現条件で「実行内容」を実行するかどうかを制御
・出現条件はAND結合
・出現条件の指定が何もなければ、常にtrueとして実行される
・イベントの、ページ番号の大きい方が優先的に実行される
例えば、簡単作成した宝箱のイベントを見てみる。
初回の宝箱クリック
・タブの中で1ページと2ページがあるので、まず2ページから実行される。
・しかし、出現条件に、セルフスイッチがAという条件がついている。
・まだ、セルフスイッチ = Aにはなっていないので、2ページ目は何も実行されない。
・1ページ目の出現条件チェックする。
・出現条件が空っぽなので、実行内容が上から実行される。
・SEが鳴る。
・宝箱オープンのアニメーションが流れる(これが移動ルートの設定で実現されている。詳細は後述)
・セルフスイッチAがONになる
・所持金が増加し、その旨がメッセージに出る。
・セルフスイッチAがONになったことで、2ページ目の条件がtrueになったので、2ページ目の実行内容が上から実行される。
・実行内容は特にないのでここで終わり(画像変化のみ)
2回目以降の宝箱クリック
・タブの中で1ページと2ページがあるので、まず2ページから実行される。
・すでにセルフスイッチ = Aになっているので、2ページ目の実行内容が上から実行される。
・実行内容は特にないのでここで終わり(何も起こらない)
イベントと条件分岐の使い分け
「画像などの条件が変わるときは、必ずイベントページ」とは?
基本的に1画像に対して1イベントとして考えられるのでこう書いてある。
ただ、移動ルートの設定を使って、「左を向く」「右を向く」などを入れることで、1イベント内で画像を変えることも可能。
例: 宝箱を作ったら自動設定されるイベントの中で、宝箱が開くアニメーションは、「移動ルートを設定」で指定されている。
宝箱にはこのような画像が設定されているが、
「左を向く」 = 2段目の画像
「右を向く」 = 3段目の画像
「左を向く」 = 2段目の画像
「右を向く」 = 3段目の画像
に相当するので「左を向く」「右を向く」を移動ルートにセットすることで、箱が開くように見せられる。
キャラの一覧と比べたらわかる でも「右を向く」「左を向く」で箱が開くのは直感的に理解しづらいよな... |
スイッチとは何か
スイッチはON/OFFを切り替えるもの。
true/falseを取得して、isOpenのようなチェックをするのに使える。
スイッチとセルフスイッチの使い分け
スイッチ = グローバル変数
セルフスイッチ = ローカル変数
他のイベントから参照したいかどうかでどちらを使うか決まる。
1イベント内で完結する場合、スコープ上、極力セルフスイッチを使った方が良さそう。
予期せぬ書き換えを防ぐため。
スイッチと条件分岐の違い
スイッチはイベントコマンド[条件分岐]に利用できます。スイッチを活用したイベント分岐も可能です。
とあるので、一瞬混乱しやすい。
条件分岐は普通のif文。
スイッチはt/fを管理するための変数(isOpenみたいな)。
if(isOpen){
// 宝箱オープン時の動作
addMoney(2000)
}
みたいな分岐を作れると言うこと。
セルフスイッチの設定をいじって、セルフスイッチの仕組みを理解する
簡単作成した宝箱の条件を色々いじってみた。
わざと2ページのセルフスイッチの出現条件のチェックを外すとどうなるか?
→宝箱開けっぱなしになる。お金が増えない。
原因はこれっぽい。
ページ数が大きいものが優先的に実行されるので、2ページが優先される。
つまり、2ページでセットしてある画像(宝箱開封済み)が出現したままになる。
ちなみにこの仕様は、デバッグ機能を隠しておくために使うことも可能。
マップ上で、ユーザーが立ち入れない任意の場所に、デバッグ機能を仕込んだ(戦闘開始後、いきなりボスが死ぬとか)イベントを準備する。
ページを追加して、トリガーを自動設定にする。
わざと1ページの実行内容の中で、「セルフスイッチ=ON」を、「セルフスイッチ=OFF」にするとどうなるか?
→宝箱は何度でも開けられる。お金も無限に増える。
2ページの出現条件がセルフスイッチA=ONだが、それが走らなくなったので。
isOpenがfalseにならないので、何度でも開けられてしまうということ。
わざと2ページのセルフスイッチの出現条件を、指定したA以外のBやCにするとどうなるか?
→同じく宝箱は何度でも開けられる。お金も無限に増える。
2ページの出現条件がセルフスイッチA=ONだが、それが走らなくなったので。
現象は上と同じ。
※このあたりを触っている時、宝箱が開くアニメーションがページ1で設定されている部分のせいで、2ページ(宝箱開封済み)が呼ばれているのかがとてもわかりにくかった。
この実験をしたい場合、2ページの宝箱開封済み画像を、わざと全く別の箱の画像に変えておくことで、挙動をより理解しやすくなるのでオススメ。
まとめ
プログラミングなしでゲームを作る、というツールなので、エンジニアは逆に最初の導入部分で躓きやすいかもな、と感じました。
特にイベントの概念はちょっと最初は掴みにくいかも。
今回の記事が、少しでも役に立てば幸いです。
今回はチュートリアルを軽く触っただけでしたが、今後もう少し複雑なイベント処理を入れようとして躓いたら、また記事化したいと思います。
参考
こちらの記事がとてもわかりやすかったです。
0 コメント