feat(canvas): 3D 导演台 - 补齐非 P0 分层交互与回归保护 (#333)

* feat(canvas): 3D 导演台 - 补齐分层交互与回归保护

* fix(canvas): 3D 导演台 - 过滤非法轨迹关键帧

* chore(canvas): 3D 导演台 - 对齐前端格式规范

* fix(canvas): 3D 导演台 - 保证故障重试入口可点击

* test(canvas): 3D 导演台 - 稳定真实点击验证
This commit is contained in:
echoD886
2026-08-27 20:47:10 +08:00
committed by GitHub
parent 0abb072273
commit 0b0d4f0774
34 changed files with 5049 additions and 141 deletions

View File

@@ -13,12 +13,13 @@ export type DirectorPose = "neutral" | "stand" | "t_pose" | "walk" | "run" | "si
export type DirectorCameraMove = "static" | "push_in" | "pull_out" | "pan_left" | "pan_right" | "tilt_up" | "tilt_down" | "orbit_left" | "orbit_right" | "handheld";
export type DirectorShotSize = "extreme_wide" | "wide" | "full" | "medium" | "close_up" | "extreme_close_up";
export type DirectorRenderMode = "beauty" | "clay" | "depth" | "normal" | "pose";
export type DirectorKeyframeEasing = "step" | "linear" | "smooth";
export type DirectorKeyframe = {
id: string;
time: number;
transform: DirectorTransform;
easing?: "step" | "linear" | "smooth";
easing?: DirectorKeyframeEasing;
};
export type DirectorFingerBone =
@@ -31,7 +32,7 @@ export type DirectorBoneKeyframe = {
id: string;
time: number;
rotation: DirectorQuat;
easing?: "step" | "linear" | "smooth";
easing?: DirectorKeyframeEasing;
};
export type DirectorBoneTrack = {
@@ -39,6 +40,15 @@ export type DirectorBoneTrack = {
keyframes: DirectorBoneKeyframe[];
};
/**
* 时间轴上一个可删除关键帧的定位信息。
* 三类覆盖当前时间轴真正可见的关键帧轨道:对象 transform、对象骨骼、摄影机。
*/
export type DirectorKeyframeDeleteTarget =
| { track: "object-transform"; objectId: string; keyframeId: string }
| { track: "object-bone"; objectId: string; bone: DirectorHumanoidBone; keyframeId: string }
| { track: "camera"; cameraId: string; keyframeId: string };
export type DirectorRig = {
status: "unmapped" | "ready";
boneMap: Partial<Record<DirectorHumanoidBone, string>>;