Skip to content

curve-movement

沿样条路径对相机或对象进行动画。提供两个具体子类:CurveMovementCameraCurveMovementObject

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 属性:

属性类型默认值说明
pathCurve<Vector3> | nullnull样条路径。
progressnumber0当前归一化进度(0–1)。
speednumber0.1每秒进度单位。
loop'once' | 'repeat' | 'pingpong''once'循环行为。
autoLookAtbooleantrue朝向路径切线方向。
lookAtOffsetnumber0Y 轴旋转偏移量(弧度)。
positionOffsetVector3(0,0,0)叠加到每个位置上的世界坐标偏移量。
direction1 | -11当前行进方向。

u-space docs