mcpField
3
3d-asset-production

3d-asset-production

github.com/calesthio创意与媒体219112 次安装15 周前更新
代码仓库

关于 3d-asset-production

这是一套 3D 资产整理技能,面向需要将模型交付给艺术家、引擎、查看器或应用的团队。它把不同来源的网格整理为有记录、经过验证的资产包,并处理几何体、比例、材质、纹理和导出。

主要功能

  1. 01采集交付要求
  2. 02几何清理与重拓扑
  3. 03UV 和 PBR 纹理准备
  4. 04比例、枢轴与材质检查
  5. 05LOD 和运行时优化
  6. 06导出验证与来源记录

适用场景

  1. 01为游戏引擎准备网格
  2. 02打包用于 Web 或 AR 的资产
  3. 03清理扫描或生成的模型
  4. 04检查从 DCC 到引擎的交接

安装

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

$npx skills add https://github.com/calesthio/generative-media-skills --skill 3d-asset-production

安装后在 Claude Code 中输入/3d-asset-production确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

EVAL.md
scripts/
inspect_gltf.py
tests/
test_inspect_gltf.py

详细介绍

3D 资产制作

这项技能用于完成资产,使其他美术人员、引擎、查看器、市场、配置器、游戏、AR 应用或渲染器能够实际使用它。输入可能是生成的网格、摄影测量数据、NeRF/GSplat 派生网格、清理后的扫描模型、雕刻模型、由 CAD 导出的多边形模型、手工建模的几何体或拼装草稿。输出则是经过记录和验证的资产包,包含符合预期的几何体、比例、材质、纹理贴图,以及必要时的 LOD 和来源信息。

当用户提出资产准备、重新拓扑、清理、优化、烘焙、UV、PBR 纹理、LOD、绑定交接、静态网格交付、骨骼网格就绪、游戏就绪资产、Web 就绪资产、GLB/glTF/USD/FBX 导出、从 DCC 到引擎的交付,或 3D 模型 QA 等需求时,使用这项技能。

以下情况不要使用:

  • 选择或提示使用特定的 3D 生成服务提供商。
  • 构建完整环境、镜头、关卡或组合场景。
  • 进行动作捕捉或处理动作捕捉表演。
  • 精确 CAD、带公差的制造、BIM 合规或仿真级工程几何体。
  • 角色表演指导,不过这项技能可以为绑定或动画交接准备网格。

先明确交付约定

处理拓扑之前,先明确资产的使用方。即使网格十分精美,如果接收方的引擎无法加载其纹理、单位比例不正确,或绑定团队无法为其绑定,那么交付仍然失败。

请询问或推断以下要求:

  • 资产用途:主角道具、背景道具、Avatar 身体、模块化服装、武器、载具、扫描存档、AR 产品、Web 配置器项目、电影资产、市场资产、移动端资产。
  • 目标使用方:Blender、Maya、Houdini、Unreal、Unity、WebGL/three.js/Babylon、USD 流程、DCC 交接、自定义运行时、市场。
  • 格式集合:源 DCC 文件、.glb/.gltf、.usd/.usda/.usdc/.usdz、.fbx、纹理包、预览渲染图、验证报告。
  • 运行时预算:三角形数量、顶点数量、材质数量、绘制调用/子网格目标、纹理分辨率、纹理压缩格式、LOD 数量、内存/下载大小、支持的扩展。
  • 空间约定:实际尺寸、单位系统、轴向/向上方向约定、枢轴、原点、边界、吸附点、插槽点。
  • 材质约定:PBR 工作流、色彩空间、纹理通道打包方式、透明模式、法线切线基准、渲染器专用着色器要求。
  • 动画约定:静态网格、骨骼网格、混合形状/变形目标、布料/头发交接、变形范围、最大骨骼影响数、根骨骼、命名约定。
  • 权利约定:输入来源、用户权利、第三方参考资料、扫描许可、生成内容条款、商标/徽标、署名、许可、分发地区。

将未知的目标要求视为风险,而不是自行猜测的许可。如果用户无法指定预算,请制定合理且有依据的基准,并将其标注为建议预算。

证据类别

这项技能使用三类论断:

  • 有文档依据的事实:来自官方规范、供应商手册、标准或项目文档的陈述。这些内容会在来源注释中注明出处。
  • 经验观察:可重复的制作经验,应在用户的实际资产和目标运行时中验证。
  • 制作启发式:实用的默认做法,并非普遍规则;如果交付约定另有要求,应相应调整。

