Files
AIGame/Doc/Design/Character/EnemyCharacterProduction.md

24 KiB
Raw Permalink Blame History

敌方角色标准制作方案 v1

2026-10-20。标准入口:Tools/enemy_character_pipeline.py;角色配置:Config/Art/EnemyCharacters/{Name}.json。岩团团为已落地的短腿双足样例。

交付与约定

每个敌人交付已验收静态模、同源骨架和蒙皮、Idle/Walk/Attack、Animator、Enemy视觉Prefab、验收场景、来源清单和验证报告。流程到可调用的视觉资产为止,战斗数值、寻路和伤害结算由玩法接入。

统一约定:Unity Y-up、米制、底面中心原点、局部+Z正面。外层逻辑根旋转identity、缩放1,关闭Root Motion;移动和转向由玩法驱动。网格、骨架和动画必须共用绑定空间,不能靠运行时反向旋转补救。

动作 标准行为 岩团团参数
Idle 原地循环、轻呼吸、首尾连续 1.6秒
Walk 原地循环、交替迈步 1.1秒;步幅0.06m、抬脚0.018m
Attack 蓄力→命中→恢复;只播放一次 1.0秒;0.25蓄力结束、0.45命中、0.90恢复完成(归一化)

1. 静态模先验收

设计图→混元高模→减面/UV/烘焙→XPbr→静态Prefab。遵循 GameResProductProc.md 和 CharacterUnitArtProc.md,保留同角色高模。普通敌人以1500~2000三角面、每顶点最多4权重为起点,具体上限写配方;精英/首领显式配置预算与尺寸。

绑骨前先验尺寸、底面、正面、贴图与面数,后续不重做另一个形体替换已验收外观。最终绑定姿态与静态模的默认顶点误差≤2mm。P0可见敌人目标≤40个,仍须在战场做多实例性能验收;单角色通过不代表40实例性能已通过。

2. 同角色骨架与空间对齐

先尝试验收网格的TokenRig;过简低模导致关键关节缺失时,对同角色高模绑骨再转权重。骨数不能代替关节和动作质量验收。

历史静态FBX曾在Blender中保留Y-up顶点,TokenRig GLB为Blender Z-up。v2标准FBX默认导入后已在Blender Z-up世界中站立,必须读取完整节点变换,不能对新文件再无条件旋转90°。旧输入兼容:bl_transfer_skin.py --low-up Y --align-bounds 先转Y→Z,再以底面中心平移/等比缩放对齐,最后转权重,保留原UV与三角面。几何距离门槛:最大≤尺寸3%、RMS≤1%;不满足就停止检查来源或对齐,不能对另一角色强行蒙皮。

配方记录 rigSource,每个动作回执记录rig SHA256,导入前要求完全一致;新生成回执还校验FBX SHA256。Unity检查骨路径与父子关系,禁止按bone_N同名混用其它rig。Armature的+90°X可保留,不单独清零。

3. 解剖类型与动作生成

已实现并验证 biped_short(短腿双足、两侧短臂,岩团团12骨)、avian_grounded(地面鸟型,闪闪雀28骨)、quadruped_turtle(四足龟,泡泡龟26骨)及 quadruped_heavy(重型四足,岩甲犀29骨)。各自配方记录自身身体/前肢或四脚/脚尖/头颈与正面参考骨;骨数与bone编号只属于各自样例,不能跨角色套用。

其它短腿双足敌人需换成自己的骨名、尺寸和节奏并完整验收。其它四足、长腿人形、飞行或无脚敌人需要对应解剖适配器,当前入口拒绝未知profile;不能直接套双足步幅。标准人形可沿用Mixamo/Kimodo动作来源,仍需同源绑定和三动作验收。

非人动作在同一TokenRig上用UniMate生成。英文提示词写清体型与单一动作,Walk不混jump,Attack不只写move;显式指定左右正面骨,保留实际提交文本、任务号和哈希。三个动作顺序生成。

生成器在独立任务目录工作,成功后才替换当前FBX,最后提交回执;失败不得把旧FBX标成新产物。默认入口使用有效本地缓存,--generate才请求DGXA推理。

4. 编辑期收尾

