mcpField
H
Hera Agent Unity

Hera Agent Unity

ローカル
github.com開発ツール305 日前に更新

Hera Agent Unity について

Hera Agent Unityは、ローカルCLIとUnity Connectorを介して、コーディングエージェントを起動中のUnity Editorに接続します。シーンやアセットの編集、テスト、描画結果の確認を含む反復作業に対応し、一般的な状態応答を簡潔に保ちます。

主な機能

  1. 01Editorの状態、シーン、コンソールの確認
  2. 02GameObject、コンポーネント、アセットの編集
  3. 03C#、Editor、PlayModeテストの実行
  4. 04画面のキャプチャとUI入力の検証
  5. 05CLIによる起動中のUnityへの接続

活用シーン

  1. 01Unityのコンパイルエラーを調査して修正
  2. 02シーン、コンポーネント、UIの構築
  3. 03テストを実行して描画結果を確認
  4. 04エージェントによるゲーム内入力の検証

MCP 対応

READMEでは、HeraをCLIとUnity Connectorの間のブリッジとして説明しています。MCPサーバーの提供やMCPサーバーへの接続については記載されていません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"notnull92-hera-agent-unity": {
"command": "npx",
"args": [
"-y",
"hera-agent-unity"
],
"env": {
"HERA_MCP_ENABLED": "<HERA_MCP_ENABLED>"
}
}
}
}
起動コマンドnpx -y hera-agent-unity
設定が必要な環境変数
HERA_MCP_ENABLED

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmhera-agent-unity0.2.17

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

hera-agent-unity ロゴ

Release GitHub stars License Go Unity Platform

hera-agent-unity

Unity 内で AI コーディングエージェントに手と目、そしてチェックリストを与えます。

Codex、Claude、Cursor、Copilot、AntiGravity など、シェルを扱えるエージェントは、Unity Editor の実際の状態を確認し、変更を加え、実行してテストし、結果を確認できます。証拠によって完了が確認できるまで修正を続けます。


3 ステップで始める · 何ができますか? · なぜ Hera なのか? · どれほど優れていますか? · 使用例 · コマンド

English · 한국어


Hera を 1 分で理解する

Hera がなくても AI は Unity の C# コードを書けますが、コードを書き終えた後に、実際の Editor がどのような状態になっているかを確実に把握することはできません。

通常のループは次のようになります。

You ask the AI
   ↓
AI writes code
   ↓
You open Unity and wait for compile
   ↓
You copy the error back to the AI
   ↓
AI fixes it
   ↓
You press Play and explain what happened
   ↓
repeat...

Hera はこのループを閉じます。

You ask the AI
   ↓
AI uses Hera
   ↓
Unity compiles, runs, tests, clicks UI, captures the result
   ↓
Hera gives the real result back to the AI
   ↓
AI fixes what failed and checks again
   ↓
verified result

簡単に言うと、次のとおりです。

AI は頭脳です。Hera はその頭脳に、Unity を操作する手、結果を確認する目、そしてプロジェクトがまだ壊れている間に作業を止めないためのチェックリストを与えます。

Hera は Unity を置き換えるものでも、コーディングエージェントを置き換えるものでもありません。両者をつなぎ、エージェントがソースコードだけを頼りに推測するのではなく、実際のプロジェクトの事実に基づいて作業できるようにします。


どのような問題を解決しますか?

Unity の開発には、ソースファイルの外にあるフィードバックループがあります。

コード上では正しく見える変更でも、次のような理由で失敗することがあります。

  • Unity がコンパイルできていない;
  • 間違った Scene が開いている;
  • GameObject または Component が存在しない;
  • Inspector のシリアライズ値が異なる;
  • 使用中の Editor バージョンで Unity API が変更されている;
  • Console に例外が含まれている;
  • Play Mode の動作が Edit Mode と異なる;
  • ボタンは画面に表示されていても、入力を受け付けられない;
  • UI レイアウトは技術的には有効でも、見た目が正しくない;
  • AI がこれらを実際に確認する前に「完了」と言ってしまう。

Hera を使えば、エージェントは実際の Editor に問い合わせられます。

hera-agent-unity status
hera-agent-unity console --type error
hera-agent-unity scene info
hera-agent-unity editor play --wait
hera-agent-unity test --mode PlayMode

選択した Editor が実行されていない場合、Hera は Connector の検出前に 対象プロジェクトを起動できます。

hera-agent-unity --project C:/Projects/Game editor launch
hera-agent-unity --project C:/Projects/Game editor restart

プロジェクトのバージョンは ProjectSettings/ProjectVersion.txt から取得され、一致する Unity Hub のインストール先は UNITY_HUB_EDITOR またはプラットフォームの既定の場所(Windows では %ProgramFiles%\Unity\Hub\Editor)から取得されます。Hub の場所をカスタム指定するには --hub-root を渡してください。起動時には通常の Package Manager の動作を使用し、-noUpm は使用しません。新しいプロセスがそのプロジェクト固有のハートビートを公開した時点で戻ります。Windows では、エージェントのシェルで標準の共通プロファイル環境が省略されている場合、Hera が Unity の子プロセスに対してその環境を復元するため、UPM のパス解決も通常のデスクトップ起動と同じ基準から始まります。

重要なのはコマンド名ではありません。重要なのは、AI と Unity の間をあなたが取り持たなくても、エージェントが観察 → 変更 → 実行 → 検証 → 修正できることです。


実際に何ができるのですか?

Hera は、1 行の簡単なチェックから、AI を活用した Unity ワークフロー全体まで対応できます。

