Set Dressing 是一个面向 Blender 场景的布景技能,核心目标是用道具摆放来传达故事,实现“受控的杂乱”和可读的道具集群。
用途:
- 用于室内/室外场景的布景阶段。
- 用于构建具有叙事性的道具集群。
- 帮助避免空间过于空旷或过度堆砌。
- 建议在模块化布局确定之后使用。
工作流: 布局锁定 → 主叙事道具 → 次级集群 → 背景填充 → 贴花/磨损 → 灯光检查 → QA。
密度规则:
- 主交互区:高意图、低噪点。
- 中景:支撑故事的集群。
- 背景:稀疏,仅保留轮廓。
- 通行路径:为玩家/相机留出净空。
集群方法:
- 选定一个故事节拍(例如餐食被遗弃、工作台被使用、匆忙逃离)。
- 放置 3–7 个能传达该节拍的道具。
- 添加 1–2 个磨损/贴花线索。
- 停止,不要填满每个表面。
道具来源:
- 独特道具使用 prop-artist。
- 填充物使用 Kitbash / 模块化库。
- 重复实例,略微变化旋转/缩放。
恐怖/稀疏风格:
- 更少道具,更多含义。
- 有意保留负空间。
- 与 horror-style / psx-horror-style 配合。
约束: 必须做:
- 在灰盒导航可用后再布景。
- 保持玩家/相机路径畅通。
- 对重复网格使用实例化。
禁止做:
- 均匀的杂物壁纸式堆砌。
- 无故事理由地堵住门窗。
脚本: 脚本已在 Blender 5.2 LTS 上通过官方 Blender MCP 测试。通过 execute_blender_code 运行(或无头模式,参见 blender-mcp-workflow 技能);每个参数请阅读脚本头部说明。当用户要自己粘贴代码到 Blender 时,给出指向该已安装脚本绝对路径的简短 runpy 调用及其 ARGS,不要内联或重写脚本。
scripts/scatter_props.py:在目标周围生成精确数量的剧情道具集群(箱子/桶/托盘),包含地面射线投射、避开目标包围盒、无重叠、共享网格、PROP_ 命名。若需在地形上生成大量小实例,使用几何节点 scatter_points.py。示例:
import runpy result = runpy.run_path("<skill_dir>/scripts/scatter_props.py", init_globals={"ARGS": {"target": "SM_Crate", "count": 8, "kinds": ["box", "barrel", "pallet"]}})["result"]
max_dist(默认 3.5)是目标包围盒中心到任何道具原点的最大水平(XY)距离,按每个道具强制执行。若请求数量无法在该范围内容纳,脚本会抛出 RuntimeError(可增大 max_dist 或减少数量)。
参考指南:
- references/story-clusters.md(需要时加载)。
- references/density-map.md(需要时加载)。