mcpField
U
unity-perception

unity-perception

github.com/besty0728開発1.9k80 回インストール今日更新
リポジトリ

unity-perception について

unity-perception は、Unity のシーン、プロジェクト、スクリプトを読み取り専用で分析するスキル群です。要約、診断、依存関係の確認、コンテキストの出力により、編集前のプロジェクト理解を支援します。

主な機能

  1. 01シーンの要約とヘルスチェック
  2. 02階層とホットスポットの確認
  3. 03プロジェクト構成の検出
  4. 04スクリプト分析と依存グラフ
  5. 05シーンコンテキストとマテリアルの照会

活用シーン

  1. 01編集前のシーン確認
  2. 02階層やシーンの問題の発見
  3. 03プロジェクトのパッケージとパイプラインの把握
  4. 04スクリプトやシーンの依存関係の追跡

インストール

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

$npx skills add https://github.com/besty0728/unity-skills --skill unity-perception

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

詳細

このモジュールのスキルを呼び出す前に: 名前や説明から推測したパラメーターでスキルを呼び出そうとしている場合は、いったん停止し、このファイルを読むか、GET /skills/recommend?includeSchema=true でスキーマを取得してください。recommend/schema からパラメーター定義をすでに取得している場合は、そのまま dryRun に進めます。

トリガー

  • 編集前のコンテキスト収集
  • 不慣れなシーン/プロジェクトの理解
  • 変更を加えずに構造を監査する

Unity Perception Skills

このモジュールは、読み取り専用のシーンおよびプロジェクト分析に使用します。

動作モード

  • Approval/Auto/Bypass:このモジュールの 18 個のスキルのうち 17 個は Mode = SkillMode.SemiAuto に設定されており、3 つのモードすべてで grant 不要で直接実行できます。そのうち 16 個は純粋な読み取り専用(ReadOnly = true)です:scene_analyze / scene_summarize / scene_health_check / scene_component_stats / scene_find_hotspots / scene_tag_layer_stats / scene_performance_hints / scene_diff / hierarchy_describe / scene_context / scene_spatial_query / scene_materials / scene_contract_validate / project_stack_detect / script_analyze / script_dependency_graph。
  • scene_dependency_analyze は 17 個目の SemiAuto ですが、純粋な読み取り専用ではありません:savePath を渡すと Directory.CreateDirectory + File.WriteAllText + ImportAsset によって新しいプロジェクトアセットを作成するため、MutatesAssets = true に設定され、ReadOnly は設定されません。引き続き grant は不要ですが、router の diff キャプチャ対象となり、schema/flags にも mutatesAssets が含まれます。savePath を渡さない場合に限り、実際に何も書き込みません。
  • 特記事項:scene_export_report は Markdown ファイルをディスクに書き込みます(Operation = Analyze | Execute、MutatesAssets = true に設定)。そのため SemiAuto ではなく、デフォルトの SkillMode.FullAuto で動作し、Approval モードでは実行に grant が必要です。
  • このモジュールには Delete/PlayMode/Reload/RiskLevel=high に該当するスキルはありません —— IsForbiddenInSemi によるブロックはありません。

禁止事項(よくある誤認):

  • perception_analyze、perception_scan、perception_describe は存在しません
  • scene_context は editor_get_context ではありません。階層/コンポーネント/参照をエクスポートする一方、editor context は現在のエディター状態に焦点を当てています
  • scene_analyze、scene_health_check、scene_contract_validate、scene_component_stats、scene_find_hotspots、project_stack_detect は、プレフィックスが scene_* や project_* のように見えても、このモジュールに属します

ルーティング:

  • 現在の選択対象/PlayMode/エディターの状態 → editor_get_context
  • 名前/パスによるオブジェクト検索 → scene_find_objects または gameobject_find
  • スクリプトの依存関係の推移的な閉包 → script_dependency_graph

スキル

シーンのヘルスと概要
スキル用途主なパラメーター
scene_analyzeシーンとプロジェクトの複合分析topComponentsLimit?、issueLimit?、deepHierarchyThreshold?、largeChildCountThreshold?
scene_health_check読み取り専用のヘルスレポートissueLimit?、deepHierarchyThreshold?、largeChildCountThreshold?
scene_summarize構造化されたシーン概要includeComponentStats?、topComponentsLimit?
scene_component_statsコンポーネントと施設の統計topComponentsLimit?
scene_find_hotspots深い階層/大規模グループ/空のノードのホットスポットしきい値 + maxResults?
scene_tag_layer_statsタグ/レイヤーの使用状況なし
scene_performance_hints優先順位付きの最適化ヒントなし
シーンのスナップショットとエクスポート
スキル用途主なパラメーター
scene_diff軽量なスナップショットを取得または比較しますsnapshotJson?
hierarchy_describeテキスト形式の階層ツリーを返しますmaxDepth?、includeInactive?、maxItemsPerLevel?
scene_context階層、コンポーネント、参照をエクスポートしますmaxDepth?、maxObjects?、rootPath?、includeValues?、includeReferences?、includeCodeDeps?
scene_export_reportMarkdown 形式のシーンレポートを保存しますsavePath?、maxDepth?、maxObjects?
scene_dependency_analyzeシーン内の影響/依存関係グラフを分析しますtargetPath?、savePath? — 書き込みを行います