用于决策的文档依据

  • glTF 2.0 是与 API 无关的运行时资产交付格式,而非创作格式。它使用 JSON 和二进制缓冲区及图像资源表示场景描述,也可以使用 GLB 作为单个二进制容器。来源:Khronos glTF 2.0 规范,核验日期:2026-07-11,https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html。
  • glTF 使用右手坐标系,+Y 轴朝上、+Z 轴朝前、-X 轴朝右,线性距离单位为米。来源:Khronos glTF 2.0 规范,核验日期:2026-07-11。
  • glTF 核心材质采用金属度-粗糙度 PBR。基础颜色纹理使用 sRGB;金属度-粗糙度纹理数据使用线性空间,其中粗糙度位于绿色通道,金属度位于蓝色通道。法线纹理使用切线空间和线性空间。来源:Khronos glTF 2.0 规范,核验日期:2026-07-11。
  • glTF 蒙皮使用线性混合蒙皮,通过 JOINTS_n 和 WEIGHTS_n 属性实现;一组关节/权重最多可为每个顶点提供四个影响,且 JOINTS_n 和 WEIGHTS_n 集必须匹配。来源:Khronos glTF 2.0 规范,核验日期:2026-07-11。
  • glTF 节点变换可以使用矩阵或 TRS。带动画的节点不得使用 matrix;动画的目标可以是平移、旋转、缩放或变形目标权重。来源:Khronos glTF 2.0 规范,核验日期:2026-07-11。
  • glTF Validator 可验证 JSON/GLB 的正确性、内部引用、二进制缓冲区、禁止的访问器值(如 NaN)、访问器边界、稀疏访问器、动画数据、图像和多种扩展。来源:KhronosGroup/glTF-Validator README,核验日期:2026-07-11,https://github.com/KhronosGroup/glTF-Validator。
  • USD 专为在 DCC 工作流中实现 3D 场景描述的可扩展交换、组合、分层、覆写和组织而设计。USD 可表示模型、几何体、着色、动画、primvars、负载、引用、变体和资产元数据。它本身并非高性能绑定系统。来源:OpenUSD 简介,核验日期:2026-07-11,https://openusd.org/release/intro.html。
  • Unreal Engine 的 FBX 工作流可导入静态网格体、骨骼网格体、动画、变形目标、材质、纹理和多个 LOD;Unreal 说明其 FBX 导入工作流使用 FBX 2020.2,使用不同版本的 FBX 导出可能导致不兼容。来源:Unreal Engine FBX 内容工作流,核验日期:2026-07-11,https://dev.epicgames.com/documentation/en-us/unreal-engine/fbx-content-pipeline。
  • Unreal 骨骼网格体资产包含可视网格几何体和骨架骨骼数据;通常在外部 DCC 软件中制作,再以 FBX 格式导入。来源:Unreal Engine 骨骼网格体文档,核验日期:2026-07-11,https://dev.epicgames.com/documentation/en-us/unreal-engine/skeletal-mesh-assets-in-unreal-engine。
  • Unity 模型文件可包含网格、动画绑定/片段、材质和纹理。Unity 主要支持 FBX 模型文件;大多数情况下,Unity 建议将 FBX 直接从 DCC 导出到项目中。来源:Unity 手册“导入模型”,核验日期:2026-07-11,https://docs.unity3d.com/Manual/ImportingModelFiles.html。
  • Unity 绑定导入设置区分 None、Legacy、Generic 和 Humanoid 动画类型。对于通用绑定,Unity 需要根节点;蒙皮权重会影响每个顶点的骨骼影响数量和性能。来源:Unity 手册“Rig”选项卡导入设置参考,核验日期:2026-07-11,https://docs.unity3d.com/Manual/FBXImporter-Rig.html。
  • meshoptimizer 提供网格索引、顶点缓存优化、过度绘制优化、顶点获取优化、量化、简化、压缩、分析器和 glTF 相关工具。其建议的核心工作流依次为:索引、缓存优化、可选的过度绘制优化、获取优化、量化、过滤,以及可选的阴影索引。来源:meshoptimizer README,核验日期:2026-07-11,https://github.com/zeux/meshoptimizer。

通常适用的生产经验

  • 按最弱的目标平台而非最强的 DCC 完成资产。如果目标平台同时包括移动端 WebGL 查看器和 Unreal,Web 端预算通常会限制几何体、材质数量、扩展功能和纹理尺寸。
  • 保留可编辑的源文件,并导出运行时衍生文件。除非用户明确需要扁平化的交换包,否则不要将 GLB/FBX/USDZ 作为唯一事实来源。
  • 仅在下游操作有需要时才分离语义网格,例如材质分配、插槽、可破坏性、动画、碰撞、遮挡、用户自定义或剔除。按生成的碎片拆分所有内容,通常会损害运行时性能和资产可用性。
  • 除非目标平台明确要求其他拓扑,否则实时交付优先采用索引三角网格。除非使用方支持,否则将曲线、细分、毛发、程序化修改器和高面数雕刻数据保留在源文件包中,不要放入运行时导出文件。
  • 将高面数/生成/扫描源中的细节烘焙到干净的低/中面数渲染网格上。运行时资产通常应通过法线、环境光遮蔽、曲率/凹陷和材质贴图承载高频细节,而不是使用杂乱密集的拓扑。
  • 简化时保护轮廓、变形区域、接触面、插槽以及 UV/材质边界。优先减少内部平坦区域和视觉上不可见的背面。
  • 对于变形,规则的边缘流向和稳定的权重比原始三角形数量更重要。网格稍重但边环干净,动画效果可能优于经过激进减面处理的网格。
  • 对于主视觉资产,请导入实际目标引擎/查看器进行验证。验证器通过是必要条件,但不足以确保视觉效果一致。

