mcpField
B
blender-workflow-recipes

blender-workflow-recipes

github.com/el4cteo创意与媒体569100 次安装2 周前更新
代码仓库

关于 blender-workflow-recipes

面向 Blender 内容创作者的 3D 资产制作工作流配方,按游戏道具、角色、环境和产品渲染等任务组织步骤。各阶段设有质量检查点,并涵盖清理、烘焙与导出。

主要功能

  1. 01游戏道具高低模流程
  2. 02角色绑定与动画导出
  3. 03Roblox 资产制作步骤
  4. 04生成资产清理与检查
  5. 05程序化环境和产品渲染流程

适用场景

  1. 01制作并导出游戏道具
  2. 02为角色准备动画网格
  3. 03清理并优化生成或下载的模型
  4. 04制作产品转台或环境渲染

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/el4cteo/blender-skills --skill blender-workflow-recipes

安装后在 Claude Code 中输入/blender-workflow-recipes确认已加载。

详细介绍

工作流配方

S = 技能文件夹。每个 .py 都可通过 python S/blender-core/scripts/run_in_blender.py --blend F.blend S/<skill>/scripts/<x>.py -- ... 在无界面模式下运行,也可通过 MCP 导入 + run() 实时运行(参见 blender-core)。关卡 = 继续之前先停止并修复。每个阶段后都保存(--save)。

1. 游戏道具,中等多边形(快速,无需烘焙)

  1. 按真实比例进行灰盒建模(blender-hardsurface-modeling)。关卡:检查 ob.dimensions 是否与参考相符。
  2. 在倒角前为灰盒模型展开 UV(Bevel/Boolean 修改器会保留 UV):uv_pack.py --objects SM_X --method seams --seams-from-sharp 60 → texel_density.py --res 2048 --set 512
  3. apply_stack.py --objects SM_X --preset midpoly [--cutters ...](保持实时;仅在导出副本上使用 --apply --triangulate)
  4. 材质:使用 build_pbr_material.py --preset ... 或平铺/修边纹理。
  5. 关卡:qa_check.py --objects SM_X --profile game 通过,且完成外观检查(角度、材质 + 线框)。
  6. mesh_stats.py --budget <platform> → make_lods.py --objects SM_X --rename
  7. export_asset.py --preset <engine> --objects SM_X_LOD0 SM_X_LOD1 ... 关卡:重新导入后检查尺寸 / GLB 摘要。

2. 游戏道具,高模 → 低模烘焙(英雄级品质)

  1. 高模:硬表面建模使用 --preset subd,或进行雕刻(sculpt_ops.py),命名为 X_high。
  2. 低模:auto_retopo.py --objects X_high --tris N --method planar|decimate|quadriflow,或手动重拓扑。将其重命名为 SM_X。
  3. uv_pack.py --objects SM_X --method seams --seams-from-sharp 60 --margin-px 16
  4. 关卡:对 SM_X(game)和 X_high(render 配置文件,不得有反转部分)运行 qa_check.py。
  5. bake_maps.py --low SM_X --high X_high --maps normal ao curvature id --pack-orm [--directx for Unreal]
  6. build_pbr_material.py --name M_X --textures //textures --objects SM_X(另加来自纹理制作的 basecolor/roughness)。
  7. 关卡:在材质着色模式下检查外观(无接缝/波纹),然后执行配方 1 的步骤 6–7。

3. 游戏角色(雕刻或 AI 网格 → 动画导出)

  1. 源网格(雕刻 / generate_3d / 扫描)按真实身高制作,朝向 -Y,双脚位于 Z=0。运行 qa_check.py --profile render。
  2. auto_retopo.py --method quadriflow --tris 20000(英雄角色也可手动重拓扑,并遵守边流规则)。uv_pack.py --method min_stretch。
  3. bake_maps.py --low Body --high Body_src --maps normal ao basecolor(如果源模型带有颜色/材质,可通过 emission 覆盖烘焙 basecolor)。
  4. rigify_build.py --add basic_human --fit Body → 放置关节(使用 xray 查看)→ --metarig META_Body --generate
  5. bind_mesh.py --armature RIG_Body --meshes Body → stress_poses.py --armature RIG_Body → look(mode="frames")。关卡:肘部/膝盖/肩部不得塌陷。修复权重。
  6. rigify_build.py --rig RIG_Body --game-skeleton → rig_check.py --armature GAME_RIG_Body --profile unity|unreal
  7. 在 RIG_Body 上制作动画(blender-animation)→ bake_action.py --source RIG_Body --target GAME_RIG_Body [--root-motion xy --hips spine]
  8. export_asset.py --preset unity_skeletal|unreal_skeletal --objects GAME_RIG_Body(网格会作为子对象包含在内)。关卡:GLB/FBX 摘要显示蒙皮 + 所有动画片段。检查引擎中的缩放比例。

