private void SetCameraMode(ref FPendingCameraMode newCameraMode) { pendingCameraMode = newCameraMode; pendingCameraMode.bPendingActive = true; currentCameraMode = pendingCameraMode.cameraMode; cameraParameters = newCameraMode.parameters; blendTimeLeft = pendingCameraMode.blendParameters.blendTime; }
private void DesiredVT(ECameraMode currentCameraMode) { if (currentCameraMode == ECameraMode.FirstPersonMode) { desiredVT.POV.position = MathLib.AddVectors(currentVT.targetPosition, MathLib.VectorOrientationTransform(cameraParameters.firstPersonEyesPositionOffset, currentVT.targetOrientation)); desiredVT.POV.orientation = currentVT.targetOrientation; } if (currentCameraMode == ECameraMode.ThirdPersonSimple) { desiredVT.POV.orientation = currentVT.targetOrientation; desiredVT.POV.position = MathLib.AddVectors(currentVT.targetPosition, MathLib.VectorOrientationTransform(cameraParameters.camOffset, currentVT.targetOrientation)); desiredVT.POV.position = MathLib.SubtractVectors(desiredVT.POV.position, MathLib.VectorUniformScale(MathLib.OrientationToVector(currentVT.targetOrientation), cameraParameters.camDistance)); } if (currentCameraMode == ECameraMode.DirectorCam) { float alpha = 1; desiredVT.POV.orientation = MathLib.OrientationLerp(currentVT.targetOrientation, MathLib.VectorToOrientation(cameraParameters.lookAtTarget), alpha); desiredVT.POV.position = MathLib.AddVectors(currentVT.targetPosition, MathLib.VectorOrientationTransform(cameraParameters.camPosition, currentVT.targetOrientation)); } }