AI にさせたいことHera が提供するもの
Unity の状態を確認するエディターのライブ状態、バージョン、プロジェクト、コンパイル状態、Console エラー
適切なエディターを起動または再起動する記録された Unity バージョンを使って、指定したプロジェクトを起動または再起動し、そのプロジェクトのハートビートを待機
現在の Scene を把握するScene 情報、GameObject の検索、Component と Inspector の読み取り
Scene を変更するScene の作成/保存、GameObject の作成、複製、名前変更、親子関係の設定、変換、タグやレイヤーの設定、削除
Component を編集するシリアライズされた Component の値の追加、削除、確認、変更
プロジェクトのアセットを操作するAssets/ 以下のアセットの検索、作成、コピー、移動、削除
プロジェクト固有の C# を実行するUnity API とプロジェクトのアセンブリにアクセスして、読み込み済みエディター内で C# を実行
アニメーションを作成するAnimationClip、AnimatorController のステートマシン、Timeline のトラック/クリップを作成
機能をテストするEditMode テストと PlayMode テストを実行し、ドメインリロードをまたいで結果を保持
ゲームをプレイするPlay Mode に入り、実際の状態変化を待って確認し、その後停止
Unity のレンダリング結果を見るScene/Game ビューや個別のオブジェクトをキャプチャし、範囲を限定した uGUI の識別情報/座標や Camera.main の 3D 物理情報も取得
Unity の入力をテストするuGUI のレイキャストを確認するか、Input System のキーボード/マウス操作を合成して記録し、Play Mode で再生
UI を構築するuGUI レイアウトを作成し、生成された結果を検証
参考 UI を再現する参考 UI を計測し、実際の Unity UI を構築してキャプチャし、比較しながら反復
ゲームの手触りを改善する揺れ、ヒットストップ、フィードバック、カメラ、サウンド、報酬、アクセシビリティのレシピをエージェントに提供
自動生成のように見える UI を整理するよくある余白、階層、タイポグラフィ、色、装飾の問題を検出
独自のスタジオ用コマンドを作成するプロジェクト固有の [HeraTool] アクションを追加すると、自動的に表示
複数のエディターを開いて作業する対象のプロジェクトを指定し、ポート変更後もそのプロジェクトの識別情報を保持
リスクの高い作業に承認を必須にする破壊的な操作を事前チェックし、一致する承認トークンがある場合にのみ続行

つまり、Hera は単なる「Play を押す」ためのリモート操作ツールではありません。実行中の Unity プロジェクトを取り巻く、編集と確認の一連の作業を支えるブリッジです。


Hera を使う理由

1. AI が自分の作業を確認できます

エディターにアクセスできない場合、エージェントは多くの場合、最後にこう言います。

「これで動くはずです。」

Hera を使えば、次のような証拠を示して作業を完了できます。

compile: passed
console errors: 0
EditMode tests: 18/18
PlayMode tests: 6/6
button click: verified through EventSystem
final Game View: captured

この違いこそが、Hera が存在する主な理由です。

2. コピー&ペーストの橋渡し役をしなくて済みます

次の作業を何度も繰り返す必要はありません。

  1. AI からコードをコピーする。
  2. Unity に切り替える。
  3. コンパイルを待つ。
  4. エラーをコピーして戻す。
  5. Scene の階層を説明する。
  6. Play を押す。
  7. 何が起きたかを説明する。

AI がこの一連の作業の大部分を自分で行えます。

3. すでに使っているツールで動作します

通常の運用方法は CLI です。シェルコマンドを実行できるエージェントなら、どれでも利用できます。

  • Codex
  • Claude Code
  • Cursor
  • GitHub Copilot
  • AntiGravity
  • スクリプトと CI ジョブ
  • 独自の自動化ツール

Python サーバーは不要で、ホストプロトコルの設定も必要ありません。

4. 人間だけでなく、AI のコンテキストを考慮して設計されています

ツールの応答が大きいほど、モデルが読み込む入力も増えます。そのため Hera は、GameObject の ID のみを返す検索や、必要なときに取得できるツールスキーマなど、よく使うコマンドに簡潔な表示を提供します。

目標はシンプルです。次の判断に必要な最小限の Unity の状態だけをエージェントに送ります。

5. 「リクエストを送信した」ことと「作業が完了した」ことの違いを理解しています

Unity は、スクリプトの再コンパイル、ドメインのリロード、ポートの変更、Play Mode への移行、テストの実行を行い、その間に接続が切れることもあります。

Hera は、HTTP 送信に成功したことを Unity の作業完了の証拠とみなすのではなく、こうしたワークフローを追跡します。

6. プロジェクトの成長に合わせて拡張できます

組み込みコマンドから始めましょう。後から、ダンジョンの部屋を作成する、クエストのグラフを検証する、テーブルをベイクする、テストバトルを生成する、スタジオ固有のアセットルールを確認するといった、プロジェクトで毎日繰り返すワークフローに合わせて [HeraTool] を追加できます。


性能はどうですか?

Hera は、曖昧な「AI の魔法」といった主張を避けています。代わりに、リポジトリでは具体的な測定値と互換性の証拠を公開しています。

エージェントがよく行う読み取りに対する応答はコンパクトです

list --compact のトークン数を測定したところ、テスト対象の Unity バージョン全体で約 93 推定トークンでした。保持されているクロスバージョンのフィクスチャでは、find_gameobjects --ids は49~55 推定トークンでした。

| Unity Editor | list --compact | find_gameobjects --ids | | list --tool <name> --action <action> | 選択したアクションのパラメーター、結果、安全性のみを読み取ります。 | |:---|---:|---:| | 2022.3.62f2 | 93 T | 54 T | | 2023.2.22f1 | 93 T | 54 T | | 6000.3.5f2 | 93 T | 49 T | | 6000.5.0f1 | 93 T | 55 T |

