Files
AIGame/GameResProductProc.md

29 KiB
Raw Permalink Blame History

游戏资源生产流程

本文说明游戏内各类资源从设计到入库的生产步骤。
工具用法见 ResourceCreate.md。生成完成后必须登记 Doc/ResDesc.md 对应分册,未登记视为流程未完成。

当前状态:框架已立。各条的细化与实跑验证按文末清单逐条进行;标「待细化」的条目只保留步骤骨架,不写未经验证的命令。


0. 总则

  1. 画图一律走项目画图方案(见附录 A)。设计图、UI 原图、序列帧、粒子贴图的生成底为纯白。
  2. 3D一律走 3D 模型生成流程(见附录 B)。面数是减面后的游戏用三角面,不是混元高模面数。游戏 FBX:Y-up、原点在底面中点、局部 +Z 为正面(设计图朝向相机的那面)。摆放时正面朝向目标,与 Unity 默认 +Z forward 一致。
  3. 中间件放 Tools/output/,不进正式包。游戏用资源放 AIClient/Assets/Bundles/ 对应目录。
  4. 设计原稿放 Doc/Design/{类型}/{名称}/,不要拷进 AIClient/。{类型} 与下文各大类对应(如 Scene、Character、UI、Weapon、Prop、Effect)。
  5. 英文名称用于 Bundle 目录与文件名:帕斯卡或既有角色名风格均可,目录内保持一致,不含空格与中文。
  6. 确认点写在步骤里的,必须等人确认后再进入下一步。
  7. Unity 操作一律走 Unity Pipeline(unity command …),见 UNITY-GUIDE.md 与 unity-pipeline 技能。不要用 Unity MCP;场景、Prefab、材质、导入设置、以及 Assets/ 下文件的移动/重命名/删除,都通过 Pipeline 完成。
登记 文件
图、设计原稿、UI 切图 Doc/ResDesc_Picture.md
模型、贴图、Prefab Doc/ResDesc_Model.md
动画 Doc/ResDesc_Animation.md
特效 Doc/ResDesc_Effect.md
音乐、音效 Doc/ResDesc_Sound.md

一、2D 资源

1. 设计图

状态:已跑通。样例为轻松休闲 UI、场景设计、轻科幻曹操(2026-09-28)。

  1. 用 Tools/gpt_image_generate.py 出图。默认模型 gpt-image-2.5,--quality high。背景写进提示词:纯白 #FFFFFF,不要场景底、渐变和纸纹。
  2. 比例用字符串,不要自己传大于 1K 的像素。本次实测映射为:
用途 --aspect-ratio 实测尺寸
竖屏 UI 9:16 940×1672
场景总览 1:1 1254×1254
全身角色 2:3 1024×1536
  1. 需要锁已有风格时加 -i 参考图。UI 样例参考 Doc/Design/ui_design.jpg。
  2. 原稿放到 Doc/Design/{类型}/{名称}/,文件名用英文。本次:
类型 路径
UI Doc/Design/UI/Casual/casual_ui.png
Scene Doc/Design/Scene/{SceneId}/overview.png
Character Doc/Design/Character/CaoCao/caocao.png
  1. 检查四角 RGB。接近 255(本次均 ≥253)即视为纯白通过。
  2. 在 Doc/ResDesc_Picture.md 登记路径、用途、模型与尺寸。

角色若接着走 3D,设计图按「二.2.A 人物角色」使用固定姿态提示词,画成正面正交 T Pose、双手空、全身入画。本次曹操已按正面 T Pose 出图。

本条产出不进 Bundles。场景总览画出后先归纳物件类型(10 种以内)等人确认,再进入分件。

python Tools/gpt_image_generate.py --result-only --quality high --aspect-ratio 9:16 -i Doc/Design/ui_design.jpg -o Doc/Design/UI/Casual/casual_ui.png -p "..."
python Tools/gpt_image_generate.py --result-only --quality high --aspect-ratio 1:1 -o Doc/Design/Scene/{SceneId}/overview.png -p "..."
python Tools/gpt_image_generate.py --result-only --quality high --aspect-ratio 2:3 -o Doc/Design/Character/CaoCao/caocao.png -p "..."

