unity-probuilder について
unity-probuilder は Unity のレベルグレーボックス作成やメッシュ編集向けのスキルモジュールです。エディターで編集可能なジオメトリを作成・調整でき、形状の一括作成や面、エッジ、頂点、UV、マテリアルの操作に対応します。ProBuilder パッケージが必要です。
主な機能
- 01形状の個別作成と一括作成
- 02面やエッジの押し出し、結合、編集
- 03頂点の移動、溶接、確認
- 04UV 投影とマテリアル設定
- 05メッシュ情報の確認とピボット調整
活用シーン
- 01レベルのグレーボックスを素早く作成
- 02ProBuilder メッシュの表面を編集
- 03斜面や不規則な輪郭を調整
- 04プロトタイプ形状に色やマテリアルを適用
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ besty0728/ unity-skills --skill unity-probuilderインストール後、Claude Code で/unity-probuilderを入力して読み込まれたか確認します。
同梱ファイルMODELING_REFERENCE.md
詳細
このモジュールのスキルを呼び出す前に: スキル名や説明から推測したパラメーターでスキルを呼び出そうとしている場合は、いったん停止してください。まずこのファイルを読むか、
GET /skills/recommend?includeSchema=trueでスキーマを取得してください。recommend/schema からすでにパラメーター定義を取得している場合は、そのまま dryRun に進めます。
トリガー
- レベルのグレーボックス化
- ProBuilder ジオメトリの作成または編集
- エディター内での形状のプロトタイピング
- 关卡灰盒搭建、创建或编辑 ProBuilder 几何体、在编辑器内快速搭形
Unity ProBuilder スキル
通常のプリミティブ GameObject ではなく、編集可能な ProBuilder メッシュにこのモジュールを使用してください。ブロックアウト、レベルジオメトリ、プロシージャルなメッシュの調整に最適です。
必要条件:
com.unity.probuilderパッケージ。 バッチ優先:シーンのブロックアウトやレベル生成で2+個の形状を作成する場合は、probuilder_create_batchを優先してください。
ガードレール
動作モード(v1.9 の 3 段階):
- 承認(デフォルト):スキルの照会(例:
probuilder_get_info、probuilder_get_vertices)はそのまま実行されます。作成・変更スキルは FullAuto です。1 回呼び出してMODE_RESTRICTEDが返されたら、許可プロトコルを実行してください。/permission/grantが成功すると、スキルはサーバー側で実行され、同じ応答で結果が返されます。 - 自動/バイパス:SemiAuto と FullAuto はそのまま実行されます。
- このモジュールで自動実行が禁止されるスキル:
probuilder_combine_meshes(SkillOperation.Modify | Delete。Deleteビットにより NeverInSemi がトリガーされます)。このスキルはバイパスモード中、またはユーザーが Allowlist に追加した後にのみ呼び出せます。許可フローではMODE_FORBIDDENが返されます。probuilder_delete_facesはOperation = SkillOperation.Modifyのみであり、承認/自動モードでも引き続き許可できます。 com.unity.probuilderが存在しない場合、すべてのスキルは実行されず、パッケージ不足の診断情報を返します。
禁止事項(よくある誤り):
probuilder_create_meshは存在しません。代わりにprobuilder_create_shapeを使用してください。probuilder_edit_faceは存在しません。probuilder_extrude_faces、probuilder_delete_faces、probuilder_merge_facesなど、用途に合った面スキルを使用してください。probuilder_set_materialとprobuilder_set_face_materialは別のスキルです。前者はオブジェクト全体、後者は選択した面に適用します。- 通常のメッシュが自動的に ProBuilder メッシュになることはありません。
- メッシュの再構築呼び出し(
ToMesh()+Refresh())は、スキルによってすでに処理されています。手動で再構築する手順を作らないでください。
ルーティング:
- 編集可能なトポロジーを持たない通常のプリミティブオブジェクトには、
gameobject_createを使用してください。 - マテリアルアセットの作成やシェーダー作業には、
materialを使用してください。 - 大規模なブロックアウト生成では、このモジュールを
materialおよびlightと組み合わせてください。ただし、ジオメトリの作成はこのモジュールで行ってください。
オブジェクトの指定
ほとんどの編集/照会スキルでは、次のいずれかを指定できます。
nameinstanceIdpath
シーン内に同じ名前のオブジェクトが複数ある場合は、instanceId を優先してください。
スキル
作成とバッチ処理
| スキル | 用途 | 主なパラメーター |
|---|---|---|
probuilder_create_shape | パラメトリックな ProBuilder 形状を作成 | shape、name?、x/y/z?、sizeX/Y/Z?、rotX/Y/Z? |
probuilder_create_batch | 1 回の呼び出しで複数の形状を作成 | items、defaultParent? |
サポートされている shape の値:Cube、Sphere、Cylinder、Cone、Torus、Prism、Arch、Pipe、Stairs、Door、Plane。
面とエッジの編集
| スキル | 用途 | 主なパラメーター |
|---|---|---|
probuilder_extrude_faces | 選択した面を押し出す | target、faceIndexes?、distance?、method? |
probuilder_delete_faces | インデックスで面を削除する | target、faceIndexes |
probuilder_merge_faces | 面を1つに結合する | target、faceIndexes? |
probuilder_flip_normals | 面の向きを反転する | target、faceIndexes? |
probuilder_detach_faces | 共有頂点から面を分離する | target、faceIndexes?、deleteSourceFaces? |
probuilder_bevel_edges | エッジを面取りする | target、edgeIndexes?、amount? |
probuilder_extrude_edges | エッジを外側に押し出す | target、edgeIndexes、distance?、extrudeAsGroup? |
probuilder_bridge_edges | 2つのエッジを新しい面でつなぐ | target、edgeA、edgeB、allowNonManifold? |
メッシュ、頂点、UV、マテリアル
| スキル | 用途 | 主なパラメーター |
|---|---|---|
probuilder_subdivide | 細分化してディテールを追加する | target、faceIndexes? |
probuilder_conform_normals | 法線の向きを一貫して外側にそろえる | target、faceIndexes? |
probuilder_move_vertices | 頂点を差分で移動する | target、vertexIndexes、deltaX/Y/Z? |
probuilder_set_vertices | 頂点の絶対位置を設定する | target、vertices |
probuilder_get_vertices | 頂点位置を取得する | target、vertexIndexes?、verbose? |
probuilder_weld_vertices | 近接する頂点を結合する | target、vertexIndexes、radius? |
probuilder_project_uv | ボックス投影でUVを設定する | target、faceIndexes?、channel? |
probuilder_set_face_material | 面にマテリアルを割り当てる | target、faceIndexes?、materialPath?、submeshIndex? |
probuilder_set_material | オブジェクト全体にマテリアルまたは簡易カラーを割り当てる | target、materialPath?、r/g/b/a? |
probuilder_combine_meshes | 複数のメッシュを結合する | names |
クエリとピボット
| スキル | 用途 | 主なパラメーター |
|---|---|---|
probuilder_get_info | 面、頂点、マテリアルの統計情報を取得する | target |
probuilder_center_pivot | ピボットを中央に配置する、または位置を変更する | target、worldX/Y/Z? |
ブロックアウトのワークフロー
probuilder_create_batchで主要なボリュームを作成します。- ディテールを追加する前に、移動経路とゲームプレイ上のスケールを確認します。
- 面やエッジの操作で表面を調整します。
- 頂点を編集して、ランプ、傾斜、不規則なシルエットを作成します。
- レイアウトが安定したら、簡易カラーまたは実際のマテリアルを適用します。
最小限の例
import unity_skills
unity_skills.call_skill("probuilder_create_batch", items=[
{"shape": "Cube", "name": "Ground", "sizeX": 20, "sizeY": 0.5, "sizeZ": 12, "y": -0.25},
{"shape": "Cube", "name": "Platform_A", "sizeX": 3, "sizeY": 0.3, "sizeZ": 3, "x": 4, "y": 1.5},
{"shape": "Cube", "name": "Ramp", "sizeX": 3, "sizeY": 1, "sizeZ": 5, "x": 8, "y": 0.5}
])
unity_skills.call_skill("probuilder_move_vertices",
name="Ramp",
vertexIndexes="4,5",
deltaY=-0.8
)
unity_skills.call_skill("probuilder_set_material",
name="Platform_A",
r=0.2, g=0.6, b=1.0
)
重要な注意事項
- ProBuilder オブジェクトは、
ProBuilderMeshを通じて編集可能なトポロジーを保持します。 - 面を編集する前に
probuilder_get_infoを、頂点を編集する前にprobuilder_get_verticesを使用してください。 - 物理駆動のプロップに設定するMeshColliderは、凸形状である必要があります。
- プロトタイプの作成時には簡易カラーの割り当てで問題ありませんが、本番環境ではマテリアルアセットを使用してください。
- ProBuilderがインストールされていない場合、パッケージが見つからないというエラーが発生するのは想定どおりです。
正確なシグネチャ
正確な名前、パラメーター、デフォルト値、戻り値は、このファイルではなくGET /skills/schemaまたはunity_skills.get_skill_schema()で定義されています。
シーン設計のヒューリスティクス、家具の分解方法、詳細な例、拡張モデリングのヒントについては、MODELING_REFERENCE.mdを読み込んでください。