Appearance
SmoothBillboardモード
Billboardモードのなめらか版です。ターゲットの 方向を向き続けますが、向きの変化がなめらかに補間されます。
js
obj.setMode('SmoothBillboard',{target: view.camera, duration: 1.0});target— 向き続ける対象のオブジェクト。up— 上方向ベクトル。省略時は(0,1,0)。duration— 補間時間(秒)。省略時は1.0。
以下はBillboardモード(左)とSmoothBillboardモード(右)の 比較サンプルです。赤い球(ターゲット)を2枚の画像が追いますが、 左は即座に向きが変わるのに対して、右は少し遅れてなめらかに ついていきます。
js
import * as a3 from 'a3js';
const view = new a3.Window(600,300);
view.camera.setPosition(0,0,8);
// 動き回るターゲット(赤い球)
const target = new a3.Sphere(0.3,'red');
view.scene.add(target);
// 左: Billboardモード(即座にターゲットを向く)
const plane1 = new a3.ImagePlane('/a3js/assets/kinkakuji.jpg');
plane1.setMode('Billboard',{target});
plane1.setPosition(-2,0,0);
view.scene.add(plane1);
// 右: SmoothBillboardモード(なめらかにターゲットを向く)
const plane2 = new a3.ImagePlane('/a3js/assets/kinkakuji.jpg');
plane2.setMode('SmoothBillboard',{target,duration:1.0});
plane2.setPosition(2,0,0);
view.scene.add(plane2);
let t = 0;
while (true) {
t += await view.waitForRender();
target.setPosition(4*Math.sin(t),0,4*Math.cos(t));
}キャラクターが「プレイヤーの方をゆっくり振り向く」ような演出にも 使えます。