初步分类

在决定修复路径前,先对源文件进行分类。

生成的网格输出

常见特征:细分不均、部件融合、非流形凹坑、法线杂乱、比例任意、缺少 UV 规划、用烘焙颜色代替材质逻辑、轮廓看似合理但机械结构薄弱。

最佳路径:

  1. 冻结一份源文件归档;如已知,记录生成服务提供方/模型/设置。
  2. 判断网格是概念参考、高面数烘焙源,还是可直接清理的候选对象。
  3. 如果拓扑混乱但形状有价值,应重新拓扑,而不只是减面。
  4. 根据已确认的表面外观重建 UV 和 PBR 贴图。
  5. 通过导入进行验证,不要只在生成器的查看器中目视检查。
捕获或扫描输出

常见特征:高密度、孔洞、扫描阴影、烘焙到反照率贴图中的纹理光照、脆弱的薄表面、比例漂移、扫描台/地面杂物。

最佳路径:

  1. 保留原始扫描/摄影测量源文件。
  2. 根据已测量的特征或校准物确定实际比例。
  3. 移除杂物,并且仅在有物理依据的地方重建缺失几何体。
  4. 根据用途构建干净的重新拓扑网格,或进行优化减面。
  5. 如果资产必须响应新的光照,应对纹理进行去光照处理。
建模或雕刻输出

常见特征:设计意图较清晰,可能存在未应用的变换/修改器、隐藏的高面数细节、重叠的 UV 壳或不受支持的程序化材质。

最佳路径:

  1. 仅应用/导出有意设置的变换和修改器。
  2. 在有用时,保留带有非破坏性图层的创作文件。
  3. 将高面数或程序化细节烘焙到贴图中,供运行时目标使用。
  4. 导出后验证法线、切线、UV 集、枢轴和单位比例。
CAD 衍生多边形输出

常见特征:设计意图准确,但细分不适用;部件和材质 ID 众多;存在细小倒角、n 边形/修剪转换伪影;使用真实世界单位。

最佳做法:

  1. 多边形转换后,不要声称其具备制造级精度。
  2. 如果许可允许,保留 CAD 文件作为来源记录/参考。
  3. 根据观看距离,采用合适的弦高/角度公差进行细分。
  4. 在运行时条件允许的情况下,合并或实例化重复部件。
  5. 将材质重建为可渲染的 PBR 近似效果。

几何体与拓扑修复

目标不是获得理论上完美的网格,而是获得拓扑能够支持预期渲染、变形、碰撞、LOD 和编辑任务的网格。

最低修复清单:

  • 移除不用于 UV、材质、硬法线、切线、颜色或蒙皮边界的重复顶点。
  • 删除隐藏杂项、孤立片段、意外的内部壳体,以及零面积或接近零面积的三角形。
  • 根据资产意图,解决非流形边、自相交、翻转法线、开放孔洞和绕序不一致的问题。
  • 保留用于定义轮廓和镜面反射效果的硬表面支撑环线或倒角。
  • 避免在变形区域和高镜面反射表面出现又长又窄的三角形。
  • 确保材质边界和 UV 缝合线符合预期,并有名称和文档说明。
  • 有意识地使用法线:平面机械表面使用平面法线,连续曲面使用平滑法线;若自定义/加权法线属于着色设计的一部分,则使用此类法线。

重新拓扑的决策:

  • 当资产必须变形、需要干净的烘焙结果、需要可预测的 LOD、使用镜像/对称 UV,或需要经受近距离镜头检查时,进行重新拓扑。
  • 当资产是静态、扫描所得、主要为有机形态且无需变形,并且源细节比可编辑性更重要时,进行简化。
  • 当源模型视觉上合理但物理结构不连贯时(例如部件融合在一起且不可能运作的生成式机械模型),重新建模。

拓扑 QA:

  • 从近处和远处检查着色视图上的线框。
  • 在目标 FOV 和观看距离下检查轮廓。
  • 使用高对比度 HDRI 或摄影棚灯光测试平滑效果。
  • 确认经过导出/导入往返流程后,表面没有撕裂。
  • 对于变形资产,在签核前测试极限弯曲/扭转姿势。

缩放、坐标轴、原点、枢轴与命名

缩放错误代价高昂,因为它们会影响物理、动画、摄像机取景、灯光、AR 放置和 UI 适配。

设置并记录:

  • 单位制:米、厘米或目标引擎单位。
  • 实际尺寸:包围盒和关键测量尺寸。
  • 朝向:向上轴、向前轴、正面朝向约定,以及任何格式转换。
  • 枢轴/原点:放置在表面上的道具使用底部中心;物理道具使用质心;门/车轮使用铰链点;武器/工具使用握持点;角色使用两脚之间地面处的根节点,除非目标另有要求。
  • 变换:导出前冻结/应用缩放和旋转,除非目标流水线需要保留制作时的变换。
  • 命名:为对象、材质、骨骼、插槽、UV 集、纹理和 LOD 使用稳定的 ASCII 名称。避免自动生成的无意义名称和重复材质名称。

