Appearance
动作菜单层级系统
系统概览
动作菜单层级系统(Schema 驱动)。动作弹窗的各级面板(相机动作、布料、感知视线、动作覆盖、 姿势、程序化动作等),每个面板为独立的 PopupLevel。motion-gaze-levels.ts 是感知层统一入口 (ADR-071),与程序化动作解耦。
核心职责
motion-popup.ts— 动作弹窗根构建 + 菜单实例注册表。motion-*-levels.ts— 各动作子系统的菜单 schema 定义。motion-root-ui.ts— 动作根面板 UI。
对外 API(节选)
getMotionMenu()/showMotionPopup()/refreshMotionRoot()— 取/显示/刷新动作菜单实例(motion-popup.ts / motion-root-ui.ts)。buildGazeTrackingLevel()— 感知视线面板(motion-gaze-levels.ts,ADR-071 感知层统一入口)。buildProcLibraryLevel()/buildProcMotionSchema(...)— 程序化动作面板(motion-procmotion-levels.ts)。buildCameraLevel()/buildVirtualSkirtLevel()— 相机 / 裙骨面板。
与其他子系统关系
- 感知层:
../scene/motion/perception.ts(状态读写)。 - 程序化动作:
../scene/motion/proc-motion-bridge.ts。 - 动作注册表:
../scene/motion/motion-modules/registry.ts。 - 渲染:
render-menu.ts。
UI 入口
- 菜单层级 / 入口函数 / 快捷键统一由 menu-map.md 机器生成(勿手改)。
- 运行时动态生成的菜单项(renderCustom / slideRow 等)无法静态提取,缺口由本卡正文说明。
不变量
- Schema 驱动 UI:所有控件定义在
MenuNode[]中。 - 感知层(ADR-071)与程序化动作解耦,独立文件。
- 开关合并至 folder headerToggle(参考 env-menu 模式)。