42 lines
1.5 KiB
TypeScript
42 lines
1.5 KiB
TypeScript
// Angles in degrees. Each joint is local to its parent, so limbs remain connected.
|
|
export const directorPoses = {
|
|
站立: { arms: [0, 0], elbows: [0, 0], legs: [0, 0], knees: [0, 0], lean: 0 },
|
|
"T 型": { arms: [0, 0], elbows: [0, 0], legs: [0, 0], knees: [0, 0], lean: 0, spread: 90 },
|
|
行走: { arms: [-30, 30], elbows: [15, 15], legs: [30, -30], knees: [10, 35], lean: 0 },
|
|
跑步: { arms: [-55, 55], elbows: [80, 80], legs: [60, -45], knees: [70, 100], lean: 12 },
|
|
坐姿: {
|
|
arms: [10, 10],
|
|
elbows: [75, 75],
|
|
legs: [-90, -90],
|
|
knees: [90, 90],
|
|
lean: 0,
|
|
height: -0.45,
|
|
},
|
|
蹲下: {
|
|
arms: [-65, -65],
|
|
elbows: [15, 15],
|
|
legs: [-95, -95],
|
|
knees: [125, 125],
|
|
lean: 25,
|
|
height: -0.65,
|
|
},
|
|
招手: { arms: [0, -165], elbows: [0, 30], legs: [0, 0], knees: [0, 0], lean: 0 },
|
|
伸手: { arms: [-90, -90], elbows: [0, 0], legs: [0, 0], knees: [0, 0], lean: 0 },
|
|
鞠躬: { arms: [-20, -20], elbows: [0, 0], legs: [0, 0], knees: [0, 0], lean: 40 },
|
|
格斗: { arms: [-50, -75], elbows: [100, 90], legs: [-20, 20], knees: [20, 35], lean: 5 },
|
|
踢球: { arms: [-15, 30], elbows: [20, 20], legs: [-70, 5], knees: [10, 10], lean: -10 },
|
|
看手机: { arms: [-30, -30], elbows: [105, 105], legs: [0, 0], knees: [0, 0], lean: 8 },
|
|
} satisfies Record<
|
|
string,
|
|
{
|
|
arms: number[];
|
|
elbows: number[];
|
|
legs: number[];
|
|
knees: number[];
|
|
lean: number;
|
|
spread?: number;
|
|
height?: number;
|
|
}
|
|
>;
|
|
export type DirectorPoseName = keyof typeof directorPoses;
|