34 super.OnActivate(pPrevCamera, pPrevCameraResult);
38 vector baseAngles = pPrevCamera.GetBaseAngles();
42 vector addAngles = pPrevCamera.GetAdditiveAngles();
81 pOutResult.m_CameraTM[3] =
"0 0 0";
90 lsOffset[0] = lsOffset[0] + shoulderDist;
94 msOffset[0] = msOffset[0] + shoulderDist;
98 pOutResult.m_CameraTM[3] = pOutResult.m_CameraTM[3] + pOutResult.m_CameraTM[0] * lsOffset[0] + pOutResult.m_CameraTM[1] * lsOffset[1] + pOutResult.m_CameraTM[2] * lsOffset[2] + msOffset;
102 pOutResult.m_fUseHeading = 1.0;
103 pOutResult.m_fInsideCamera = 0.0;
131 return "DayZPlayerCamera3rdPerson";
205 super.OnUpdate(pDt, pOutResult);
222 pOutResult.m_CameraTM[3][1] = newY;
268 Print(
"DayZPlayerCamera3rdPersonErcSpr: hips bone not found");
285 float xShift = tm[1][0];
291 super.OnUpdate(pDt, pOutResult);
405 super.OnUpdate(pDt, pOutResult);
469 float orientYaw =
m_pPlayer.GetOrientation()[0];
500 pOutResult.m_CameraTM[3] =
"0 0 0";
507 lsOffset[0] = lsOffset[0] + shoulderDist;
510 pOutResult.m_CameraTM[3] = pOutResult.m_CameraTM[3] + pOutResult.m_CameraTM[0] * lsOffset[0] + pOutResult.m_CameraTM[1] * lsOffset[1] + pOutResult.m_CameraTM[2] * lsOffset[2] + msOffset;
517 pOutResult.m_fUseHeading = 1.0;
518 pOutResult.m_fInsideCamera = 0.0;
519 pOutResult.m_fPositionModelSpace = 1.0;
520 pOutResult.m_bUpdateWhenBlendOut =
false;
536 m_iBoneIndex = pPlayer.GetBoneIndexByName (
"Camera3rd_Helper");
553 m_iBoneIndex = pPlayer.GetBoneIndexByName (
"Camera3rd_Helper");
static const float CONST_UD_MAX
up limit
protected float m_fUpDownAngleAdd
up down angle in rad
static const float CONST_LR_MIN
down limit
protected float m_fLeftRightAngle
left right angle in rad (in freelook only)
static const float CONST_LR_MAX
up limit
protected float m_fUpDownAngle
up down angle in rad
protected float m_fLeftRightAngleAdd
left right angle in rad (in freelook only)
protected int m_iBoneIndex
main bone
static const float CONST_UD_MIN
down limit
protected float m_fCameraHeightVel[1]
void DayZPlayerCamera3rdPersonProne(DayZPlayer pPlayer, HumanInputController pInput)
protected float m_fCameraLRShoulder
shoulder offsets
float m_jumpOffsetVelocity[1]
protected vector m_CameraOffsetLS
local space offset
void DayZPlayerCamera3rdPersonJump(DayZPlayer pPlayer, HumanInputController pInput)
static const float CONST_UD_MAX
up limit
class DayZPlayerCamera3rdPersonJump extends DayZPlayerCamera3rdPersonErc DayZPlayerCamera3rdPersonClimb(DayZPlayer pPlayer, HumanInputController pInput)
protected float m_fUpDownAngleAdd
up down angle in rad
float m_fDelay
runtime config
protected float m_fCameraHeight
class DayZPlayerCamera3rdPersonProne extends DayZPlayerCamera3rdPersonProneBase DayZPlayerCamera3rdPersonProneRaised(DayZPlayer pPlayer, HumanInputController pInput)
override bool IsCamera3rdRaised()
protected float m_fLeftRightAngle
left right angle in rad (in freelook only)
protected float m_fLeanDistance
shift on leaning
class DayZPlayerCamera3rdPersonCrouchRaised extends DayZPlayerCamera3rdPersonCrouch m_LookAtLRAngle
protected float m_fCameraLRShoulderVel[1]
protected float m_fUpDownAngle
runtime values
void DayZPlayerCamera3rdPersonErcSpr(DayZPlayer pPlayer, HumanInputController pInput)
void DayZPlayerCamera3rdPerson(DayZPlayer pPlayer, HumanInputController pInput)
float m_fDelayTimer
runtime values
protected float m_fPredictCollisionRadius
collision prediction
ref HumanMovementState m_MovementState
movement state
protected int m_iBoneIndex
runtime config
float UpdateLRAngleLookAt(float pMin, float pMax, float pDt)
static const float CONST_UD_MIN
down limit
protected bool m_bShoulderInLS
true - shoulder is in local space
protected float m_fShoulderWidth
shoulder camera widths
protected vector m_CameraOffsetMS
model space offset
class DayZPlayerCamera3rdPersonErcRaisedMelee extends DayZPlayerCamera3rdPersonErcRaised CONST_CAMERAMOVEMENTHEIGH
protected float m_fDistance
distance from start
protected int m_iPelvisBone
protected float m_WeaponSwayModifier
float UpdateLRAngleUnlocked(out float pAngle, out float pAngleAdd, float pMin, float pMax, float pDt)
protected float m_fLRAngleVel[1]
protected float m_CurrentCameraPitch
float UpdateUDAngleUnlocked(out float pAngle, out float pAngleAdd, float pMin, float pMax, float pDt)
float Limit(float pV, float pMin, float pMax)
limit function
void StdFovUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
protected bool m_bForceFreeLook
void InitCameraOnPlayer(bool force=false)
float fixAngle_180_180(float pAngle)
protected float m_CurrentCameraYaw
void UpdateCameraNV(PlayerBase player)
void ProcessCameraShake(float delta, out float leftRight, out float upDown)
protected float m_CurrentCameraRoll
override bool IsCamera3rdRaised()
void DayZPlayerCamera3rdPersonCrouchRaised(DayZPlayer pPlayer, HumanInputController pInput)
override void OnUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
void DayZPlayerCamera3rdPersonJump(DayZPlayer pPlayer, HumanInputController pInput)
float m_fDelay
runtime config
void DayZPlayerCamera3rdPersonErcSpr(DayZPlayer pPlayer, HumanInputController pInput)
float m_fDelayTimer
runtime values
protected int m_iPelvisBone
void ~DayZPlayerCamera3rdPersonErcRaisedMelee()
void DayZPlayerCamera3rdPersonErcRaisedMelee(DayZPlayer pPlayer, HumanInputController pInput)
void DayZPlayerCamera3rdPersonProne(DayZPlayer pPlayer, HumanInputController pInput)
this is main camera class
override void OnActivate(DayZPlayerCamera pPrevCamera, DayZPlayerCameraResult pPrevCameraResult)
protected float m_fCameraLRShoulder
shoulder offsets
override vector GetAdditiveAngles()
override string GetCameraName()
override void OnUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
protected vector m_CameraOffsetLS
local space offset
protected float m_fUpDownAngleAdd
up down angle in rad
protected float m_fLeftRightAngle
left right angle in rad (in freelook only)
protected float m_fLeanDistance
shift on leaning
protected float m_fRoll
camera roll (deprecated)
protected float m_fUpDownAngle
up down angle in rad
void DayZPlayerCamera3rdPerson(DayZPlayer pPlayer, HumanInputController pInput)
protected float m_fLeftRightAngleAdd
left right angle in rad (in freelook only)
protected float m_fPredictCollisionRadius
collision prediction
protected bool m_bShoulderInLS
true - shoulder is in local space
protected float m_fShoulderWidth
shoulder camera widths
protected vector m_CameraOffsetMS
model space offset
protected float m_fDistance
distance from start
override vector GetBaseAngles()
static const int PERITEMUD_EMPTYHANDED
uninitialized / invalid per item camera user data
static const int PERITEMUD_TWOHANDED
for empty hands
static const int PERITEMUD_ONEHANDED
for empty hands
int m_iMovement
current stance (DayZPlayerConstants.STANCEIDX_ERECT, ...), only if the command has a stance
float m_fLeaning
current movement (0 idle, 1 walk, 2-run, 3-sprint), only if the command has a movement
float m_fDistance
camera distance (external cameras only)
float m_fPredictCollisionRadius
sphere radius used for collision prediction
protected DayZPlayer m_pPlayer
data
protected HumanInputController m_pInput
human input
class DayZPlayerCameraResult DayZPlayerCamera(DayZPlayer pPlayer, HumanInputController pInput)
vector GetCurrentOrientation()
proto void Print(void var)
Prints content of variable to console/log.
static proto void YawPitchRollMatrix(vector ang, out vector mat[3])
Creates rotation matrix from angles.
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
static proto float SmoothCD(float val, float target, inout float velocity[], float smoothTime, float maxVelocity, float dt)
Does the CD smoothing function - easy in | easy out / S shaped smoothing.
static const float RAD2DEG