unity-decal について
Unity で URP の Decal Projector を作成、検索、設定するスキルモジュールです。プロパティの一括編集やレンダラー機能の確認にも対応し、HDRP のデカール API は対象外です。
主な機能
- 01Decal Projectorの作成
- 02プロジェクターの確認と検索
- 03プロパティの個別・一括編集
- 04URPレンダラーのデカール機能を確保
- 05プロジェクターオブジェクトの削除
活用シーン
- 01URPシーンへのデカール配置
- 02プロジェクターの検索と設定確認
- 03外観やサイズの一括調整
- 04レンダラーのデカール対応確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ besty0728/ unity-skills --skill unity-decalインストール後、Claude Code で/unity-decalを入力して読み込まれたか確認します。
詳細
呼び出す前に、このモジュールのスキルを使用する場合: 名前や説明からパラメーターを推測してスキルを呼び出そうとしている場合は、いったん停止し、まずこのファイルを読むか、
GET /skills/recommend?includeSchema=trueでスキーマを取得してください。recommend/schema からパラメーター定義をすでに取得している場合は、直接 dryRun に進めます。
トリガー
- URP でデカールを追加する
- Decal Projector を設定する
- Decal Renderer Feature を有効にする
- URP でデカールを追加する、Decal Projector を設定する、Decal Renderer Feature を有効にする
デカールスキル
URP の Decal Projector の作成と設定(URP のみ。HDRP のデカール API は対象外です)。
動作モード
- クエリスキル(
decal_get_info、decal_find_all)はSkillMode.SemiAutoです。許可なしで、3 つすべてのモードで実行されます。 - 変更スキル(
decal_create、decal_set_properties、decal_set_properties_batch、decal_ensure_renderer_feature)はSkillMode.FullAutoです。Approval ではユーザーの許可が必要です(許可するとサーバー側で 1 回実行され、結果が返されます)。Auto/Bypass では直接実行されます。 decal_deleteにはSkillOperation.Deleteが設定されており、Approval/Auto モードでは自動的に禁止されます(NeverInSemi)。実行できるのは Bypass またはユーザーが管理する Allowlist のみです。
URP パッケージのスタブ
このモジュールは com.unity.render-pipelines.universal(URP)を対象にコンパイルされています。URP がインストールされていない場合、すべてのスキルはスタブ { error: "Universal Render Pipeline package … is not installed." }(RenderPipelineSkillsCommon.NoURP())を返します。このスタブは診断用のペイロードであり、権限による拒否ではありません。許可は不要で、NeverInSemi としても扱われません。
ガードレール
ルーティング:
- レンダラー機能全般の管理:
urp - DecalProjector のシーン操作:このモジュール
ランタイム優先のルール:
- 現在の URP レンダラーがデカールに対応していると決めつける前に、
decal_ensure_renderer_featureを呼び出す - 編集前に、
decal_get_info/decal_find_allを使って実際のプロジェクターの状態を確認する decal_set_properties_batchでは、itemsに JSON 配列文字列を指定する- このモジュールはまず URP のデカールワークフローを対象とします。HDRP のデカール API も対象だと決めつけないでください
スキル
decal_create
Decal Projector を作成します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
name | string | いいえ | "Decal Projector" | 新しい GameObject の名前 |
materialPath | string | いいえ | null | デカールマテリアルのアセットパス。省略した場合は未割り当てになります |
x | float | いいえ | 0 | ワールド位置の X 座標 |
y | float | いいえ | 0 | ワールド位置の Y 座標 |
z | float | いいえ | 0 | ワールド位置の Z 座標 |
decal_get_info
Decal Projector を調査します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
name | string | いいえ* | null | GameObject の名前 |
instanceId | int | いいえ* | 0 | GameObject のインスタンス ID |
path | string | いいえ* | null | GameObject の階層パス |
* 少なくとも 1 つの検索条件を指定してください。検索条件のない呼び出しは、「見つかりませんでした」と返すのではなく、事前に拒否されます。
decal_set_properties
Decal Projector のプロパティを変更します。以下の各プロパティは指定された場合にのみ適用されるため、呼び出しによって変更されるのは指定したフィールドのみです。無効な値がある場合は、何も書き込まれる前に呼び出し全体が拒否されます。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
name | string | No* | null | GameObject 名 |
instanceId | int | No* | 0 | GameObject のインスタンス ID |
path | string | No* | null | GameObject の階層パス |
materialPath | string | No | null | Decal マテリアルのアセットパス |
drawDistance | float | No | null | デカールが描画される最大距離 |
fadeScale | float | No | null | フェードが開始する drawDistance の割合 |
fadeFactor | float | No | null | 全体の不透明度倍率 |
startAngleFade | float | No | null | 角度ベースのフェードが始まる角度(度) |
endAngleFade | float | No | null | 角度ベースのフェードが完了する角度(度) |
uvScale | string | No | null | UV タイリング("x,y") |
uvBias | string | No | null | UV オフセット("x,y") |
size | string | No | null | Projector のボックスサイズ("x,y,z") |
pivot | string | No | null | Projector のピボットオフセット("x,y,z") |
renderingLayerMask | uint | No | null | レンダリングレイヤーマスクのビット |
scaleMode | string | No | null | ScaleInvariant または InheritFromHierarchy(数値のみを含むその他の値は拒否されます) |
decal_find_all
シーン内の Decal Projector を一覧表示します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
limit | int | No | 50 | 返される Projector の最大数 |
decal_delete
Decal Projector の GameObject を削除します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
name | string | No* | null | GameObject 名 |
instanceId | int | No* | 0 | GameObject のインスタンス ID |
path | string | No* | null | GameObject の階層パス |
decal_set_properties_batch
Decal Projector を一括編集します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
items | json string | Yes | - | {name, instanceId, path, materialPath, drawDistance, fadeScale, fadeFactor, startAngleFade, endAngleFade, uvScale, uvBias, size, pivot, renderingLayerMask, scaleMode} の JSON 配列。各項目で使用するキーは decal_set_properties と同じです |
decal_ensure_renderer_feature
対象の URP レンダラーに DecalRendererFeature があることを確認します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
assetPath | string | No | null | URP アセットのパス。省略した場合はアクティブな URP アセットが使用されます |
rendererIndex | int | No | -1 | URP アセット内のレンダラーインデックス。-1 を指定すると、アセットのデフォルトレンダラーが選択されます |
rendererDataPath | string | No | null | UniversalRendererData アセットのパス。rendererIndex より優先され、解決された URP アセットに属している必要があります |
機能がすでに存在する場合は alreadyExists: true を返すため、呼び出しを繰り返しても安全です。
正確なシグネチャ
正確な名前、パラメーター、デフォルト値、戻り値はこのファイルではなく、GET /skills/schema または unity_skills.get_skill_schema() で定義されています。