源动作是制作中间件,最终.anim必须离线编辑保存,不能依赖运行时临时改骨骼。清单注明“生成源动作+离线编辑”。

  • Walk:校准初始根姿态、保留相对变化;锁水平根位移;选重复步态相位、平滑闭合;按解剖配方编辑步幅/抬脚;烘焙实际蒙皮贴地。
  • Idle:以绑定姿态为循环参考,保留轻微生成变化并编辑呼吸幅度,首尾一致。
  • Attack:以Idle参考开始/结束;编辑清楚的蓄力、命中与恢复;短冲在配方范围内,循环关闭。

这些编辑强度必须写配方,不能把岩团团数值作为所有敌人的统一值。

5. Animator与战斗接口

Motion(Int):0=Idle,1=Walk。Attack(Trigger):请求一次攻击。支持Idle/Walk进入Attack,结束根据Motion返回Idle/Walk;单次Trigger不自动重复攻击。

animator.SetInteger("Motion", moving ? 1 : 0);
animator.SetTrigger("Attack");

Attack包含 OnEnemyAttackImpact 动画事件,时刻=attackImpact * attackSeconds。预览允许无接收器;玩法接入时由现有攻击事件或表现桥接处理,避免重复结算。美术事件不直接扣血,不替代服务器/战斗判定。

视觉Prefab输出 Assets/Bundles/Characters/Enemy/{Name}/{Name}_Enemy.prefab。新敌人源资产通常放 Characters/Enemy/{Name}/;岩团团复用已有 Characters/Animal/RockBall/ 的模型、动画、XPbr,通过Variant交付Enemy目录,不复制贴图材质。新资源转向时以局部+Z对准目标,直接使用 Quaternion.LookRotation(direction)。

6. 验收门槛

检查 门槛
来源 三动作rig哈希一致;新生成FBX与回执哈希一致
绑定 静态形状、尺寸、底面、面数预算、XPbr通过
整段动作 每段121帧实际蒙皮;脚底偏差≤配方容差(样例3mm),倾角/高度合理
Idle/Walk 循环开启;首尾顶点差<1mm;呼吸/左右迈步可见
Attack 循环关闭;动作可读;恢复Idle;一个命中事件且时间正确
切换 Idle↔Walk;二者均可进入Attack;单次触发一次;结束返回请求状态,过渡不明显穿地
Play 真实观察到三状态、逻辑根不漂移、方向不翻转
目视 静态/三动作/自动轮播并排,检查正面、贴图、穿模、脚滑与攻击可读性

不能用SkinnedMeshRenderer的保守剔除包围盒判断脚底。Edit验收通过骨骼矩阵和bindposes计算实际顶点;Play验收观察状态/骨骼/逻辑根,不为测试永久打开网格Read/Write。

7. 制作入口与复现

python Tools/enemy_character_pipeline.py --recipe Config/Art/EnemyCharacters/RockBall.json --validate-recipe
python Tools/enemy_character_pipeline.py --recipe Config/Art/EnemyCharacters/RockBall.json --build-review --play-check
# 重新生成指定动作,再完整制作
python Tools/enemy_character_pipeline.py --recipe Config/Art/EnemyCharacters/RockBall.json --generate Idle Attack --build-review --play-check

复制配方后修改id、kind/assetRoot、静态/骨架来源、Enemy输出、尺寸/预算、全部骨名、动作来源与文本。先验配方,再生产和验收;配置合法不等于资产通过。

执行链:SetupAnimalAnimator.Run→FinalizeAnimalWalk.RunFor→FinalizeEnemyMotions.Run→VerifyEnemyMotions.Run→BuildEnemyReview.Publish/Build/Capture。验收场景Additive创建、隔离渲染层,保留其它场景未保存编辑。

输出 Tools/output/enemy_characters/{Name}/production_manifest.json、verification.txt、动作处理记录、原始回执;完成后登记Model/Animation/Picture,并将总验收manifest的requiredClips设为三动作。旧 run_rockball_walk.ps1 只作单Walk诊断,会缩减控制器,正式制作使用新入口。

--play-check执行实际Play轮播,截图后自动退出Play。清单只有 status=validated 且qa两项均通过才表示完整交付;不带Play检查仅标 edit_validated。制作中标 building,不能将未完成结果视作通过。

岩团团样例

配方 Config/Art/EnemyCharacters/RockBall.json;视觉Prefab Assets/Bundles/Characters/Enemy/RockBall/RockBall_Enemy.prefab;场景 Assets/Bundles/Scenes/Review/Enemy_RockBall_Review.unity。横躺原因和单Walk历史保留在 RockBall/WalkRiggingFix.md,本方案是其三动作生产版本。

