Appearance
curve-movement
沿样条路径对相机或对象进行动画。提供两个具体子类:CurveMovementCamera 和 CurveMovementObject。
typescript
import { CurveMovementObject } from 'u-space/plugins/curve-movement';
import { Vector3 } from 'three/webgpu';
const movement = new CurveMovementObject(viewer, myModel);
movement.setFromPoints([
new Vector3(0, 0, 0),
new Vector3(10, 2, 0),
new Vector3(20, 0, 10),
]);
movement.speed = 0.05; // 每秒进度
movement.loop = 'repeat'; // 'once' | 'repeat' | 'pingpong'
movement.autoLookAt = true;
movement.play();
// movement.pause() / movement.resume() / movement.stop()
// 监听事件
movement.addEventListener('update', ({ progress }) => console.log(progress));
movement.addEventListener('complete', () => console.log('完成'));CurveMovement 属性:
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
path | Curve<Vector3> | null | null | 样条路径。 |
progress | number | 0 | 当前归一化进度(0–1)。 |
speed | number | 0.1 | 每秒进度单位。 |
loop | 'once' | 'repeat' | 'pingpong' | 'once' | 循环行为。 |
autoLookAt | boolean | true | 朝向路径切线方向。 |
lookAtOffset | number | 0 | Y 轴旋转偏移量(弧度)。 |
positionOffset | Vector3 | (0,0,0) | 叠加到每个位置上的世界坐标偏移量。 |
direction | 1 | -1 | 1 | 当前行进方向。 |