2. UI 图

状态:待细化。切图与 Sprite 导入已有样例(Doc/UI_Normal_Set.md、Tools/slice_ui_normal_atlas.py、Assets/Bundles/UI/Texture/Common/),新风格组件仍按本条重走一遍并核对。

  1. 参考既有 UI 范例图,用项目画图方案绘制新的风格组件图,背景纯白。
    • 视觉基准:Doc/Design/ui_design.jpg、Doc/Design/UI_Design_Principles.md。
    • 范例图集:Doc/UI_Simple_Set.md、Doc/UI_Normal_Set.md。
    • 原稿放到 Doc/Design/UI/{名称}/。
  2. 把组件图拆成单张图。
  3. 导入 Unity,贴图类型改为 Sprite (2D and UI)。
    • 落点:AIClient/Assets/Bundles/UI/Texture/Common/(或该套组件的子目录)。
    • 现有 Common 图:spriteMode: 1(Single),textureType: 8(Sprite),spritePixelsToUnits: 100,关闭 Mip Map。
  4. 业务界面仍走 JSON→Prefab,见 Doc/UI_AutoGen_Overview.md。不要用运行时代码拼业务 UI。
  5. 登记 Doc/ResDesc_Picture.md。

二、3D 资源

1. 场景

默认流程见 Doc/Design/Scene/SceneModelProduction.md。新场景组件(含地表)统一执行:分件图 → 混元 50k 高模 → Studio 低模 → Studio UV → Blender 烘焙 → 超预算时保留 UV 减面。战场 A 的已有历史产物按原回执保留。

a. 整体设计图(需确认)

  1. 用项目画图方案绘制总览图,确定风格、构图、地表、路线和地标。
  2. 同时产出美术基准包(参考图、色板、比例表、灯光、机位、密度目标),写入 manifest artDirection,见 Doc/Design/Scene/SceneReviewGeneration.md「商业化品质基线」。
  3. 按 A 主体 / B 中景 / C 点缀分层归纳物件,并按屏占比给出目标三角面预算;战场装饰硬上限 15 类,地表拆为平铺表面加边缘件。
  4. 等人确认整体设计、美术基准与组件清单后再进入分件、模型制作。
  5. 原稿放 Doc/Design/Scene/{SceneId}/,生产清单用对应 manifest 管理。

b. 分件设计图

先匹配已验收的可复用 Prefab;没有合适资源时每类画一张白底、单件、完整入画的设计图,通常为 3/4 视角。地表独立,布局审核图与图生模型参考图按用途区分。设计图须人工审核,登记 Doc/ResDesc_Picture.md。

c. 生成模型并入库

  1. 默认执行混元 50k → Studio 低模 → Studio UV → Blender 同源对齐烘焙,保留 Studio UV。
  2. 仅当实际三角面数严格大于目标的 130% 时保留 UV 减面;其余登记为跳过,不再用 Blender 自动展 UV 替代 Studio UV。
  3. 通用入口:Tools/scene_component_pipeline.py --manifest <场景manifest> --part <组件id>;使用 --dry-run 只查看计划。混元高模先由 Tools/hunyuan_3d_generate.py 完成。
  4. 校验 GLB 文件头、内嵌贴图解码、UV、面数、坐标、包围盒和四向外观;保留任务号、来源哈希与 production.json。
  5. 高模和生产中间件留在 Tools/output/;游戏 FBX、_base.png、_mix.png 放 AIClient/Assets/Bundles/Scenes/{类型}/{SceneId}/{part}/,材质由 Unity 创建。
  6. 模型、贴图和 Prefab 路径及回执登记到场景 manifest 和 Doc/ResDesc_Model.md。

