Files
AIGame/Doc/Design/Character/CharacterUnitArtProc.md
T

4.9 KiB
Raw Blame History

角色与单位美术制作 / 验收流程

本流程把「设计图 → 混元 → 减面烘焙 → 入库 Prefab → 验收场景」固定成可重复步骤。验收只在编辑器专用场景里做,不进开战运行时。

配套清单:character_unit_review_manifest.json
Pipeline:AIClient/AgentScripts/BuildCharacterReview.cs、SetupCharacter.cs

目录约定

用途 路径
设计原稿 Doc/Design/Character/{英文名称}/(不进 Bundles)
高模 / 烘焙中间件 Tools/output/{name}_3d/、Tools/output/{name}_game/
游戏资源 AIClient/Assets/Bundles/Characters/{Kind}/{英文名称}/
验收场景 Assets/Bundles/Scenes/Review/CharacterUnitReview.unity
验收报告 Tools/output/character_review/CharacterUnitReview/review_report.json

Kind 建议:

  • Human:人形(T Pose,目标身高约 1.8m)
  • Animal:非人生物 / 宠物正式模型(站姿或四足,目标身高按物种登记)
  • 后续武器/道具走 GameResProductProc 独立物件节,可先在本验收场景并排放下对比尺度

网格约定与附录 B 一致:Y-up、原点在底面中点、局部 -Z 为正面。

制作步骤(单件)

  1. 设计图:纯白底、全身入画。人物用 T Pose、比例 2:3;非人用可辨识站姿,比例按体型选 2:3 或 1:1。
  2. 混元图生 3D:Tools/hunyuan_3d_generate.py --faces 50k。
  3. 减面烘焙:Tools/model_tools/model_lowpoly_bake.py --tris <目标> --size 1024。人物约 3000;非人/宠物默认 800~2000,在 manifest 的 maxTriangles 写死验收上限。
  4. 入库:python Tools/install_character_bundles.py -a {Name} --kind {Kind} -b Tools/output/..._xpbr
  5. Prefab:
    unity command --project-path D:/UD/AI/AIGame/AIClient run_script --file AgentScripts/SetupCharacter.cs --entry SetupCharacter.Run --args '["Animal","LmCat",0.42]'
  6. 登记到 Doc/ResDesc_Model.md / Doc/ResDesc_Picture.md。
  7. 验收:把该件追加进 character_unit_review_manifest.json 的 subjects,再执行下方 Pipeline。

验收场景(专用)

场景里固定包含:

  • 地面与刻度(身高参考柱 0.5 / 1.0 / 1.8m)
  • 每个 subject 脚下的 -Z 正面箭头
  • 方向光 + 验收相机
  • 按 spacing 横向排列的 Prefab 实例

Pipeline 入口

# 校验 manifest 与 Prefab 是否齐全
unity command --project-path D:/UD/AI/AIGame/AIClient run_script --file AgentScripts/BuildCharacterReview.cs --entry BuildCharacterReview.ValidateOnly

# 生成 / 覆盖验收场景,并写报告
unity command --project-path D:/UD/AI/AIGame/AIClient run_script --file AgentScripts/BuildCharacterReview.cs --entry BuildCharacterReview.Build

# 打开场景并框住全体
unity command --project-path D:/UD/AI/AIGame/AIClient run_script --file AgentScripts/BuildCharacterReview.cs --entry BuildCharacterReview.OpenReview

# 自动量身高、面数、XPbr、底面贴地
unity command --project-path D:/UD/AI/AIGame/AIClient run_script --file AgentScripts/BuildCharacterReview.cs --entry BuildCharacterReview.ValidateReview

# 截 Scene View 留档
unity command --project-path D:/UD/AI/AIGame/AIClient run_script --file AgentScripts/BuildCharacterReview.cs --entry BuildCharacterReview.CaptureReview

验收门槛

  • Prefab 可加载,材质为 Test/XPbr(manifest 可对旧件关闭 requireXpbr)
  • 包围盒底面 min.y 接近 0(±0.05)
  • 身高在 expectedHeight ± heightTolerance
  • 三角面数 ≤ maxTriangles
  • 人工目视:局部 -Z 朝向相机前的箭头、无悬浮、无穿模、贴图无品红缺贴图

通过后,才允许把该 Prefab 接到开战/营地替换简模。

非人绑骨/三动作见 GameResProductProc 二.3.B:先验收静态模,再 --mesh 已验收 FBX 跑 TokenRig+UniMate → install_animal_rigged → SetupAnimalAnimator(挂回 XPbr)。{Name}_Rigged 并排验收(requireAnimator + requireXpbr),勿覆盖静态 Prefab。

带 Motion 参数的单位会挂 CharacterReviewAnimCycle,在 Scene 视图自动轮播 Idle→Walk→Attack(约 2.8s/段,名称旁显示当前动作)。

诊断新骨架时可先设 requiredClips: ["Walk"] 验证单动作;正式敌方必须恢复三动作检查。RockBall现已在同一12骨上补齐Idle/Walk/Attack,正式流程见 EnemyCharacterProduction.md。单Walk历史见 RockBall/WalkRiggingFix.md。

与开战的关系

敌方角色制作采用 EnemyCharacterProduction.md:同角色骨架、空间对齐、三动作来源哈希、离线收尾、Enemy视觉Prefab与整段验收。岩团团已从单Walk阶段升级到Idle/Walk/Attack;总验收按三动作检查。

本场景不被 PrototypeFlow 加载。开战仍用 PrototypeArena 简模,直到某宠物正式模型验收通过并单独做替换任务。