Skip to content

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));
}

キャラクターが「プレイヤーの方をゆっくり振り向く」ような演出にも 使えます。