本次Idle/Attack在同一rig上重新生成;Walk沿用已验收源。三动作离线收尾后各121帧通过:Idle最大形变0.00635m,Walk左右步幅约0.06216/0.06124m,Attack最大形变0.13320m、最大根倾角14.098°;三段脚底误差均<0.6mm、首尾顶点差为0。控制器单次攻击与状态恢复、实际Play三状态轮播均已通过。3项配置/生成失败保护测试通过,完整一键生产命令已执行成功。

伙伴复用说明(2026-10-20)

同角色骨架、三动作离线处理与验收也供伙伴使用,统一入口为 Tools/character_animation_pipeline.py;原 Tools/enemy_character_pipeline.py 命令保持兼容。

伙伴配方使用 usage: companion_visual、visualPrefab 和独立 reviewOriginX,输出仍在对应角色的 Characters/Animal/{Name},不创建敌方Variant。伙伴验收对象与相机使用含角色名的 CompanionReview_{Name} 前缀,避免与已加载的敌方验收对象重名;构建仍以Additive方式保留其他场景。

远程伙伴可选 attackStyle: ranged_cast,通过离线双臂抬起/前伸表现施法;attackReach 是小幅骨骼前伸,attackLunge 只控制模型内部的视觉位移。attackEvent 可配置,伙伴默认 OnCompanionAttackImpact,敌方沿用 OnEnemyAttackImpact。事件是视觉时机接口,接入实际火球与伤害前不表示玩法已完成。

新角色必须检查自身TokenRig后填写骨骼映射;禁止复用岩团团的bone编号。boneMappingReady: false 的草稿会被入口拒绝,不能当作完成资产。火喵正式配方为 Config/Art/Companions/FireCat.json,已完成1998 tris/1024 XPbr、自身22骨、Idle/Walk/施法Attack、伙伴视觉Prefab及Edit/Play验收;初始draft保留为禁止运行的制作记录。

火喵Walk的源动作在根骨之外还带有腿部坐姿偏移。此类来源使用 walkBindCalibration: true:每根骨骼以源首帧为参考,把相对运动应用到同rig的绑定姿态,并以 walkSourceWeight 控制幅度,然后再处理短步、贴地和循环。只纠正根骨不能保证腿部姿势正确;必须查看完整蒙皮的多个走路相位。旧岩团团配方默认沿用已验收处理方式。

DGXA显存不足时,可对指定动作加 --generation-device cpu(统一入口)或 --device cpu(generate_enemy_motions.py),只修改本次任务的独立采样配置;生成回执记录设备,不停止其他模型服务。火喵Attack首次CUDA运行因节点同时运行混元与音频服务而失败,保留失败日志并改用CPU重试。无需重新生成已经有效的Idle/Walk。

若自动骨架遗漏尾骨等附肢且权重错误跟随前臂,必须在最大动作幅度下检查蒙皮。配方可用 skinOverrides 以原静态模坐标/高度归一化的seed选取表面测地距离区域,在fullDistance到fadeDistance间渐变到指定已存在骨骼;该编辑只影响权重,不改变网格、UV或动作骨架。必须保留几何距离与受影响顶点范围报告,检查区域未误选头/躯干,完成绑定对照及动作峰值目视。火喵尾部175个顶点转到根骨后通过;目前没有独立尾骨的次级摆动。

对新角色先完成单Walk数值门禁(VerifyEnemyMotions.Walk(recipePath))及多个相位目视,再交付完整三动作。数值门禁不能代替动作语义检查:施法必须能看出双爪前推,Idle不能大幅摇摆。最终配方支持 idleSourceWeight / attackSourceWeight 调整源运动幅度。

地面鸟型伙伴适配(2026-10-20)

闪闪雀配方 Config/Art/Companions/SparkBird.json 与制作记录 SparkBird/ProductionBrief.md 为 avian_grounded 已验收样例。它有自身28骨,不能复用短臂生物的骨名或把飞行作为Walk。该适配仅覆盖双足地面行走及挥翼施法;持续飞行、悬停与飞行切换需另建适配器。

