メインコンテンツまでスキップ

tweenPosition

イージング関数を使用して、エンティティの位置をターゲットの [x, y, z] 値まで指定した時間でスムーズにアニメーションします。

パラメータ

パラメータ説明
entityIdnumberトゥイーンするエンティティ ID
requestTweenPositionRequestトゥイーンパラメータ

戻り値

Promise<void>

使用例

await entities.tweenPosition(vrmEntity, {
target: [100, 50, 0],
durationMs: 1000,
easing: "quadraticInOut",
wait: true, // アニメーション完了までブロック
});

wait: true を設定するとアニメーション完了までブロックします:

await entities.tweenPosition(myEntity, {
target: [0, 200, 0],
durationMs: 500,
easing: "cubicOut",
wait: true,
});
// トゥイーン完了後に処理が続行されます

画面外からスライドイン

const entity = await entities.findByName("MyCharacter");

// 画面左の外から開始し、スライドイン
await entities.setTransform(entity, { translation: [-500, 0, 0] });
await entities.tweenPosition(entity, {
target: [0, 0, 0],
durationMs: 800,
easing: "cubicOut",
wait: true,
});

並列トゥイーン

wait を省略(または wait: false に設定)すると、複数のトゥイーンを同時に実行できます:

// 位置と回転が同時にアニメーション
entities.tweenPosition(entity, {
target: [100, 100, 0],
durationMs: 1000,
easing: "sineInOut",
});

entities.tweenRotation(entity, {
target: [0, 0, 0.3827, 0.9239], // Z軸周りに45度
durationMs: 1000,
easing: "sineInOut",
});