Appearance
Smoothモード
setPosition()・setRotation()・setScale()で指定した値へ、 なめらかに補間しながら変化するモードです。毎フレームの計算を 自分で書かなくても、目標の値を指定するだけでアニメーションに なります。
js
obj.setMode('Smooth',{duration: 1.0});duration— 移動にかける時間(秒)。デフォルトは1.0。
以下は2秒ごとに位置・回転・拡大率の目標値を切り替えるサンプル です。値が一瞬で変わるのではなく、約1秒かけてなめらかに変化する ことを確認してください。
js
import * as a3 from 'a3js';
const view = new a3.Window(600,300);
const obj = new a3.Box("blue");
obj.setMode('Smooth');
view.scene.add(obj);
// 2秒ごとに位置・回転・拡大率を切り替える。
// Smoothモードなので約1秒かけてなめらかに変化する。
let i = 0;
while (true) {
if (i%2 === 0) {
obj.setPosition(1,0,0);
obj.setRotation(0,90,0);
obj.setScale(2,2,2);
} else {
obj.setPosition(-1,0,0);
obj.setRotation(0,-90,0);
obj.setScale(0.5,0.5,0.5);
}
i++;
await a3.asyncSleep(2000);
}Smoothモードでは移動から速度が計算されるので、 向きとアクションの自動制御 (setAutoDirection()/setAutoAction())も使えます。 ネットワーク越しに他のプレイヤーの位置が時々送られてくるような アプリで、キャラクターをなめらかに動かすのにも便利です。