T は、Hera の CLI ペイロードのみを対象とした、単純な ceil(UTF-8 bytes / 4) による推定値です。プロバイダーの課金テレメトリではありません。測定方法の詳細は、トークン削減ベンチマークをご覧ください。

Unity の各世代で互換性を確認しています

サポート対象の Unity バージョンは Unity 6.6 以降(最低バージョンは 6000.6)です。リリース時のコンパイルゲートでは、代表的な Editor の使い捨ての空プロジェクトに、Connector の正確なソースを通常の UPM 依存関係としてインストールし、クリーンなコンパイル、リリースゲートテスト一式の成功、コンソールエラーがゼロであることを必須としています。

バケット代表的な Editor最新のフルゲート結果
6000.6+6000.6.6f1PASS

この下限が示すのは、実際に検証済みの範囲です。代表的な Editor は 1 つのみであり、ほかの Unity 系列との互換性は保証していません。AgentConnector/package.json に 6000.6 の下限が設定されているため、古い Editor ではコンパイル時に失敗するのではなく、Package Manager が Connector のインストールを拒否します。

CLI と Connector のバージョンは意図的に分けています。

v0.2.0 はコンパイルテストだけでなく、実際の Editor で動作確認済みです

最終リリース候補は、Unity 6000.5.6f1 で Connector 0.0.86 として読み込まれ、Input System 1.20.0 とともに、リリース前に実際の Play Mode で動作確認されました。保存されたスモークテストの証拠には、次の内容が記録されています。

  • 実際のカタログから 31 個のツール/80 個のアクションを確認
  • Play Mode でのキーボードの押下/解放とマウス位置の合成
  • 制限付き入力シーケンスの正常な完了
  • 5 件のイベント/588 バイトの入力記録を作成し、同じファイルを 2 回正常に再生
  • 再生後、Hera が管理するコントロールで押下状態のまま残ったものはゼロ
  • Connector の ReleaseGateTests:18/18 PASS
  • 実行後の Unity Console エラー:0
  • Editor を正常に終了し、新たなシーン復旧バックアップの作成は 0 件。使い捨てフィクスチャのマニフェストとロックファイルは復元済み

これは、5 バージョンを対象としたコンパイルマトリックスを、リリースされた機能セットでのエンドツーエンドの Editor 回帰テストで補完するものです。

実際のゲーム制作で、検証済みのプレイ可能な結果に到達しました

保存された Crystal Forge のシナリオでは、AI にコードとテストの作成、UI の構築、コンパイル、Unity EventSystem の入力操作、テストの実行、レンダリング結果のキャプチャ、Editor をクリーンな状態にすることを求めました。

最終結果:修正後に PASS。初回の試行:FAIL。

実行時間は15 分 52 秒でした。この実行が参考になるのは、失敗を編集で取り除かずに残したためです。閉じた検証ループが重要である理由が示されました。UI が実際に表示される前は隠れた状態が正しかったものの、エージェントは再度観察し、修正し、検証する必要がありました。

これは、Hera があらゆるタスクを初回で成功させるという主張でも、「AI が X%賢くなる」というベンチマークでもありません。もっと実用的なことを示しています。Hera は、最初にもっともらしい回答を返して終わるのではなく、エージェントが十分な実際の Editor フィードバックを得て、統合時の失敗を発見し、修正できるようにします。

証拠の全文:Crystal Forge の実世界ベンチマーク。


どのように使えばよいですか?

必要なものは 2 つだけです。

your computer                 your Unity project
──────────────                ──────────────────
Hera CLI        <---------->  Hera Unity Connector
ステップ 1. CLI をインストールする

もっとも簡単なクロスプラットフォームの方法は npm です。

npm install --global hera-agent-unity

または、ネイティブインストーラーを使用します。

Windows PowerShell

powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/NotNull92/hera-agent-unity/main/install.ps1 | iex"

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/NotNull92/hera-agent-unity/main/install.sh | bash

動作を確認します。

hera-agent-unity version
その他の CLI インストール方法

Go install

go install github.com/NotNull92/hera-agent-unity@latest

手動

GitHub Releases からバイナリをダウンロードし、次を実行します。

hera-agent-unity install
ステップ 2. Unity パッケージを追加する

Unity で:

Window -> Package Manager -> Add package from git URL

次を貼り付けます。

https://github.com/NotNull92/hera-agent-unity.git?path=AgentConnector

または、Packages/manifest.json に追加します。

"com.notnull92.hera-agent-unity": "https://github.com/NotNull92/hera-agent-unity.git?path=AgentConnector"

Editor を開くと、Connector が自動的に起動します。

既存の Connector タグを固定するには:

"com.notnull92.hera-agent-unity": "https://github.com/NotNull92/hera-agent-unity.git?path=AgentConnector#connector-<version>"

現在リリースされている Connector の固定バージョンは次のとおりです。

https://github.com/NotNull92/hera-agent-unity.git?path=AgentConnector#connector-0.2.13
ステップ 3. Unity を開いて接続を確認する
hera-agent-unity doctor --json
hera-agent-unity status

実際のプロジェクトパス、Unity のバージョン、Editor の状態、接続情報が表示されます。

これで、エージェントに次のように伝えるだけで使えます。

Use hera-agent-unity for this Unity project.
Check the current Editor state first.
Make the requested change.
Compile it, read the real Console errors, verify the changed object or UI,
and do not say it is finished until Unity is in a clean state.

