layout_proposal.jsonの家具配置をGLBアセットとしてBlenderシーンに自動配置する統合スキル。GLB測定→front方向の自律判定→配置実行→配置結果の視覚的評価までを一気通貫で実行する。GLBアセットのBlender配置、家具レイアウトの3D化、scene.blendの生成に関連するタスクで必ずこのスキルを参照すること。
layout_proposal.jsonの家具配置座標をGLBアセットとしてBlenderシーンに自動配置するスキル。全4フェーズを自律的に実行する。
blender-pythonスキルを参照済みであること(Blender CLIは必ずscripts/run_blender.sh経由)/Applications/Blender.app がインストールされていること全てinput_dir内に配置:
| ファイル | 内容 |
|---|---|
layout_proposal.json | アセットの座標(center x,y)・向き(front_dir)・サイズ |
assets.json | 家具定義(サイズ・GLBパス・shape説明) |
scene.blend | 壁3Dモデル(sub_sceneの出力) |
assets/objects/*.glb | 家具GLBファイル |
assets/images/* | 家具参考写真 |
Phase 1: GLB測定 → glb_check_result.json
↓
Phase 2: front方向判定(画像を見て自律判定)→ glb_check_result.json更新
↓
Phase 3: 家具配置 → scene.blend
↓
Phase 4: 配置確認(レンダリング画像で自律評価)
↓ 問題あり → Phase 2-3に戻る
完了
scripts/run_blender.sh --background --python \
.claude/skills/floor_plan_to_video_sub_placement/scripts/check_glb_bbox.py -- \
<input_dir> <output_dir>
出力: <output_dir>/glb_check_result.json
確認すること:
origin_relativeの値を確認(center=幾何中心、bottom-center=底面中心)place_assets.pyがexpected_height/2で自動計算するため、手動設定不要scripts/run_blender.sh --background --python \
.claude/skills/floor_plan_to_video_sub_placement/scripts/render_glb_views.py -- \
<input_dir>/assets.json <output_dir>
出力: <output_dir>/glb_views/{asset_id}_top.png, {asset_id}_persp.png
レンダリング画像には軸ラベルが含まれる:
各アセットについて以下の3つの情報を照合してfront方向を判定する:
<output_dir>/glb_views/{id}_top.png と {id}_persp.png<input_dir>/assets/images/{id}.*assets.jsonの各アセットのshape.frontとshape.back判定手順:
+X, -X, +Y, -Yのいずれかで記録するmanual_overridesセクションの各アセットのdefault_frontを判定結果で更新する:
"manual_overrides": {
"bed": {"default_front": "-X", "use_uniform_scale": false},
"desk": {"default_front": "-X", "use_uniform_scale": false},
...
}
default_frontの値: +X, -X, +Y, -Y
front方向の判定後、per-axis scaleの妥当性を確認する:
place_assets.pyはfront方向に応じてwidth/depthの軸マッピングを自動スワップする
use_uniform_scaleの選択基準:
scripts/run_blender.sh --background <input_dir>/scene.blend \
--python .claude/skills/floor_plan_to_video_sub_placement/scripts/place_assets.py -- \
<input_dir> <output_dir>
出力:
<output_dir>/scene.blend — 配置済みBlenderシーン<output_dir>/placement_report.json — 配置結果サマリscripts/run_blender.sh --background <output_dir>/scene.blend \
--python .claude/skills/floor_plan_to_video_sub_placement/scripts/render_scene.py -- \
<output_dir>
出力: <output_dir>/scene_views/top.png, persp.png
レンダリング画像を読み、以下を確認する:
default_frontを修正 → Phase 3を再実行。place_assets.pyがfront方向に応じてwidth/depthの軸マッピングを自動スワップするため、scale_factorの手動修正は不要layout_proposal.jsonの座標自体の問題なのでユーザーに報告origin_relativeの値が正しいか確認。place_assets.pyはexpected_height/2で自動補正する(center origin前提)scene.blendが生成されているscene.blendのパスを報告する最終的な微調整はユーザーがBlender GUIで行う: open <output_dir>/scene.blend