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

- 视频导出: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

+6 -2
View File
@@ -9,6 +9,8 @@ interface CharacterModelProps {
color?: string;
onLabelAnchorYChange?: (anchorY: number) => void;
rigState?: CharacterRigState;
motionTime?: number;
characterId?: string;
}
class CharacterModelBoundary extends Component<
@@ -31,8 +33,8 @@ class CharacterModelBoundary extends Component<
}
}
export function CharacterModel({ bodyType, color, onLabelAnchorYChange, rigState }: CharacterModelProps) {
const fallback = <PrimitiveMannequin bodyType={bodyType} color={color} rigState={rigState} />;
export function CharacterModel({ bodyType, color, onLabelAnchorYChange, rigState, motionTime, characterId }: CharacterModelProps) {
const fallback = <PrimitiveMannequin bodyType={bodyType} color={color} rigState={rigState} motionTime={motionTime} characterId={characterId} />;
if (rigState?.rigType !== "ue4-mannequin") {
return fallback;
@@ -45,6 +47,8 @@ export function CharacterModel({ bodyType, color, onLabelAnchorYChange, rigState
color={color}
onLabelAnchorYChange={onLabelAnchorYChange}
rigState={rigState}
motionTime={motionTime}
characterId={characterId}
/>
</CharacterModelBoundary>
);