d. Unity 拼装与验收

  1. 所有导入、材质、碰撞体、Prefab 和场景操作走 Unity Pipeline,见 UNITY-GUIDE.md。
  2. 组件先做成可复用 Prefab,再由 manifest/场景制作脚本拼成总 Prefab 与可编辑 .unity 场景。新资源为 Y-up、底面中心原点、局部 +Z 正面;历史 -Z 资产显式兼容。
  3. 地表为独立资源,使用非凸 MeshCollider;物件按碰撞高度贴地,验收路线、朝向、穿插、构图和碰撞。
  4. 当前入口:战场 BuildBattlefieldAssets.BuildAll → BuildBattlefieldScene.Build → AttachGreenfield.Build;主营地 BuildHomeCamp.BuildAssets → CaptureParts → Build → Verify。
  5. 拼装后执行美术收尾:可见地面层物件统一 Lit 并接收阴影,地表用 XTerrain 平铺,静态机位烘焙 lightmap/AO,加全局 Volume 和雾。随后在正式机位与参考图并排做六项评分,任意一项低于 4 分打回;verification.txt 分别写 TECH 与 ART 结论。
  6. 对图验收通过后,再按实际需求登记资源收集入口并接入游戏;独立审核场景不默认加入正式 Build Settings。
  7. HomeCamp 在用的公共路灯与长椅位于 Assets/Bundles/Scenes/Common/{lamp,bench}/。TownSquare 测试场景已于 2026-10-26 删除,不再作为生成、加载或打包入口。

战斗战场样例 A · 绿野三岔口(2026-10-20)

  1. 设计 / 分件 / 模型:见 Doc/Design/Scene/Battlefield/;选中 A;树/岩石/桥/路牌/灌木 + 独立地表均已混元 50k → 减面烘焙 → 入 Assets/Bundles/Scenes/Prototype/Battlefield/A/。
  2. Pipeline:BuildBattlefieldAssets.BuildAll → BuildBattlefieldScene.Build → AttachGreenfield.Build。输出 Battlefield_Greenfield.prefab,嵌为 PrototypeArena/Greenfield;方块地面关闭。
  3. 桥模型保留(placeInScene: false),场景不摆桥。装饰为树、岩石、路牌、灌木。
  4. 战斗相机只画第 30 层:Greenfield 整棵子树必须设为 layer 30,否则地表在 Play Mode 不可见。
  5. 运行时仍由 PrototypeFlow 按地址 PrototypeArena 加载(Art/GameplayPrototype 收集)。Play Mode 隔离服验证截图:Assets/Screenshots/battlefield_play_battle.png。

2. 角色

A. 人物角色

状态:已用 CaoCao 跑通(约 3000 面、Characters/Human/{英文名称})。

  1. 参照风格图绘制设计图:T Pose,双手空、全身入画、背景纯白。比例 2:3(本次 1024×1536)。
  2. 原稿放到 Doc/Design/Character/{英文名称}/,不进 Bundles。样例:Doc/Design/Character/CaoCao/caocao.png。
  3. 设计图走附录 B:混元 --faces 50k → model_lowpoly_bake.py --tris 3000 --size 1024。减面后约 3000 面。
  4. 用 Tools/install_character_bundles.py -a {英文名称} --kind Human 拷到 AIClient/Assets/Bundles/Characters/Human/{英文名称}/({名}.fbx、_base.png、_mix.png、.mat)。
  5. Unity Pipeline 建 Prefab(Y-up、底面原点、局部 +Z 正面,不要再绕 X +90°):unity command run_script --file AgentScripts/SetupCharacter.cs --entry SetupCharacter.SetupCaoCao。身高缩到 1.8m。Art 收集已覆盖 Assets/Bundles/Characters。
  6. 运行时 CharacterSpawner 按地址 CaoCao 加载;Y 用 GroundSit 打地表 MeshCollider(中心点若未打中,偏 0.35m 再打)。
  7. 登记 Doc/ResDesc_Model.md 与 Doc/ResDesc_Picture.md。

人形角色设计图固定提示词(必须原样加入):

