关于 3d-asset-production
这是一套 3D 资产整理技能,面向需要将模型交付给艺术家、引擎、查看器或应用的团队。它把不同来源的网格整理为有记录、经过验证的资产包,并处理几何体、比例、材质、纹理和导出。
主要功能
- 01采集交付要求
- 02几何清理与重拓扑
- 03UV 和 PBR 纹理准备
- 04比例、枢轴与材质检查
- 05LOD 和运行时优化
- 06导出验证与来源记录
适用场景
- 01为游戏引擎准备网格
- 02打包用于 Web 或 AR 的资产
- 03清理扫描或生成的模型
- 04检查从 DCC 到引擎的交接
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ calesthio/ generative-media-skills --skill 3d-asset-production安装后在 Claude Code 中输入/3d-asset-production确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
EVAL.mdscripts/inspect_gltf.pytests/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 规划、用烘焙颜色代替材质逻辑、轮廓看似合理但机械结构薄弱。
最佳路径:
- 冻结一份源文件归档;如已知,记录生成服务提供方/模型/设置。
- 判断网格是概念参考、高面数烘焙源,还是可直接清理的候选对象。
- 如果拓扑混乱但形状有价值,应重新拓扑,而不只是减面。
- 根据已确认的表面外观重建 UV 和 PBR 贴图。
- 通过导入进行验证,不要只在生成器的查看器中目视检查。
捕获或扫描输出
常见特征:高密度、孔洞、扫描阴影、烘焙到反照率贴图中的纹理光照、脆弱的薄表面、比例漂移、扫描台/地面杂物。
最佳路径:
- 保留原始扫描/摄影测量源文件。
- 根据已测量的特征或校准物确定实际比例。
- 移除杂物,并且仅在有物理依据的地方重建缺失几何体。
- 根据用途构建干净的重新拓扑网格,或进行优化减面。
- 如果资产必须响应新的光照,应对纹理进行去光照处理。
建模或雕刻输出
常见特征:设计意图较清晰,可能存在未应用的变换/修改器、隐藏的高面数细节、重叠的 UV 壳或不受支持的程序化材质。
最佳路径:
- 仅应用/导出有意设置的变换和修改器。
- 在有用时,保留带有非破坏性图层的创作文件。
- 将高面数或程序化细节烘焙到贴图中,供运行时目标使用。
- 导出后验证法线、切线、UV 集、枢轴和单位比例。
CAD 衍生多边形输出
常见特征:设计意图准确,但细分不适用;部件和材质 ID 众多;存在细小倒角、n 边形/修剪转换伪影;使用真实世界单位。
最佳做法:
- 多边形转换后,不要声称其具备制造级精度。
- 如果许可允许,保留 CAD 文件作为来源记录/参考。
- 根据观看距离,采用合适的弦高/角度公差进行细分。
- 在运行时条件允许的情况下,合并或实例化重复部件。
- 将材质重建为可渲染的 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:有意选择镂空/遮罩或混合模式,因为它们的排序和深度行为不同。
烘焙流程:
- 在最终烘焙前,锁定低模网格、平滑组/自定义法线、UV 和包裹笼。
- 烘焙法线、AO、曲率、厚度、位置、ID/材质遮罩,以及纹理制作所需的高度/置换贴图。
- 检查偏斜、波纹、投射遗漏、包裹笼相交和镜像切线接缝。
- 拓扑、UV 或法线发生变化后,重新烘焙;除非变化仅限局部且已验证,否则不要通过修补法线贴图来掩盖网格变化。
- 导出贴图时注明色彩空间和通道打包方式。
glTF 专用材质交付:
- 交付 glTF/GLB 时,使用金属度-粗糙度作为基础交换材质。
- 将粗糙度打包到核心
metallicRoughnessTexture的 G 通道,将金属度打包到 B 通道。 - 根据 glTF 规则,基础颜色和自发光使用 sRGB 输入;法线、遮蔽、金属度和粗糙度数据使用线性空间。
- 记录所需的 glTF 扩展。除非资产缺少这些扩展就无法正常加载/渲染,否则不要将扩展标记为必需。
材质质量检查:
- 至少在一个中性 HDRI 和一种直接/主光照明设置下进行测试。
- 在目标渲染器中并排比较源文件和导出后的渲染效果。
- 检查切线空间法线的方向,尤其是绿色通道约定和镜像 UV 接缝。
- 确认透明材质在预期目标中的排序效果可接受。
- 确认导入后纹理文件名和材质槽名称仍然保留。
LOD 与优化
LOD 工作不只是减少三角形数量,而是在稳定材质、切线、蒙皮和碰撞行为的前提下,有控制地损失视觉细节。
LOD 规划:
- 生成 LOD 前,先定义目标平台和屏幕尺寸阈值。
- 选择 LOD 是否共用材质和纹理、使用图集变体,或在远距离时合并材质槽。
- 比起内部表面细节,应更长时间保留轮廓。
- 对于骨骼资产,应保护关节、面部/手部、附件和布料边界。
- 对于模块化资产,应锁定共享边界或简化组合后的部件,以避免相邻部件之间出现裂缝。
实时网格的优化顺序通常遵循以下逻辑:
- 清理/焊接拓扑并为网格建立索引。
- 完成 UV、法线、切线、顶点颜色、材质 ID 和蒙皮权重。
- 生成 LOD,或为主角/变形网格使用针对资产手动制作的 LOD。
- 在运行时能从中受益的情况下,优化索引顺序以提升顶点缓存和顶点读取效率。
- 只有在目标距离完成视觉验证后,才进行量化或压缩。
- 使用压缩/扩展功能后,在目标引擎或查看器中进行验证。
预算经验值很大程度上取决于摄像机距离、平台、着色器开销和项目风格。如果用户没有指定预算,应提供范围,而不是通用数量:
- 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、中性预览渲染图、来源说明。
工作流:
- 归档源 OBJ,并在可用时记录生成器、提示词、种子/设置和日期。
- 测量目标尺寸;缩放模型,使椅子高度为 0.82 m,椅座位于地面平面上。
- 将拓扑重建为静态低多边形网格,确保轮廓干净;仅在材质分离有需要时,才将坐垫与框架分开。
- 移除内部隐藏表面和坐垫下方粘连的碎片。
- 创建 UV0,确保 UV 岛不重叠、纹素密度一致,并将接缝藏在坐垫边缘和框架背面下方。
- 从原始高多边形源模型向清理后的网格烘焙法线和 AO。
- 制作 PBR 材质:织物基础颜色、粗糙度变化、金属框架 metallic=1,并根据参考图调整粗糙度。
- 打包 glTF 金属度-粗糙度纹理,将粗糙度放在 G 通道、金属度放在 B 通道;将基础颜色导出为 sRGB,将数据贴图导出为线性空间。
- 生成 LOD1/LOD2,或仅在查看器支持时依赖运行时简化;如果包含 LOD 转换,则测试转换效果。
- 导出 GLB,并使用 glTF Validator 验证。
- 在实际 Web 查看器中打开 GLB,检查比例、材质响应、纹理接缝和文件大小。
预期结果:
- GLB 可正常加载且无错误,比例正确,织物/金属 PBR 材质干净,并在下载大小限制内保留产品轮廓。
可能的失败情况:
- 生成的网格存在物理上不可能的坐垫交叠,需要手动重新建模。
- 顶点颜色效果无法直接转换为干净的反照率,因此需要重绘纹理。
- 过度简化会破坏椅腿或坐垫接缝。
- 查看器不支持导出器使用的 glTF 扩展。
有意义的变体:
- 对于 AR,需更严格地验证真实尺寸,并在需要时采用平台专用的 USDZ。
- 对于桌面主视觉视图,可提高纹理分辨率并保留倒角细节。
- 对于大型产品目录,应在所有椅子之间统一轴心点、命名、纹理打包方式和材质变体。
示例:将摄影测量雕像制作为引擎道具
这是一个示例,并非必须遵循的公式。
制作目标:将摄影测量雕像扫描件转换为可用于 Unreal 和 Unity 的静态道具。
输入与限制:
- 源文件:包含 2,200 万个三角形的扫描模型,配有 16k 漫反射纹理,光照不均,悬挑部分下方有孔洞。
- 目标:为 Unreal/Unity 提供 FBX 和纹理,包含 3 个 LOD、碰撞代理,基座高度为 1.4 m。
- 要求:不得声称获得了精确复刻博物馆藏品的授权;在权利许可得到确认前,仅限内部可视化使用。
工作流:
- 保留原始扫描件、相机组和重建元数据。
- 确认采集许可;如果尚未获得许可,则将再分发状态标记为仅限内部使用。
- 根据实测的基座高度确定比例;将枢轴设置在基座底部中心。
- 移除地面/桌面伪影,并填补雕像本体应连续处的孔洞。
- 通过重新拓扑或受控减面创建干净的渲染网格,同时保护面部、双手、轮廓和雕刻边缘。
- 如果目标引擎/项目有要求,则为烘焙贴图创建 UV0,并为光照贴图创建 UV1。
- 对漫反射纹理去除光照影响,或重绘基础颜色,以消除采集时的阴影和高光。
- 将法线、AO 和曲率从扫描模型烘焙到渲染网格。
- 在保留轮廓的前提下生成 LOD,并在两个引擎中验证过渡效果。
- 创建简单的凸包或自定义碰撞代理,使其与基座/本体大致匹配,满足游戏玩法需求。
- 使用目标引擎设置导出 FBX;将其导入干净的 Unreal 和 Unity 项目,并截取屏幕截图。
预期结果:
- 一个静态道具包,具备正确的比例、稳定的材质、碰撞、LOD,并记录了内部使用权利状态。
可能的失败模式:
- 基础颜色中保留了烘焙光照,在引擎光照下效果不佳。
- 细长的手指或雕刻边缘在 LOD 中坍塌。
- FBX 导入时单位转换错误,导致雕像尺寸放大或缩小 100 倍。
- Unity/Unreal 的材质导入对粗糙度/金属度的近似方式不同,因此需要提供引擎原生材质调整说明。
有实际意义的变体:
- 用于博物馆存档时,保留高分辨率 USD/源文件包,并减少清理力度。
- 用于移动平台时,减少材质槽数量并使用较小的纹理集。
- 用于电影级制作时,保留位移或高模源文件,以供离线渲染使用。
示例:用于 Rig 交接的角色服装网格
这只是一个示例,并非必须遵循的公式。
制作意图:准备一个生成的夹克网格,以便将其绑定到现有的人形角色上。
输入与约束:
- 来源:生成的夹克网格,95k 个三角形,无绑定,拉链/纽扣粗糙,目标是用于现有角色骨架。
- 目标:在 DCC 中交接绑定,并进行 FBX 测试导入;运行时每个顶点最多 4 个骨骼影响。
- 要求:肩部、肘部、躯干扭转和衣领处变形良好。
工作流:
- 在绑定姿势下,将夹克与已批准的角色身体对齐;确认对齐后再冻结变换。
- 移除隐藏的内部几何体,除非需要保留敞开的衣领/袖口。
- 重新拓扑,在肩部、肘部、袖口、下摆和衣领处布置环线;如果拉链/纽扣需要保持刚性或可以替换,则将它们保留为独立网格。
- 创建 UV,并沿服装结构线和隐藏的下侧区域布置接缝。
- 将高模/生成源中的织物纹理和缝线细节烘焙到法线/AO 贴图。
- 采用易于预测的方式命名网格/材质:
jacket_body、zipper_teeth、button_L/R、mat_jacket_fabric等。 - 从身体或引导骨架转移/预设蒙皮权重,然后进行归一化,并限制为目标影响数。
- 测试抬臂、屈肘、躯干扭转、下蹲,以及衣领与头部的接触。
- 交付源 DCC 文件、FBX 测试导出文件、纹理、绑定姿势说明、权重问题区域和绑定假设。
预期结果:
- 可用于绑定的服装资产,变形表现可预测,并为绑定人员提供清晰的网格/材质/权重结构。
可能的失败模式:
- 生成的褶皱被建模为混乱的三角形,在变形时发生塌陷。
- 纽扣与布料融合,蒙皮时出现拉扯。
- UV 在接缝处拉伸,导致织物纹理游移。
- 超出骨骼影响数限制,或转移后权重未归一化。
有意义的变体:
- 对于布料模拟,应保留独立的布片和适合求解器的拓扑,而不是最终的蒙皮拓扑。
- 对于非人形骨架,应以项目实际使用的骨架和根节点要求替代人形假设。
- 对于电影级特写,应在源文件交接中加入置换或更高分辨率的织物细节。
来源说明
来源已于 2026-07-11 核实,另有说明的除外。
- Khronos glTF 2.0 Specification:https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html。
- KhronosGroup glTF Validator:https://github.com/KhronosGroup/glTF-Validator。
- OpenUSD Introduction:https://openusd.org/release/intro.html。
- Unreal Engine FBX Content Pipeline:https://dev.epicgames.com/documentation/en-us/unreal-engine/fbx-content-pipeline。
- Unreal Engine Skeletal Meshes:https://dev.epicgames.com/documentation/en-us/unreal-engine/skeletal-mesh-assets-in-unreal-engine。
- Unity Manual,导入模型:https://docs.unity3d.com/Manual/ImportingModelFiles.html。
- Unity Manual,Rig 选项卡导入设置参考:https://docs.unity3d.com/Manual/FBXImporter-Rig.html。
- meshoptimizer README:https://github.com/zeux/meshoptimizer。