视频导出、时间轴与动作姿势模块

- 视频导出:WebCodecs 逐帧快速导出 MP4(固定分辨率不随视口布局变形),MediaRecorder 兜底
- 时间轴:面板可拖动调高(持久化、固定上限)、关键帧轨道区内滚动、无横向滚动条
- 动作模块:走路/跑步步态曲线(对侧摆臂修复、跑步独立步频、跑姿屈膝曲线、参考校准参数)
- 姿势调节:两级折叠分组、动作偏移联动
- 删除对象时同步清理时间轴轨道

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
LXXandClaude Fable 5 committed 2026-09-02 10:36:03 +08:00
1 parent 3b053c714c
commit 59e68e444a
29 files changed
+3564 -166

No files matched your search

+16
View File
@@ -46,10 +46,26 @@ export interface SceneSettings {
groundHeight: number;
}
/** 基础动作类型:none=不应用循环,idle/walk/run 由 ProceduralMannequin 按 time 驱动。 */
export type MotionKind = "none" | "idle" | "walk" | "run";
/** 单个角色的「动作」配置。当前 MVP 只接通 walk,其它类型字段保留以便后续扩。 */
export interface CharacterMotionState {
kind: MotionKind;
/** 0.5 – 2.5,默认 1.0;与 playbackStore.time 相乘决定 ω。 */
speed: number;
/** 0.5 – 1.5,默认 1.0;整体幅度乘数。 */
amplitude: number;
/** 是否启用;false 时即使 kind ≠ none 也不驱动关节(方便临时冻结对比 pose)。 */
enabled: boolean;
}
export interface CharacterRigState {
rigType: CharacterRigType;
posePresetId: string | null;
controls: Record<string, number>;
/** 缺省视为 { kind: "none", speed: 1, amplitude: 1, enabled: true };旧工程无需迁移。 */
motion?: CharacterMotionState;
}
export interface DirectorAssetRef {