mcpField
I
initialize-ai-navigation

initialize-ai-navigation

github.com/unity-technologies開発60458 回インストール今日更新
リポジトリ

initialize-ai-navigation について

Unity 開発向けのナビゲーションスキルで、要件の判断から設定、検証、トラブルシューティングまで案内します。既存コンポーネントを確認してから変更を提案し、一般的な NavMesh 構成を扱います。

主な機能

  1. 01ナビゲーション要件の振り分け
  2. 02NavMesh コンポーネントの調査
  3. 03設定計画と検証
  4. 04移動に関する問題の診断
  5. 05Unity Editor での C# 実行ガイド

活用シーン

  1. 01NavMesh の経路探索設定
  2. 02巡回やクリック移動の追加
  3. 03離れたナビゲーション領域の接続
  4. 04経路を取得できない Agent の診断

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/unity-technologies/unity-agent-plugin --skill initialize-ai-navigation

インストール後、Claude Code で/initialize-ai-navigationを入力して読み込まれたか確認します。

同梱ファイルreferences/navigation-system.md

詳細

ユーザーのニーズを把握し、ナビゲーションの設定を案内します。コンポーネントの詳細、API に関する注記、コード例、トラブルシューティングについては、navigation-system.md を参照してください。

script eval に渡す C#

script eval がコンパイルするのは、ファイルではなくステートメントブロックです。そのため、次の 2 点が原因で警告ではなくコンパイルエラーが発生します。

  • using ディレクティブは使用できません。 コンパイラーは using UnityEngine; をリソース破棄ステートメントとして読み取り、拒否します(CS0210)。
  • 型は完全修飾名で指定する必要があります。 AssetDatabase や Volume をそのまま指定しても解決されず(CS0246 / CS0103)、Object をそのまま指定すると object と曖昧になります(CS0104)。

以下のスニペットがファイル形式で記述されている場合(読みやすさのために using を含めている場合や、プロジェクトに保存することを想定している場合)は、script eval に渡す前に型を完全修飾してください。

ルーティングロジック

ユーザーの発言解釈
「ナビゲーションを追加」/「ナビゲーションを設定」セットアップ全体:NavMeshSurface + ベイク + NavMeshAgent
「このキャラクターが移動できるようにする」NavMeshAgent を追加し、NavMesh が存在することを確認
「経路探索を追加」NavMeshAgent + 移動スクリプト
「エージェントが動かない」/「経路が見つからない」トラブルシューティング — 参照ドキュメントのトラブルシューティング決定木を参照
「障害物を避ける」カービングまたは回避機能を使う NavMeshObstacle
「2 つのエリアをつなぐ」/「ジャンプして渡る」エリア間の NavMeshLink
「ポイント間を巡回する」NavMeshAgent + 巡回スクリプト
「クリックして移動」NavMeshAgent + レイキャストによるクリック移動スクリプト
「ナビゲーション中にキャラクターをアニメーションさせる」Animator と NavMeshAgent を連携
「異なるエージェントサイズ」Navigation ウィンドウでエージェントタイプを設定
「エリアとコスト」/「エリアを制限」NavMesh のエリアタイプ、モディファイアー、エージェントのエリアマスク

ワークフロー

0. パッケージのインストール確認

ほかの作業に着手する前に、com.unity.ai.navigation がインストールされていることを確認します。インストールされていない場合は、Packages/manifest.json の dependencies に追加します。Unity は次にエディターがフォーカスを取り戻したときに解決するため、エディターへの接続は不要です。

"com.unity.ai.navigation": "<current 2.x version>"

バージョン文字列を推測しないでください。Unity レジストリから現在のバージョンを読み取ります。https://packages.unity.com/com.unity.ai.navigation に公開済みの全バージョンが掲載されています。または、このマニフェスト内の隣接する Unity パッケージで使われているバージョンをコピーしてください。存在しないバージョンを指定すると、Unity は警告なしに解決に失敗するため、誤った値を指定しても何も起きなかったように見えます。

インストールが確認できてから先に進んでください。稼働中のエディターで C# を実行できる場合は、Client.Add に相当する方法について navigation-system.md を参照してください。

1. 事前確認:現在のナビゲーション設定を評価する

変更を加える前に、既存の設定を調べます。

  1. 既存のナビゲーションコンポーネントを探します。エディターに接続されている場合は、稼働中のエディターを操作する方法について unity-cli スキルを参照し、ライブシーン内の NavMeshSurface、NavMeshAgent、NavMeshObstacle、NavMeshLink、NavMeshModifier を検索します。接続されていない場合は、シーンファイルとプレハブファイルからこれらのコンポーネント名を検索します。
  2. Window > AI > Navigation > Agents tab から、設定済みのエージェントタイプを確認します。
  3. 変更を提案する前に、検出したナビゲーションコンポーネントをすべて要約します。
2. 不足している情報を集める

コンポーネントを作成する前に、ユーザーから歩行可能なサーフェス、エージェントタイプ/サイズ、エージェントの動作、障害物、リンク、エリア/コストの要件が示されていることを確認します。不明な点があれば質問します。詳しくは、参照ドキュメントの「情報収集チェックリスト」を参照してください。

3. 計画と実行

以下の一般的な順序で進めます。各コンポーネントの詳細な手順については、リファレンスの「Component Setup Guide」を参照してください。

  1. NavMesh Surface — 歩行可能なメッシュを作成します(ベイクします)
  2. NavMesh Agent — 経路探索を行うキャラクターを追加します
  3. NavMesh Obstacle — 動的な障害物を追加します
  4. NavMesh Link — 接続されていない NavMesh エリアを接続します
  5. NavMesh Modifier / Modifier Volume — エリアタイプを微調整します
  6. スクリプト — 移動、パトロール、クリックで移動、アニメーションとの連携(リファレンスの「Common Recipes」を参照)
4. 検証

セットアップ後、以下を確認します。

  • NavMesh がベイクされ、表示されている(青いオーバーレイ)
  • NavMeshSurface のエージェントタイプが NavMeshAgent のエージェントタイプと一致している
  • エージェントが目的地までの有効な経路を持っている
  • 障害物が正しく経路を切り取る、または遮っている
  • リンクの両端が接続され、Activated が有効になっている
  • エリアマスクで意図した移動が許可されている
  • 競合するコンポーネントがない(リファレンスの「Mixing Components Guide」を参照)
  • Rigidbody と NavMeshAgent を併用する場合、Is Kinematic が有効になっている
5. 最終確認

作成または変更した内容をまとめます。

  • NavMesh Surface:対象の GameObject、エージェントタイプ、ジオメトリモード、ベイク状態
  • NavMesh Agent:対象の GameObject、速度、停止距離、エリアマスク
  • NavMesh Obstacle:対象の GameObject、形状、切り取りのオン/オフ
  • NavMesh Link:始点/終点、双方向かどうか、エリアタイプ
  • スクリプト:どのスクリプトをどの GameObject にアタッチしたか
  • 必要な手動作業(ウェイポイントの調整、シーン変更後の再ベイクなど)

コメント