4. Roblox

  • MeshPart 道具:使用配方 1,在 QA 中指定 --profile roblox(≤20k 个三角面、封闭网格、无 n-gon、单个 UV 0–1),使用独立灰度贴图(不用 ORM),运行 export_asset.py --preset roblox(FBX)或 roblox_gltf。纹理为 1024²(PBR)。
  • 刚性配饰:≤4k 个三角面;添加一个空对象作为附件点,其名称与 R15 _Att 名称相匹配;使用 --preset roblox。
  • 分层服装:从 Roblox 官方笼子模板开始。创建 <Name>_InnerCage/<Name>_OuterCage(不得更改笼子的顶点数量/顺序/UV),绑定到 R15 骨骼,≤4 个影响骨骼,Root 不得设置权重。在 Studio 的 Accessory Fitting Tool 中验证。
  • Avatar 身体:包含 15 个 _Geo 部件、R15 骨架、附件、外笼,三角面预算为 10,742。先阅读 blender-export-pipelines/references/roblox.md。
  • 上传:批量上传请使用 Studio 的 AssetService:CreateAssetAsync。

5. 清理 AI 生成/下载的资源

  1. 导入(import_asset/generate_3d/文件)。按实际尺寸缩放(world_bounding_box),将原点设在底部,将地面设为 z=0,执行 transform_apply。
  2. scene_audit.py --fix purge scale → qa_check.py --profile game。典型问题:非流形、重复顶点、法线反转的面片岛、浮动碎片、深度冲突的壳体。
  3. 修复:make_lods.py --cleanup(合并/退化/松散元素)、重新计算法线、删除浮动碎片(或对垃圾拓扑使用 sculpt_ops.py 中的 remesh),然后运行 auto_retopo.py --method decimate 以控制预算。
  4. 如果 UV 碎片化,则重新展开 UV(uv_pack.py),并从原始模型重新烘焙(bake_maps.py --high original)。
  5. 质量门槛:QA 通过 + look。绝不未经审核就发布生成的网格。

6. 程序化环境

  1. 创建地形/地面网格,然后使用 gn_builder.py --spec scatter.json --apply Ground --set Density=... Seed=... 散布树木(配方见 blender-geometry-nodes/references/recipes.md)。
  2. 用于散布的资源:经过优化且带有 LOD 的道具(配方 1)。对于支持实例化的引擎,保留实例(不要实化)(export_gpu_instances)。
  3. 质量门槛:对求值后的结果运行 mesh_stats.py,并从游戏镜头高度执行 look。

7. Web/AR 资源

使用配额 --budget web(≤30k 个三角面、1–2 种材质、2k 纹理)执行配方 1 或 2 → export_asset.py --preset web(meshopt + WebP)→ 可选运行 gltf-transform optimize --texture-compress ktx2。iOS AR 的 USDZ:--preset usd --out x.usdz。质量门槛:GLB 摘要(大小 < 5 MB)以及与 Khronos PBR Neutral 外观开发效果匹配。

8. 产品镜头/转台

  1. 使用实测值创建材质(build_pbr_material.py --preset),并针对深度冲突/浮动部件进行 QA(这些问题在特写中非常明显)。
  2. 设置渲染分辨率,然后运行 turntable.py --objects Product --rig studio --backdrop --frames 120 --lens 85
  3. render_batch.py --preset preview --frames 1 → 审核 → --preset product --frames 1-120 --format PNG → 编码,或使用 --format MP4。
  4. 质量门槛:没有火花噪点或高光溢出(AgX/Khronos PBR Neutral),且产品贴合背景(接触阴影)。

9. 氛围/天气镜头(雨夜、雪晨、雾晓)

  1. 使用实际尺寸创建场景并设置摄像机。先对主体资源进行 QA(湿润反射和积雪会暴露深度冲突与缝隙)。
  2. scene_mood.py --time night --fog-visibility 250(或 --mood cyberpunk|horror|underwater|desert)。以实际色温添加实用光源(路灯、窗户、霓虹灯)。
  3. 天气:precipitation.py --type rain --intensity heavy --ground <ground/roofs> → surface_weather.py --objects <surfaces> --wetness 0.7 --puddles 0.4 --ripples 1 --streaks 0.5 → lightning.py --flashes 2。降雪:--type snow + --snow 0.8 --snow-depth 0.06。
  4. 质量门槛:按最终宽高比运行 render_batch.py --preset preview --frames <mid>,<flash>。雨势必须清晰可见(逆光),水坑必须能反射光线,夜景必须保留对比度。然后渲染完整循环(帧范围 = 降水循环)。

评论

支持 Markdown