mcpField
U
unity-camera

unity-camera

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

unity-camera について

unity-camera は、Scene View カメラと Game Camera を操作する Unity スキルモジュールです。カメラの作成やプロパティ設定、構図調整、カリング、正投影切り替え、画面撮影に対応します。

主な機能

  1. 01Scene View の構図とフォーカス調整
  2. 02Game Camera の作成と一覧表示
  3. 03カメラプロパティの取得と編集
  4. 04カリングマスクと投影方式の設定
  5. 05Game Camera の画面撮影
  6. 06Scene View の画面撮影

活用シーン

  1. 01Scene View でオブジェクトに構図を合わせる
  2. 02カメラの FOV やクリップ面を設定
  3. 03カメラ画面またはエディタービューを撮影

MCP 対応

入力にはスキルの説明がありますが、MCP クライアントへの機能公開方法は記載されていません。

インストール

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

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

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

詳細

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

トリガー

  • Scene View の構図調整
  • カメラの作成や調整
  • FOV やクリッピングプレーンの調整
  • Scene View の構図調整、カメラの作成や調整、FOV やクリッピングプレーンの変更

カメラスキル

Scene View カメラとゲームカメラ(作成、トランスフォーム、プロパティ、スクリーンショット、カリング、正投影の切り替え)を制御します。

動作モード

  • 承認(デフォルト):変更を伴うスキル(camera_set_transform、camera_create、camera_set_properties、camera_set_culling_mask、camera_screenshot、camera_sceneview_screenshot、camera_set_orthographic、camera_align_view_to_object、camera_look_at)にはユーザーの許可が必要です。許可すると、サーバー側で1回実行され、結果が返されます。
  • 自動/バイパス:これらのスキルは直接実行されます。
  • クエリスキル(camera_get_info、camera_get_properties、camera_list)は SkillMode.SemiAuto です。許可なしで、3つのモードすべてで実行されます。
  • このモジュールには、削除/PlayMode/再読み込み/高リスクのスキルはありません(NeverInSemi はありません)。

ガードレール

次のことはしないでください(よくある誤り):

  • camera_move/camera_rotate は存在しません → Scene View には camera_set_transform を、ゲームカメラには gameobject_set_transform を使用してください
  • camera_set_fov は存在しません → fieldOfView パラメーターを指定して camera_set_properties を使用してください
  • camera_* スキルは異なる2種類のカメラを制御します。camera_set_transform/camera_look_at/camera_align_view_to_object は Scene View カメラを制御し、camera_create/camera_set_properties/camera_screenshot はゲームカメラを制御します
  • camera_delete は存在しません → カメラの GameObject に gameobject_delete を使用してください

振り分け:

  • Cinemachine の仮想カメラには cinemachine モジュールを使用してください
  • ゲームカメラのコンポーネントプロパティには camera_set_properties/camera_get_properties(このモジュール)を使用してください
  • スクリーンショットには3つの方法があります。scene_screenshot(scene モジュール)はゲームビューの最終合成画像(すべてのカメラと UI を含み、Play モードでは実行時のライブフレーム)を取得します。camera_screenshot(このモジュール)は単一のゲームカメラによるオフスクリーンレンダリングを取得します。camera_sceneview_screenshot(このモジュール)はエディターの Scene View(開発者のビューポート。グリッド/ギズモを含む)を取得します

スキル

camera_align_view_to_object

Scene View カメラを、オブジェクトを見る向きに合わせます。 パラメーター:

  • name(string、任意):対象の GameObject 名。
  • instanceId(int、任意):対象の GameObject インスタンス ID。
  • path(string、任意):対象の GameObject の階層パス。
camera_get_info

エディターの Scene View ビューポートカメラの位置と回転を取得します。これは開発者のビューポートであり、シーン内の Camera コンポーネントではありません。そのため、対象パラメーターは必要ありません。ゲームカメラの状態を確認するには camera_get_properties を使用してください(カメラを探すには camera_list を使用)。camera_create でカメラを作成した直後に、そのトランスフォームを確認したい場合、camera_get_info には表示されません。 パラメーター: なし。

camera_set_transform