standard T-pose, front orthographic view, full body,
arms extended horizontally at shoulder height,
straight elbows, palms facing down,
legs straight, feet slightly apart and pointing forward,
symmetrical neutral stance, character modeling reference

生成用于 3D 建模的人形角色设计图时,在角色外观、服装和风格描述之外,必须加入以上完整英文提示词,并保留纯白背景、双手空、全身入画与 2:3 比例要求。出图后目视检查正面正交视角、双臂肩高水平伸展、肘部伸直、掌心向下、双腿伸直、双脚略分开且朝前、左右对称中立站姿。

人形角色蒙皮默认方案:固定 Mixamo 骨架 + TokenRig 只预测蒙皮权重。

静态模型验收通过后,需要蒙皮的人形角色默认按以下步骤处理:

  1. 拟合并固定骨架:使用已验证的 Mixamo 骨架模板,先按角色体型调整关节位置,保留模板骨名、层级和骨轴;拟合确认后记录休息矩阵,作为本角色蒙皮输入与还原校验基准。现有男孩、女孩的固定 41 骨流程可作参考,关节位置需按当前角色拟合。
  2. 仅预测权重:清除参考模型的既有蒙皮权重,TokenRig 使用已有骨架模式(--use_skeleton --skeleton_template original)预测新权重。若需占位权重防止预处理裁掉关节,占位仅用于保留骨架,不作为最终蒙皮。--skeleton_template mixamo 的自动生成/重命名路线不作为此默认流程。
  3. 还原与权重收尾:将预测权重装回已固定的角色骨架,恢复并校验原骨名、父子层级、骨轴和休息矩阵;检查手部受脚/腿/头等跨部位影响,按本角色解剖区域做必要的局部约束与归一化。保留网格几何与 UV,复用原烘焙贴图。
  4. 导出与动态验收:导出 Y-up、脚底中心原点、局部 +Z 正面的蒙皮 FBX,经 Unity Pipeline 配置 Humanoid 与角色自己的 Avatar。用实际所需动作检查肩、肘、手、颈、髋、膝和脚部形变、脚踝交叉及接地;通过后制作动画 Prefab,并登记 Model/Animation。

Mixamo 网站绑定保留为参考、对照或明确选择的替代方案。现有固定骨架工具和局部约束包含角色专用参数,新角色需要拟合与验收;本默认方案不代表已有任意角色的一键通用入口。

本次实测:高模 49990 面 → 低模 3000 面;贴图 1024;Prefab Assets/Bundles/Characters/Human/CaoCao/CaoCao.prefab。旧样例 Characters/MaleExplorer/ 仍是平铺目录、约 5k 面,且 Prefab 带历史 +90°X,不作为新角色模板。

python Tools/hunyuan_3d_generate.py --result-only --faces 50k -i Doc/Design/Character/CaoCao/caocao.png -o Tools/output/caocao_3d/caocao.glb
python Tools/model_tools/model_lowpoly_bake.py Tools/output/caocao_3d/caocao.glb -o Tools/output/caocao_game --tris 3000 --size 1024 --result-only
python Tools/install_character_bundles.py -a CaoCao --kind Human -b Tools/output/caocao_game/caocao_xpbr -c Doc/Design/Character/CaoCao/caocao.png
# Unity Pipeline: run_script AgentScripts/SetupCharacter.cs --entry SetupCharacter.SetupCaoCao

B. 非人角色

状态:制作与验收工具已落地;正式宠物模型内容待做。

步骤骨架与人物相同(风格图 → 纯白设计图 → 附录 B → 入库 → 登记)。差异:

  • 目录 Kind:Animal(或后续 Creature);样例 Characters/Animal/LmCat/。
  • 姿势:可辨识站姿/四足,不强制 T Pose;目标身高按物种写进验收 manifest。
  • 面数:默认 800~2000,在 character_unit_review_manifest.json 的 maxTriangles 验收。
  • 是否与人形共用骨骼:首批正式宠物各自独立网格,不绑 Mixamo;绑骨/动作用 DGX TokenRig + UniMate(见二.3.B)。

