FPSの異なる環境で同じ速度でアニメーションさせる方法
フレーム毎にパーティクルを動かしたりカメラを回転させたりする場合に、環境よっては速すぎたり遅すぎたりすることがあります。 そういった FPS の異なる環境で同じ速度でアニメーションをさせたい場合は、scene.getAnimationRatio() が使えるかもしれません。scene.getAnimationRadio() は 60FPS の場合に1を 30FPS の場合に2といった割合を返すメソッドになります。この値をアニメションの速度に用いている変数に掛けることで環境毎の速度の違いを調整することができます。
例)カメラの回転速度を調整する例
code:js
scene.onBeforeRenderObservable.add(() => {
scene.activeCamera.alpha -= 0.02 * scene.getAnimationRatio();
});
例)SPS のパーティクルの速度を調整する例
code:js
SPS.updateParticle = (particle) => {
particle.velocity.y += gravity * scene.getAnimationRatio();
particle.position.addInPlace(particle.velocity.scale(scene.getAnimationRatio()));