Files

5.9 KiB
Raw Permalink Blame History

大角首领:Studio低模/UV与原动作复用试验

2026-10-21,状态 validated。用户明确授权原始 greathorn.glb 上传腾讯混元3D Studio,实际完成截图流程第2~5步,并在本地Blender绑回原22骨。交付独立试验版;现有关卡继续使用原GreatHorn,未替换正式战场。没有重新调用TokenRig/UniMate,也没有修改原动作。

实际结果

阶段 实际执行与产物
原始高模 Tools/output/enemy_3d/GreatHorn/greathorn.glb,49,976三角面,原文件保留
02 Studio低模生成 官网低模拓扑V1.5,三角面/低;得到13,159三角面。任务及下载记录 hunyuan_studio.json/studio_lowPolyTopologyRsp.json
03 Studio UV展开 上传上一步的准确FBX继续展开;输出带TEXCOORD_0的GLB、FBX、OBJ与UV布局PNG;13,159面,8,120个含UV分裂的顶点;studio_uvUnwrappingRsp.json留证
烘焙前坐标对齐 Studio将网格居中并归一化,原高模为底面原点。用等比缩放1.05257233、底面中心平移对齐到原高模;UV哈希前后一致;原Studio下载文件保留
04 Blender贴图烘焙 对官网UV网格做selected-to-active,1024² diffuse/normal/AO/metallic/roughness;输出 model_baked.glb 和 bake_maps/,不重新展UV
05 保留UV减面 13,159 > 2,000×1.3,实际触发Collapse减面到2,000面;保留原UV层和烘焙贴图,无再次UV展开。记录 model_decimated.json/decimate.log
项目格式 Blender Y-up、底面中心、-Z正面导出FBX,五通道打包1024² XPbr base/mix;转格式前后UV哈希相同
绑回原骨骼 Blender从原 enemy_dgx/GreatHorn/high_rig/rigged.glb 复制原22骨并转权重,每顶点最多4个归一化权重;骨骼路径/绑定局部TRS与原角色逐项核对
复用动作 试验Prefab的Animator直接引用原Avatar和 GreatHorn_Animator.controller,仍播放原 Clips/Idle.anim、Walk.anim、Attack.anim;无重导出/重生成动画

所有工作中间件位于 Tools/output/enemy_studio_trial/GreatHorn/;完整来源、最终哈希与原资源哈希快照见 trial.json。官方低模、UV、烘焙前/后及减面结果分别保存,能够定位差异。

关键修正

初次直接使用工作台烘焙函数时出现脸部贴图错投、身体黑块。原高模Blender Z范围约0~1.054628,而Studio原UV模型约-0.500000~0.501953;低模还丢失原来的中心偏移。bl_align_studio_uv.py 仅做坐标和尺寸对齐、保持UV,之后重烘焙恢复正确外观。错误烘焙原稿 diagnostic_unaligned_baked.glb 只作为诊断保留,未交付到正式资源。

原成品动作是在旧网格脚底上收尾的,新拓扑直接转权重时,Walk/Attack出现约3毫米脚底穿地。检查发现一个脚尖顶点在四个腿骨的任何凸组合下仍会穿地,因此仅调权重不能解决。最终在Blender对新蒙皮网格两个脚底顶点(706/1543)各做游戏空间1毫米的局部上移;原骨骼、全局Transform、三段动作、UV与三角面数均未改变。绑定对照静态试验模的最大顶点差1.0044毫米,仍低于2毫米门槛。此局部形状差异保留于 sole_fit.json,没有通过抬整个角色或放宽3毫米门槛处理。

交付与验收

  • 试验根目录 AIClient/Assets/Bundles/Characters/Enemy/GreatHornStudio/:GreatHornStudio.prefab(静态)、GreatHornStudio_Enemy.prefab(动画)、GreatHornStudio.fbx、Rigged/GreatHornStudio_Rigged.fbx、GreatHornStudio.mat、GreatHornStudio_base.png/GreatHornStudio_mix.png。
  • 独立场景 AIClient/Assets/Bundles/Scenes/Review/Enemy_GreatHornStudio_Review.unity:上排原版,下排Studio版,依次Static/Idle/Walk/Attack,使用独立27层与X=300位置;Additive制作与截图后关闭,未重建角色总验收场景。
  • 对比图 AIClient/Assets/Screenshots/greathorn_studio_comparison.png,1800×900。已目视核对两版静态与三动作采样;坐标修复后脸部、角、披风及身体贴图正常。
  • 编辑QA:2000面、22骨、绑定高0.8000002m,原Avatar/控制器/三动作引用逐项一致,所有动画曲线均绑定到现有节点,每顶点最多4权重且归一化。
  • 每段121帧采样(共363帧):Idle底面约-0.002~0.044毫米;Walk约-2.178~1.562毫米;Attack约-2.556~1.266毫米,均满足3毫米门槛。三段首尾顶点差0;Idle/Walk水平根漂移接近0,Attack保留原动作约25.07毫米的前冲。报告 unity_verification.json。
  • 实际Play观察到Idle/Walk/Attack三状态,最大根骨倾角9.736°,外层角色根固定;报告 play_verification.json。验证后退出Play。
  • trial.json 原Prefab、Avatar来源rig、控制器与三段成品动作的SHA256快照复核一致。

复现

# 使用3D工作台已配置的依赖环境;已完成的Studio产物会复用
D:/UD/AI/XModel/LLM3DGraphics/.venv/Scripts/python.exe Tools/greathorn_studio_trial.py
# 本地格式转换、原骨架转权重、局部脚底适配、Pipeline入库与原动作QA
python Tools/greathorn_studio_finish.py --play-check

制作脚本不改写XModel外部工作台代码。Studio调用依赖已有项目混元会话,外传需用户授权;本次已明确授权该模型。Unity操作统一Pipeline并显式指定AIClient项目;有其他Play占用时先保留离线产物,协调后入库。

本次证明Studio低模/UV→烘焙→条件减面→原骨架/原动作复用可以跑通。两版最终同为2000面,Studio减面前13k拓扑的优势在进一步Collapse后需要重新评估;最终新网格为1783个源顶点(包含UV分裂),不能将这个数字与旧版950个焊接源顶点直接当成性能提升结论。正式替换前可结合近景布线、材质接缝、动作极值与目标设备预算决定采用哪版;本试验没有宣称全面优于原版。