验收场景(专用,不进开战):

  • 流程说明:Doc/Design/Character/CharacterUnitArtProc.md
  • 清单:Doc/Design/Character/character_unit_review_manifest.json
  • Pipeline:AgentScripts/BuildCharacterReview.cs(Build / OpenReview / ValidateReview)
  • 场景:Assets/Bundles/Scenes/Review/CharacterUnitReview.unity
  • 已用 CaoCao / LmGirl / LmCat 跑通:身高与 XPbr 校验通过;截图 Assets/Screenshots/character_unit_review.png

新非人件:烘焙入库 → SetupCharacter.Run → 追加 manifest subjects → BuildCharacterReview.Build → ValidateReview 通过后,才替换开战简模。

3. 动画

A. 人形角色动画

状态:Mixamo标准Bot与精简骨架共享Controller已实测,Kimodo通用流程仍待细化。基本流程:动作列表确认 → 生成或导入剪辑 → 绑定到对应角色 → 放到该角色目录或统一动画目录 → 登记 Doc/ResDesc_Animation.md。

标准Bot样例:Common/AnimX/AnimY保存网站无蒙皮动作;动作Humanoid导入使用匹配的标准模型源Avatar(Copy From Other Avatar)。角色模型Humanoid使用Create From This Model,各自生成自己的Avatar;实例用自身Avatar+共享Controller,关闭Apply Root Motion,由业务控制位移。XBot25/XBot41已用自身Avatar共用65骨XBot动作,无需补齐65骨;缺失的手指自由度不能通过Controller恢复。可复用Prefab在 Common/Prefabs/,测试入口 Assets/Review/BotAnimationLab/BotAnimationLab.unity;具体参数、尺度适配及验证范围见 Doc/ResDesc_Animation.md 最新Bot记录。

人物蒙皮默认采用「二.2.A」的固定 Mixamo 骨架 + TokenRig 只预测蒙皮权重方案。动作生成/导入与蒙皮分开处理,动作来源不改变该默认蒙皮流程;已有共享 Walking 的 Avatar 与 Foot IK 验证见 Doc/ResDesc_Animation.md 最新记录。

B. 非人角色动画(TokenRig + UniMate)

敌方角色正式标准:采用 敌方角色标准制作方案 v1。统一配方 Config/Art/EnemyCharacters/{Name}.json、入口 Tools/enemy_character_pipeline.py,交付Idle/Walk/Attack、Enemy视觉Prefab与验证清单。下方旧工具说明保留为阶段记录,敌方制作以新标准为准。

伙伴角色复用:统一入口 Tools/character_animation_pipeline.py,伙伴配方 Config/Art/Companions/{Name}.json,usage=companion_visual;不创建敌方Variant。火喵T1已完成同源22骨、Idle/Walk/远程施法Attack、伙伴视觉Prefab与Edit/Play验收,见 制作记录。全骨骼初始姿势校准、附肢权重、动作峰值目视和CPU推理回退见上述标准方案的伙伴复用说明。