これが通常の Hera ワークフローです。


何ができますか?

コンパイルエラーやランタイムエラーを修正する
Use Hera. Read the Unity Console, find the actual error, fix the code,
compile again, and keep repeating until the error Console is clean.

裏側で実行される一般的なコマンド:

hera-agent-unity console --type error --lines 20
hera-agent-unity editor refresh --compile
hera-agent-unity console --type error --lines 20
機能を構築し、動作を証明する
Implement the inventory filter.
Use Hera to compile it, run the relevant EditMode and PlayMode tests,
enter Play Mode if needed, and report the final evidence.
ゲームプレイのバグを再現する
Open the correct Scene, enter Play Mode, inspect the related objects,
reproduce the bug, fix it, then reproduce the same path again to prove the fix.
参照画像から UI を構築する

Hera を使えば、目視だけに頼るのではなく、計測を繰り返しながら作業できます。

reference image
   ↓ sample colors / measure layout
Unity UI
   ↓ capture
compare
   ↓ fix
capture again

コマンドの例:

hera-agent-unity manage_ui create --element panel --name HUD
hera-agent-unity manage_ui set_anchor --path /Canvas/HUD --preset stretch --snap true
hera-agent-unity manage_components set --path /Canvas/HUD --property m_Color --value '#1A1A2E'
hera-agent-unity screenshot --overlay --output_path hud_built.png

manage_ui、manage_components、screenshot --overlay を使って、検証済みの小さなバッチで作業します。

画面座標を推測せずにボタンを検証する
hera-agent-unity input state
hera-agent-unity input inspect --path /Canvas/StartButton --details true
hera-agent-unity input click --path /Canvas/StartButton --settle_frames 2

これにより、Unity の EventSystem 経由の操作を検証できます。Windows/macOS 上で物理的にマウスをクリックするものではないため、Hera はこの 2 種類の証拠を別々に報告します。

オプションの Input System パッケージをすでに使用しているプロジェクトでは、Hera への依存を追加せずにゲームプレイ入力を検証することもできます。

hera-agent-unity input state --backend inputsystem
hera-agent-unity input keyboard --key space --mode press
hera-agent-unity input mouse --mode click --button left --position 640,360
hera-agent-unity call input --json '{"action":"sequence","steps":[{"action":"keyboard","key":"space","mode":"down"},{"action":"keyboard","key":"space","mode":"up"}]}'
hera-agent-unity call input --json '{"action":"record","mode":"start"}'
hera-agent-unity call input --json '{"action":"record","mode":"stop"}'
hera-agent-unity call input --json '{"action":"replay","path":"Library/HeraAgent/Recordings/input.json"}'

キーボード、マウス、上限付きシーケンス、記録のキャプチャ、再生には Play Mode が必要です。記録は、プロジェクトまたはシステムの一時ディレクトリにある、上限付きの hera.input-recording/1 JSON 形式で保存されます。再生では、変更を加える前にファイル全体を検証し、シーケンスで管理されるクリーンアップを再利用します。Hera は実行時にパッケージを解決し、デバイスを作成することはありません。また、Play Mode の終了時には、押されたままのコントロールをすべて解放します。

繰り返し行う Scene 作業を自動化する

エージェントには、次のように依頼できます。

  • テスト用アリーナを作成する;
  • 新しいルートの下にプレハブを配置する;
  • Component を追加して設定する;
  • ScriptableObject アセットを作成する;
  • Animator のステートを接続する;
  • Scene を保存する;
  • その後、検証を実行する。
スタジオ固有のツールを作成する

プロジェクトに繰り返し使うワークフローがある場合は、カスタムの [HeraTool] として公開できます。ツールは Hera のライブカタログに自動的に表示されます。

例:

  • build_test_battle
  • validate_item_database
  • spawn_quest_fixture
  • bake_localization_table
  • check_prefab_rules

このように、Hera は汎用的な Unity ブリッジとして始め、徐々に独自のゲーム制作パイプライン向け CLIへと発展させることができます。


Ultra Hera:「完了」とは確認済みであること

Ultra Hera

作業し、確認し、その後で初めて結果を報告します。

Ultra Hera は、AI を活用した Unity 作業のための検証ルールです。それ自体が機能を書き上げるわけではありません。Hera を通じて作業を終えたエージェントが、その作業をどれだけ慎重に確認するかを指示します。

こちらで確認できます:

HeraAgent -> Hera Settings -> Ultra Hera
モード簡単な説明
Off追加の検証ルールはありません。
Lightデフォルトです。コンパイルと状態を確認し、エラーを読み、完了前に変更した対象を再確認します。
Ultra重要な作業向けです。テスト、Play Mode、Inspector の読み取り、スクリーンショットなど、より強力な証拠を追加します。

Light はシートベルトの確認、Ultra は飛行前点検と考えてください。

次のような依頼には Ultra を使います。

  • 「正確に検証してください」;
  • 「実際にプレイして確認してください」;
  • 「この UI に合わせてください」;
  • 「Inspector も確認してください」;
  • 「すべてのテストに合格するまで完了しないでください」。

目標はシンプルです。Unity がまだ壊れている間は、エージェントにタスクを完了させないことです。


Editor の操作だけではありません

Hera には、単なるオブジェクトの変更にとどまらずエージェントを支援する、任意のガイダンスおよびオーサリングシステムが含まれています。

Game Feel Mode(ベータ)