交付 glTF 时,请牢记文档规定的坐标与单位约定:右手坐标系,+Y 向上,+Z 向前,单位为米。如果制作 DCC 或引擎使用不同约定,请明确测试导出器/导入器的转换。

UV 策略

UV 是用于管理纹理分辨率、接缝、烘焙和材质复用的交付体系。

根据资产用途选择 UV 布局:

  • 独特的主视觉资产:用于烘焙 PBR 贴图的 UV0 不重叠;保持一致的纹素密度;合理排列 UV 壳以便绘制;将接缝隐藏在背面、褶皱或材质分界处。
  • 平铺材质资产:UV0 可使用可重复的坐标;如果引擎有此要求,创建第二套不重叠的 UV,用于光照贴图或烘焙遮罩。
  • 镜像角色或道具:对称的反照率/粗糙度贴图可以镜像,但可读标志、不对称损伤、切线空间法线贴图和烘焙 AO 容易出问题。必要时拆分或偏移镜像区域。
  • 模块化套件部件:使用便于对齐的 UV;确保模块间纹素密度一致;如果项目已使用修边贴图集,则使用该贴图集。
  • 扫描生成的资产:展开 UV 时应确保重投影稳定;如果需要重新打光,则清除反照率贴图中烘焙的光照或阴影。

UV 质量检查:

  • 烘焙用 UV 集中没有非预期的重叠。
  • 留有足够的边距,以适应最终的 mip 链和纹理分辨率。
  • 一起观察的表面具有一致的纹素密度。
  • 将接缝放在几何体、材质或可见性本就会将其隐藏的位置。
  • 棋盘格纹理没有明显拉伸、翻转的 UV 岛或缩放不一致的 UV 壳。
  • 目标引擎能识别材质、光照贴图、贴花或运行时效果所需的每套 UV。

PBR 材质、烘焙与纹理打包

根据目标着色模型构建材质输出,而不是照搬源文件中的内容。

常见 PBR 贴图集:

  • 基础颜色/反照率:仅包含表面颜色,除非目标有意使用带光照的纹理,否则不要烘焙直接光照。
  • 法线:实时资产使用切线空间法线,除非目标要求物体空间或世界空间法线。
  • 粗糙度:表现微表面反应;保持合理的变化,避免将其当作通用污渍贴图。
  • 金属度:真实金属与电介质通常按材质区域采用二值设置;除非用于表示混合纹素或目标专用材质,否则不要随意用灰度金属度混合。
  • 环境光遮蔽:作为间接遮蔽乘数或遮罩;不要将强烈的直接阴影烘焙进反照率贴图。
  • 自发光:设置发光颜色/强度;除非目标着色器为非光照着色器,否则不要用它替代光照。
  • 不透明度/Alpha:有意选择镂空/遮罩或混合模式,因为它们的排序和深度行为不同。

烘焙流程:

  1. 在最终烘焙前,锁定低模网格、平滑组/自定义法线、UV 和包裹笼。
  2. 烘焙法线、AO、曲率、厚度、位置、ID/材质遮罩,以及纹理制作所需的高度/置换贴图。
  3. 检查偏斜、波纹、投射遗漏、包裹笼相交和镜像切线接缝。
  4. 拓扑、UV 或法线发生变化后,重新烘焙;除非变化仅限局部且已验证,否则不要通过修补法线贴图来掩盖网格变化。
  5. 导出贴图时注明色彩空间和通道打包方式。

glTF 专用材质交付:

  • 交付 glTF/GLB 时,使用金属度-粗糙度作为基础交换材质。
  • 将粗糙度打包到核心 metallicRoughnessTexture 的 G 通道,将金属度打包到 B 通道。
  • 根据 glTF 规则,基础颜色和自发光使用 sRGB 输入;法线、遮蔽、金属度和粗糙度数据使用线性空间。
  • 记录所需的 glTF 扩展。除非资产缺少这些扩展就无法正常加载/渲染,否则不要将扩展标记为必需。

材质质量检查:

  • 至少在一个中性 HDRI 和一种直接/主光照明设置下进行测试。
  • 在目标渲染器中并排比较源文件和导出后的渲染效果。
  • 检查切线空间法线的方向,尤其是绿色通道约定和镜像 UV 接缝。
  • 确认透明材质在预期目标中的排序效果可接受。
  • 确认导入后纹理文件名和材质槽名称仍然保留。

LOD 与优化

LOD 工作不只是减少三角形数量,而是在稳定材质、切线、蒙皮和碰撞行为的前提下,有控制地损失视觉细节。

LOD 规划:

  • 生成 LOD 前,先定义目标平台和屏幕尺寸阈值。
  • 选择 LOD 是否共用材质和纹理、使用图集变体,或在远距离时合并材质槽。
  • 比起内部表面细节,应更长时间保留轮廓。
  • 对于骨骼资产,应保护关节、面部/手部、附件和布料边界。
  • 对于模块化资产,应锁定共享边界或简化组合后的部件,以避免相邻部件之间出现裂缝。

