public override void CalcOutput(PlayerEntity player, ICameraMotorInput input, ICameraMotorState state, SubCameraMotorState subState, DummyCameraMotorOutput output, ICameraNewMotor last, int clientTime) { if (state.ViewMode.Equals(ECameraViewMode.ThirdPerson)) { _finalPostOffset = (_isRight ? 1 : -1) * input.GetPeekConfig().ThirdOffset; } else if (state.ViewMode.Equals(ECameraViewMode.FirstPerson)) { _finalPostOffset = (_isRight ? 1 : -1) * input.GetPeekConfig().FirstOffset; } else if (state.ViewMode.Equals(ECameraViewMode.GunSight)) { _finalPostOffset = (_isRight ? 1 : -1) * input.GetPeekConfig().GunSightOffset; } var elapsedPercent = ElapsedPercent(clientTime, subState.ModeTime, input.GetPeekConfig().TransitionTime); output.PostOffset = Vector3.Lerp(Vector3.zero, FinalPostOffset, elapsedPercent); state.LastPeekPercent = (_isRight ? 1 : -1) * elapsedPercent; if (elapsedPercent < 1) { _logger.DebugFormat("output.PostOffset:{0}", output.PostOffset); } }
public override void CalcOutput(PlayerEntity player, ICameraMotorInput input, ICameraMotorState state, SubCameraMotorState subState, DummyCameraMotorOutput output, ICameraNewMotor last, int clientTime) { output.ArchorEulerAngle = Vector3.zero; if (last.ModeId == (short)ECameraFreeMode.On) { var elapsedPercent = ElapsedPercent(clientTime, subState.ModeTime, _transitionTime); if (elapsedPercent < 1) { output.EulerAngle = Vector3.Lerp(new Vector3(state.LastFreePitch, state.LastFreeYaw, 0), Vector3.zero, elapsedPercent); state.FreeYaw = output.ArchorEulerAngle.y; state.FreePitch = output.ArchorEulerAngle.x; // output.ArchorPostOffset = // Vector3.Lerp( -state.GetMainConfig().ScreenOffset,Vector3.zero, elapsedPercent); } else { output.EulerAngle = Vector3.zero; state.FreeYaw = output.ArchorEulerAngle.y; state.FreePitch = output.ArchorEulerAngle.x; } } }
public override void CalcOutput(PlayerEntity player, ICameraMotorInput input, ICameraMotorState state, SubCameraMotorState subState, DummyCameraMotorOutput output, ICameraNewMotor last, int clientTime) { _finalRotation = input.GetDeadConfig().Roatation; _finalRotation.x -= player.cameraStateOutputNew.LastPitchWhenAlive; base.CalcOutput(player, input, state, subState, output, last, clientTime); }
public override void CalcOutput(PlayerEntity player, ICameraMotorInput input, ICameraMotorState state, SubCameraMotorState subState, DummyCameraMotorOutput output, ICameraNewMotor last, int clientTime) { output.Far = _config.Far; output.Near = _config.Near; output.ForbidDetect = _config.ForbidDetect; _transitionTime = CameraUtility.GetPostureTransitionTime(_motorType, subState); var elapsedPercent = ElapsedPercent(clientTime, subState.ModeTime, _transitionTime); var realPercent = EaseInOutQuad(0, 1, elapsedPercent); if (state.IsFristPersion()) { //一人称和瞄准相机没有偏移 output.Fov = Mathf.Lerp(last.FinalFov, FinalFov, realPercent); } else { if (last is AirplanePoseMotor || last is DrivePoseMotor) { realPercent = 1; } output.ArchorOffset = Vector3.Lerp(last.FinalArchorOffset, FinalArchorOffset, realPercent); output.ArchorPostOffset = Vector3.Lerp(last.FinalArchorPostOffset, FinalArchorPostOffset, realPercent); output.Offset = Vector3.Lerp(last.FinalOffset, FinalOffset, realPercent); output.ArchorEulerAngle = Vector3.Lerp(last.FinalEulerAngle, FinalEulerAngle, realPercent); output.Fov = Mathf.Lerp(last.FinalFov, FinalFov, realPercent); } }
public override void CalcOutput(PlayerEntity player, ICameraMotorInput input, ICameraMotorState state, SubCameraMotorState subState, DummyCameraMotorOutput output, ICameraNewMotor last, int clientTime) { _finalRotation = _config.Roatation; _transitionTime = _config.TransitionTime; base.CalcOutput(player, input, state, subState, output, last, clientTime); }
public override void CalcOutput(PlayerEntity player, ICameraMotorInput input, ICameraMotorState state, SubCameraMotorState subState, DummyCameraMotorOutput output, ICameraNewMotor last, int clientTime) { if (last.ModeId == (short)ECameraFreeMode.Off) { // var elapsedPercent = ElapsedPercent(clientTime, subState.ModeTime, _transitionTime); // output.ArchorPostOffset = // Vector3.Lerp(Vector3.zero, -state.GetMainConfig().ScreenOffset, elapsedPercent); } output.EulerAngle = new Vector3(state.FreePitch, state.FreeYaw, 0); }
public override void CalcOutput(PlayerEntity player, ICameraMotorInput input, ICameraMotorState state, SubCameraMotorState subState, DummyCameraMotorOutput output, ICameraNewMotor last, int clientTime) { base.CalcOutput(player, input, state, subState, output, last, clientTime); int diffTime = clientTime - subState.ModeTime; var r = _bezierUtil.GetResult(diffTime / 1000f); output.EulerAngle.z = r.y; output.PostOffset.x += r.z; }
public override void CalcOutput(PlayerEntity player, ICameraMotorInput input, ICameraMotorState state, SubCameraMotorState subState, DummyCameraMotorOutput output, ICameraNewMotor last, int clientTime) { var elapsedPercent = ElapsedPercent(clientTime, subState.ModeTime, transitionTime) + 1 - Math.Abs(state.LastPeekPercent); if (elapsedPercent >= 1) { elapsedPercent = 1; state.LastPeekPercent = 0; } output.PostOffset = Vector3.Lerp(last.FinalPostOffset, FinalPostOffset, elapsedPercent); if (elapsedPercent < 1) { _logger.DebugFormat("output.PostOffset:{0}", output.PostOffset); } }
public override void CalcOutput(PlayerEntity player, ICameraMotorInput input, ICameraMotorState state, SubCameraMotorState subState, DummyCameraMotorOutput output, ICameraNewMotor last, int clientTime) { if (input.ChangeCamera) { subState.LastMode = (byte)(subState.LastMode == (int)ECameraViewMode.FirstPerson ? ECameraViewMode.ThirdPerson : ECameraViewMode.FirstPerson); } var fov = player.WeaponController().HeldWeaponAgent.GetGameFov(player.oxygenEnergyInterface.Oxygen.InShiftState); if (fov <= 0) { Logger.ErrorFormat("Illegal fov value {0}", fov); return; } output.Fov = fov; }
public override void CalcOutput(PlayerEntity player, ICameraMotorInput input, ICameraMotorState state, SubCameraMotorState subState, DummyCameraMotorOutput output, ICameraNewMotor last, int clientTime) { // output.Rotation = Quaternion.EulerAngles(player.orientation.Pitch,0,player.orientation.Roll); if (input.ChangeCamera) { subState.LastMode = (byte)(subState.LastMode == (int)ECameraViewMode.FirstPerson ? ECameraViewMode.ThirdPerson : ECameraViewMode.FirstPerson); } var fov = player.GetWeaponFov(); if (fov <= 0) { Logger.ErrorFormat("Illegal fov value {0}", fov); return; } output.Fov = fov; }
public override void CalcOutput(PlayerEntity player, ICameraMotorInput input, ICameraMotorState state, SubCameraMotorState subState, DummyCameraMotorOutput output, ICameraNewMotor last, int clientTime) { var cameraAnchorOffset = Vector3.zero; var cameraDistance = 0.0f; if (player.IsOnVehicle()) { var controlledVehicle = player.controlledVehicle; cameraAnchorOffset = controlledVehicle.CameraAnchorOffset; cameraDistance = controlledVehicle.CameraDistance; } output.Far = _config.Far; output.ArchorOffset = FinalArchorOffset + cameraAnchorOffset; output.ArchorPostOffset = FinalArchorPostOffset; output.Offset = FinalOffset; output.Offset.z -= cameraDistance; output.ArchorEulerAngle = FinalEulerAngle; output.Fov = FinalFov; }
public abstract void CalcOutput(PlayerEntity player, ICameraMotorInput input, ICameraMotorState state, SubCameraMotorState subState, DummyCameraMotorOutput output, ICameraNewMotor last, int clientTime);
public override void CalcOutput(PlayerEntity player, ICameraMotorInput input, ICameraMotorState state, SubCameraMotorState subState, DummyCameraMotorOutput output, ICameraNewMotor last, int clientTime) { //output.Rotation = Quaternion.EulerAngles(player.orientation.Pitch,0,0); return; }
public override void CalcOutput(PlayerEntity player, ICameraMotorInput input, ICameraMotorState state, SubCameraMotorState subState, DummyCameraMotorOutput output, ICameraNewMotor last, int clientTime) { output.EulerAngle = new Vector3(state.FreePitch, state.FreeYaw, 0); }