attackStyle=wing_cast 与avian_grounded必须成对使用。通用rightArm/leftArm字段表示各自翼根,额外提供rightWingTip/leftWingTip;检查左右骨独立、翼根分居身体两侧。离线负X旋转把初始向外/向上的鸟翼向局部-Z扫出,两侧相反的Z旋转按wingSpreadDegrees展翼,attackReach可加小幅前伸。抬翼不能用身体前倾冒充;VerifyEnemyMotions扣除根骨转动后检查每侧翼尖相对身体前挥>1cm,并仍通过完整蒙皮/脚底/高度/循环/恢复/事件/控制器及Play门禁。

闪闪雀先完成单Walk再生成Idle/Attack,均同rig且CUDA成功;0.9秒Walk,1.4秒Idle,1.0秒Attack,0.45秒OnCompanionAttackImpact。双翼实际相对前挥约3.4/3.7cm,尾羽/冠羽无独立次级骨但峰值形状目视通过。伙伴Prefab、X=80独立场景、Edit/Play均已交付;5项流程保护测试和2个C#脚本编译通过。参数只属于该角色,复制到其它鸟型时须重查自身解剖和重新验收。

四足龟伙伴适配(2026-10-21)

泡泡龟 Config/Art/Companions/BubbleTurtle.json 为已验收quadruped_turtle/turtle_bubble样例,最终26骨、0.35m/2000tris;详情见BubbleTurtle/ProductionBrief.md。该适配覆盖水平四足龟和缩颈探头施法,其它四足仍需检查解剖与动作类型,不能直接套用。

前右/前左/后右/后左踝及脚尖全部独立映射,FinalizeAnimalWalk.RunQuadruped将源变化校准到绑定姿态,四拍20%摆动窗口保证每次一脚抬起,固定脚部朝向并烘焙实际蒙皮贴地。VerifyQuadrupedMotions每段121帧计算四只脚各自的实际网格步幅/抬脚/支撑,Walk至少三脚支撑,Idle/Attack四脚撑地。骨点移动不能代替实际网格移动;泡泡龟后左脚原步幅不足,经离线paw权重区域修正后四脚均达约3.4~3.5cm,门槛未放宽。

shellRegionMin/Max在Unity归一化空间选取壳区,扣除shellBone刚性变换后检查≤1mm形变;可见身体倾角使用壳体相对绑定姿态的世界up,不能用固定根骨掩盖身体倾斜。skinRegions在原静态FBX顶点/高度空间控制权重,两者Z方向转换必须明确;每个区域保留影响数和范围,保持几何/UV不变。

静态三分之四设计图可能生成斜向躯干。先离线统一高模和后续绑定源,再在Unity前/侧/背面确认;glTF相机约定不能代替游戏朝向检查,须计入FBX左右手转换。新增绑定门禁要求头及前脚位于后脚的-Z方向,泡泡龟最终采用原高模Blender Z +45°;17骨斜向/11骨反向均留诊断,正式动作只用26骨同一rig哈希。

标准入口自动选择四足Walk与专用验证器,Idle/Attack使用离线turtle_bubble收尾:四脚固定、缩颈→探头→恢复,0.6秒OnCompanionAttackImpact。三动作/壳刚性/接缝/控制器/实际Play均通过,6项Python保护测试和4个C#脚本编译通过;真实泡泡投射物/缓速/音效仍由技能系统接入。

重型四足伙伴适配(2026-10-21)

岩甲犀 Config/Art/Companions/RockRhino.json 为quadruped_heavy/braced_bash已验收样例:0.55m/2000tris/自身29骨。先离线统一高模朝向,再静态Unity三视图确认-Z;检查本角色胸背、头颈及四蹄映射,禁止套用龟的探头施法或其它角色bone编号。

重型四足复用RunQuadruped四拍步态;Attack独立编辑胸背前送、头颈短促推进和低头,四蹄撑地,逻辑根固定。配方必须给出armorRegion与hornRegion及各自≤2mm刚性预算(样例均1mm),对应chestBone/headBone;QA扣除各自刚性变换后检查实际顶点,另检查肩部前送和角区相对头枢轴降低,不能用根骨运动或纯转向冒充冲撞。区域坐标与蒙皮源空间的Z转换沿用明确登记原则。

