このセクションでは、背景色の変更と、アニメーションの基本的な使い方を学びます。
デフォルトでは、背景色は透明です。
Webページの基本色が白なので、これまでは背景が白く見えていました。
背景色を変更するには、次のようにscene.background
に色を指定します。
scene.background = color(色)
例えば背景を黒にするには、次のように記述します。
const { camera, create, animate, controls, helper, color, scene } = init();
scene.background = color("black")
controls.connect()
helper.grid()
helper.axes()
camera.position.set(-2, 2, 2)
create.ambientLight()
create.directionalLight()
create.cube()
animate()
animate
の引数で、アニメーションの処理を記述できます。
アニメーションしたいオブジェクトを変数に入れておくことで、 アニメーション処理の中でそのオブジェクトを操作できます。
const myCube = create.cube()
ここで、myCube
は変数名であり、 自由に名前を付けられます (半角英字のみ)。
animate
の引数を次のようにします。
animate(({ delta, time }) => {
// ここでアニメーション処理を記述
})
ここで、delta
は前回のフレームからの経過時間(秒)、time
はアニメーション開始からの経過時間(秒)です。
使用しない場合は省略できます。
例えば、次のように記述すると立方体がx軸周りに回転します。
const { camera, create, animate, controls, helper } = init();
controls.connect()
helper.grid()
helper.axes()
camera.position.set(-2, 2, 2)
create.ambientLight()
create.directionalLight()
const cube = create.cube()
animate(({ delta }) => {
cube.rotation.x += delta
})
オブジェクトの位置を変更するには、position.set
を使います。
三角関数 (Math.sin
, Math.cos
) を使うと、 オブジェクトを波打たせることができます。
const { camera, create, animate, controls, helper } = init();
controls.connect()
helper.grid()
helper.axes()
camera.position.set(-2, 2, 2)
create.ambientLight()
create.directionalLight()
const cube = create.cube()
animate(({ delta, time }) => {
cube.rotation.x += delta
cube.rotation.y += delta
cube.position.set(0, 0, Math.sin(time) * 2)
})