web-dev-qa-db-ja.com

スムーズなカメラフォローアルゴリズムを作成するにはどうすればよいですか?

LibGDX(Java)でゲームを作っています。

動きの速いキャラクターを追いかけるカメラが必要です。それを行う最も簡単な方法は、これを書くことです:

this.getCamera().position.set(obj.x, obj.y, 0);

しかし、これをよりスムーズにするアルゴリズムはありますか?カメラがそれほど厳密ではなく、常に少し遅れている場合のように:キャラクターが右に速く進む、カメラがわずかに遅れて追従する、または突然どこかに現れた場合、カメラは即座にテレポートせず、最高速度で移動します近づくと少し遅くなり、再びあなたを見つけます。

それを行うlibgdxライブラリはありますか、または誰かがこの経験をしましたか?

21

10分の1の距離を動かすような簡単なことを試してください。それは驚くほどうまく機能します。

float lerp = 0.1f;
Vector3 position = this.getCamera().position;
position.x += (Obj.x - position.x) * lerp * deltaTime;
position.y += (Obj.y - position.y) * lerp * deltaTime;
46
Rod Hyde

Aurelion Ribonの Java Universal Tween Engine を見てください。これは補間を実行し、あなたが探しているものを得ると私が思ういくつかの緩和方程式を持っています。また、他の興味深い効果のために特定のアクションをウェイポイントしたりチェーンしたりするなど、他の高度な機能もあります。

ゲームロジックは、キャラクターが速く動いているかどうか、または位置に関して段階的に変化しているかどうかを確認できます。これに応じて、現在のカメラの位置をトゥイーンエンジンに切り替え、引き継ぐようにします。キャラクターの現在の位置にスムーズにズームします。

6
MutantXenu