高度なイベント条件 - ビジュアルイベントエディタアドオン

高度な条件

ビジュアルイベントエディタを使って、複雑で動的な条件を視覚的に構築しましょう。

高度なイベント条件 は、ビジュアルイベントエディタ に ノードベースのブール条件システム を追加し、AND、OR、NOT を使用して複数の条件を組み合わせることで、イベントをネストされた条件分岐の迷路にする複雑なロジックを構築することができます。

条件は実行時に動的に評価され、マップイベント、 troop イベント、共通イベント、条件分岐、条件付き待機、互換性のあるイベントコマンド入力、その他 とともに使用できます。

条件を視覚的に構築

3つの論理演算子のおかげで、必要なロジックを正確に作成するために条件ノードを接続して組み合わせます:

  • AND(接続されたすべての条件が真である必要があります)
  • OR(少なくとも1つの接続された条件が真である必要があります)
  • NOT(接続された条件を反転します)

条件は自由に組み合わせたりネストしたりでき、単純なチェックから複雑なブール式まで、ロジックを読みやすく保ちながら何でも作成できます。

高度な条件には、デバッグ、特殊なケース、カスタム JavaScript 条件のために TRUE、FALSE、および Script ノードも含まれています。

動的なブール入力

高度な条件はイベントページの条件に限定されません。

イベントコマンドの互換性のあるブール入力(条件分岐、スイッチ、セルフスイッチなど)には、条件グラフを直接受け取ることができます。コマンドが実行されるときに条件が評価され、その結果が入力値として使用されます。

RPG Maker MZ では、引数がブール値として宣言されている互換性のあるプラグインコマンドでも自動的に機能します。プラグイン作者による特別な統合やアクションは必要ありません。

動的なイベント条件

一部の条件は、RPG Maker が通常イベントを更新しない場合でも変化する値に依存します。

高度な条件には、これらのケースを自動的に処理するための独自の更新システムが含まれており、更新モードと間隔を変更したり、必要に応じて手動で更新を要求するためのコントロールが含まれています。

条件付き待機

何かが真になるまでイベントを待機させる必要がありますか?

条件付き待機 は、高度な条件を繰り返し評価し、次の出力を提供します:

  • 未満足の場合
  • 満足した場合
  • タイムアウトした場合

評価間隔を制御し、オプションで最大試行回数を設定できます。

無料版

無料版には、完全な高度な条件のコアシステム が含まれています。

含まれる機能:

  • AND、OR、NOT
  • TRUE と FALSE
  • スクリプト条件
  • 標準の RPG Maker 条件
  • 条件付き待機
  • 動的なイベント条件
  • 更新コントロール
  • 互換性のある動的なブールコマンド入力
  • 自動 MZ プラグインコマンドブールサポート

フルバージョン

フルバージョンには、無料版のすべての機能 に加え、以下のような領域をカバーする120以上の使いやす条件ノードが含まれています:

  • キャラクター、クラス、スキル、装備、ステート、パラメータ
  • パーティとインベントリ
  • 敵、troop、戦闘状態
  • イベントとキャラクター
  • マップ、地域、地形、タイル
  • プレイヤーと車両の状態
  • タイマーとシステム情報
  • 入力と画面の状態
  • データベースデータとノートタグ
  • 距離と位置のチェック
  • その他多数

多くの高度な条件は、動的な指定 もサポートしており、対象や比較値を直接値、ゲーム変数、または JavaScript 式から取得することができます。

フルバージョンの目的はシンプルです:スクリプト条件で再作成させるのではなく、一般的なチェック用の出来合いのノードを提供することです。

**

要件と互換性

ビジュアルイベントエディタ(最新バージョン)が必要です。

対応:

RPG Maker MV
RPG Maker MZ

一部の機能はエンジンの機能に依存します。特に、自動的な型指定されたプラグインコマンド引数サポートは RPG Maker MZ で利用可能です。

