Skip to content

动作菜单层级系统

系统概览

动作菜单层级系统(Schema 驱动)。动作弹窗的各级面板(相机动作、布料、感知视线、动作覆盖、 姿势、程序化动作等),每个面板为独立的 PopupLevelmotion-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 模式)。