我已经尝试了一段时间,但似乎找不到关于第三人称相机的任何信息。我只想制作一个简单的第三人称相机,但是因为我处于3D模式,所以很难。到目前为止,我可以在1架飞机上拍摄相机,但是之后就搞砸了。如果有人知道libgdx,我会在ModelInstances中使用libgdx。
我不需要您将代码交给我,我只需要有关如何用我所拥有的信息将其写出来的帮助。我知道对象在x y和z中的速度,在x y z中的旋转以及在x y z中的位置。我可以使相机看着物体,所以无论物体的朝向如何,我要做的就是将其放在物体的后方和上方。任何链接或解释都将不胜感激:)
解:
Xoppa在评论中发布了指向他的chaseCam的链接,该链接扩展了透视凸轮,这太神奇了。由于这不是一个答案,因此我可以将其标记为已接受,但是它满足了我的需要。此处的链接chaseCamera.java全部归功于Xoppa的答案,只是使查找更加容易。
最佳答案
更新玩家的位置后,我会在每个帧上执行以下操作:
camera.up.set(0,1,0); //Not sure if this is necessary.
//Making sure up is always up after
//last frame's lookAt() call.
camera.postion.set(player.position)
.add(-UNITS_BACK, UNITS_UP, 0)
.rotate(Vector3.UP, player.angle);
camera.lookAt(player.position);
camera.update();
其中
player.angle
是玩家从X轴面向逆时针的度数。那是一个简单的起点。您可能希望通过限制摄像机的移动速度或对该目标位置和方向进行二次内插运动来平滑运动。