今回は以前ゲーム制作を挫折したときに作っていたコモンイベントを書き留めます。
一階から二階へ…と階層を跨ぐと左上に今いる階層が表示される感じにしたくて、マップ名に階層を登録し、このコモンイベントを使ってマップ名を表示させました。左上の「F1」や「F2」と書いてあるものが表示されたマップ名です。
初めて一からコモンイベントを組もうと考えている人にとっても簡単に組めて、色んな場面で使えるコモンイベントだと思います。
マップ名表示コモンの中身
マップ名表示コモンの中身 |
このコモンは簡易的にマップ名を左上に表示させるものになっており、行数が16行で完結しています。
起動条件は主人公がマップを移動したかどうかを監視するため「並列実行(常時)」になっています。
このコモンイベントは以下のように組んでいます。
①主人公が現在居るマップIDをCselfに保存
現在主人公が存在しているマップIDをCselfに保存しています。
コメント文の『マップ名をCself[数値]に保存』というのは、マップIDは数値で保存されているためであり、表示させたいのは「マップ名」(文字列)なので後で[数値]→[文字列]に変換する必要があることをメモしています。
②主人公が今居るマップIDと直前に居たマップIDが同じか判定
主人公の現在のマップIDと直前のマップIDを条件分岐で判定します。「以外」の他を選ぶと思ったとおりに動作しなくなるので注意。
条件分岐内でDB読み込み(システム)を使ってCself5にマップID[数値]とマップ名[文字列]を連動させます。詳しい設定は↓画像のようにやってます。
DB読み込みのコマンド設定内容 |
ちなみに、Cself5~9が文字列のみ保存する(数値データは保存できない)変数になっているので基本的にCselfは10~使うのがいいです。
Cself0~4はコモンイベントの設定ボタンで結果を返すかどうか設定できます。
③ピクチャでマップ名を表示
条件分岐内でピクチャ表示を使ってマップ名を表示します。表示させるピクチャタイプを文字列にしてCself5(②で主人公の現在のマップIDとマップ名を連動させたCself変数)を特殊文字\cself[変数(ここでは5)]を使って呼び出します。
ピクチャ消去の部分で表示させる時間を設定しています。表示時間30F/発動遅延時間(ディレイ)150Fで設定しています。
ピクチャ表示の前にある「ピクチャ[ディレイ内容リセット]」は、素早くマップを移動したときに前に居たマップで起きたディレイ時間を引き継いでしまい、ピクチャの表示時間がまばらになって思ったように動作しなくなるのを防いでいます。
④主人公のマップID更新
最後に今いるマップIDを直前いたマップIDに更新します。ウェイトを最後に入れているのは、個人的に入れた方がいいかな?と思ったからで特にあってもなくても動作に影響はないと思います。
以上でマップ名表示コモンの完成。
初心者が作ってるコモンなので初心者に優しいコモンイベントになっていると思います。
しかし、ここで使った主人公の位置を保存しておいて直前の位置と同じかどうか判定し、結果によって何か表示する・動作を起こすという方法は色んなところに応用が利く考え方なので覚えておいて損はしないと思います。
以前書いた足音を鳴らすコモンイベントにも、この考え方で主人公の位置を判定しています。参考になれば→足音を鳴らしたい!足音コモンを導入するぞ【ウディタ】
最後まで読んでいただき、ありがとうございました。