实时网格的优化顺序通常遵循以下逻辑:

  1. 清理/焊接拓扑并为网格建立索引。
  2. 完成 UV、法线、切线、顶点颜色、材质 ID 和蒙皮权重。
  3. 生成 LOD,或为主角/变形网格使用针对资产手动制作的 LOD。
  4. 在运行时能从中受益的情况下,优化索引顺序以提升顶点缓存和顶点读取效率。
  5. 只有在目标距离完成视觉验证后,才进行量化或压缩。
  6. 使用压缩/扩展功能后,在目标引擎或查看器中进行验证。

预算经验值很大程度上取决于摄像机距离、平台、着色器开销和项目风格。如果用户没有指定预算,应提供范围,而不是通用数量:

  • Web/移动端背景道具:优先使用单个材质、小尺寸纹理、激进的 LOD,以及较小的 GLB 文件。
  • Web/移动端主角产品:保留轮廓和材质质量;优先减少不可见/内部几何体和纹理数量。
  • PC/主机平台主角道具:可以为轮廓和烘焙质量保留更多几何体,但仍应限制材质槽和纹理内存。
  • 电影/离线资产:保留高分辨率源文件和 USD/材质交接;运行时压缩可能无关紧要。

条件允许时,使用分析器和目标平台性能分析。meshoptimizer 的分析器可以估算顶点缓存、顶点读取和过度绘制行为,但其文档也指出,必须在目标 GPU 上测量才能获得精确的性能数据。

静态网格就绪要求

静态网格包应可直接用于放置、实例化、碰撞、照明和渲染。

静态资产就绪检查清单:

  • 缩放、朝向、枢轴和变换正确。
  • 网格干净,没有意外的非流形渲染瑕疵。
  • 材质槽和材质名称符合预期。
  • 用于表面纹理的 UV0;用于光照贴图、遮罩、贴花或目标平台特定需求的其他 UV。
  • 提供碰撞网格;如果应由引擎生成碰撞网格,则提供相关说明。
  • LOD 的材质槽映射稳定。
  • 如有需要,提供插槽/附件标记。
  • 包围盒和原点适用于剔除和放置。
  • 预览缩略图/渲染图和导入说明。

骨骼网格与绑定交接就绪度

此技能用于为绑定或导入准备资产,不能替代绑定师的工作。

骨骼就绪检查清单:

  • 网格拓扑应支持肩部、肘部、膝部、嘴部、眼睛、手指、布料褶皱和机械铰链周围的变形环线。
  • 对称性应经过有意设计;非对称几何体应有清晰的命名和定位。
  • 骨骼命名、层级、根节点、缩放和朝向应遵循接收方的绑定标准。
  • 应记录并导出绑定姿势/静止姿势。
  • 蒙皮权重应经过归一化、非负,且不超过目标影响数限制。
  • 隐藏的碎片或辅助网格上不得有意外权重。
  • 混合形状/变形目标应具有匹配的拓扑和名称,并能在导出后保留。
  • 应命名并交付修正形状、皱纹贴图、布料/头发卡片、插槽和附着点。
  • 变形测试应涵盖最大预期姿势范围,而不只是 A/T 姿势。

对于 glTF 蒙皮,请检查 JOINTS_n 和 WEIGHTS_n 集是否成对、关节索引是否有效,以及权重总和是否符合所选组件类型。对于 Unity,请确定使用 None/Generic/Humanoid,以及根节点行为。对于 Unreal,请验证 FBX 骨骼导入、Skeleton 资产创建、变形目标导入(如有需要)和动画兼容性。

绑定交接包:

  • 带绑定姿势的干净网格源文件。
  • 用于烘焙的独立高模/雕刻源文件(如有)。
  • 纹理贴图和材质定义。
  • 骨骼/网格命名指南。
  • 变形说明和已知问题区域。
  • 导出设置和目标引擎导入设置。
  • DCC 和引擎中的验证截图。

格式选择与互操作

根据需要保留的内容选择格式,而不是根据流行程度选择。

glTF / GLB

当资产用于运行时交付、网页、AR 预览、轻量级交换或广泛兼容的查看器时使用。单文件交接优先使用 .glb;若分离纹理/缓冲区有助于资产管理,则使用带外部资源的 .gltf。

优势:

  • 紧凑的运行时资产交付。
  • 明确的坐标、单位和材质行为。
  • PBR 金属度-粗糙度基准。
  • 完善的网页/查看器生态。
  • 验证工具。

风险:

  • 它不是创作格式;许多 DCC 专属修改器、着色器、约束和程序化系统都无法保留。
  • 不同查看器对扩展的支持各不相同。
  • 不同引擎导入时,绑定和动画行为可能有所不同。
USD / USDZ

当资产属于组合式 DCC/影视/VFX 流程,需要引用、变体、图层、有效负载、primvars、材质网络或通过 USDZ 打包以适配 AR 平台时使用。

