RPG Maker MZ用RPX Godotライクスイート

PolyTrigger2D + StateMachine2D — 2つのエンジン。1つのツールキット。RPG Maker MZが欠いていた、Godotスタイルのレイヤー。

:link: itch.ioで入手

Discordサーバーで割引や無料プラグインを受け取る

https://discord.gg/W4HSw695kP


PolyTrigger2Dは、すべてのイベントに実際の幾何学的な衝突形状(円、矩形、楕円、カスタム多角形)を提供します。回転、追跡方向の視界锥、Godotスタイルの名前付きレイヤー、非同期近接シグナルが含まれます。並列イベントは不要、接触も不要です。

StateMachine2Dは、すべてのイベントを有限状態マシンに変えます。無制限の状態、振る舞い(追跡、逃避、巡回、徘徊、追従)、シグナル、非同期コルーチン、そして初心者でも使えるビジュアルなプラグインコマンドワークフローを備えています。

これらを組み合わせることで、完全なAI+物理レイヤーが形成されます。形状が検知し、FSMが反応します。プレイヤーを見て追跡したり、逃げたり、ゾーンから伏撃をかけたり、視界锥でカットシーンをトリガーしたりするNPC—all parallel processなしで。

:wrench: 両方のプラグインは完璧になるまで更新されます。 バグを見つけましたか? 新しい振る舞い、新しい形状、新しいシグナルを望んでいますか? 私たちに伝えてください — 私たちが構築します。このツールキットはコミュニティと共に成長します。


パート1 — PolyTrigger2D (Area2D)

すべてのイベントに実際の幾何学的な衝突形状を。RPG Makerが決して持たなかった Godot Area2D レイヤー。

何をするのか

形状を任意のイベントまたはプレイヤーにアタッチします。形状はグリッドに縛られません — オフセット、回転、Godotと同じ名前付き物理レイヤーを持つピクセル空間で動作します。何かが重なったときに非同期の body_entered および body_exited シグナルを発火します。ぶつかる必要も、接触する必要も、並列プロセスも必要ありません。ゾーンには、何かが入った瞬間に発火します。

機能

  • 4つの形状タイプ — 円、矩形、楕円、カスタム多角形(3〜16頂点)
  • 回転 — 形状はイベントとともに回転し、任意の角度で度単位
  • 追跡方向 — 視界锥スタイル、イベントが向きを変えると自動的に回転
  • Godotスタイルのレイヤーとマスク — 16個の名前付き物理レイヤー(「Player」、「Enemy」、「Trap」…)
  • 非同期近接シグナル — onEnterActions / onExitActions を1つのテキストボックスで
  • 並列イベント不要 — シグナルは近接時に自動的に発火
  • 接触不要 — MZの任意のトリガータイプ(0/1/2/3/4)で動作
  • デバッグオーバーレイ — 常に表示またはF10で切り替え、再描画コストゼロのためにキャッシュ済み
  • Area Forgeツール — 視覚的に形状を描画し、notetag / コメント / スクリプトをエクスポート
  • ゼロ割り当てホットパス — アクティブなエリア200個でも60fpsを維持
  • ピクセル移動対応 — _realX/_realY が存在する場合に使用(Altimit、QMovementなど)
  • 自己診断 — diagnose(id) で正確な問題を特定
  • 依存関係ゼロ — 単独で動作

用途

  • ステルス敵の視界锥
  • 円形の回復ゾーン
  • 矩形のトラップフィールド
  • 多角形の部屋トリガー
  • 近づくと気づくNPC
  • 近くのターゲットをチェックする投射物
  • 任意の形状、任意の方向に整列したゾーン

パート2 — RPX StateMachine2D (FSM)

すべてのイベントに実際の有限状態マシンを。入れ子になった分岐、並列スイッチ、ページスパゲッティを 読みやすい状態 に置き換えます。

何をするのか

イベントのnotebxまたはページコメントで状態を定義します。各状態には振る舞い(イベントが自動的に実行すること)、オプションのアニメーション、およびオプションの enter / update / exit JavaScriptが含まれます。遷移は条件、シグナル、または近接に基づいて発火します。パース時に 1回だけコンパイル されるため、フレームごとのパースコストはゼロです。

機能

  • 無制限の状態 — notebx、プラグインコマンド、またはスクリプトから実行時に追加
  • 8つの組み込み振る舞い — none、idle、wander、patrol、chase、flee、approach、follow
  • 完全なJSボディ — enter / update / exit に this = キャラクター、無制限のコード
  • 非同期コルーチン — await this.waitFrames(60)、waitSignal、waitCondition、waitState
  • シグナル — 任意の名前付きシグナル、状態ローカルまたはグローバル、スクリプトまたはプラグインコマンドから送信
  • 遷移条件 — スコープ内に this を持つ完全なJS、裸のヘルパーは自動修正
  • 1クリックトリガー — AddTrigger approach/leave/touch/actionkey/polyEnter/polyExit/always
  • 移動ヘルパー — moveTowardPlayer、moveAwayFromTarget、moveTowards(x,y)、distanceToPlayer
  • デバッグオーバーレイ — 各イベントの上に状態名を表示、F7で切り替え、キャッシュ済みPIXI.Text
  • 自己診断 — StateMachine2D.diagnose(id) + selfTest() ヘッドレススイート
  • セーブ/ロード安全 — プレーンデータのみ保存;ロード後にコンパイルされた関数を再構築
  • MVフォールバック — プラグインコマンド経由でRPG Maker MVでも動作

用途

  • 巡回し、プレイヤーに気づき、追跡し、攻撃し、戻る護衛
  • 近づくと徘徊し、逃げる動物
  • フェーズチェンジと Telegraphed アタックを持つボス
  • ストーリーフラグやクエスト状態に反応するNPC
  • 視界锥による伏撃遭遇
  • スクリプトされた振る舞いを持つカットシーンアクター
  • かつては入れ子になった分岐の6ページだった任意のイベント

例 — 12行で護衛

<State: GUARD>
behavior: patrol
range: 4
anim: slime_idle
transition: CHASE if this.isPlayerNear(6)
</State>
<State: CHASE>
behavior: chase
anim: slime_run
transition: ATTACK if this.isPlayerNear(1.2)
transition: GUARD if !this.isPlayerNear(9)
</State>
<State: ATTACK>
behavior: none
enter: this.playAnim('slime_attack');
update: this.processAttack();
transition: CHASE if this.stateTime() > 60
</State>
「いいね!」 1