ゲームプレイが機能するかどうかだけでなく、どのように感じられるかをエージェントが考えるのに役立ちます。操作感と入力の許容度、Update / FixedUpdate / LateUpdate の使い分け、画面の揺れ、ヒットストップ、ノックバック、カメラ、サウンド、報酬の見せ方、触覚フィードバック、セッションのペース配分、アクセシビリティの制約などが含まれます。

hera-agent-unity asset-config gamefeel on
hera-agent-unity game_feel hit_stop
hera-agent-unity game_feel unity_frame_loops

ここでのナレッジはガイダンスです。Hera がゲームに重いランタイムシステムをひそかに追加することはありません。

Game Feel UI Mode(ベータ)

ホバー時の拡大、押下時のつぶれ、ポップアップの表示、カウントアップテキスト、ヘルスバーの反応、クールダウンのフィードバック、アクセシビリティの基本設定など、実用的な UI フィードバックのレシピを追加します。

hera-agent-unity asset-config gamefeel-ui on
Unity De-slop Mode(ベータ)

不要な装飾、弱い余白設計、ボックスの中にボックスを重ねるレイアウト、装飾目的のイタリック体、一貫性のない色使いなど、生成物らしく見えがちな UI のよくある癖をエージェントが見つけるのに役立ちます。

hera-agent-unity asset-config uislop on
hera-agent-unity ui_slop box-in-box

ルールには例外が含まれているため、インベントリのセルなどの機能的なゲーム UI が、繰り返しの多い見た目だからといって単調にされることはありません。

アセットの設定とコンパイラのデフォルト設定

Odin や DOTween などの既知のアセットは、設定で有効にできます。有効にしてもインストールはされません。生成されるエージェントルールと AI JSON に対して、プロジェクトに実際に含まれている場合はその API を優先するよう指示します。

hera-agent-unity asset-config enable odin_inspector
hera-agent-unity asset-config --json
hera-agent-unity asset-config set-csc <path-to-csc>
hera-agent-unity asset-config set-dotnet <path-to-dotnet>

コンパイラのデフォルト設定は、Editor を再起動せずに次の exec 呼び出しから読み込まれます。同じ値は HeraAgent -> Hera Settings からも設定できます。


コマンドの概要

これらを暗記する必要はありません。エージェントに対して Hera が提供する機能の概要を把握するためのものです。

コマンド平易な言葉での目的
doctor --json「Hera はインストールされていて、Unity に接続できますか?」
status / pingEditor の状態と応答を確認します。
list --compact利用可能な組み込みツールとプロジェクト固有ツールを手軽に見つけます。
call <tool>厳密なライブツール契約を検証してから、ツールを呼び出します。
console実際の Unity Console を読み取るか、クリアします。
sceneScene を調査、作成、読み込み、保存、有効化、一覧表示、または閉じます。GameObject ツリーをダンプします。
find_gameobjects読み込まれた Scene の階層を検索します。
manage_gameobjectGameObject を作成、編集します。
manage_componentsComponent を読み取り、追加、削除、または変更します。
manage_assetsAssets/ 以下のプロジェクトアセットを操作し、プロジェクト外のファイルを取り込み、依存関係を追跡します。削除すると OS のゴミ箱に移動します。
manage_prefabPrefab アセットを作成、インスタンス化、編集し、インスタンスのオーバーライドを適用、元に戻す、または展開します。
manage_animationAnimationClip と AnimatorController のステートマシンを作成し、読み取ります。
manage_timelineパッケージへの依存関係を追加せずに、オプションの Timeline アセット、トラック、クリップを作成、調査します。
manage_settingsプレビューと承認を行いながら、物理、時間、品質、プレイヤー、オーディオ、グラフィックス、旧式の入力、ライティング、旧式の NavMesh の設定を読み取り、変更します。
bakeライティング/NavMesh/オクルージョンのベイクを開始、ポーリング、キャンセル、またはクリアします。
buildアクティブなターゲット向けの Player ビルドをキューに追加し、簡潔なレポートを読み取ります。
execEditor 内でプロジェクトを認識した任意の C# を実行します。
editor正確なプロジェクトを起動/再起動するか、Play、停止、一時停止、更新、コンパイルを行います。
test名前、カテゴリ、またはアセンブリを指定して Unity テストを実行、一覧表示、再開、またはキャンセルします。
taskUnity に接続せずに、永続的なテスト/パッケージ作業を調査します。
screenshotScene/Game ビュー、ScreenSpaceOverlay キャンバス、または単独のオブジェクトをキャプチャします。必要に応じて、範囲を限定した uGUI、3D コライダー、または UI Toolkit Editor ウィンドウのメタデータを返します。
inputuGUI をテストするか、オプションの Input System キーボード/マウス/シーケンス入力を合成して、Play Mode で記録/再生します。
profilerプロファイラーの階層スナップショットと、1 回の呼び出しで取得するパフォーマンス統計を読み取ります。
game_feelゲームフィールに関するガイダンスを照会します。
ui_slopUI の整理に関するガイダンスを照会します。
batch1 回のリクエストで複数の操作を実行します。
カスタム [HeraTool]独自の Unity プロジェクトで定義したツールを呼び出します。

完全なリファレンス:docs/COMMANDS.md。


AI エージェントが Hera を自動的に使うように設定する

エージェントが推測する前に Unity を調査するよう、Hera の運用ルールをプロジェクトに追加できます。

Codex プラグイン
codex plugin marketplace add NotNull92/hera-agent-unity --ref main

次に /plugins を開き、Hera Agent Unity を選択して、Hera Unity を有効にします。

スタンドアロンの Agent Skill
npx skills add NotNull92/hera-agent-unity --skill hera-agent-unity --agent codex
共有 AGENTS.md
hera-agent-unity doctor --agent-rules --compact >> AGENTS.md