优势:

  • 强大的组合和覆盖模型。
  • 可扩展至大型制作流程。
  • 可编码模型、几何体、着色、动画、资产元数据、引用、变体和有效负载。
  • 可用作高保真制作交换层。

风险:

  • USD 不是通用绑定系统。
  • 渲染器和 DCC 对材质网络及架构的支持各不相同。
  • 命名空间更改可能破坏下游覆盖;稳定的 prim 路径很重要。
FBX

当目标 DCC/引擎流程要求使用 FBX 处理静态网格、骨骼网格、动画片段、变形目标或旧版互操作时使用,尤其适用于 Unity 和 Unreal 工作流。

优势:

  • 常见的 DCC/引擎桥接格式。
  • 可在不同程度上承载网格、骨架、动画、混合形状/变形目标、材质和纹理。
  • Unreal 和 Unity 都提供了以 FBX 为核心的模型导入工作流文档。

风险:

  • 版本和导出器差异很重要。Unreal 的流程文档指定使用 FBX 2020.2。
  • 材质转换通常只是近似效果;务必在目标引擎中测试。
  • 轴向、单位、前置/后置旋转以及动画烘焙设置都可能导致细微的导入错误。
源 DCC 包

当用户需要后续编辑时使用。仅当许可和接收方使用的工具允许时,才包含 .blend、.ma/.mb、.max、.hip、.c4d、.spp、.ztl 或项目原生文件。

优点:

  • 保留创作图层、修改器、高模源文件、绑定、程序化材质和可编辑上下文。

风险:

  • 与交换格式相比,通用性较差。
  • 可能需要商业软件或插件。
  • 可能会意外包含未使用的引用或受许可约束的资产。

交付包模式

对于可直接用于生产的独立资产,请交付类似这样的包:

  • source/:可编辑的源文件、高模源文件、烘焙笼;若许可允许,还可包含雕刻或扫描参考文件。
  • export/:最终的 .glb、.gltf、.usd/.usdz、.fbx 或特定目标的导入文件。
  • textures/:最终贴图,并清楚标明名称、分辨率、色彩空间和通道打包方式。
  • previews/:中性渲染图、线框图、UV 棋盘格、引擎或查看器截图。
  • docs/:自述文件、尺寸、预算、坐标约定、导出/导入设置、权利/来源信息和已知限制。

如果用户明确要求只提供两个文件或单个最终资产,仍应酌情将相同信息保留在自述文件章节、资产元数据或回复摘要中。

验证与质量保证

验证分为三个层面:结构、视觉和生产使用。

结构验证:

  • 文件可在目标 DCC、引擎或查看器中无错误打开。
  • glTF/GLB 通过 glTF Validator 检查,无错误且仅有已接受的警告。
  • 在完整验证或交接之前对 glTF/GLB 包进行初步检查时,如有捆绑的 Python 预检工具,请运行:python scripts/inspect_gltf.py path/to/asset.gltf 或 python scripts/inspect_gltf.py path/to/asset.glb。该工具会输出稳定的 JSON;未发现预检错误时退出码为 0,发现验证问题时为 2,读取、解析或容器操作失败时为 3。
  • USD 可在 usdview 或目标 USD 使用程序中打开;prim 路径、变体、引用、payload 和材质绑定均可解析。
  • FBX 可导入确切的目标引擎版本,且比例、法线、UV、材质槽、骨架、变形目标和动画设置均正确。
  • 纹理链接使用相对路径,或按要求打包。
  • 不存在缺失文件、本地绝对路径、隐藏依赖项或不受支持的扩展。

捆绑的 scripts/inspect_gltf.py 工具仅用于有限范围的预检,不是符合性验证工具。使用它安全读取 .gltf JSON 或 GLB v2 容器的 JSON 块;检查 GLB 标头、声明长度、块顺序、块截断、JSON 块解析和第一个 BIN 块的关系;清点场景、节点、网格、图元、材质、纹理、图像、动画、蒙皮、摄像机、访问器、缓冲区、缓冲区视图和采样器;拒绝绝对路径、路径遍历、越出根目录的路径、包含方案/查询/片段的 URI,以及缺失的本地外部缓冲区/图像 URI;记录并检查 data URI 的大小;并捕获常见的索引引用错误,涵盖默认场景、场景节点、节点网格/蒙皮/摄像机/子节点、网格图元访问器/材质/变形目标、材质纹理信息、纹理/图像/采样器、缓冲区/缓冲区视图/访问器、蒙皮,以及动画采样器/通道。

即使预检通过,也务必使用 Khronos glTF Validator 完整检查 glTF 正确性、二进制访问器数据、图像内容、稀疏访问器、扩展行为、NaN/Infinity 和数值约束,以及完整的架构覆盖。然后将资源导入接收方使用的 DCC、引擎或查看器,进行视觉、材质和动画质量检查。预检通过仅表示该包在结构上合理,且其本地依赖项可安全读取。

