Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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;
                }
            }
        }
Exemplo n.º 3
0
 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);
 }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
 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);
 }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
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;
        }
Exemplo n.º 8
0
        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);
            }
        }
Exemplo n.º 9
0
        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;
        }
Exemplo n.º 10
0
        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;
        }
Exemplo n.º 11
0
        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;
        }
Exemplo n.º 12
0
 public abstract void CalcOutput(PlayerEntity player, ICameraMotorInput input, ICameraMotorState state,
                                 SubCameraMotorState subState,
                                 DummyCameraMotorOutput output, ICameraNewMotor last, int clientTime);
Exemplo n.º 13
0
 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;
 }
Exemplo n.º 14
0
 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);
 }