コンパクトなデフォルトのガイダンスは、意図的に小さくしています。レビュー済みのベースラインは 2,315 UTF-8 バイトで、ブートストラップ、ターゲット指定、承認、安全性、検証に関する重要なルールが含まれています。完全なガイドは必要に応じて利用できます。

このリポジトリには、examples/rules に Cursor、Copilot、AntiGravity、Continue などのエージェント環境向けテンプレートも含まれています。


安全性と信頼性について

Hera は Unity プロジェクトに実際の変更を加えられるため、「速い」だけでは不十分です。いつ停止すべきかを把握する必要もあります。

ポート番号だけでなく、プロジェクトを特定します

Unity はドメインリロードや再起動の後に、ローカルポートを変更することがあります。Hera は Editor の識別に正規化された完全なプロジェクトパスを優先し、ポートを一時的なエンドポイントとして扱います。

複数の Editor が開いている場合は、次を使用してください。

hera-agent-unity --project /full/path/to/project status

対象を一意に特定できない場合は、推測せずに失敗します。

リスクのある操作では承認が必要になる場合があります

承認が必要な操作は、まず事前チェックが行われます。返されるトークンはそのリクエストに固有で、1回のみ使用できます。対象や引数を変更すると、承認は無効になります。すでに信頼しているシェルや CI ジョブでは、--yes(環境変数:HERA_AGENT_APPROVE=1)を指定すると、APPROVAL_REQUIRED を返す代わりに、同じ呼び出しの中で事前チェックに応答します。事前チェックと操作台帳は引き続き実行されます。

不確かな変更操作をむやみに繰り返しません

リロードやタイムアウト中に応答が失われた場合、Hera は再試行が可能な状況で、再試行する前に最新の Editor の所有者と状態を確認します。ネットワーク応答が不明瞭だったという理由だけで、変更操作を再送することはありません。

時間のかかるテストは、最初からやり直さず再開できます

長時間の Test Runner ジョブは、通常のリクエスト時間を超えて続くことがあります。Hera は実行状態を永続的に保存するため、エージェントは誤って別のテスト実行を開始することなく、同じ実行の完了を待つ処理を再開できます。


Unity のバージョン

Unity のバージョンステータス代表的な検証
6000.6 以降サポート対象6000.6.6f1 リリースゲート
6000.6 未満サポート対象外最小バージョンは Unity 6.6(6000.6)です

バージョン固有の動作は、単一の Unity バージョンを前提とせず、稼働中の Editor に対して確認します。

  • 代表的な Editor は、作者のゲームで使用している Unity シリーズに準拠します。現在は 6000.6 で、6000.6.6f1 が代表例です。
  • 新しいシリーズの正式版リリースから 2 週間以内に、代表例を追加して Connector のリリースゲートを実行します。アルファ版とベータ版は追跡しません。ゲートに合格するまでは、そのシリーズを 確認中 とします。
  • ゲームの開発追い込みを優先してください。追い込み中はこれらの確認を延期し、そのシリーズを 確認中 のままにします。
  • 最小バージョンを引き上げるのは、ゲームが新しいシリーズに移行する場合、または旧シリーズが必要な修正の妨げになっている実例がある場合に限ります。この README と CHANGELOG で 1 つ前のマイナーリリースの時点で告知し、Connector のマイナーリリースで引き上げます。また、旧シリーズをサポートする最後の Connector タグをここに記載し、ユーザーが #connector-X.Y.Z を指定できるようにします。

エージェント用の唯一のインターフェース:CLI

Hera は通常のコマンドラインバイナリです。

AI / terminal -> Hera CLI -> localhost Connector -> Unity Editor

シェルを扱えるコーディングエージェントであれば操作でき、すべてのコマンドは、同じカタログ、承認フロー、操作台帳を通じて、共通の簡潔な JSON エンベロープで応答します。

CLI v0.1.0~v0.2.x には、実験的な、デフォルトで無効の stdio 専用 MCP アダプターも含まれていました。これは v0.3.0 で削除されました。このアダプターは同じ実行コアの前段に位置していたため、CLI で利用できない Unity の機能が使えるようになることはありませんでした。また、2 つ目のプロトコルインターフェースを維持するには、検出、承認、結果の経路も別々に保守する必要がありました。CLI を直接使用してください。検出には list、型付き実行には call、専用コマンドがない場合は exec を使います。


Hera が提供しないもの

  • AI ではありません: 判断を行うのはコーディングエージェントであり、Hera は Editor へのアクセスを提供します。
  • ゲーム実行時のツールではありません: Connector は Editor 専用です(HeraAgent.asmdef には Editor のみが含まれます)。
  • 2 つ目のプロトコルはありません: エージェント用インターフェースは CLI のみです。MCP アダプターや、これに並行する別の永続サーバーまたはリレーサーバーはありません。
  • リアルタイムチャネルではありません: 各呼び出しは 1 件のリクエストと 1 件の応答で完結します。進捗ストリームやプッシュ通知はありません。
  • 1 つのコマンドで複数の Editor を制御することはできません: 各コマンドは 1 つの Editor を対象とします。複数の Editor が開いている場合は、--project を使って対象を選択してください。
  • サンドボックスではありません: exec のデフォルトは Full Access です。Restricted は防御層の 1 つです。

新機能の追加には、再現された不具合が必要です。貢献方法をご覧ください。


