mcpField
U
unity-navmesh

unity-navmesh

github.com/besty0728開発1.9k84 回インストール1 日前に更新
リポジトリ

unity-navmesh について

unity-navmesh は、Unity のナビゲーション作業向けスキルモジュールです。NavMesh のベイク、経路計算、エージェントや障害物の設定に加え、位置のサンプリングやエリアコストの調整を行えます。

主な機能

  1. 01NavMesh のベイクとクリア
  2. 02経路計算とウェイポイントの取得
  3. 03NavMesh 上の最近傍位置の検索
  4. 04エージェントと障害物の追加・設定
  5. 05ビルド設定の取得とエリアコスト設定

活用シーン

  1. 01シーンのナビゲーションデータを生成・再ベイク
  2. 022 点間の経路が有効か確認
  3. 03オブジェクトをエージェントまたは障害物に設定
  4. 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" の場合のみ true
  • distance:経路の合計距離(無効な経路の場合は 0)
  • cornerCount:corners 内のコーナーポイントの数
  • corners:{x, y, z} 形式のウェイポイント配列(経路がない場合は空)
navmesh_add_agent

オブジェクトに NavMeshAgent コンポーネントを追加します。

パラメーター型必須デフォルト説明
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject のインスタンス ID
pathstringいいえnullGameObject の階層パス

戻り値: { success, gameObject }

navmesh_set_agent

NavMeshAgent のプロパティ(速度、加速度、半径、高さ、停止距離)を設定します。

パラメーター型必須デフォルト説明
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject のインスタンス ID
pathstringいいえnullGameObject の階層パス
speedfloatいいえnullエージェントの移動速度
accelerationfloatいいえnullエージェントの加速度
angularSpeedfloatいいえnullエージェントの角速度
radiusfloatいいえnullエージェントの半径
heightfloatいいえnullエージェントの高さ
stoppingDistancefloatいいえnullターゲットの手前で停止する距離

戻り値: { success, gameObject, speed, radius }

navmesh_add_obstacle

オブジェクトに NavMeshObstacle コンポーネントを追加します。

パラメーター型必須デフォルト説明
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject インスタンス ID
pathstringいいえnullGameObject 階層パス
carveboolいいえtrueカービングを有効にする

戻り値: { success, gameObject, carving }

navmesh_set_obstacle

NavMeshObstacle のプロパティ(形状、サイズ、カービング)を設定します。

パラメーター型必須デフォルト説明
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject インスタンス ID
pathstringいいえnullGameObject 階層パス
shapestringいいえnull障害物の形状(例: Box、Capsule)
sizeXfloatいいえnull障害物のサイズ X
sizeYfloatいいえnull障害物のサイズ Y
sizeZfloatいいえnull障害物のサイズ Z
carvingboolいいえnullカービングを有効にする

戻り値: { success, gameObject, shape, carving }

navmesh_sample_position

NavMesh 上の最も近い点を検索します。

パラメーター型必須デフォルト説明
xfloatはい-ソース位置 X
yfloatはい-ソース位置 Y
zfloatはい-ソース位置 Z
maxDistancefloatいいえ10最大検索距離

戻り値: { success, found, point: { x, y, z }, distance }

navmesh_set_area_cost

エリアの移動コストを設定します。

パラメーター型必須デフォルト説明
areaIndexintはい-NavMesh エリアインデックス
costfloatはい-移動コスト値

戻り値: { success, areaIndex, cost }

navmesh_get_settings

NavMesh のビルド設定を取得します。

パラメーター: なし。

戻り値: { success, agentRadius, agentHeight, agentSlope, agentClimb }


正確なシグネチャ

正確な名前、パラメーター、デフォルト、戻り値は、このファイルではなく、GET /skills/schema または unity_skills.get_skill_schema() によって定義されています。

コメント