Replace TownSquare with HomeCamp art and land humanoid bots, LittleBear, and LmGirl review assets.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
udx
2026-11-03 20:33:08 +08:00
co-authored by Cursor
parent 45e62132c8
commit 9eec364f30
838 changed files with 57978 additions and 12225 deletions
+70 -58
View File
@@ -10,7 +10,7 @@
## 0. 总则
1. **画图**一律走项目画图方案(见附录 A)。设计图、UI 原图、序列帧、粒子贴图的生成底为**纯白**。
2. **3D**一律走 3D 模型生成流程(见附录 B)。面数是减面后的游戏用三角面,不是混元高模面数。游戏 FBX:**Y-up**、原点在**底面中点**、局部 **-Z 为正面**(设计图朝向相机的那面)。摆放时正面朝向目标,不要按 Unity 默认 +Z forward。
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 目录与文件名:帕斯卡或既有角色名风格均可,目录内保持一致,不含空格与中文。
@@ -31,7 +31,7 @@
### 1. 设计图
状态:已跑通。样例为轻松休闲 UI、小镇广场、轻科幻曹操(2026-09-28)。
状态:已跑通。样例为轻松休闲 UI、场景设计、轻科幻曹操(2026-09-28)。
1. 用 `Tools/gpt_image_generate.py` 出图。默认模型 `gpt-image-2.5`,`--quality high`。背景写进提示词:纯白 `#FFFFFF`,不要场景底、渐变和纸纹。
2. 比例用字符串,不要自己传大于 1K 的像素。本次实测映射为:
@@ -48,19 +48,19 @@
| 类型 | 路径 |
| --- | --- |
| UI | `Doc/Design/UI/Casual/casual_ui.png` |
| Scene | `Doc/Design/Scene/TownSquare/town_square.png` |
| Scene | `Doc/Design/Scene/{SceneId}/overview.png` |
| Character | `Doc/Design/Character/CaoCao/caocao.png` |
5. 检查四角 RGB。接近 255(本次均 ≥253)即视为纯白通过。
6. 在 `Doc/ResDesc_Picture.md` 登记路径、用途、模型与尺寸。
角色若接着走 3D,设计图按人物条目画成正面 T Pose、双手空、全身入画。本次曹操已按此出图。
角色若接着走 3D,设计图按「二.2.A 人物角色」使用固定姿态提示词,画成正面正交 T Pose、双手空、全身入画。本次曹操已按正面 T Pose 出图。
本条产出不进 `Bundles`。场景总览画出后先归纳物件类型(10 种以内)等人确认,再进入分件。
```bash
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/TownSquare/town_square.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 "..."
```
@@ -85,62 +85,38 @@ python Tools/gpt_image_generate.py --result-only --quality high --aspect-ratio 2
### 1. 场景
状态:a / b / c / d 已用 `TownSquare` 跑通;战斗战场方案 A「绿野三岔口」也已跑通到开战加载。
战斗战场专用流程见 [`Doc/Design/Scene/Battlefield/BattlefieldSceneGeneration.md`](Doc/Design/Scene/Battlefield/BattlefieldSceneGeneration.md):三张总览图选一 → 分件 → 混元图生 3D → 减面烘焙 → Pipeline 拼装 → 嵌进开战预制体。战场地表必须独立制作;装饰组件硬上限 15 类(推荐 8~12 类),清单与目标面数在 `battlefield_scene_manifest.json`。未选择方案不得生成模型或 Prefab。
默认流程见 [`Doc/Design/Scene/SceneModelProduction.md`](Doc/Design/Scene/SceneModelProduction.md)。新场景组件(含地表)统一执行:**分件图 → 混元 50k 高模 → Studio 低模 → Studio UV → Blender 烘焙 → 超预算时保留 UV 减面**。战场 A 的已有历史产物按原回执保留。
**a. 整体设计图(需确认)**
1. 用项目画图方案绘制整场景设计图(样例:`Doc/Design/Scene/TownSquare/town_square.png`)。
2. 从设计图归纳场景物件类型;TownSquare 历史模板控制在 **10 种以内**(含地表),战斗战场按专用流程控制在 **15 种以内**,地表单独计件。
3. **停在这里等人确认**类型清单与整体设计图。未确认不画组件、不生成模型。
4. 原稿放到 `Doc/Design/Scene/{场景号}/`。
`TownSquare` 已确认 8 类:地表、店铺、树、路灯、告示牌、喷泉、长椅、灌木花箱。
1. 用项目画图方案绘制总览图,确定风格、构图、地表、路线和地标。
2. 同时产出美术基准包(参考图、色板、比例表、灯光、机位、密度目标),写入 manifest `artDirection`,见 `Doc/Design/Scene/SceneReviewGeneration.md`「商业化品质基线」。
3. 按 A 主体 / B 中景 / C 点缀分层归纳物件,并按屏占比给出目标三角面预算;战场装饰硬上限 15 类,地表拆为平铺表面加边缘件。
4. 等人确认整体设计、美术基准与组件清单后再进入分件、模型制作。
4. 原稿放 `Doc/Design/Scene/{SceneId}/`,生产清单用对应 manifest 管理。
**b. 分件设计图**
确认后,总览图作 `-i` 参考,一类一张、单件、纯白底、3/4 视角。文件放在 `Doc/Design/Scene/{场景号}/`,英文短名:
| 类型 | 文件 |
| --- | --- |
| 地表 | `ground.png` |
| 店铺 | `shop.png` |
| 树 | `tree.png` |
| 路灯 | `lamp.png` |
| 告示牌 | `board.png` |
| 喷泉 | `fountain.png` |
| 长椅 | `bench.png` |
| 灌木花箱 | `bush.png` |
提示词约束:只画该类型一件,不要把总览里的其它物件带进来。分件必须对齐总览(本次喷泉第一次出成三层,已按总览改回两层)。比例默认 `1:1`;瘦高件(路灯)用 `2:3`。四角纯白检查同「一.1」。登记 `Doc/ResDesc_Picture.md`。
```bash
python Tools/gpt_image_generate.py --result-only --quality high --aspect-ratio 1:1 -i Doc/Design/Scene/TownSquare/town_square.png -o Doc/Design/Scene/TownSquare/{name}.png -p "..."
```
先匹配已验收的可复用 Prefab;没有合适资源时每类画一张白底、单件、完整入画的设计图,通常为 3/4 视角。地表独立,布局审核图与图生模型参考图按用途区分。设计图须人工审核,登记 `Doc/ResDesc_Picture.md`。
**c. 生成模型并入库**
1. 分件设计图逐一走附录 B:混元 `--faces 50k` → `model_lowpoly_bake.py --tris <目标> --size 1024`。
2. 减面后面数 **300~2000**。`TownSquare` 取值:地表 800、店铺 1800、树 1500、路灯 500、告示牌 800、喷泉 1800、长椅 700、灌木 500。
3. 碎叶类(灌木)普通 collapse 会卡在约 2 万面;减面脚本在超差且仍高于目标 2 倍时改用**体素重网格**回退。本次灌木最终 **436** 面。
4. 校验 GLB 文件头须为 `glTF`,且**内嵌贴图能解码**(`hunyuan_3d.glb_check`)。中断拷贝可能得到全 0 文件;贴图 CRC 损坏时 Blender 当缺贴图处理,颜色烘焙会出品红(路灯曾中招)。
5. 最终资源放到 `AIClient/Assets/Bundles/Scenes/{类型}/{场景号}/{英文短名}/`,含 `{名}.fbx`、`{名}_base.png`、`{名}_mix.png`、`{名}.mat`。设计图留在 `Doc/Design/Scene/{场景号}/`,不进 Unity。
- 样例:`AIClient/Assets/Bundles/Scenes/Town/TownSquare/{ground,shop,tree,lamp,board,fountain,bench,bush}/`
6. 高模与烘焙中间件留在 `Tools/output/townsquare_3d/`、`Tools/output/townsquare_game/`。编排脚本:`Tools/output/run_townsquare_pipeline.py`。
7. 登记 `Doc/ResDesc_Model.md`。
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. 摆场景(可进游戏)**
**d. Unity 拼装与验收**
状态:已用 `TownSquare` 跑通(Unity Pipeline)。
1. 所有 Unity 操作走 Pipeline:`unity command run_script --file AgentScripts/BuildTownSquare.cs --entry BuildTownSquare.Run`。
2. 每个分件做成 Prefab(缩放、XPbr),再拼 `TownSquare.prefab`。游戏 FBX 与混元 GLB 同为 Y-up,原点在底面中点,**正面为局部 -Z**。地表 Prefab 加非凸 **MeshCollider**(FBX Read/Write 打开以便烹饪)。其它物件水平位置按总览图 L 形,**Y 用地表碰撞高度**(从上往下打到 MeshCollider)。店铺/告示牌/长椅的 **-Z 朝向广场中心**。只有红顶店网格,两座店共用。运行时角色同样用 `GroundSit` 贴地。
3. 可编辑场景:`AIClient/Assets/Bundles/Scenes/Town/TownSquare/TownSquare.unity`(主相机 + 方向光 + 广场实例)。
4. 运行时由 `TownSquareSpawner` 按地址 `TownSquare` 加载 Prefab(YooAsset Art;编辑器走 AssetDatabase)。`GameplayBootstrap` 先摆广场再刷角色。
5. Art 收集增加 `Assets/Bundles/Scenes`(`PackDirectory` / `AddressByFileName`)。
`TownSquare` 实测三角面:ground 800、shop 1797、tree 1498、lamp 500、board 800、fountain 1798、bench 699、bush 436。
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)**
@@ -160,10 +136,33 @@ python Tools/gpt_image_generate.py --result-only --quality high --aspect-ratio 1
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`。
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`。
**人形角色设计图固定提示词(必须原样加入)**:
```text
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,不作为新角色模板。
```bash
@@ -198,7 +197,11 @@ python Tools/install_character_bundles.py -a CaoCao --kind Human -b Tools/output
#### A. 人形角色动画
状态:待细化(Kimodo / Mixamo)。骨架:动作列表确认 → 生成或导入剪辑 → 绑定到对应角色 → 放到该角色目录或统一动画目录 → 登记 `Doc/ResDesc_Animation.md`。
状态: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)
@@ -232,7 +235,7 @@ python Tools/install_character_bundles.py -a CaoCao --kind Human -b Tools/output
骨架:纯白设计图 `Doc/Design/Prop/{英文名称}/` → 附录 B → 入库 → 登记 Model / Picture。
面数在细化时按物件尺度定,默认参照场景组件的 300~2000,不默认使用角色的 3000。
面数在细化时按物件尺度定,默认参照场景 C 点缀 200~800 或 B 中景 1000~3000,不默认使用角色的 3000。
### 5. 特效
@@ -301,6 +304,8 @@ python Tools/install_character_bundles.py -a CaoCao --kind Human -b Tools/output
## 附录 B. 3D 模型生成流程
**场景新组件(含地表)默认采用 [Studio 场景模型流程](Doc/Design/Scene/SceneModelProduction.md),不使用下述历史 Blender 自动减面/展 UV 链路。** 下述工具保留供旧资源复现及明确仍使用它的角色等流程。
节点说明见 [`ResourceCreate.md`](ResourceCreate.md)「腾讯混元 3D」与「高模减面与贴图烘焙」。调用方只改面数、输出目录和登记类型。
```text
@@ -312,13 +317,13 @@ python Tools/install_character_bundles.py -a CaoCao --kind Human -b Tools/output
```
- 混元面数档:`--faces 50k|500k|1m`(默认 `50k`)。这是高模档,不是游戏面数。
- 游戏面数用 `--tris` 控制。场景组件 / 地表:**300~2000**。人物:约 **3000**。
- 游戏面数用 `--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/{英文名称}/`。场景分件:拷到 `Bundles/Scenes/{类型}/{场景号}/{英文短名}/`(`Tools/output/run_townsquare_pipeline.py`)。设计原稿不进 Bundles。
- 角色安装:`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 是正面**,须在Unity正/侧/背面确认角色解剖前方;三分之四设计图可被重建成斜向,不能仅据glTF相机约定推断,须计入FBX到Unity的左右手系转换。需要校准时在静态源离线完成,并用同源模型绑骨。Unity摆放用「-Z指向目标」,不要用 `LookRotation` 默认的+Z forward,也不要再绕X扶正或抬高度。
- 轴向:混元 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 历史资源。
- 角色 Prefab:Pipeline `AgentScripts/SetupCharacter.cs`(人物样例入口 `SetupCharacter.SetupCaoCao`)。游戏 FBX 已是 Y-up / 底面原点 / +Z 正面,Prefab **不要**再绕 X 扶正。旧菜单 `AIGame/M3/Setup Character Prefab` 只服务 MaleExplorer 历史资源。
---
@@ -330,7 +335,7 @@ python Tools/install_character_bundles.py -a CaoCao --kind Human -b Tools/output
| --- | --- | --- |
| 1 | 一.1 设计图 | 已写回:比例与实测尺寸、三张样例路径、四角纯白检查 |
| 2 | 一.2 UI 图 | 参考图、拆单图步骤、Sprite 导入参数、与 JSON→Prefab 的衔接 |
| 3 | 二.1 场景 | a/b/c/d 已写回:TownSquare;另写回战场 A 拼装、嵌开战预制体、layer 30、Play 验证 |
| 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 仍待细化 |
@@ -345,3 +350,10 @@ python Tools/install_character_bundles.py -a CaoCao --kind Human -b Tools/output
### 双足火焰伙伴样例补充(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° 转向补偿。