mcpField
U
unity-smart

unity-smart

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

unity-smart について

unity-smart は 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-smart

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

詳細

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

トリガー

  • 条件または近接関係に基づくシーンオブジェクトの検索
  • オブジェクトの自動配置
  • 参照の自動接続
  • 按条件或邻近关系查询场景对象、自动排布对象、自动连线引用

Unity Smart Skills

動作モード

  • Approval:このモジュールは Mixed です。読み取り専用のクエリスキル smart_scene_query / smart_scene_query_spatial(ReadOnly = true、Mode = SkillMode.SemiAuto と指定)は直接実行できます。それ以外のレイアウト/バインド/変換系スキル(smart_scene_layout / smart_reference_bind / smart_align_to_ground / smart_distribute / smart_snap_to_grid / smart_randomize_transform / smart_select_by_component)は SkillMode.FullAuto のため、ユーザーの許可を得てから実行結果を返す必要があります。
  • Auto / Bypass:直接実行します。
  • NeverInSemi を含む高リスクスキル:smart_replace_objects(Operation.Modify|Delete。元のオブジェクトを置き換えて削除します)。このスキルは Approval/Auto では MODE_FORBIDDEN を返し、Bypass または Allowlist に該当する場合にのみ呼び出せます。

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

  • smart_create / smart_build は存在しません → smart skills はクエリ/レイアウトツールであり、作成ツールではありません
  • smart_search / smart_query は存在しません → smart_scene_query(コンポーネントのプロパティーフィルター)または smart_scene_query_spatial(空間領域フィルター)を使用してください
  • smart_move は存在しません → smart_snap_to_grid または smart_align_to_ground を使用してください

振り分け:

  • オブジェクトの作成には → gameobject モジュールを使用
  • 簡単なオブジェクト検索には → gameobject_find または scene_find_objects を使用
  • 複雑なシーンクエリ(SQL のようなクエリ)には → smart_scene_query(このモジュール)を使用

スキル

smart_scene_query

コンポーネントのプロパティー値に基づいてオブジェクトを検索します(SQL のようなクエリ)。

パラメーター型必須デフォルト説明
componentNamestringはい-コンポーネントの型(Light、Camera、MeshRenderer)
propertyNamestringはい-クエリ対象のプロパティー(intensity、enabled など)
opstringいいえ"=="==、!=、>、<、>=、<=、contains
valuestringいいえnull比較する値
limitintいいえ50最大結果数
querystringいいえnullサポートされていない省略形式です。単独で指定すると、ガイダンスエラーが返されます

未知の propertyName、リストにない op、数値以外のメンバーまたは数値以外の value に対する >/</>=/<=、bool に対する ==/!= 以外の演算子は、何も一致しないまま処理されるのではなく、SEMANTIC_INVALID で拒否されます(メンバー名の誤記には、最も近い名前の候補が提示されます)。

例:

# Find all lights with intensity > 2
call_skill("smart_scene_query", componentName="Light", propertyName="intensity", op=">", value="2")

smart_scene_layout

選択したオブジェクトをレイアウトに配置します。

パラメーター型必須デフォルト説明
layoutTypestringいいえ"Linear"Linear、Grid、Circle、Arc
axisstringいいえ"X"X、Y、Z、-X、-Y、-Z
spacingfloatいいえ2.0項目間の間隔(または半径)
columnsintいいえ3Grid レイアウト用
arcAnglefloatいいえ180Arc レイアウト用(度)
lookAtCenterboolいいえfalse中心を向くように回転します

例:

# Arrange selected objects in a circle
call_skill("smart_scene_layout", layoutType="Circle", spacing=5)

smart_reference_bind

一致するオブジェクトで List/Array フィールドを自動入力します。

パラメーター型必須デフォルト説明
targetNamestringはい-対象の GameObject
componentNamestringいいえ-対象上のコンポーネント
fieldNamestringはい-入力するフィールド
sourceTagstringいいえnullタグで検索
sourceNamestringいいえnull名前に指定文字列を含むオブジェクトを検索
appendModeboolいいえfalse置換せずに追加

例:

# Fill GameManager.spawns with all SpawnPoint tagged objects
call_skill("smart_reference_bind", targetName="GameManager", componentName="GameController", fieldName="spawns", sourceTag="SpawnPoint")

smart_scene_query_spatial

球体/ボックス領域内のオブジェクトを検索します。コンポーネントで絞り込むこともできます。

パラメーター型必須デフォルト説明
xfloatはい-中心の X 座標
yfloatはい-中心の Y 座標
zfloatはい-中心の Z 座標
radiusfloatいいえ10検索する球体の半径
componentFilterstringいいえnullこのコンポーネントを持つオブジェクトのみを含めます
limitintいいえ50結果の最大数

戻り値: { success, count, center, radius, results }


smart_align_to_ground

選択したオブジェクトに下向きのレイキャストを行い、地面に合わせます。あらかじめ Hierarchy でオブジェクトを選択しておく必要があります。

パラメーター型必須デフォルト説明
maxDistancefloatいいえ100レイキャストの最大距離
alignRotationboolいいえfalse回転を表面の法線に合わせます

戻り値: { success, aligned, total }


smart_distribute

選択したオブジェクトを、最初と最後の位置の間に均等に配置します。あらかじめ Hierarchy で 3 つ以上のオブジェクトを選択しておく必要があります。

パラメーター型必須デフォルト説明
axisstringいいえ"X"X、Y、Z、-X、-Y、-Z

戻り値: { success, distributed, axis }


smart_snap_to_grid

選択したオブジェクトをグリッドにスナップします。

パラメーター型必須デフォルト説明
gridSizefloatいいえ1グリッドのセルサイズ

戻り値: { success, snapped, gridSize }


smart_randomize_transform

選択したオブジェクトの位置/回転/スケールを、指定した範囲内でランダム化します。

パラメーター型必須デフォルト説明
posRangefloatいいえ0位置のランダム化範囲
rotRangefloatいいえ0回転のランダム化範囲(度)
scaleMinfloatいいえ1均一スケールの最小値
scaleMaxfloatいいえ1均一スケールの最大値

戻り値: { success, randomized }


smart_replace_objects

選択したオブジェクトをプレハブに置き換えます(トランスフォームは維持されます)。あらかじめ Hierarchy でオブジェクトを選択しておく必要があります。

パラメーター型必須デフォルト説明
prefabPathstringはい-置換先プレハブのアセットパス

戻り値: { success, replaced, prefab }


smart_select_by_component

特定のコンポーネントを持つオブジェクトをすべて選択します。

パラメーター型必須デフォルト説明
componentNamestringいいえ-検索するコンポーネント型の名前(componentName が省略された場合に使用されるエイリアスは componentType です)

戻り値: { success, selected, component }


正確なシグネチャ

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

コメント