Skip to content

Followモード

別のオブジェクトを追従するモードです。一番よく使うのは、 カメラをプレイヤーに追従させる使い方です(TPS視点)。

js
view.camera.setMode('Follow',{target:player, lookFrom:{x:0,y:3,z:-5}});
  • target — 追従する対象のオブジェクト。
  • lookFrom — 対象から見た相対位置(対象をどこから見るか)。 省略時は{x:0, y:5, z:-10}(後方上方)。
  • smoothness — なめらかさ。0に近いほどすぐに追従し、1に近いほど ゆっくり追従します。0以上1未満で指定します。省略時は0.9

以下はlookFromに渡したVec3を後から書き換えて、カメラの 視点をぐるぐる動かすサンプルです。lookFromは「ターゲットから 見た相対位置」なので、ターゲットが動いてもカメラは同じ位置関係を 保ちます。

js
import * as a3 from 'a3js';

const lookFrom = new a3.Vec3(0,3,-5);

const view = new a3.Window(600,300);
const player = await new a3.Acerola3D('/a3js/assets/vesma9.a3').ready;
view.scene.add(player);
view.camera.setMode('Follow',{target:player,lookFrom});

// lookFrom(ターゲットから見たカメラの相対位置)を動かすと
// カメラがなめらかについていく
let t = 0;
while (true) {
  t += await view.waitForRender();
  lookFrom.x = 5*Math.cos(0.3*t);
  lookFrom.y = 3*Math.sin(t);
  lookFrom.z = 5*Math.sin(0.3*t);
}

カメラ以外にも使えます。例えばペットやドローンをプレイヤーに ついてこさせるような使い方ができます。実戦的な使用例は カーレースサンプルプログラムTPSのサンプルプログラムを参照して ください。