ピボット(視点の中心となるワールド座標。目の位置ではありません)、回転、サイズを指定して Scene View カメラを設定します。 パラメーター:

  • posX、posY、posZ(float):ピボット。視点の中心となるワールド座標で、目の位置ではありません。
  • rotX、rotY、rotZ(float):回転(オイラー角)。
  • size(float、任意):Scene View のサイズ(ズーム)(デフォルトは 5)。
  • instant(bool、任意):true:即時に適用して読み戻します。false:アニメーションで適用します(デフォルトは true)。

戻り値: { success, message, pivot, rotation, size, orthographic }。さらに instant=true の場合は cameraPosition(目の位置)、instant=false の場合は animating: true が返されます。

camera_look_at

Scene View カメラをワールド空間の点にフォーカスします。即座に適用されます。 パラメーター:

  • x、y、z(float):ターゲットの点。
  • targetName または GameObject の検索には対応していません。オブジェクトにフォーカスするには、camera_align_view_to_object を使用してください。

戻り値: { success, pivot, rotation, size }。

camera_create

新しい Game Camera を作成します。

パラメーター型必須デフォルト説明
namestringいいえ"New Camera"新しいカメラ GameObject の名前
xfloatいいえ0位置 X
yfloatいいえ1位置 Y
zfloatいいえ-10位置 Z
addAudioListenerboolいいえfalseAudioListener コンポーネントも追加するかどうか

戻り値: { success, name, instanceId }

camera_get_properties

Game Camera のプロパティを取得します(name/instanceId/path に対応)。

パラメーター型必須デフォルト説明
namestringいいえnullカメラ GameObject の名前
instanceIdintいいえ0カメラ GameObject の Instance ID
pathstringいいえnullカメラ GameObject の Hierarchy パス

戻り値: { success, name, fieldOfView, nearClipPlane, farClipPlane, orthographic, orthographicSize, depth, cullingMask, clearFlags, backgroundColor, rect }

camera_set_properties

Game Camera のプロパティを設定します(FOV、クリップ面、クリアフラグ、背景色、深度)。

パラメーター型必須デフォルト説明
namestringいいえnullカメラ GameObject の名前
instanceIdintいいえ0カメラ GameObject の Instance ID
pathstringいいえnullカメラ GameObject の Hierarchy パス
fieldOfViewfloat?いいえnullカメラの視野角
nearClipPlanefloat?いいえnullニアクリップ面までの距離
farClipPlanefloat?いいえnullファークリップ面までの距離
depthfloat?いいえnullカメラのレンダリング深度
clearFlagsstringいいえnullクリアフラグ:Skybox、Color、SolidColor、Depth、Nothing。Color と SolidColor は、内部では同じ CameraClearFlags 値を指す2つの名前です。そのため、どちらも受け付けられ、レスポンスでは常に Color として返されます。書き込みが無視されたと解釈しないでください
bgRfloat?いいえnull背景色の赤成分(0-1)
bgGfloat?いいえnull背景色の緑成分(0-1)
bgBfloat?いいえnull背景色の青成分(0-1)
bgAfloat?いいえnull背景色のアルファ値(0-1)

省略した bg* チャンネルは、カメラの現在の値が維持されるため、アルファ値だけを設定することもできます。

戻り値: { success, name, applied, fieldOfView, nearClipPlane, farClipPlane, orthographic, orthographicSize, depth, cullingMask, clearFlags, backgroundColor, rect } — レスポンスには書き込み後のカメラの状態が含まれ、applied には実際に変更されたパラメーターが、渡したとおりの名前で列挙されます(背景色のチャンネルは backgroundColor にまとめられず、bgR、bgG、bgB、bgA として個別に表示されます)。そのため、applied に含まれないパラメーターは指定されていません。このレスポンスが確認手段となるため、2回目の camera_get_properties 呼び出しは不要です。解析できない clearFlags が指定された場合は、何も適用される前に SEMANTIC_INVALID と validValues を伴って呼び出し全体が拒否されます。そのため、同じ呼び出しに含まれる数値パラメーターが一部だけ書き込まれることはありません。

camera_set_culling_mask

レイヤー名(カンマ区切り)でゲームカメラのカリングマスクを設定します。

ParameterTypeRequiredDefaultDescription
layerNamesstringYes-カンマ区切りのレイヤー名
namestringNonullカメラのGameObject名
instanceIdintNo0カメラのGameObjectのインスタンスID
pathstringNonullカメラのGameObjectの階層パス