视觉验证:

  • 在匹配的摄像机和光照条件下,对比源文件、DCC 导出结果和目标导入结果。
  • 检查烘焙纹理的特写、轮廓、硬边、透明度、贴花、自发光材质和镜像区域。
  • 检查 UV 棋盘格和纹理密度。
  • 在目标距离检查 LOD 切换。
  • 对于扫描资源,如果预期需要重新布光,请确认反照率贴图未带有不需要的阴影/高光。

生产使用验证:

  • 将资源放入干净的目标项目中。
  • 测试轴心位置、比例、吸附行为、插槽和边界。
  • 如有需要,测试碰撞。
  • 根据预算检查内存/下载/构建大小。
  • 如果使用骨骼,测试动画变形、根节点行为、重定向和变形目标。
  • 在另一台机器或干净的工作区中,从交付包重新导入。

常见的不合格问题:

  • 真实世界比例或轴向错误。
  • 由于使用绝对路径而导致纹理缺失。
  • 非流形或自相交造成的渲染瑕疵在目标环境中可见。
  • 材质依赖不受支持的程序化/着色器功能,且没有烘焙备用方案。
  • 法线贴图切线不匹配,导致接缝或光照反转。
  • 纹理色彩空间错误。
  • LOD 重新排列材质槽,或出现严重跳变。
  • 骨架权重超出目标限制或未归一化。
  • 扫描/生成/第三方输入没有权利/来源记录。

权利、授权与来源

每个资产都需要一份生产来源记录。

记录以下内容:

  • 来源类型:生成、扫描/采集、建模、购买、客户提供、开放资产、内部库、源自 CAD。
  • 来源所有者及许可证或条款。
  • 如果是生成的,记录生成服务提供方/模型/设置和日期。
  • 如果是从真实物业、人物、艺术品、品牌产品或私人空间扫描而来,记录采集地点/日期和授权/许可状态。
  • 第三方参考资料、商标、徽标、标签、独特产品造型及任何授权状态。
  • 如果资产描绘人物,记录涉及的人物肖像、生物识别或个人数据问题。
  • 执行过的修改:重拓扑、纹理重绘、材质重建、简化、格式转换、优化。
  • 再分发权限和署名要求。

不要仅仅为了让软件包更整洁,就移除版权声明、创作者元数据或许可证文件。如果来源信息不完整,请将资产标记为尚未获准分发。

示例:将生成的椅子转换为适用于 Web 的 GLB

这只是示例,并非必须遵循的公式。

生产目标:将生成的现代休闲椅网格转换为适用于 Web 产品配置器的资产。

输入和约束:

  • 来源:生成的 OBJ,包含 280k 个三角形和顶点颜色,没有可用的 UV。
  • 目标:使用 GLB 的 WebGL 查看器,目标下载大小低于 8 MB,提供两种颜色变体,产品高度为 0.82 m,静态网格。
  • 要求:每个变体各一个 GLB、中性预览渲染图、来源说明。

工作流:

  1. 归档源 OBJ,并在可用时记录生成器、提示词、种子/设置和日期。
  2. 测量目标尺寸;缩放模型,使椅子高度为 0.82 m,椅座位于地面平面上。
  3. 将拓扑重建为静态低多边形网格,确保轮廓干净;仅在材质分离有需要时,才将坐垫与框架分开。
  4. 移除内部隐藏表面和坐垫下方粘连的碎片。
  5. 创建 UV0,确保 UV 岛不重叠、纹素密度一致,并将接缝藏在坐垫边缘和框架背面下方。
  6. 从原始高多边形源模型向清理后的网格烘焙法线和 AO。
  7. 制作 PBR 材质:织物基础颜色、粗糙度变化、金属框架 metallic=1,并根据参考图调整粗糙度。
  8. 打包 glTF 金属度-粗糙度纹理,将粗糙度放在 G 通道、金属度放在 B 通道;将基础颜色导出为 sRGB,将数据贴图导出为线性空间。
  9. 生成 LOD1/LOD2,或仅在查看器支持时依赖运行时简化;如果包含 LOD 转换,则测试转换效果。
  10. 导出 GLB,并使用 glTF Validator 验证。
  11. 在实际 Web 查看器中打开 GLB,检查比例、材质响应、纹理接缝和文件大小。

预期结果:

  • GLB 可正常加载且无错误,比例正确,织物/金属 PBR 材质干净,并在下载大小限制内保留产品轮廓。

可能的失败情况:

  • 生成的网格存在物理上不可能的坐垫交叠,需要手动重新建模。
  • 顶点颜色效果无法直接转换为干净的反照率,因此需要重绘纹理。
  • 过度简化会破坏椅腿或坐垫接缝。
  • 查看器不支持导出器使用的 glTF 扩展。

有意义的变体:

  • 对于 AR,需更严格地验证真实尺寸,并在需要时采用平台专用的 USDZ。
  • 对于桌面主视觉视图,可提高纹理分辨率并保留倒角细节。
  • 对于大型产品目录,应在所有椅子之间统一轴心点、命名、纹理打包方式和材质变体。

示例:将摄影测量雕像制作为引擎道具

这是一个示例,并非必须遵循的公式。

