主人公の頭上に吹き出しアイコンを表示して、調べられるポイントをプレイヤーに知らせるようにしたい!
ということで、自分なりに作ってみました。
どのようなものになったのか?はTwitterにて動画を載せています↓
これをどんな感じで作ってみたのか?を記録したいと思います。
ちなみに…最初に注意点を挙げますと、今から紹介する処理ではマップEvを2つ(アイコン表示用と実際に決定キーでイベントを起こす用)用意する必要があります。イベント中もアイコンが表示されたままになってしまいますので、イベント中かどうか?を調べて分岐させる処理を付け足す必要があります。
このままでは不十分かも知れませんが、今後何かに使えるかもしれないので記録に残します。
表示するアイコンを選択するコモンイベント
まず、頭上に表示する吹き出しアイコンを簡単に選べるようにしたかったので、コモンEvを専用に作りました。
実際のコモンイベント処理内容
コモンEvの名前は「調査ポイント」にしています。
(設定)
Cself0(「吹き出しの種類」と名前を付けてる)に選択肢を手動で設定
0=なし / 1=!吹き出し / 2=?吹き出し…と設定
▼ 主人公の位置取得
■変数操作+: CSelf10[主人公画面X] = 主人公 の 画面X座標
■変数操作+: CSelf11[主人公画面Y] = 主人公 の 画面Y座標
■回数付きループ [ 1 ]回
|▼ 吹き出しを表示する処理
|▼ 主人公の頭上に位置調整 Y操作
|■変数操作: CSelf11[主人公画面Y] += -30 + 0
|■条件分岐(変数): 【1】 CSelf0[吹き出し種類] が 0 と同じ 【2】 CSelf0[吹き出し種類] が 1 と同じ 【3】 CSelf0[吹き出し種類] が 2 と同じ
|-◇分岐: 【1】 [ CSelf0[吹き出し種類] が 0 と同じ ]の場合↓
| |■ピクチャ消去:CSelf20[吹き出しピク番] / 0(0)フレーム
| |■
|-◇分岐: 【2】 [ CSelf0[吹き出し種類] が 1 と同じ ]の場合↓
| |■ピクチャ表示:CSelf20[吹き出しピク番] [中心]ファイル「SystemFile/発見icon.png」 X:CSelf10[主人公画面X] Y:CSelf11[主人公画面Y] / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| |■
|-◇分岐: 【3】 [ CSelf0[吹き出し種類] が 2 と同じ ]の場合↓
| |■ピクチャ表示:CSelf20[吹き出しピク番] [中心]ファイル「SystemFile/疑問icon.png」 X:CSelf10[主人公画面X] Y:CSelf11[主人公画面Y] / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| |■
|◇分岐終了◇
|■
◇ループここまで◇◇
これで簡単にどのアイコンを表示するかを決められます。
Cself0の分岐の種類を増やせばもっと多くのアイコンにも対応できると思います。
主人公の頭上に吹き出しアイコンを表示
今のところ主人公の頭上に表示する段階の部分はテスト段階でありまして…コモンEv化出来ておらず、マップEvで作っています。
マップEvで作成したこの処理はうまく動作できました。また、複数のマップEvにこの処理を入れてテストしてみてもうまく動かせました💪
実際のイベント処理内容
マップEv:(起動条件)プレイヤー接触
接触範囲拡張:X=3 / Y=3
|■変数操作+: V1-1[拡張範囲X] = このマップイベント の 接触範囲拡張X
|■変数操作+: V1-2[拡張範囲Y] = このマップイベント の 接触範囲拡張Y
|■変数操作+: V1-3[[マップ]主人公X] = 主人公 の X座標(標準)
|■変数操作+: V1-4[[マップ]主人公Y] = 主人公 の Y座標(標準)
|■変数操作+: V1-7[[マップ]マップX] = このマップイベント の X座標(標準)
|■変数操作+: V1-8[[マップ]マップY] = このマップイベント の Y座標(標準)
|▼ 差
|■変数操作: V1-5[[マップ]差X] 絶対値= V1-7[[マップ]マップX] - V1-3[[マップ]主人公X]
|■変数操作: V1-6[[マップ]差Y] 絶対値= V1-8[[マップ]マップY] - V1-4[[マップ]主人公Y]
|▼ 差から-1する(拡張範囲から一マス小さくする)
|■変数操作: V1-5[[マップ]差X] -= 1 + 0
|■変数操作: V1-6[[マップ]差Y] -= 1 + 0
|■条件分岐(変数): 【1】 V1-5[[マップ]差X] が 0 以下 【2】 V1-6[[マップ]差Y] が 0 以下
|-◇分岐: 【1】 [ V1-5[[マップ]差X] が 0 以下 ]の場合↓
| |■イベントの挿入[名]: ["調査ポイント"] <コモンEv 215> / 2:?
| |■
|-◇分岐: 【2】 [ V1-6[[マップ]差Y] が 0 以下 ]の場合↓
| |■イベントの挿入[名]: ["調査ポイント"] <コモンEv 215> / 2:?
| |■
|◇分岐終了◇
|■条件分岐(変数): 【1】 V1-5[[マップ]差X] が 1 以上 【2】 V1-6[[マップ]差Y] が 1 以上
|-◇分岐: 【1】 [ V1-5[[マップ]差X] が 1 以上 ]の場合↓
| |■イベントの挿入[名]: ["調査ポイント"] <コモンEv 215> / 0:なし
| |■
|-◇分岐: 【2】 [ V1-6[[マップ]差Y] が 1 以上 ]の場合↓
| |■イベントの挿入[名]: ["調査ポイント"] <コモンEv 215> / 0:なし
| |■
|◇分岐終了◇
接触範囲拡張が3にしているのは、接触範囲拡張の最後の1マスで頭上のアイコンを表示するか?消去するか?を分岐させているからです。なので、3よりも小さく設定すると表示されたままになって、アイコンが消去されないので注意です。
試しに接触範囲拡張の範囲を大きくして、分岐の数値を弄ってみたのですが…一マス分広くは出来ましたが、それ以上広い範囲では正常に動作しなかったので、この方法では接触範囲拡張は3が一番安定しているのかなと感じました。
変数で予備変数を使用しているのは、複数のマップEvで共通して使用したい変数だからです。
イベントの挿入で最初に作ったアイコンを選択するコモンEvを使い、頭上に表示したいアイコンを選択して表示しています。
以上が今回作ってみた「調べられるポイントで主人公の頭上にアイコンを表示する」処理になります。
(2022/10/26 追記)
主人公の頭上にアイコン表示をするコモンイベントを更に改良し、通常変数・予備変数を使わずにアイコンをポップアップさせることが出来ました👍
さらにマップイベントから表示させたいアイコンを選んで表示させることもできるようになりました。
このコモンイベントは実際に自作ゲームで使用しているコモンイベントになります👇
最後まで読んでいただき、ありがとうございます