練習ページ/よく使うマップイベントの注意点

Last-modified: 2024-03-26 (火) 21:54:37
━  ━
つくる目的:
- フリーズやすり抜けを伴う危険なバグを予防する
- マップイベントのコーディングルールを明瞭化・共有する
- ここに加筆したい情報があるな~って方がすぐに加筆できるようにひな形を作っておく

下書きです、書き終えるまでけっこう時間かかるかも

まだ、各見出しと要旨をメモした段階です……

 

このページでは、ゆめ2っきで汎用的に用いられているマップイベントがどのようにして組まれているのか紹介し
その中でバグや製作者間での不都合ができる限り起こらないように、好ましいイベントの組み方や避けたほうがよいイベントの組み方を説明していきます。
追記・修正よろしくお願いします。

その定義上、このページで取り扱う知識の中にはツクール豆知識やその他のハウツーと被っている部分があるかもしれません。よければそちらもご参照ください。

 
 
 
 

イベントコマンド・コモンイベント単体の説明

 

指定操作の全実行

機能の概要
◆キャラクターの動作指定が全て終了するまでイベントの実行を待つ。
使用上の注意点
ありとあらゆる◆キャラクターの動作指定が対象で、これには「エフェクト変身時」「エフェクトの長押し動作」なども含まれる。
そのエフェクト変身時や長押し動作を行った際にも◆指定操作の全実行コマンドが実行されている。

このため、◆キャラクターの動作指定が終わっていない状態でエフェクト変身などを行うと、ゲームの進行が止まってしまう。
◆キャラクターの動作指定で「移動できない場合は無視」にチェックを入れているのなら最終的にゲーム進行が再開されるが、
そうでない場合、「壁などに当たって指定された動きを終わらせられない」と終わらない終了を待ち続けてフリーズしてしまう。

こういった性質上、定期的に並列処理するイベント内でよく考えずに使うと意図せずゲーム進行を止めてしまう危うさがある。
下記のイベント中動作禁止と合わせて「イベントシーンを見せる為に使う」のがオススメ。

 

イベント中動作禁止・イベント中動作禁止解除

  • こういう役割だよ
  • 場所移動のときやウェイト・指定操作の全実行・主人公対象の動作指定があるときに挟もう
  • 並列実行から起動するときはとても慎重に、なるべくしないで
 

とりあえず関連する必要な情報を書いてみた。まだこのページ自体草案的なものだと思うので、適宜取捨選択してください
このページでやりたいことと合ってなかったらばっさりいっちゃってくださいな

使い方

イベント中動作禁止・イベント中動作禁止解除は、コモンイベントを呼び出して利用します。

◆イベント呼び出し:イベント中動作禁止 (コモンイベント0008番)
◆イベント呼び出し:イベント中動作禁止解除 (コモンイベント0009番)
 

機能

イベント中動作禁止を呼び出すと、こんな状態になります。

  • メニュー画面を開けなくなる
  • 足音が鳴らなくなる
  • 決定キー長押し動作ができなくなる
  • お気に入りエフェクトやシフトチェンジが使えなくなる

この状態はイベント中動作禁止解除が呼び出されるまで続きます。
イベント中動作禁止解除を呼び出すと元に戻ります。

イベント中動作禁止は、イベントの最中に長押し動作やシフトチェンジなどを使わせないようにするために利用できます。
イベント中動作禁止だけだと、イベントが終わった後もメニューが開けなかったりするままなので、
そういうときはイベント中動作禁止解除も呼び出す必要があります。

 

これは画面が真っ白になって夢から目覚める強制起床イベントの作例です。
この実装には1つ問題があって、画面が真っ白になっていく途中シフトチェンジを使用できてしまうので、現実部屋でシフトチェンジが起動するバグが生じます。