scene_dependency_analyze の savePath は出力オプションではなく、書き込みを行います。 これを指定すると、ディレクトリを作成し、Markdown レポートを書き込み、プロジェクトアセットとしてインポートします。そのため、このスキルには ReadOnly ではなく mutatesAssets のフラグが付いています。savePath を省略すると、ディスク上のファイルには何も変更を加えず、同じ分析結果がレスポンス(analysis、markdown)に返されます。単に「これに依存しているものは何か」と尋ねる場合は、この方法を使用してください。ファイルを求められた場合にのみ savePath を渡し、レスポンスにファイル名を示す savedTo が含まれることを想定してください。

プロジェクトとスクリプトの分析
スキル用途主なパラメーター
project_stack_detectパイプライン、入力、UI、パッケージ、テスト、フォルダーを検出しますなし
script_analyzeクラス名を指定して、1 つの MonoBehaviour/ScriptableObject/ユーザークラスを分析しますscriptName、includePrivate?
script_dependency_graph1 つのスクリプトクラス名を起点に、N ホップの依存関係の推移閉包を取得しますscriptName、maxHops?、includeDetails?
空間およびマテリアルのクエリ
スキル用途主なパラメーター
scene_spatial_query点またはオブジェクトの近くにあるオブジェクトを検索しますx/y/z?、radius?、nearObject?、componentFilter?、maxResults?
scene_materialsシーンのマテリアルとシェーダーの概要を返しますincludeProperties?
scene_contract_validateデフォルトのルート/タグ/レイヤー/UI EventSystem の規約を検証しますrequiredRootsJson?、requiredTagsJson?、requiredLayersJson?、requireEventSystemForUi?

使用頻度の高いスキルの違い

scene_summarize と scene_analyze と scene_health_check
スキル最適な用途主な出力内容
scene_summarize手早い概要オブジェクト数、階層の深さ、主要なコンポーネント
scene_analyze幅広い診断概要 + 検出結果 + 警告 + 推奨事項 + 次に使うスキルのヒント
scene_health_check整理状態/危険信号の確認スクリプトの欠落、名前の重複、深い階層、空のノード、ホットスポット形式の検出結果
scene_context と hierarchy_describe
スキル最適な用途出力形式
hierarchy_describe人が読みやすいツリーテキストツリー、軽量
scene_contextAI コーディングのコンテキスト構造化された階層 + コンポーネント + 参照 + オプションのコード依存関係
scene_dependency_analyze と script_dependency_graph
スキル範囲使用する場面
scene_dependency_analyzeシーンオブジェクトの参照「このオブジェクトを削除または無効化した場合、何が依存しているか」と尋ねる場合
script_dependency_graphスクリプトクラスの依存関係の推移閉包「この機能を変更するには、どのスクリプトに手を加える必要があるか」と尋ねる場合

主な戻り値の形式

scene_summarize

sceneName、stats、およびオプションの topComponents を返します。

scene_analyze

summary、stats、findings、warnings、recommendations、および suggestedNextSkills を返します。

scene_health_check

summary、findings、hotspots、および suggestedNextSkills を返します。

scene_context

objects、references、および任意のcodeDependenciesを含む構造化エクスポートを返します。人間向けの要約だけでなく、別の AI ステップでシーン全体のコンテキストが必要な場合に使用します。

使用頻度の高いオプション:

  • rootPathを指定すると、1 つのサブツリーのみをエクスポートします
  • シリアライズされたフィールド値が必要な場合は、includeValues=trueを指定します
  • AI にシーンとコードの依存関係の概要が必要な場合は、includeCodeDeps=trueを指定します
scene_export_report

Markdown 形式の成果物をディスクに書き込み、savedTo、オブジェクト/スクリプト/参照の数、成功状態を返します。ユーザーが永続的なレポートファイルを求めている場合に使用してください。

デフォルト:

  • savePath = "Assets/Docs/SceneReport.md"
  • maxDepth = 10
  • maxObjects = 500

スキルの使い分け

必要なこと最初に使うのに最適なスキル
シーンの概要をすばやく把握scene_summarize
詳細な診断scene_analyze
不審な階層構造や煩雑さの特定scene_find_hotspots
削除しても安全か/影響に関する確認scene_dependency_analyze
AI コーディング用コンテキストのエクスポートscene_context
スクリプトを読む順序script_dependency_graph
レンダリング/入力/UI スタックの検出project_stack_detect

最小限の例

import unity_skills

summary = unity_skills.call_skill("scene_summarize", includeComponentStats=True)
health = unity_skills.call_skill("scene_health_check", issueLimit=50)
context = unity_skills.call_skill("scene_context", maxDepth=6, maxObjects=120)
report = unity_skills.call_skill("scene_export_report", savePath="Assets/Docs/SceneReport.md")

正確なシグネチャ

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

コメント