岩甲犀先通过单Walk,再生成Idle/Attack。Attack源变化8%时后蹄离地4.08mm失败,调整为4%后降至1.77mm,通过原3mm门槛;头前送4.15cm、肩前送2.51cm、可见头转约11.21°,岩甲/头角区域刚性通过。四脚步幅约5.96~5.98cm、抬脚约1.47~1.60cm,至少三脚支撑;三段首尾与根XZ误差0,Edit/控制器/实际Play通过,0.6秒伙伴事件。详情见RockRhino/ProductionBrief.md。

入口run_script显式使用服务器timeout_ms=90000、CLI --timeout 120,覆盖现场Editor刷新后的调度延迟;不自动重试结果未知的写入。四足验证失败另存last_failure.txt后仍抛错,不能以旧失败文件或CLI外层成功替代当前verification与validated状态。7项Python流程保护测试覆盖重型分支错误配对、缺失刚性区域、共享头胸和四蹄映射;泡泡龟只读回归验收通过。

P0 五类正式敌人(2026-10-21)

5 类敌人都按短腿双足 biped_short/body_slam 制作,共用一个已验证的解剖适配器,不需要新的四足或飞行适配器。设计、来源与验收结果见 Doc/ResDesc_Model.md「P0 五类正式敌人」;配方在 Config/Art/EnemyCharacters/。

type 敌人 配方 高度 骨数 Walk/Idle/Attack
0 小角怪 Hornlet.json 0.50m 22 1.0/1.6/1.0s
1 疾跑怪 Dashlet.json 0.50m 22 0.8/1.4/0.9s
2 硬壳怪 Shellhorn.json 0.50m 28 1.2/1.8/1.0s
3 角怪队长 HornCaptain.json 0.60m 22 1.1/1.8/1.0s
4 大角首领 GreatHorn.json 0.80m 22 1.3/2.0/1.2s

流程:设计草图(内网本地 Turbo)→ 用户选定 → 混元官网 50k → Blender 八向渲染确认正面 → Tools/enemy_static_pipeline.py {Name} {height}(烘焙、安装、静态 Prefab、四向检查)→ Tools/rig_character_source.py --generate(DGXA)→ 检查骨架填写配方 → Tools/generate_enemy_motions.py(DGXA)→ character_animation_pipeline.py --build-review --play-check。

本批次新增的注意事项:

  • DGXA 调用必须从 PowerShell 启动。 NVIDIA Sync 的 SSH 别名 DGXA 写在 ~/.ssh/config 的 Windows 路径 Include 里,只有 Windows OpenSSH 能解析。Git Bash 下 ssh 解析失败,TokenRig 会静默回退本机 SkinTokens,得到单链退化骨架。rig_character_source.py 现在遇到回退会直接报错。DGXA 未连接时先运行 Tools/dgx_ensure_ready.py。
  • 生图后释放显存。 本地 Turbo 生图模型会占用 DGXA 约 43GB,导致 TokenRig 显存不足;3D 前调用 POST /api/local-images/prepare-3d。
  • DGXA 任务串行。 TokenRig 与 UniMate 并发时出现过 No module named 'Animation',重试即可,应避免同时提交。
  • 检查游离网格岛。 混元高模可能把细尾尖等做成悬浮的独立网格,TokenRig 会丢弃,导致 bl_transfer_skin 报 bind geometry mismatch。先焊接 UV 接缝统计网格岛;有游离岛时用 Tools/model_tools/bl_keep_main_island.py 生成 _main.glb,烘焙和绑骨都用它。
  • 验收后关闭验收场景。 验收场景以 Additive 方式留在编辑器中,其相机 depth 很高,会盖住游戏 Play 画面。

战场接入:BuildPrototype.ApplyFormalEnemies 在 PrototypeArena 每个 Enemies/EnemyN 下嵌套 Type0~4,统一 1.2 单位高。PrototypeFlow 按 type 显示对应模型;PrototypeBattle.Enemy 新增仅供表现的 Moving/Strikes,移动时 Motion=1,每次出手触发一次 Attack,受击只做轻微缩放。VerifyFormalEnemies.Assets/PlaySeeded/Cleanup 为验收入口。

双足火焰施法伙伴适配(2026-10-21)

烈焰狮 Config/Art/Companions/FlameLion.json 为biped_short/flame_roar已验收样例:0.60m/2000tris/自身远程28骨。profile仍为双足;新attackStyle要求自身头颈/胸背/双臂与爪尖/双脚、鬃毛区域与≤2mm刚性预算,禁止套用火喵编号或按大头外观改成四足。