制作目标:将摄影测量雕像扫描件转换为可用于 Unreal 和 Unity 的静态道具。

输入与限制:

  • 源文件:包含 2,200 万个三角形的扫描模型,配有 16k 漫反射纹理,光照不均,悬挑部分下方有孔洞。
  • 目标:为 Unreal/Unity 提供 FBX 和纹理,包含 3 个 LOD、碰撞代理,基座高度为 1.4 m。
  • 要求:不得声称获得了精确复刻博物馆藏品的授权;在权利许可得到确认前,仅限内部可视化使用。

工作流:

  1. 保留原始扫描件、相机组和重建元数据。
  2. 确认采集许可;如果尚未获得许可,则将再分发状态标记为仅限内部使用。
  3. 根据实测的基座高度确定比例;将枢轴设置在基座底部中心。
  4. 移除地面/桌面伪影,并填补雕像本体应连续处的孔洞。
  5. 通过重新拓扑或受控减面创建干净的渲染网格,同时保护面部、双手、轮廓和雕刻边缘。
  6. 如果目标引擎/项目有要求,则为烘焙贴图创建 UV0,并为光照贴图创建 UV1。
  7. 对漫反射纹理去除光照影响,或重绘基础颜色,以消除采集时的阴影和高光。
  8. 将法线、AO 和曲率从扫描模型烘焙到渲染网格。
  9. 在保留轮廓的前提下生成 LOD,并在两个引擎中验证过渡效果。
  10. 创建简单的凸包或自定义碰撞代理,使其与基座/本体大致匹配,满足游戏玩法需求。
  11. 使用目标引擎设置导出 FBX;将其导入干净的 Unreal 和 Unity 项目,并截取屏幕截图。

预期结果:

  • 一个静态道具包,具备正确的比例、稳定的材质、碰撞、LOD,并记录了内部使用权利状态。

可能的失败模式:

  • 基础颜色中保留了烘焙光照,在引擎光照下效果不佳。
  • 细长的手指或雕刻边缘在 LOD 中坍塌。
  • FBX 导入时单位转换错误,导致雕像尺寸放大或缩小 100 倍。
  • Unity/Unreal 的材质导入对粗糙度/金属度的近似方式不同,因此需要提供引擎原生材质调整说明。

有实际意义的变体:

  • 用于博物馆存档时,保留高分辨率 USD/源文件包,并减少清理力度。
  • 用于移动平台时,减少材质槽数量并使用较小的纹理集。
  • 用于电影级制作时,保留位移或高模源文件,以供离线渲染使用。

示例:用于 Rig 交接的角色服装网格

这只是一个示例,并非必须遵循的公式。

制作意图:准备一个生成的夹克网格,以便将其绑定到现有的人形角色上。

输入与约束:

  • 来源:生成的夹克网格,95k 个三角形,无绑定,拉链/纽扣粗糙,目标是用于现有角色骨架。
  • 目标:在 DCC 中交接绑定,并进行 FBX 测试导入;运行时每个顶点最多 4 个骨骼影响。
  • 要求:肩部、肘部、躯干扭转和衣领处变形良好。

工作流:

  1. 在绑定姿势下,将夹克与已批准的角色身体对齐;确认对齐后再冻结变换。
  2. 移除隐藏的内部几何体,除非需要保留敞开的衣领/袖口。
  3. 重新拓扑,在肩部、肘部、袖口、下摆和衣领处布置环线;如果拉链/纽扣需要保持刚性或可以替换,则将它们保留为独立网格。
  4. 创建 UV,并沿服装结构线和隐藏的下侧区域布置接缝。
  5. 将高模/生成源中的织物纹理和缝线细节烘焙到法线/AO 贴图。
  6. 采用易于预测的方式命名网格/材质:jacket_body、zipper_teeth、button_L/R、mat_jacket_fabric 等。
  7. 从身体或引导骨架转移/预设蒙皮权重,然后进行归一化,并限制为目标影响数。
  8. 测试抬臂、屈肘、躯干扭转、下蹲,以及衣领与头部的接触。
  9. 交付源 DCC 文件、FBX 测试导出文件、纹理、绑定姿势说明、权重问题区域和绑定假设。

预期结果:

  • 可用于绑定的服装资产,变形表现可预测,并为绑定人员提供清晰的网格/材质/权重结构。

可能的失败模式:

  • 生成的褶皱被建模为混乱的三角形,在变形时发生塌陷。
  • 纽扣与布料融合,蒙皮时出现拉扯。
  • UV 在接缝处拉伸,导致织物纹理游移。
  • 超出骨骼影响数限制,或转移后权重未归一化。

有意义的变体:

  • 对于布料模拟,应保留独立的布片和适合求解器的拓扑,而不是最终的蒙皮拓扑。
  • 对于非人形骨架,应以项目实际使用的骨架和根节点要求替代人形假设。
  • 对于电影级特写,应在源文件交接中加入置换或更高分辨率的织物细节。

来源说明

来源已于 2026-07-11 核实,另有说明的除外。

评论

支持 Markdown