Logic Driver Pro
頼むだけでLogic Driver Proのステートマシンを作る。ステート、トランジション、コンジット、条件グラフ、レイアウト、PIEでの確認まで、Logic Driver Assistを通して行う。
Logic Driver Pro
RecursoftのLogic Driver Proは、多くのUnrealプロジェクトがAI、クエスト、ダイアログ、ゲームプレイの流れに使っているステートマシンプラグインだ。Logic Driver 拡張機能を使うと、Ultimate Engine CoPilotがそのステートマシンを作ってくれる。アセットを作成し、ステート、トランジション、コンジットを追加し、トランジションの条件を書き、グラフをレイアウトし、コンパイルして、PIEで確認する。
これは、RecursoftによるLogic Driver用のオーサリングレイヤーである Logic Driver Assist を通して動く。そのため、すべての編集は、Logic Driverのグラフエディタで手作業で行う編集と同じものになる。
必要なもの
プロジェクトの Plugins フォルダに:
- Logic Driver Pro 2.11以降(Recursoft製)。
- Logic Driver Assist(
SMAssistプラグイン、Recursoft製)。
加えて、Logic Driver 拡張機能をオンにしたUltimate Engine CoPilot。
Logic Driver Assistがなくても、この拡張機能が害を及ぼすことはない。ステータス用のツールが1つ追加されるだけで、ほかは何も変わらない。
セットアップ
- プロジェクトに Logic Driver Pro 2.11以降 をインストールする。
- 同じプロジェクトの
Pluginsフォルダに Logic Driver Assist を入れる。 - CoPilotで 設定 > 拡張機能 を開き、Logic Driver をオンにする。初期状態ではオフになっている。
- エディタを再起動する。起動時にCoPilotがLogic Driver Assistの操作を見つけ、それぞれをツールとして追加する。
- AIにLogic Driverのステータスを確認するよう頼む。Logic Driver Assistが見つかったかどうか、いくつの操作が追加されたかを報告し、何かが足りなければそれが何かを教えてくれる。
頼めること
- 「Idle、Patrol、Chase、Attackを持つ敵AIのステートマシンを作って。プレイヤーが1,500ユニット以内に入ったらChaseにして。」
- 「どのステートからでも入れるStunnedステートを追加して、2秒後にIdleに戻して。」
- 「各ステートに速度と色を持たせて、ノード上に表示して。」
- 「何も交差しないようにこのグラフをレイアウトして、スクリーンショットを見せて。」
- 「アクターをレベルに置いて、PIEを開始し、今どのステートにいるか教えて。」
こうした依頼の裏で、AIは次のことができる:
- ステートマシンのBlueprintを作成し、ステート、トランジション、コンジット、リンクステート、Any State、ネストしたステートマシンを追加する。
- トランジションの条件をインラインで書くか、トランジションクラスを割り当てる。毎Tickではなくイベントでトランジションが発火するようにもできる。
- ステートに独自の変数を持つノードクラスを与え、各ステートの値を設定してノード上に表示する。
- アクターにステートマシンコンポーネントを追加し、開始するタイミングを設定する。
- グラフをレイアウトし、重なっているノードを見つけ、グラフのスクリーンショットを撮る。
- コンパイルしてから、実行中のPIEインスタンスのアクティブなステートを読み取り、流れが正しく動くことを証明する。
人が読めるグラフ
ステートマシンは読まれるためにあるので、AIはレイアウトを作業の一部として扱う:
- すべてのステートがつながっている。 マシンを開始するステートはちょうど1つで、つながっていないノードは残さない。
- 専用のフォルダ。 新しいステートマシンはきれいなフォルダに入る。既存のものは、頼まない限り手を付けない。
- レイアウトは最後に1回。 AIは新しいグラフを、すべてを追加し終えてからレイアウトする。そのため、プロパティに合わせて大きくなるノードにも余裕がある。ステートを横切ってしまうエッジは迂回させる。
- 思い込まずに確認する。 重なりを探し、グラフのスクリーンショットを撮る。また、グラフを横切って戻る長いエッジの代わりに、リンクステートやネストしたステートマシンを使う。
- PIEで証明する。 きれいにコンパイルできても、流れが正しい証明にはならない。そこでマシンを実行し、アクティブなステートを読み取る。
権限
読み取りは自由だ。アセット、グラフ、実行中のステートの確認は、確認なしで実行される。変更はすべて、CoPilotのほかの部分と同じように、先に確認を求める。ステートの削除やクラスの置き換えなど、元に戻せない少数の変更は破壊的な操作として示される。
ブリッジの仕組み
- ハードコードではなく検出。 CoPilotはエディタの起動時にLogic Driver Assistの操作を読み取り、インストールされているバージョンにあるものをすべて追加する。Recursoftが操作を追加・変更すれば、CoPilotの更新なしでツールもそれに従う。
- 向こうの説明、向こうのパラメータ。 各ツールはLogic Driver Assist自身の説明とパラメータ一覧を持つので、AIには実際の引数名と型が見える。間違った引数での呼び出しは、そのまま送られず、正しい引数を示して返される。
- どこでも同時に。 ツールはCoPilotのチャット、Claude CodeやCursorのような外部MCPクライアント、そしてコーディングエージェントで使える。MCP連携を参照。
- 名前。 Logic Driver Assistは操作に
ld.add_stateのようにドットを使って名前を付ける。CoPilotではそれがld_add_state、ld_add_transition、ld_compileなどになる。Recursoftのドキュメントではドット付きの名前が使われる。 - プラグイン同士はリンクしない。 ブリッジはコンソールコマンドを通してLogic Driver Assistとやり取りする。そのため、どちらのプラグインもビルドのためにもう一方に依存せず、CoPilotはLogic Driverがインストールされていてもいなくても同じように動く。
実験的機能
Logic Driver AssistはRecursoftによって実験的と位置付けられており、その操作はまだ変わる可能性がある。CoPilotは操作をハードコードせずに起動時に読み取るので、拡張機能は自動でそれに追従する。
拡張機能の仕組みについては拡張機能を、Logic Driver自体についてはLogic Driverのドキュメントを参照。