ページ 11

プレイヤー追跡(発見時に「!」の吹き出し)

Posted: 2025年11月17日(月) 17:28
by くぇrt
プレイヤーが、指定範囲に入ると
追跡イベントがプレイヤーに気づいたという演出で
追跡イベントの上に「!」の吹き出しが表示され
イベントがプレイヤーを追跡する。

プレイヤーが指定範囲から外に出ると、追跡をやめる。

ー------------------------------------

上記のような追跡を作りたいと思っています。

①指定範囲を「スイッチ1がon」になるイベントで囲む
 (範囲に入ると追跡を始めるため)

②上記した①の外側を、「スイッチ1がoff」になるイベントで囲む
 (範囲の外に出ると追跡をやめるため)

③上記した①②で囲んだ範囲の中に追跡イベントを配置

➃追跡イベントの1ページ目は、出現条件無しで、「自立移動」をランダムにする

⑤追跡イベントの2ページ目は、出現条件を「スイッチ1がon」にして
「自立移動」を「近づく」に設定。
「トリガー」を「イベントから接触」。
 イベント内容は、「吹き出し」をつけ、プレイヤーに接触時のセリフを表示。
 
 *①、②は、上記以外の中身は空で、プレイヤーが上を歩けるもの
 *①と②を二重にしているのは、プレイヤーが①より範囲内に入らず
  範囲外に出た場合、スイッチをoffにできないため。
 *画像は①③②を示したもの。

ー------------------------------------

上記のようにしたのですが、プレイヤーが「スイッチ1をon」にするイベントに接触すると
追跡イベントはしてくれるのですが
吹き出しの表示のタイミングが、プレイヤーが「スイッチ1をonにした時」
(追跡イベントがプレイヤーに気づいた時)
ではなく、プレイヤーに接触した時になってしまいます。

どうすれば、プレイヤーが範囲に入り
イベントがプレイヤーに気づいた瞬間に
吹き出しを表示し、追跡させる事ができるでしょうか。

質問者はプログラミングに詳しくない者ですが
ご助言、よろしくお願いいたします。

Re: プレイヤー追跡(発見時に「!」の吹き出し)

Posted: 2025年11月17日(月) 21:51
by ゆわか
「スイッチ1をon」にするイベントに
追跡イベントに吹き出しを表示する命令を追加すると良いと思いました。

ただ、スイッチを切り替えるだけなら1ページで良いけど
フキダシを追加すると、ページを増やしてスイッチがONの間は実行されないように
しないといけませんが・・・

追跡イベントをイベントで囲むことで、追跡イベント自身の動く範囲も設定できるので
スイッチをOFFにするイベントはそのままにして
スイッチをONにするイベントは消して、代わりにリージョンを配置して
スイッチをONにするイベントは、並列実行するイベント一つだけにすると
イベントの数も減らせてよいかと。

さらに、同じマップ上に複数、追跡イベントを配置しても
並列処理イベント一つの内容を追加するだけで、スイッチON&フキダシ表示が
実装できるので、かなりのイベント数を割愛できて良いですよ。多分。

並列処理イベントの内容例)

◆条件分岐:#0001がOFF
◆指定位置の情報取得:リージョン番号, リージョンID, プレイヤー
◆条件分岐:リージョン番号 = 5
◆フキダシアイコンの表示:EV001, びっくり
◆移動ルートの設定:EV001 (ウェイト)
:        :◇プレイヤーの方を向く
◆スイッチの操作:#0001 = ON

:分岐終了

:分岐終了

Re: プレイヤー追跡(発見時に「!」の吹き出し)

Posted: 2025年11月26日(水) 12:20
by くぇrt
ご返信、ありがとうございます。

指定位置の情報取得について質問なのですが

ー------------------------------------

変数:「リージョン番号」という変数名の変数を作り、そこに代入するよう設定

情報タイプ:リージョン番号

ー------------------------------------

上記のようにしたのですが

「場所」はRPGツクールMV上では

場所を指定:マップ上の座標を指定
変数を指定:X,Yの2つの変数を指定

できるようですが

ゲームプレイ中のプレイヤー位置の座標はこちらでは把握できないため
「プレイヤー」という部分の設定方法が分からないのですが

どのように設定すればいいでしょうか

Re: プレイヤー追跡(発見時に「!」の吹き出し)

Posted: 2025年11月27日(木) 17:47
by ゆわか
あ、すみません。
間違えて、MZの方のコピペ貼ってしまいました。
MVでは、座標で指定する方法しかないです。

変数の操作からプレイヤーの座標を取得して
変数で座標を指定してくださいませ。