initialize-ai-navigation について
Unity 開発者やコーディングエージェント向けのナビゲーション設定スキルです。要件に応じた NavMesh コンポーネントを案内し、調査から設定、検証までを支援します。
主な機能
- 01要件に応じたナビゲーション案内
- 02AI Navigation パッケージの確認
- 03シーン内コンポーネントの調査
- 04NavMesh の設定と検証
- 05移動や巡回のレシピ
活用シーン
- 01キャラクターへの経路探索追加
- 02経路がない Agent のトラブルシューティング
- 03分離した NavMesh 領域の接続
- 04クリック移動や巡回の設定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ unity-technologies/ skills --skill initialize-ai-navigationインストール後、Claude Code で/initialize-ai-navigationを入力して読み込まれたか確認します。
同梱ファイルreferences/navigation-system.md
詳細
ユーザーのニーズを判断し、ナビゲーションのセットアップを案内します。コンポーネントの詳細、API に関する補足、コード例、トラブルシューティングについては、navigation-system.md を参照してください。
eval に渡す C#
eval はファイルではなくステートメントブロックをコンパイルします。このため、どちらの場合も警告ではなくコンパイルエラーになります。
usingディレクティブは使えません。 コンパイラーはusing UnityEngine;をリソース破棄ステートメントとして読み取り、拒否します(CS0210)。- 型名は完全修飾する必要があります。
AssetDatabaseやVolumeだけでは解決できず(CS0246/CS0103)、Objectだけではobjectと曖昧になります(CS0104)。
以下のスニペットがファイル形式で記述されている場合(読みやすさのために using を含めている場合や、プロジェクトに保存することを想定している場合)は、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 Editor が次にフォーカスを取り戻したときに解決されるため、Editor への接続は不要です。
"com.unity.ai.navigation": "<current 2.x version>"
バージョン文字列を推測してはいけません。Unity レジストリから現在のバージョンを読み取ってください。https://packages.unity.com/com.unity.ai.navigation には公開済みの全バージョンが掲載されています。または、このマニフェスト内の近接する Unity パッケージが使用しているバージョンをコピーしてください。存在しないバージョンを指定すると、Unity は何も通知せずに解決に失敗するため、誤った推測では何も起きていないように見えます。
インストールが確認できてから次に進みます。Editor で C# を実行できる場合は、Client.Add に相当する方法について navigation-system.md を参照してください。
1. 事前確認:現在のナビゲーション設定を評価する
変更を加える前に、既存の設定を調べます。
- 既存のナビゲーションコンポーネントを探します。Editor に接続している場合は、ライブシーンで
NavMeshSurface、NavMeshAgent、NavMeshObstacle、NavMeshLink、NavMeshModifierを検索します。実行中の Editor の操作方法についてはunity-cliスキルを参照してください。接続していない場合は、シーンファイルとプレハブファイルからこれらのコンポーネント名を検索します。 - Window > AI > Navigation > Agents tab で、設定済みのエージェントタイプを確認します。
- 変更を提案する前に、検出されたナビゲーションコンポーネントをすべてまとめます。
2. 不足している情報を集める
コンポーネントを作成する前に、ユーザーが歩行可能なサーフェス、エージェントタイプとサイズ、エージェントの動作、障害物、リンク、エリアとコストに関する要件を指定していることを確認します。不明な点があれば質問します。詳細は、リファレンスの「情報収集チェックリスト」を参照してください。
3. 計画と実行
以下の一般的な順序で進めます。各コンポーネントの詳細な手順については、リファレンスの「Component Setup Guide」を参照してください。
- NavMesh Surface — 歩行可能なメッシュを作成します(ベイクします)
- NavMesh Agent — 経路探索を行うキャラクターを追加します
- NavMesh Obstacle — 動的な障害物を追加します
- NavMesh Link — 接続されていない NavMesh エリアを接続します
- NavMesh Modifier / Modifier Volume — エリアタイプを微調整します
- スクリプト — 移動、パトロール、クリックで移動、アニメーションとの連携(リファレンスの「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 にアタッチしたか
- 必要な手動作業(ウェイポイントの調整、シーン変更後の再ベイクなど)