unity-navmesh について
unity-navmesh は、Unity のナビゲーション作業向けスキルモジュールです。NavMesh のベイク、経路計算、エージェントや障害物の設定に加え、位置のサンプリングやエリアコストの調整を行えます。
主な機能
- 01NavMesh のベイクとクリア
- 02経路計算とウェイポイントの取得
- 03NavMesh 上の最近傍位置の検索
- 04エージェントと障害物の追加・設定
- 05ビルド設定の取得とエリアコスト設定
活用シーン
- 01シーンのナビゲーションデータを生成・再ベイク
- 022 点間の経路が有効か確認
- 03オブジェクトをエージェントまたは障害物に設定
- 04ナビゲーションエリアの通行コストを調整
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ besty0728/ unity-skills --skill unity-navmeshインストール後、Claude Code で/unity-navmeshを入力して読み込まれたか確認します。
詳細
このモジュールのスキルを呼び出す前に: 名前や説明から推測したパラメーターでスキルを呼び出そうとしている場合は、いったん停止してください。先にこのファイルを読むか、
GET /skills/recommend?includeSchema=trueでスキーマを取得してください。recommend/schema からすでにパラメーター定義を取得している場合は、そのまま dryRun に進めます。
トリガー
- ナビゲーションの設定
- NavMesh のベイク
- エージェントの経路のテスト
- ベイクパラメーターの調整
- ナビゲーションの構築、NavMesh のベイク、エージェントの経路のテスト、ベイクパラメーターの調整
NavMesh スキル
NavMesh データのベイク/クリア、経路の計算、位置のサンプリング、NavMeshAgent/NavMeshObstacle コンポーネントの設定を行います。
動作モード
- Approval:照会系スキル(
navmesh_calculate_path/navmesh_sample_position/navmesh_get_settings、ソースでSkillMode.SemiAutoとマーク)は直接実行します。変更系(navmesh_bake/navmesh_add_agent/navmesh_set_agent/navmesh_add_obstacle/navmesh_set_obstacle/navmesh_set_area_cost、SkillMode.FullAutoとマーク)はユーザーの grant が必要です。grant 後、サーバーが一度の処理で実行して結果を返します。 - Auto / Bypass:禁止リストに含まれないすべてのスキルを直接実行します。
- このモジュールには削除系スキルが含まれます:
navmesh_clearはSkillOperation.Deleteとマークされており、IsForbiddenInSemiによって静的にブロックされます。呼び出せるのは Bypass モードの場合、または Allowlist に追加した場合のみです。 navmesh_bakeはメインスレッドを同期的にブロックします。大規模なシーンでは時間がかかる場合があるため、呼び出す前にユーザーに伝えてください。
避けること(よくある誤認):
navmesh_createは存在しません。NavMesh の生成にはnavmesh_bakeを使用してください。navmesh_add_agent_component/navmesh_set_agent_speedは存在しません。navmesh_add_agent+navmesh_set_agent(便利なラッパー)、または細かく制御する場合はcomponent_add/component_set_propertyを使用してください。- シーンのジオメトリを変更した後は、NavMesh を再ベイクする必要があります。
ルーティング:
- NavMeshAgent/NavMeshObstacle コンポーネントには、
componentモジュールを使用します。 - 経路の計算には、
navmesh_calculate_path(このモジュール)を使用します。
スキル
navmesh_bake
NavMesh をベイクします(同期処理)。警告:エディターをブロックします。大規模なシーンでは時間がかかる場合があります。 パラメーター: なし。
navmesh_clear
NavMesh データをクリアします。 パラメーター: なし。
navmesh_calculate_path
2 点間の経路を計算します。 パラメーター:
startX、startY、startZ(float):開始位置。endX、endY、endZ(float):終了位置。areaMask(int、任意):NavMesh エリアマスク。
戻り値: { status, valid, distance, cornerCount, corners }
status:NavMeshPathStatus 文字列(PathComplete/PathPartial/PathInvalid)valid:status == "PathComplete"の場合のみtruedistance:経路の合計距離(無効な経路の場合は 0)cornerCount:corners内のコーナーポイントの数corners:{x, y, z}形式のウェイポイント配列(経路がない場合は空)
navmesh_add_agent
オブジェクトに NavMeshAgent コンポーネントを追加します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| name | string | いいえ | null | GameObject 名 |
| instanceId | int | いいえ | 0 | GameObject のインスタンス ID |
| path | string | いいえ | null | GameObject の階層パス |
戻り値: { success, gameObject }
navmesh_set_agent
NavMeshAgent のプロパティ(速度、加速度、半径、高さ、停止距離)を設定します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| name | string | いいえ | null | GameObject 名 |
| instanceId | int | いいえ | 0 | GameObject のインスタンス ID |
| path | string | いいえ | null | GameObject の階層パス |
| speed | float | いいえ | null | エージェントの移動速度 |
| acceleration | float | いいえ | null | エージェントの加速度 |
| angularSpeed | float | いいえ | null | エージェントの角速度 |
| radius | float | いいえ | null | エージェントの半径 |
| height | float | いいえ | null | エージェントの高さ |
| stoppingDistance | float | いいえ | null | ターゲットの手前で停止する距離 |
戻り値: { success, gameObject, speed, radius }
navmesh_add_obstacle
オブジェクトに NavMeshObstacle コンポーネントを追加します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| name | string | いいえ | null | GameObject 名 |
| instanceId | int | いいえ | 0 | GameObject インスタンス ID |
| path | string | いいえ | null | GameObject 階層パス |
| carve | bool | いいえ | true | カービングを有効にする |
戻り値: { success, gameObject, carving }
navmesh_set_obstacle
NavMeshObstacle のプロパティ(形状、サイズ、カービング)を設定します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| name | string | いいえ | null | GameObject 名 |
| instanceId | int | いいえ | 0 | GameObject インスタンス ID |
| path | string | いいえ | null | GameObject 階層パス |
| shape | string | いいえ | null | 障害物の形状(例: Box、Capsule) |
| sizeX | float | いいえ | null | 障害物のサイズ X |
| sizeY | float | いいえ | null | 障害物のサイズ Y |
| sizeZ | float | いいえ | null | 障害物のサイズ Z |
| carving | bool | いいえ | null | カービングを有効にする |
戻り値: { success, gameObject, shape, carving }
navmesh_sample_position
NavMesh 上の最も近い点を検索します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| x | float | はい | - | ソース位置 X |
| y | float | はい | - | ソース位置 Y |
| z | float | はい | - | ソース位置 Z |
| maxDistance | float | いいえ | 10 | 最大検索距離 |
戻り値: { success, found, point: { x, y, z }, distance }
navmesh_set_area_cost
エリアの移動コストを設定します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| areaIndex | int | はい | - | NavMesh エリアインデックス |
| cost | float | はい | - | 移動コスト値 |
戻り値: { success, areaIndex, cost }
navmesh_get_settings
NavMesh のビルド設定を取得します。
パラメーター: なし。
戻り値: { success, agentRadius, agentHeight, agentSlope, agentClimb }
正確なシグネチャ
正確な名前、パラメーター、デフォルト、戻り値は、このファイルではなく、GET /skills/schema または unity_skills.get_skill_schema() によって定義されています。