状态:工具已落地;依赖 DGX LLM3DGraphics(http://192.168.130.16:8008)能力绿灯。

  1. 先做静态模(原流程):设计图 → 混元网页高模 → model_lowpoly_bake → install_character_bundles → SetupCharacter → CharacterUnitReview 验收通过。不要用 DGX Hunyuan3D 重做宠模。
  2. 能力门禁:本机 LLM3DGraphics tokenrig_ready + unimate_ready(python Tools/dgx3d_animal_pipeline.py --caps-only);红灯时先 nvsync connect DGXA --detach。
  3. 绑骨 + 三动作:网格仍用原混元/烘焙外观;TokenRig 若在过简低模上骨过少(宠球常见),应对同角色高模或可用代理模绑骨,再 Tools/model_tools/bl_transfer_skin.py 把骨架权重转到已验收低模,然后 UniMate×3。脚本入口: python Tools/dgx3d_animal_pipeline.py --mesh …/{Name}.fbx -o Tools/output/{name}_dgx --name {Name} (低模直绑若测得动作幅度过小,改走高模绑骨 + bl_transfer_skin。)
  4. 入库:Tools/install_animal_rigged.py → …/Rigged/ 与 Anims/。
  5. Prefab / Animator:SetupAnimalAnimator挂回静态模 {Name}.mat(XPbr)。现行接口:Motion Int 0=Idle、1=Walk;Attack Trigger单次攻击,结束恢复请求状态。正式敌方入口同时执行离线收尾与验证。
  6. 验收:manifest 增加 *_Rigged(requireAnimator + requireXpbr);Scene 内 CharacterReviewAnimCycle 轮播。动作幅度可用剪辑曲线/骨骼角度抽检(Walk 应有明显关节摆动)。
  7. 登记 Doc/ResDesc_Animation.md / Model。TokenRig/UniMate 细节见 DGX3D_AI调用指南.md。

坐标与单动作门禁:先用一个Walk验证骨架,再扩展三动作。项目FBX在Blender中为Y-up顶点,TokenRig GLB为Z-up,转权重前须 --low-up Y --align-bounds;只用同角色高模并检查几何距离。保留一致的Armature表示,动作来源rig哈希必须相同。提示明确解剖和单一动作;生成后离线修正姿态、脚底、步幅和循环,按实际蒙皮验收。岩团团已完成12骨三动作,正式复现 Tools/enemy_character_pipeline.py --recipe Config/Art/EnemyCharacters/RockBall.json --build-review。旧单Walk脚本仅诊断使用,历史见 WalkRiggingFix.md。

4. 独立物件

状态:待细化。生产走附录 B;入库目录细化时确定(本框架不先占一个未使用的 Bundle 路径)。

A. 武器

骨架:纯白设计图 Doc/Design/Weapon/{英文名称}/ → 附录 B → 入库 → 登记 Model / Picture。

B. 道具

骨架:纯白设计图 Doc/Design/Prop/{英文名称}/ → 附录 B → 入库 → 登记 Model / Picture。

面数在细化时按物件尺度定,默认参照场景 C 点缀 200~800 或 B 中景 1000~3000,不默认使用角色的 3000。

5. 特效

用户提纲里本条与「独立物件」同为第 4 点,流程文档中改为第 5 点。

A. 序列帧动画

状态:待细化。

  1. 用项目画图方案生成 4×4 序列帧,画布 1024×1024,背景纯白。
  2. 整图缩小为 256×256。
  3. 在 Unity 中做成 Particle 特效供游戏使用。
  4. 图片、Prefab 及相关资源全部放到 AIClient/Assets/Bundles/Effects/{英文名称}/。
  5. 登记 Doc/ResDesc_Effect.md(序列帧图可同时在 Picture 记一笔)。

B. 粒子动画

状态:待细化。

  1. 用项目画图方案生成粒子图,画布 1024×1024,背景纯白。
  2. 缩小为 128×128。
  3. 在 Unity 中做成 Particle 特效供游戏使用。
  4. 图片、Prefab 及相关资源全部放到 AIClient/Assets/Bundles/Effects/{英文名称}/。
  5. 登记 Doc/ResDesc_Effect.md。

三、声音资源

技能音效使用TangoFluxService,遵循 D:/UD/AI/XModel/TangoFlux_AI调用指南.md:英文提示词、固定seed、1~30秒请求、异步轮询,保留44.1kHz立体声WAV原稿;后期裁切/淡入淡出、试听后经Unity Pipeline导入。现有 Tools/generate_ui_sfx.py 可接受通用manifest复用服务调用,技能样例清单为 Doc/Design/Sound/BattleSkills/manifest.json,目前仅规划,未生成音频。

技能动作/特效/声音由统一战斗事件调度,详见 关卡战斗技能系统设计。制作清单不代表已完成资源;正式音效须保留请求/后期/试听记录并登记 Doc/ResDesc_Sound.md。背景音乐已有独立制作记录,见该资源登记表。

1. 音乐

骨架:确定用途与时长 → 生成或导入 → 放到声音 Bundle 目录 → 登记 Doc/ResDesc_Sound.md。目录在细化时确定。

2. 音效

骨架同上,与音乐分开登记。


附录 A. 项目画图方案

节点说明与命令见 ResourceCreate.md「文/图生图」。

  • 脚本:Tools/gpt_image_generate.py
  • 边长 ≤1024(含 1024×1024):默认模型 gpt-image-2.5
  • 任一边 >1024:必须用 gpt-image-2-vip,并传像素尺寸(如 2048x2048),不要用 "16:9" 这类比例字符串
  • 需要锁风格时用图生图(--image / JSON image),参考图为对应风格图或 UI 范例图
  • 本流程额外约束:背景纯白。写进提示词,出图后目视确认,不把灰底、场景底直接交给切图或图生 3D

出图尺寸(与上文条目对应)

用途 尺寸 模型
设计图 见「一.1」:UI 9:16、场景 1:1、角色 2:3(比例字符串,默认模型) 默认模型
UI 组件图集(沿用现有图集) 2048×2048 VIP
序列帧 先 1024×1024(4×4),再缩到 256×256 默认模型
粒子图 先 1024×1024,再缩到 128×128 默认模型

缩小在细化时写成固定步骤(脚本或图像工具二选一,选定后写回本节)。


附录 B. 3D 模型生成流程

场景新组件(含地表)默认采用 Studio 场景模型流程,不使用下述历史 Blender 自动减面/展 UV 链路。 下述工具保留供旧资源复现及明确仍使用它的角色等流程。

节点说明见 ResourceCreate.md「腾讯混元 3D」与「高模减面与贴图烘焙」。调用方只改面数、输出目录和登记类型。

纯白设计图
  → 混元图生 3D(Tools/hunyuan_3d_generate.py)→ GLB 高模
  → 减面 + 烘焙 + XPbr(Tools/model_tools/model_lowpoly_bake.py)
  → 安装到对应 Bundles 目录
  → 登记 Doc/ResDesc_*.md
  • 混元面数档:--faces 50k|500k|1m(默认 50k)。这是高模档,不是游戏面数。
  • 游戏面数用 --tris 控制。场景组件按层级:A 主体 3000~6000、B 中景 1000~3000、C 点缀 200~800、地表几何 2000~6000(见 SceneModelProduction.md)。人物:约 3000。
  • 高模与烘焙中间件留在 Tools/output/。
  • 角色安装:Tools/install_character_bundles.py --kind Human → Bundles/Characters/Human/{英文名称}/。场景分件:经统一 Studio 流程后,拷到 Bundles/Scenes/{类型}/{场景号}/{英文短名}/。设计原稿不进 Bundles。
  • 碎叶等非流形:bl_decimate.py 在 collapse 卡住后会体素重网格再减面。
  • 轴向:混元 GLB = glTF Y-up。烘焙在 Blender 里用 Z-up;导出 FBX 时 prepare_game_export 准备 Y-up 网格缓冲、把原点放在底面中点;随后必须调用 export_fbx_source_yup(v2:临时副本恢复 Blender Z-up,再烘焙为 Y-up FBX,节点旋转 0/缩放 1),避免顶点与场景重复轴转换。验收须读取完整节点变换后的世界几何,不能仅检查顶点高度轴或 axis_up 参数。局部 +Z 是正面,这是验收目标,不能假定混元原始高模已符合;axis_forward="-Z" 不会自动识别并旋转人物脸部。须在Unity正/侧/背面确认角色解剖前方;三分之四设计图可被重建成斜向,不能仅据glTF相机约定推断,须计入FBX到Unity的左右手系转换。需要校准时在静态源离线完成,并用同源模型绑骨。Unity摆放用「+Z指向目标」,使用 LookRotation(direction) 默认的 +Z forward,也不要再绕X扶正或抬高度。
  • 最终 _base.png / _mix.png(以及烘焙五通道 PNG)写出时做 PNG 无损压缩(zlib 最高档;有 Pillow 则 optimize=True)。像素不变,只缩小文件。
  • 角色 Prefab:Pipeline AgentScripts/SetupCharacter.cs(人物样例入口 SetupCharacter.SetupCaoCao)。游戏 FBX 已是 Y-up / 底面原点 / +Z 正面,Prefab 不要再绕 X 扶正。旧菜单 AIGame/M3/Setup Character Prefab 只服务 MaleExplorer 历史资源。

细化验证清单

按表从上到下逐条做。一条通过(步骤可重复执行、路径与登记写回本文)后再做下一条。

顺序 条目 验证时要写回本文的内容
1 一.1 设计图 已写回:比例与实测尺寸、三张样例路径、四角纯白检查
2 一.2 UI 图 参考图、拆单图步骤、Sprite 导入参数、与 JSON→Prefab 的衔接
3 二.1 场景 新组件默认 Studio 低模/UV 流程;战场 A 已接入开战,HomeCamp 已交付独立场景;测试场景已清理
4 二.2.A 人物 已写回:CaoCao、3000 面、Characters/Human/、Pipeline Prefab、运行时地址 CaoCao
5 二.2.B 非人角色 已写回:Animal 目录、验收场景/Pipeline、LmCat 样例门槛;正式宠物内容待做
6 二.3 动画 非人:DGX TokenRig+UniMate + dgx3d_animal_pipeline.py 已写回;人形 Kimodo 仍待细化
7 二.4 独立物件 武器与道具的面数和 Bundle 目录
8 二.5 特效 缩小步骤、序列帧切格、Particle Prefab 做法
9 三 声音 音乐与音效的生成方式和目录

重型四足伙伴样例补充(2026-10-21)

岩甲犀RockRhino已按同角色高模→静态-Z验收→自身29骨→单四足Walk→同rig Idle/冲撞Attack→离线收尾→Edit/Play完成。配方Config/Art/Companions/RockRhino.json,0.55m/2000tris/1024 XPbr,解剖分支quadruped_heavy与braced_bash必须配对;胸背/头颈/四蹄映射和岩甲/独角刚性区域均按自身检查填写,不能套用泡泡龟探头动画。冲撞需肩部前送、可见低头与四脚支撑,事件不直接结算减速。完整来源、失败修正和验收见Doc/Design/Character/RockRhino/ProductionBrief.md及EnemyCharacterProduction.md。

双足火焰伙伴样例补充(2026-10-21)

烈焰狮FlameLion已按同角色50k高模→2000tris/1024 XPbr静态-Z验收→自身远程28骨→单双足Walk→同rig Idle/火焰施法Attack→Edit/Play完成。配方Config/Art/Companions/FlameLion.json,0.60m;biped_short复用双足步态,flame_roar检查自身头颈/双爪/双脚/鬃毛及相对胸背的施法行为。无独立下颌与尾骨,不宣称张嘴口型或尾部次级运动。详情见Doc/Design/Character/FlameLion/ProductionBrief.md及EnemyCharacterProduction.md。

2026-10-24 正面约定更新

新资源统一为 Y-up、脚底中心原点、局部 +Z 正面,配置见 Config/Art/ModelConvention.json。男孩 CampGuideStudio 与女孩 LmGirlTpose 的当前静态 FBX 已经沿用腾讯高模的 +Z 正面,无需绕 Y 轴补转。axis_forward="-Z" 仍是 FBX 坐标转换参数,不表示模型必须朝 -Z。

既有 -Z 模型、骨架、动画、PrototypeArena 布局及相应制作记录保留原绑定空间和旧资源适配;文中的旧角色样例不能视为已经批量迁移。新资源不得额外套用旧资源的 180° 转向补偿。