インストール

  1. ビジュアルイベントエディタ の最新バージョンをインストールします。
  2. このページ からこのアドオンの最新バージョンをダウンロードします。
  3. ダウンロードしたアーカイブ(.zip)をプロジェクトのルートに配置します(.rpgproject または .rmmzproject の隣に配置してください)。
  4. プラグインマネージャーで Drag_VisualEvent_AdvancedEventConditions を追加して有効にします。
  5. プレイテストを開始し、ビジュアルイベントエディタを開きます。
  6. ビジュアルイベントエディタのアドオンメニューを確認し、このアドオンがインストールされていることを確認します(または、新しいノードコマンドがノードリストに表示されるか確認します)。
  7. お楽しみください!

ダウンロード

安全に、そして楽しいゲーム開発を! :]

「いいね!」 4

これは本質的に有用な方向性です。ネストされた条件分岐はイベントロジックが死滅する場所であり、それを解決する適切な答えは視覚的なブーリアングラフです。

誰かがこれに基づいて長時間のゲームを構築する前に、ドキュメントで明確にしておくべきことがあります。MZでは、requestRefreshを呼び出すものがある場合にのみ、イベントページの条件が再評価されます。コアモジュールは、スイッチや変数の変更、および party イベントの短いリストに対してこれを発火します。しかし、アクターのHPが変動したときや、ゴールドが増減したとき、あるいは条件が参照するスクリプト値がたまたま変更されたときには発火しません。つまり、スイッチや変数以外のものを参照するグラフは、ページが更新された瞬間には正しい状態ですが、それ以降は関連するスイッチが次の更新を強制するまで静かに陳腐化していきます。イベントは間違ったページに留まり、外からは条件が単に壊れているように見えてしまいます。

回避策には2つの方法があり、それぞれ異なるトレードオフがあります。一つは、条件ノードをコアがすでに無効化対象としている状態に制限する方法です。もう一つは、揮発性状態を参照する条件を追跡し、その状態が変更された場合にrequestRefreshを自分で呼び出す方法です。後者のほうがはるかに強力ですが、値が変更されるたびに更新コストがかかるため、グローバルに有効にするのではなく、条件ごとにオプトイン(任意の有効化)とする価値があります。

もう一つはショートサーキット評価です。AND演算子が最初のfalseノードで停止する場合、チェーンの奥にあるスクリプトノードは全く実行されません。これは通常、速度を重視する場合に望ましい挙動ですが、副作用を持つスクリプトノードの発火が不規則になります。どちらのアプローチを選んでも、人々がそこに副作用を記述することは間違いないので、ドキュメントに一行添える価値があります。

エディタは循環を拒否しますか?出力が入力側に遡って再接続できるグラフは、評価器をハングアップさせる可能性があり、実行中のゲーム内部からそれを診断するのは本当に困難を極めます。

「いいね!」 2

CSAF様、こんにちは。コメントをいただきありがとうございます。:slight_smile:

ご質問にお答えします:

  • このプラグインは、プラグイン条件の一部である値やデータ状態が変更されるたびに requestRefresh を呼び出しません。なぜなら、それは多数の異なるコアスクリプト関数をモンキーパッチすることになり、特に一部の値には元々ゲッター/セッターアクセサが存在しないため、プラグイン間の競合や互換性の問題が発生するリスクが大幅に増大するからです。
    代わりに、このプラグインは一定のフレーム数(デフォルトは30)ごとに実行される周期的な requestRefresh を設定します。このシステムの応答性を高めたり低めたりするためにフレーム間隔を変更するためのコマンドがあります。また、直接 requestRefresh を呼び出すコマンドや、この周期的な requestRefresh 呼び出しを無効にして手動呼び出しのみを信頼するモードも用意されています。
  • はい、このプラグインはパフォーマンスのために、JavaScriptと同様に短絡評価をサポートしています。したがって、スクリプト条件は条件評価以外には使用すべきではありません。そもそもそれは悪い慣行です。
  • はい、エディターは条件のサイクルを拒否します。そもそもサイクルを作成できないはずですが、条件ノードを使ってサイクルを作成してしまった場合、エディターはコンソールにエラーを出力します。

これらはすべて、プラグインヘルプの説明やノードのツールチップの説明にすでに記載されているはずです。もし忘れていたことがあればごめんなさい。:slight_smile:

「いいね!」 1