◆画面の色調補正:(R200,G200,B200,S100), 2.0秒(W)
◆イベントの呼び出し:夢→現実(ビックリ起き (コモンイベント0005番)
 

このようにイベントの始めと終わりをイベント中動作禁止・禁止解除で挟んでやるとうまくいきます。

◆イベント呼び出し:イベント中動作禁止
◆画面の色調補正:(R200,G200,B200,S100), 2.0秒(W)
◆イベントの呼び出し:夢→現実(ビックリ起き
◆イベント呼び出し:イベント中動作禁止解除
 

ちなみに夢→現実(ビックリ起き(コモンイベント0005番)はその実行内容の中身でイベント中動作禁止解除を呼び出します。
従ってこういう形でも問題ありません。

◆イベント呼び出し:イベント中動作禁止
◆画面の色調補正:(R200,G200,B200,S100), 2.0秒(W)
◆イベントの呼び出し:夢→現実(ビックリ起き
 

どういうときに使うのがいいのか

イベント開始条件が、決定キーを押されたとき、主人公から触れたとき、イベントから触れたとき、自動的に始まる、
いずれかに当てはまるときに利用してください。

定期的に並列処理するでイベント中動作禁止・禁止解除を呼び出そうとする場合は、少し注意が必要です。
(基本的に定期的に並列処理するマップイベントで利用することはあまり推奨しません)
イベント中動作禁止はコモンイベントで利用されていることも多く、イベント中動作禁止解除がコモンイベントの実行中に呼び出されてしまうと、バグの原因になるからです。

 

応用:イベント中動作禁止中に足音だけ鳴らしたい

◆イベント呼び出し:イベント中動作禁止
◆スイッチの操作:[0033]をONにする
◆キャラクターの動作指定:主人公, 一歩前進
◆指定動作の全実行
◆イベント呼び出し:イベント中動作禁止解除

イベント中動作禁止にしたいんだけど足音は鳴らしたい、という場合はこうやってスイッチ33番をONにします。

 

応用:イベント中動作禁止中かどうかを調べる

条件分岐でスイッチ28番がONかどうかを調べれば分かります。
スイッチ28番がONなら、イベント中動作禁止中です。

スイッチ28番を操作しても、イベント中動作禁止の状態になったり、解除したりすることはできません。
操作してしまうことで逆にイベント中動作禁止状態かどうか、コモンイベントで動いているシステムが検知できなくなってしまいます。
スイッチ28番はON/OFFを操作しないようにしてください。

 

イベント処理の中断

  • 直接的にバグに絡むケースは少ないが、よく使うので解説したほうがいいかもぐらいの
 

画面の消去・表示設定

  • すぐに「フェードアウト」「フェードイン」に戻しておいてください
 

イベント中動作禁止かどうかの確認

  • 条件分岐でできる
  • 閉じ込めキャラのイベントに仕込んでください 画像の例だとすっぴん座りのときは例外的にイベントが起動する その後にCEV0047 (座【呼】強制解除) を起動している
  • 水中マップでは場所移動のときにも仕込んでください、ぺんぎんシフト長押し中にマップイベントを起動できちゃうから
 

セーブ画面の呼び出し、セーブ禁止の変更

機能の概要
セーブ画面を呼び出す、メニュー画面からのセーブを許可・禁止する
使用上の注意点
ゆめ2っきではバージョンアップ時、セーブデータの内容を最新版に合わせて変更する引継ぎ処理があります。
これは現実部屋でセーブしていることが大前提の処理なので、他の場所でセーブできてしまうとバグの原因になったり、何らかのバグを悪化させてしまうことがあります。
「あらゆる地形を無視できるバグ」をセーブできてしまったら大変なことになるのは想像に難くないですね。やばい。

デバッグモードであれば、これらのコマンドを用意せずともメニュー画面からセーブができます。
メニュー欄の空欄部分を選ぶとセーブ画面が開くので、うまく活用してあげてください。

 

注釈:│ ▽SkillsMAP0000到達

  • 特殊技能の到達判定を利用するときは絶対に併用して!
  • 新規の特殊技能判定を増やさないで!
 

コウモリワープ禁止

  • マップイベント側で呼び出して!
 

メインシステムの変数・スイッチ

  • 以下の変数・スイッチは特に慎重に扱って!なるべくマップイベント側では使わないでください!
  • 以降は逆引きだよ!
 

場所移動の処理の説明

 

並列実行イベントの説明

 

自動実行イベントの説明

 
 

コメント

  • 危険なバグを予防したり、マップイベントのコーディングルールを明瞭化・共有する目的で、このようなページがあったら助かるなと思い、いったんひな形だけ作ってみました。 -- 2i9? 2024-03-24 (日) 18:02:06
  • 「うっかりバグ産むミスの予防」辺りが目的なのかなと思ったんだけど、今ある"イベ中動作禁止の項目"のようにイベントサンプルから使い方から…と書くのは長々として少し冗長気味だから、ざっくり要点だけに絞った方がより広く伝えやすいかもと思った。(というかこの構成だとcommon event helpっぽい)
    個人的には決定事項ぐらいの簡潔さで「こういうバグが起こるかもしれんから、使う時はここに気を付けてね」程度の内容に抑えれば目的としては十分かなって思いました、まる。ってことでそれくらいのうすあじで勝手に加筆した。趣旨がそっちじゃないならまるっと消して書き直してもらってかまいません。 - kuraud -- 2024-03-26 (火) 21:21:41