【解決】異マップからの移動時のみマップ名を表示したい(MVT)

リンク

ユーザー
MVT(恐らくオリジナルのMVも)には、マップ名という項目があり、場所移動を使うとマップ名が表示されます。
ただ、これ移動すると毎回表示されてしまいます。

これを異マップから、もしくは「異マップ扱いなマップ」から移動した時のみに表示する、「スマート」な方法ってあるでしょうかね?

同じマップ同士の別部屋に移動した時にまで、マップ名がいちいち出るのも鬱陶しいですし、マップの好きな所から入り口付近までテレポートさせるアイテムを実装する予定ですが、これもいちいち使う度にマップ名が出るのもおかしい気がします。
単にマップに入った瞬間に自動実行イベントでマップ名表示を「オフ」にするだけでは、そのマップに入った瞬間にそのマップ名の表示が消えるので、そういうのはいけません。
また。マップ名表示を単に同一マップ内で移動する度に、オフ→オンしただけでは、場所移動の後でオンにしたとしても、マップ名がその時に表示されてしまう仕様の様で、これもNGです。

現在はこんな実装をしています。

1)部屋に入ったら、自動実行で「スイッチ:室内」と「スイッチ:マップ名無効」のスイッチをONにする
(この時、当方の場合はBGMとフェード処理を毎回手動にしているので、BGMの設定とフェードインも行ってます)
なお、このイベントは「スイッチ:室内」がONの時には不動になるように2ページ目を作っておく

2)別の場所にイベントを置き、「スイッチ:マップ名無効=ON」を起動条件にして、「並列処理」に設定して、適度な長さのウエイト処理(300Fぐらい?)をした後、「マップ名表示をオフ」にし、「スイッチ:マップ名無効」のスイッチもオフにする(2回以上起動するのは無駄なので)

3)外に出るためのイベントで、フェードアウト、場所移動、の後で、「マップ名表示をオン」にして、「スイッチ:室内」と「スイッチ:マップ名無効」の二つをオフにする
(後者はマップに入って先述のイベントがウエイト処理をしている最中にマップを退出した(入って直ぐに出たなど)時の為の物。オンのままでも差し支えないとは思うが不測のバグ回避のため)

一応、検証の限りだとこれでも動作に問題は出ていませんが、わざわざ並列処理を組み込んでる分、これの起動タイミング次第では、予想しないことが起きるリスクもあるかと思います。
もっとスマートな方法はあると思いますか?
 

リンク

ユーザー
今唐突に思いついたことです。

施設の外への出口に「マップ名表示オン」を設定し、「場所移動」の「後」に設定する。
施設内の場所移動ポイントのうち、外への出口から2番目の通路の内側へ行くイベントで、「マップ名表示オフ」を「場所移動」の「前」に設定する。
マップ内テレポート処理に関しては、テレポートのコモンイベント内で「場所移動」の「前」に「マップ名表示オフ」を入れる。
そしてそのマップから他のエリアに出る所で、「場所移動」の「後」に「マップ名表示オン」を入れる。

こうすればスマートそうですね。
今、ツクール触ってないので検証してませんが、仕様的に出来そうな気がして来ました。
 

ハルマキ

ユーザー
>リンクさん
それが最適解ですね。
僕もPCのMV…より以前のVXAceからその手法でやってます。

重要イベントとかでイベント用のマップから
移った時とかは、場所移動前に「マップ名表示OFF」、
出口に上記の形でONにする形をしてます。

ちなみに僕は「○○の町 宿屋」や
「○○の森 エリア1」みたいな形で、
マップ名を表示しても違和感ないようにしてるので、
その後スイッチや変数をいじることは特にないです。
 

リンク

ユーザー
ありがとうございます。
帰宅後組み替えてテストしてみたら、うまいこと動きました。
昔のツクールからやってる人なので、あまり「場所移動」の「後」に命令を書く習慣が無かったので、灯台下暗しなことになって居ました。
(前作のフェスではマップ名表示機能自体が無く、場所移動の代わりにイベントやプレイヤー単体を同一マップ内限定で即座移動できる命令もあったけど、本作ではプレイヤーにはそれが適用できなくなって他のイベント専用になったので、同一マップ内でも場所移動を要する事になっている)
 
トップ