离线施法固定双脚与逻辑根,编辑头部前送/抬头、双爪前送/展开,开始与结束为Idle参考。QA对头鬃区实际网格扣除头骨刚性变换检查,对头部和双爪扣除胸背转动检查释放行为,并对两脚实际顶点测步幅/抬脚/支撑。不能只看脚骨或用身体前倾冒充施法。烈焰狮没有独立下颌或尾骨,本版无张嘴口型与独立尾摆;尾部58个源顶点跟随髋骨。

头鬃宽空间区域与尾部相邻时,bl_transfer_skin先执行skinRegions,再由精细skinOverrides测地距离覆盖,防止尾簇被头部或前臂带动。两种规则必须按自身网格检查,不能盲抄;此前已有伙伴未同时启用两种覆盖,其原单类行为不变。

烈焰狮先通过单Walk再补同rig Idle/Attack。25%Walk源变化导致左脚实际抬脚6.71mm失败,降至12%后11.91mm通过,未放宽门槛;两脚实际步幅48.66/67.37mm。Attack头前送16.24mm/抬头6.654°、双爪前送约6cm/外展约2cm,双脚支撑、鬃毛刚性及Edit/实际Play通过,0.6秒伙伴事件。详情见FlameLion/ProductionBrief.md。

本机TokenRig回退曾产出异常33骨长链,不可按生成回执直接当可用骨架。rig_character_source.py --backend remote要求远程回执且拒绝隐式本机回退;显存错误需保留诊断、验证GPU状态后重试,不停止其它服务。最终烈焰狮只接受DGXA28骨哈希。8项流程保护测试与火喵只读回归通过。

并排截图使用BuildEnemyReview.Capture隔离Prefab实例,在PreviewScene采样指定相位并异步等待渲染更新,避免已有Animator状态让Attack列显示旧Idle姿势;不改写或暂停真实验收场景。该方法已实际编译执行、峰值截图核对通过。

敌人攻击/受击表现衔接(2026-10-21)

五类正式敌人已接入8套攻击/命中特效与8条TangoFlux短音效,受击不再只有缩放。资产放在 Assets/Bundles/Effects/EnemyCombat/ 和 Assets/Bundles/Sound/SFX/EnemyCombat/;完整方案见 ../Combat/EnemyCombatFx/Production.md。继续制作敌人时需检查类型映射、攻击与目标命中位置、硬甲分类、音效开关及池回收;不能让动画事件扣血或把减速Pulse当成实际命中。现有规则即时结算与动画前摇的对齐属于下一阶段技能时序改造。

Studio低模/UV与原动作复用试验(2026-10-21)

大角首领已完整跑通官网Studio低模13,159面→官网UV→Blender坐标对齐/贴图烘焙→超过2000面目标30%后保留UV减面至2000→Blender转原22骨→直接复用原Avatar/控制器/三段成品动作。交付为独立GreatHornStudio,未替换正式角色;详情 GreatHorn/StudioTrial.md。

新增门禁:Studio模型可能被居中和归一化,必须先对齐高低模再烘焙,且保留官网原始下载文件与UV哈希;不能假设坐标沿用上传源。原动作脚底收尾依赖旧网格,新拓扑必须重新采样实际蒙皮;本例两个新脚底顶点各1毫米局部适配后通过3毫米贴地门槛,原骨骼/UV/动作不变。保留UV减面不等于保留Studio原13k网格的所有关节布线优势,最终2000面仍需目视评估。

四敌人Studio流程复验完成(2026-10-21)

Hornlet、Dashlet、Shellhorn、HornCaptain均按大角首领2~5步流程完成独立Studio版,绑定各自原骨架并直接复用原Avatar/控制器/三段成品动作。使用通用StudioTrial脚本按本角色骨数、尺寸及实际动作约束验收;禁止照搬大角首领骨编号或脚底顶点。生成、修正、Edit/Play及资源路径见 StudioEnemies/Production.md。

+Z 新约定与旧样例

自 2026-10-24 起新资源统一 +Z 正面。本文各日期样例、固定骨架和旧配方的 -Z 门禁描述其已验收的实际空间,保持兼容,不代表项目默认值。旧绑定空间只能在一次完整的网格/骨架/动作迁移中改变,不能仅改验证器符号或粒子挂点。