戻り値: { success, cullingMask, layers } — layers には、結果のマスクに含まれるレイヤー名が一覧表示されます。

camera_screenshot

ゲームカメラのスクリーンショットをファイルに保存します。

ParameterTypeRequiredDefaultDescription
savePathstringNo"Assets/screenshot.png"スクリーンショットの保存先ファイルパス
widthintNo1920スクリーンショットの幅(ピクセル)
heightintNo1080スクリーンショットの高さ(ピクセル)
namestringNonullカメラのGameObject名
instanceIdintNo0カメラのGameObjectのインスタンスID
pathstringNonullカメラのGameObjectの階層パス
returnImageboolNofalseファイルシステムにアクセスできないクライアント向けに、レスポンスでPNGをbase64(imageBase64)としても返します
maxDimensionintNo1280returnImage=true の場合のみ使用されます。返される画像(保存ファイルではありません)を縮小し、長辺をこの値以下にします。256~4096の範囲に制限されます

戻り値: { success, path, width, height }。returnImage=true の場合は、さらに { imageBase64, imageWidth, imageHeight, imageBytes } が返されます。base64のペイロードが8MBを超える場合、スキルは maxDimension を小さくするよう求めるエラーを返します。path のファイルは引き続き保存されます。

camera_sceneview_screenshot

エディターのシーンビュー(開発者が編集に使用するビューポート。カメラに映らないオブジェクトを含むシーン全体を見渡せます)をキャプチャします。scene_screenshot(ゲームビュー/プレイヤーカメラ)や camera_screenshot(1台のゲームカメラ)とは異なります。デフォルトでは、グリッド/ギズモ/選択状態を含むシーンビュー全体をキャプチャします(画面上の表示を読み取ります)。エディタービルドで内部APIが使用できない場合は、クリーンなオフスクリーンレンダリングに自動でフォールバックします。オーバーレイをキャプチャするには、シーンビューウィンドウを開いて表示しておく必要があります。

ParameterTypeRequiredDefaultDescription
filenamestringNo"sceneview.png"ファイル名のみ(パス区切り文字なし)。Assets/Screenshots/ に保存されます
includeOverlaysboolNotruetrue = グリッド/ギズモ/選択状態を含むシーンビュー全体(未対応の場合はクリーンなレンダリングにフォールバック)。false = クリーンなオフスクリーンシーンレンダリングのみ
returnImageboolNofalseファイルシステムにアクセスできないクライアント向けに、レスポンスでPNGをbase64(imageBase64)としても返します
maxDimensionintNo1280returnImage=true の場合のみ使用されます。返される画像(保存ファイルではありません)を縮小し、長辺をこの値以下にします。256~4096の範囲に制限されます

戻り値: { success, path, width, height, mode, note } — mode は "screen_with_overlays" または "offscreen_clean" です。returnImage=true の場合は、さらに { imageBase64, imageWidth, imageHeight, imageBytes } が返されます。base64のペイロードが8MBを超える場合、スキルは maxDimension を小さくするよう求めるエラーを返します。path のファイルは引き続き保存されます。

returnImageの使用ヒント: ファイルを読み取れるローカルエージェント(ローカルのUnity Editorで動作するClaude Codeなど)は、通常 returnImage を省略し、path にあるPNGを読み取ることをおすすめします。トークンの節約になります。Unityプロジェクトのファイルシステムにアクセスできないリモート/MCPクライアントでは、returnImage=true を使用してください。

camera_set_orthographic

ゲームカメラを正投影モードと透視投影モードの間で切り替えます。

パラメーター型必須デフォルト説明
orthographicboolはい-正投影の場合は True、透視投影の場合は false
orthographicSizefloat?いいえnull正投影サイズ(正投影モードの場合のみ適用)
namestringいいえnullカメラの GameObject の名前
instanceIdintいいえ0カメラの GameObject のインスタンス ID
pathstringいいえnullカメラの GameObject の階層パス

戻り値: { success, orthographic, orthographicSize }

camera_list

シーン内のすべてのカメラを一覧表示します。

パラメーター型必須デフォルト説明

戻り値: { count, cameras: [{ name, instanceId, path, depth, orthographic, enabled }] }


正確なシグネチャ

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

コメント