現在のリリース

  • CLI / GitHub Release:v0.3.23(ネイティブバイナリ 5 種)
  • npm:0.3.23(latest)
  • Unity Connector:0.2.13(#connector-0.2.13 を指定)
  • ライセンス:Apache-2.0

npm の公開は GitHub Release に連動しているため、npm install -g hera-agent-unity と GitHub のバイナリは常に同じリリースになります。

2 つのバージョン番号が別々なのは意図的です。CLI と Unity パッケージは、互換性の契約を明確に保ちながら、独立して進化できます。 v0.2.x からのアップグレード: v0.3.8 は最初に公開された 0.3 リリースであるため、破壊的変更を伴う v0.3.0 の変更も含まれています。実験的な MCP アダプターは廃止されました。mcp コマンドも HERA_MCP_* 環境変数もありません。リクエストが失敗した場合、再試行の可否を示す情報(retryable、state、retry_after_ms)が返されます。また、ハートビートでカタログのスキーマハッシュが通知されるため、一致するカタログがあれば、再度ラウンドトリップせずに再利用できます。Connector 0.2.x には Unity 6.6(6000.6) が必要で、instance_id の値は 64 ビットです。ライブカタログには 34 個のツール/133 個のアクション が公開されています。

v0.2.17 以降の新機能:

バージョン変更内容
v0.3.23 / 0.2.13Legacy NavMesh の変更では、関連のないアセットを保存せずにアクティブシーンを変更済みとしてマークします。変更を保持するにはシーンを保存してください。Play Mode 中の書き込みは拒否されます。CLI の動作に変更はありません。Connector を 0.2.13 に更新してください。
v0.3.22 / 0.2.12アセットの編集では、変更されたアセットファイルのみを保存します。manage_assets の delete は OS のゴミ箱に移動します。list --tool --action で 1 つのアクションを照会できます。ツールの説明を短縮し、Light ルールのコンパクトな出力全体に予算を設定しました。Connector も 0.2.12 に更新してください。
v0.3.21 / 0.2.11Windows の PATH クリーンアップでは元の形式を維持します。アンインストールでは実際の状態フォルダーを削除します。更新時に SHA-256 を検証します。ツールの JSON はコンパクトなままです(--compact-json は互換性のためのオプションです)。ヘルプトピックを 9 件追加しました。Hera 自身のツールエラーではコンソールエラーが追加されなくなり、ヒントの繰り返し表示が短くなりました。Restricted exec ではスクリーンショットとプロファイラーのファイル書き込みがブロックされます。Connector も 0.2.11 に更新してください。
v0.3.20ガイドページに、確定したポリシーをまとめた意思決定の章(VIII)を追加し、説明を平易な言葉に書き直しました。CLI の動作と Connector に変更はありません。
v0.3.19公開プロダクトのポリシーとして、CONTRIBUTING.md(作業の開始条件、応答目標、互換性)、1 週間以内のセキュリティ対応目標、「Hera ではないもの」、Hera が新しい Unity リリースにどう対応するかを追加しました。CLI の動作と Connector に変更はありません。
v0.3.18ガイドページから、固定された 2 つのリスク(ポートをキーにした結果の参照、ブロッキングモーダルの検出)と、それらの図を削除しました。CLI の動作と Connector に変更はありません。
v0.3.17task status <op_id> で、OPERATION_OUTCOME_UNKNOWN で終了したコマンドが実際に実行されたかどうかを確認できます。ローカルの操作記録を読み取るため、Editor がブロック中でもすぐに結果を返します。タイムアウトメッセージにこのコマンドを記載するようになりました。Connector に変更はありません。
v0.3.16エージェントガイド(doctor --agent-rules)に「1 つの Editor では一度に 1 つのコマンドを実行」を追加しました。CLI のタイムアウトで放棄されたコマンドも後から実行されるため、各エージェントにそれぞれ専用の Editor を割り当て、再送信する前に対象を読み直してください。CLI の動作と Connector に変更はありません。
v0.3.15Windows では、タイムアウト時にカスタムおよびネストされた Editor モーダル(ウィンドウタイトルを含む)が説明されるようになりました。また、自動的に閉じる進行状況ウィンドウは、人が閉じる必要のあるダイアログとして報告されなくなりました。別の稼働中プロセスからのハートビートは、Editor の再起動として扱われなくなりました。Connector に変更はありません。
v0.3.14 / 0.2.10非同期の待機と test --resume では、ドメインリロードによって Editor のポートが変わった後も、元の結果を見つけられるようになりました。テスト実行ロックと test cancel は、どのポートからの実行も認識します。アセットインポートワーカーは Connector を起動しなくなったため、プロジェクトのハートビートを上書きしたり、ポートを取得したりできません。Connector も 0.2.10 に更新してください。
v0.3.13ガイドページを「Hera Unity Status」に刷新しました。リクエストフローのマップ、各ツールを説明するスキルツリー、リスクのベスティアリ、埋め込みアートワークを追加しました。CLI と Connector の動作に変更はありません。
v0.3.12Hera のスタンドアロンガイドページ(docs/guide/index.html)を追加しました。CLI と Connector の動作に変更はありません。
v0.3.11小数/指数形式の引数で Unity の引数ハッシュを使用するようになりました。パッケージジョブは実際の結果ポートを待機します。
v0.3.10 / 0.2.9Game Feel UI レシピは、Editor セッションごとに要素タイプごとに 1 回だけアタッチされます。manage_components から冗長な type/enabled フィールドを削除しました。コンパクトなエージェントルールは 2,315 B に縮小しました。
v0.3.9ドメインリロード中、CLI はポート 0 に接続する代わりに、最後に有効だったポートへの再試行を続けます。
v0.3.8 / 0.2.8デフォルトのペイロードを削減しました。exec は --depth 3 以上が明示されない限り、Unity オブジェクトを {name, type, instanceID} として返します(Transform は 7,178 B から 70 B に削減)。scene hierarchy はデフォルトの active/children を省略します。エラーエンベロープから重複するヒントとタイミング情報を削除しました。
v0.3.7Windows での Editor 起動時に、Unity Hub のセカンダリインストールフォルダー内のバージョンも検出できるようになりました。
v0.3.6list --profiles と list --profile <name> で、キャッシュされたカタログからタスク単位のツールセットを表示します。
v0.3.5ネイティブの Editor ダイアログの背後でリクエストが停止した場合、ダイアログのタイトルとともに blocked_by_dialog を報告します(Windows)。
0.2.5–0.2.7テストシャードは、シャード化されていない実行と同じセレクター規則に従います。exec はメタデータのみのジャーナルを書き込みます。
v0.3.4 / 0.2.4test --format junit|nunit のアーティファクトと、決定的な --shard-index/--shard-count 分割に対応しました。
v0.3.1–v0.3.3カタログのベースラインで CLI を計測します。64 ビット ID の修正。Undo の対象となる編集に対するアトミックな一括事前検証。
リリースごとの詳しい技術情報については、メインの README を移行ログとして扱うのではなく、CHANGELOG.md をお読みください。

Hera は内部でどのように動作しますか?
Terminal / AI agent
        |
        | hera-agent-unity command
        v
Go CLI
        |
        | localhost HTTP
        v
Unity Editor package
        |
        | serialized Unity main-thread work
        v
Scene, Console, Play Mode, Assets, Tests, UI

Unity パッケージはローカルの HTTP リスナーを起動します。CLI はローカルのハートビート状態から対象の Editor を選択し、コマンドを送信します。Unity の処理は Editor のメインスレッドに振り分けられます。

ドメインの再読み込みや長時間実行される処理では、ファイルシステムに基づく状態を使用するため、HTTP リスナーが再作成されてもコンパイル、テスト、復旧を継続できます。

アーキテクチャの詳細:docs/ARCHITECTURE.md。

exec、トークン、非同期処理に関する高度な注意点
  • 専用のコマンドがある場合は、任意の exec よりもそちらを優先してください。
  • ID があれば十分な場合は、find_gameobjects --ids のような小さなプロジェクションを使用してください。
  • 副作用のある exec のスニペットは、通常、大きなステータスオブジェクトではなく null または何も返さないようにしてください。
  • 反映されたグラフが本当に必要な場合を除き、UnityEngine.Object 全体を返さないでください。
  • ログに記録されたエラーによって CLI 操作を失敗させる必要がある場合は、--strict を使用するか、例外をスローしてください。
  • スニペットでプラットフォーム API のみが必要で、ファイル、ネットワーク、プロセス、リフレクション、ネイティブ、スレッド、UnityEditor、プロジェクトアセンブリへのアクセスを拒否する場合は、--security-mode restricted を使用してください。デフォルトは引き続き Full Access です。
  • スニペットを実行せずにコンパイルチェックしたい場合は、exec --check を使用してください。
  • 長時間にわたる非同期ワークフローは、単発の exec 内で切り離された処理として実行するより、追跡可能な [HeraTool] アクション、または永続的なタスク/テスト操作として表現する方が適しています。

エージェントの完全な運用ガイドは AGENTS.md をご覧ください。


よくある質問

Hera によって AI は賢くなりますか?

いいえ。Hera は、実際の Unity の状態に AI がより適切にアクセスできるようにし、結果を検証する手段を提供します。設計と実装の判断は、引き続きコーディングモデルが行います。

Python は必要ですか?

いいえ。通常のインストールに必要なのは、ネイティブ CLI と Unity パッケージがそれぞれ 1 つだけです。

ホストプロトコルは必要ですか?

いいえ。インターフェースは CLI のみです。Unity パッケージとは localhost HTTP で通信し、それ以外とは通信しません。

複数の Unity Editor を同時に操作できますか?

各コマンドの対象となる Editor は 1 つです。複数の Editor が開いている場合は、対象を明確に選択するために、完全な --project パスを使用してください。ローカルポートが変わっても、Hera は選択したプロジェクトの識別情報を追跡します。

Unity のウィンドウを物理的にクリックできますか?

input コマンドは、uGUI の QA 用に Unity EventSystem イベントを送信でき、Play Mode ではオプションで Input System のキーボード/マウスの状態を合成できます。どちらも Unity レベルの動作を示すものであり、OS の物理的なクリックではありません。物理的なクリックの証拠は、別途報告する必要があります。

接続できない場合はどうすればよいですか?
hera-agent-unity doctor --json

Unity パッケージがインストールされていることと、Editor のコンパイルが完了していることも確認してください。

詳細なドキュメントはどこにありますか?

Hera を使用しているプロジェクト

プロジェクト備考
NoMoreRolls個人開発の Unity ゲーム。Hera を通じて AI が Editor を操作して制作されました。

https://github.com/user-attachments/assets/15d353e4-b7bb-4534-bbca-c27de0792147

NoMoreRolls - Hera を活用した Editor 作業で制作された Unity ゲームの Play Mode 全編動画。


作者

Victor - Unity/C# 開発者。ライブサービス型 MMORPG の開発経験は 6 年以上です。

GitHub: @NotNull92

Discord: Hera コミュニティに参加


サポート

Hera は無料で、Apache-2.0 ライセンスのもとで提供されています。時間の節約に役立った場合は、開発をご支援いただけます。

Ko-fi で支援


ライセンス

Apache License 2.0。LICENSE と NOTICE をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。