今作っているゲームでは、調査したい場所に行くと主人公の頭上にアイコンが表示されるようにしています。
そのアイコンが表示されるのをマップEvにアイコン表示用のコモンを入れて、マップEvの起動条件をプレイヤー接触にしていました。
しかし…プレイヤー接触にした結果「調べる」ということが難しくなってしまいました😅
決定キーで調べるようにしたかったのですが、起動条件がプレイヤー接触のため「プレイヤーが動いている時に起動」してしまいます。メッセージを表示しようとしたとき、主人公が動くたびにメッセージが表示されてしまう…と言った感じになります。
これをコモンEvを新しく作り、プレイヤー接触のマップEvを決定キーを押してメッセージ表示させたり出来るようにしていきます。
また、今回のコモン処理内容において【頭上にアイコンを表示する処理を1つのコモンイベントにまとめることが出来た】で紹介したコモンEvがあることが前提として作成していっています。
起動条件がプレイヤー接触のマップイベントを決定キーで起動させる
起動させるための下準備用コモンEv
まずは起動させるためフラグを作ります。フラグは共通して使いたいので、通常変数・予備変数を用いてフラグ用変数を用意します。
自分は通常変数V2[実行処理初期化]・V1[起動]の2つを用意しています。
実行処理初期化の変数は一回起きたEvを連続して起こさないようにするために入れています。もしかすると、なくてもいいかもしれません。
また、マップEv側ではページ1にプレイヤー接触のアイコン表示、ページ2に決定キーで起動の起こしたいEv内容を入れます。そして、マップEvのページ切り替えをV1[起動]で行うよう設定しておきます。
![]() |
プレイヤー接触のマップEvを決定キーで決定キーで起動させる下準備 |
画像では コモンEv217セルフ1 となっている部分は実は…
変数操作: CSelf20[調査ポイントマップID] = コモンEv218セルフ1[マップID] + 0
となっています。
コモンEvの場所変えたらズレてしまいました。やっていることは別のコモンから情報を読み取っているだけで同じなので…ユルシテ…ユルシテ…
変数呼出し値の 15000000+100*Y+X = コモンEv Y のコモンセルフ変数X を使って別のコモンEvから情報を取得してます。
ココから情報を取得している取得元のコモンEvは【頭上にアイコンを表示する処理】で取得している「マップID」です。このマップIDはイベント挿入の際に手動で入力する面倒くさい仕様になっているので、わざわざこのようにしています。
正直、並列常時とかで自動で取得できるようにできるのであれば、それが一番いい方法だと思います。
その後…キー入力操作で決定キーを受け付けるようにして条件分岐します。
その分岐の中で「主人公の頭上にアイコンが表示されているとき」かつ「主人公の一歩先に(目の前に)マップEvが存在するとき」に決定キーが入力されると起動フラグが立つようにします。
一歩先にEvが存在するときに通常変数 V3[前にEvあり] が =1 になっているので…吹き出しが表示される中に V3[前にEvあり]が=1 のとき V1[起動]=1 にします。
マップEvのページ切り替えをV1[起動]で行うよう設定しておいて、決定キーで起動(起こしたいEv処理を入れたページ)に切り替えます。
上記の初期化処理を最後に入れておかないと、ゲーム起動直後は何故か起動のフラグが=1になっているのでスムーズに機能してくれません。
プレイヤー接触のマップイベントを起動実行させる
新しくコモンEvを作ります。このコモンEvで起動実行を行います。
![]() |
コモンプレイヤー接触のマップイベントを決定キーで実行させる |
起動ページの条件分岐は無くても正常に機能しました…必要ないです😂
このコモンEvで大切なポイントはココからで…
キー入力受付で決定キーが押されたときに長押しに反応しないように処理を加えています。(ループの処理の箇所)
その後、V2[実行処理初期化]=0のときキー入力操作で自動キー入力を行い「決定キー」を自動で入力させます。決定キーを自動で入力させることで、1回決定キーを押したら2回押したことになるようにします。
これでプレイヤー接触のマップEvを無理くり決定キーで実行させることが出来ます。
一応はV1[起動]の変数によって既にページが切り替えられているので、決定キーをマップEvに対して2回押せば切り替わったページ内の処理を実行できます。しかし、それではゲームのテンポも悪くなるので1回で調べられるようにするためにこのコモンEvを作っています。
かなり強引な力業のやり方ではありますが…何か参考になるところがあれば嬉しいです。
最後まで読んでいただき、ありがとうございます