Dayz 1.25
Dayz Code Explorer by KGB
Загрузка...
Поиск...
Не найдено
Файл DayZPlayerCamera3rdPerson.c

См. исходные тексты.

Структуры данных

class  DayZPlayerCameraBase
 this is main camera class Подробнее...
 
class  DayZPlayerCamera3rdPersonErc
 
class  DayZPlayerCamera3rdPersonErcRaised
 
class  DayZPlayerCamera3rdPersonCrouch
 
class  DayZPlayerCamera3rdPersonProneBase
 

Функции

class DayZPlayerCamera3rdPerson extends DayZPlayerCameraBase DayZPlayerCamera3rdPersonErc (DayZPlayer pPlayer, HumanInputController pInput)
 
void DayZPlayerCamera3rdPerson (DayZPlayer pPlayer, HumanInputController pInput)
 
override void OnActivate (DayZPlayerCamera pPrevCamera, DayZPlayerCameraResult pPrevCameraResult)
 
override void OnUpdate (float pDt, out DayZPlayerCameraResult pOutResult)
 
override vector GetBaseAngles ()
 
override vector GetAdditiveAngles ()
 
override string GetCameraName ()
 
class DayZPlayerCamera3rdPersonJump extends DayZPlayerCamera3rdPersonErc DayZPlayerCamera3rdPersonClimb (DayZPlayer pPlayer, HumanInputController pInput)
 
void DayZPlayerCamera3rdPersonJump (DayZPlayer pPlayer, HumanInputController pInput)
 
class DayZPlayerCamera3rdPersonErcSpr extends DayZPlayerCamera3rdPersonErc DayZPlayerCamera3rdPersonErcRaised (DayZPlayer pPlayer, HumanInputController pInput)
 
void DayZPlayerCamera3rdPersonErcSpr (DayZPlayer pPlayer, HumanInputController pInput)
 
override bool IsCamera3rdRaised ()
 
void DayZPlayerCamera3rdPersonCrouch (DayZPlayer pPlayer, HumanInputController pInput)
 
float UpdateLRAngleLookAt (float pMin, float pMax, float pDt)
 
class DayZPlayerCamera3rdPersonProne extends DayZPlayerCamera3rdPersonProneBase DayZPlayerCamera3rdPersonProneRaised (DayZPlayer pPlayer, HumanInputController pInput)
 
void DayZPlayerCamera3rdPersonProne (DayZPlayer pPlayer, HumanInputController pInput)
 

Переменные

static const float CONST_UD_MIN = -85.0
 down limit
 
static const float CONST_UD_MAX = 85.0
 up limit
 
static const float CONST_LR_MIN = -160.0
 down limit
 
static const float CONST_LR_MAX = 160.0
 up limit
 
int m_iBoneIndex = -1
 runtime config
 
vector m_CameraOffsetMS
 model space offset
 
vector m_CameraOffsetLS
 local space offset
 
float m_fDistance
 distance from start
 
float m_fShoulderWidth
 shoulder camera widths
 
bool m_bShoulderInLS
 true - shoulder is in local space
 
float m_fRoll
 camera roll (deprecated)
 
float m_fLeanDistance
 shift on leaning
 
float m_fUpDownAngle
 runtime values
 
float m_fUpDownAngleAdd
 up down angle in rad
 
float m_fLeftRightAngle
 left right angle in rad (in freelook only)
 
float m_fLeftRightAngleAdd
 left right angle in rad (in freelook only)
 
float m_fCameraLRShoulder
 shoulder offsets
 
float m_fCameraLRShoulderVel [1]
 
float m_fPredictCollisionRadius
 collision prediction
 
ref HumanMovementState m_MovementState = new HumanMovementState()
 movement state
 
float m_fDelay
 runtime config
 
float m_fDamping
 
float m_fDelayTimer
 runtime values
 
float m_fJumpStartY
 
float m_fJumpOffset
 
float m_jumpOffsetVelocity [1]
 
int m_iPelvisBone
 
float m_fTime
 
class DayZPlayerCamera3rdPersonErcRaisedMelee extends DayZPlayerCamera3rdPersonErcRaised CONST_CAMERAMOVEMENTHEIGH = 0.4
 
float m_fCameraHeight
 
float m_fCameraHeightVel [1]
 
class DayZPlayerCamera3rdPersonCrouchRaised extends DayZPlayerCamera3rdPersonCrouch m_BaseOffsetVelX [1]
 
class DayZPlayerCamera3rdPersonCrouchRaised extends DayZPlayerCamera3rdPersonCrouch m_BaseOffsetVelY [1]
 
class DayZPlayerCamera3rdPersonCrouchRaised extends DayZPlayerCamera3rdPersonCrouch m_BaseOffsetVelZ [1]
 
float m_LookAtLRAngle
 

Функции

◆ DayZPlayerCamera3rdPerson()

void DayZPlayerCamera3rdPerson ( DayZPlayer pPlayer,
HumanInputController pInput )
187{
189 {
190 //Print("new camera: DayZPlayerCamera3rdPersonJump");
191
193 m_fDelay = 0.15;
void DayZPlayerCamera3rdPersonJump(DayZPlayer pPlayer, HumanInputController pInput)
Definition DayZPlayerCamera3rdPerson.c:242
float m_fDelay
runtime config
Definition DayZPlayerCamera3rdPerson.c:280
Definition DayZPlayerImplement.c:111
Definition human.c:18
Definition EntityAI.c:95

Используется в Hologram::GetProjectionEntityPosition().

◆ DayZPlayerCamera3rdPersonClimb()

242 {
243 //Print("new camera: DayZPlayerCamera3rdPersonClimb");
244 m_fDistance = 1.0;
245 m_CameraOffsetMS = "0.0 0.3 -0.6";
246 m_iBoneIndex = pPlayer.GetBoneIndexByName("Spine");
248 }
vector m_CameraOffsetMS
model space offset
Definition DayZPlayerCamera3rdPerson.c:301
int m_iBoneIndex
runtime config
Definition DayZPlayerCamera3rdPerson.c:300
float m_fDistance
distance from start
Definition DayZPlayerCamera3rdPerson.c:303
float m_fPredictCollisionRadius
collision prediction
Definition DayZPlayerCamera3rdPerson.c:321

Используется в DayZPlayerCameras::RegisterCameras().

◆ DayZPlayerCamera3rdPersonCrouch()

void DayZPlayerCamera3rdPersonCrouch ( DayZPlayer pPlayer,
HumanInputController pInput )
376 {
377 //Print("new camera: DayZPlayerCamera3rdPersonCrouch");
378
379 m_fDistance = 1.4;
380 m_CameraOffsetMS = "0.0 0.7 0.1";
381 m_CameraOffsetLS = "0.0 0.3 0.0";
382 m_fShoulderWidth = 0.3;
383 }
float m_fShoulderWidth
shoulder camera widths
Definition DayZPlayerCamera3rdPerson.c:304
vector m_CameraOffsetLS
local space offset
Definition DayZPlayerCamera3rdPerson.c:302

Перекрестные ссылки m_CameraOffsetLS, m_CameraOffsetMS, m_fDistance и m_fShoulderWidth.

◆ DayZPlayerCamera3rdPersonErc()

171 {
172 //Print("new camera: DayZPlayerCamera3rdPersonErc");
173
174 m_fDistance = 1.6;
175 m_CameraOffsetMS = "0.0 1.4 0.0";
176 m_CameraOffsetLS = "0.0 0.3 0.0";
177 m_fShoulderWidth = 0.3;
179 }

Перекрестные ссылки CONST_LR_MAX, CONST_LR_MIN, CONST_UD_MAX и CONST_UD_MIN.

◆ DayZPlayerCamera3rdPersonErcRaised()

309 {
310 //Print("new camera: DayZPlayerCamera3rdPersonErcRaised");
312
313 if ( pPlayer.GetCurrentPerItemCameraUD () == DayZPlayerCameras.PERITEMUD_EMPTYHANDED )
314 {
315 // no item in hands
316 m_fDistance = 1.2;
317 m_fShoulderWidth = 0.4;
318 m_CameraOffsetMS = "0.0 1.3 0.2";
319 m_CameraOffsetLS = "0.0 0.3 0.0";
320
321 }
322 else if ( pPlayer.GetCurrentPerItemCameraUD () == DayZPlayerCameras.PERITEMUD_TWOHANDED )
323 {
324 // two handed
325 m_fDistance = 1.2;
326 m_fShoulderWidth = 0.4;
327 m_CameraOffsetMS = "0.0 1.3 0.2";
328 m_CameraOffsetLS = "0.0 0.3 0.0";
329 }
330 else if ( pPlayer.GetCurrentPerItemCameraUD () == DayZPlayerCameras.PERITEMUD_ONEHANDED )
331 {
332 // one handed
333 m_fDistance = 1.2;
334 m_fShoulderWidth = 0.4;
335 m_CameraOffsetMS = "0.0 1.3 0.2";
336 m_CameraOffsetLS = "0.0 0.3 0.0";
337 }
338 else
339 {
340 // weapons in hands
341 m_fDistance = 0.8;
342 m_CameraOffsetMS = "0.0 1.3 0.2";
343 m_CameraOffsetLS = "0.0 0.3 0.0";
344 m_fShoulderWidth = 0.5;
345 }
346 }
Definition DayZPlayerCameras.c:2
static const int PERITEMUD_EMPTYHANDED
uninitialized / invalid per item camera user data
Definition DayZPlayerCameras.c:22
static const int PERITEMUD_TWOHANDED
for empty hands
Definition DayZPlayerCameras.c:24
static const int PERITEMUD_ONEHANDED
for empty hands
Definition DayZPlayerCameras.c:23

◆ DayZPlayerCamera3rdPersonErcSpr()

void DayZPlayerCamera3rdPersonErcSpr ( DayZPlayer pPlayer,
HumanInputController pInput )
309 {
310 //Print("new camera: DayZPlayerCamera3rdPersonErcRaised");
312
313 if ( pPlayer.GetCurrentPerItemCameraUD () == DayZPlayerCameras.PERITEMUD_EMPTYHANDED )
314 {
315 // no item in hands
316 m_fDistance = 1.2;
317 m_fShoulderWidth = 0.4;
318 m_CameraOffsetMS = "0.0 1.3 0.2";
319 m_CameraOffsetLS = "0.0 0.3 0.0";
320
321 }
322 else if ( pPlayer.GetCurrentPerItemCameraUD () == DayZPlayerCameras.PERITEMUD_TWOHANDED )
323 {
324 // two handed
325 m_fDistance = 1.2;

Используется в DayZPlayerCameras::RegisterCameras().

◆ DayZPlayerCamera3rdPersonJump()

void DayZPlayerCamera3rdPersonJump ( DayZPlayer pPlayer,
HumanInputController pInput )

runtime config

runtime values

242 {
243 //Print("new camera: DayZPlayerCamera3rdPersonClimb");
244 m_fDistance = 1.0;
245 m_CameraOffsetMS = "0.0 0.3 -0.6";
246 m_iBoneIndex = pPlayer.GetBoneIndexByName("Spine");
248 }
249}
250
251// *************************************************************************************
252// ! DayZPlayerCamera3rdPersonErc - 3rd person erected sprint
253// *************************************************************************************
void DayZPlayerCamera3rdPersonErcSpr(DayZPlayer pPlayer, HumanInputController pInput)
Definition DayZPlayerCamera3rdPerson.c:309
Definition DayZPlayerCamera3rdPerson.c:187

Перекрестные ссылки m_CameraOffsetMS, m_fDistance, m_fPredictCollisionRadius и m_iBoneIndex.

Используется в DayZPlayerCameras::RegisterCameras().

◆ DayZPlayerCamera3rdPersonProne()

void DayZPlayerCamera3rdPersonProne ( DayZPlayer pPlayer,
HumanInputController pInput )
558 {
559 //Print("new camera: DayZPlayerCamera3rdPersonProneRaised");
560 m_iBoneIndex = pPlayer.GetBoneIndexByName ("Camera3rd_Helper");
561 m_fDistance = 1.0;
562 m_CameraOffsetMS = "0.0 0.4 0.0";
563 m_CameraOffsetLS = "0.0 0.2 0.0";
564 m_fShoulderWidth = 0.5;
565 }
566

Перекрестные ссылки m_CameraOffsetLS, m_CameraOffsetMS, m_fDistance, m_fShoulderWidth и m_iBoneIndex.

Используется в DayZPlayerCameras::RegisterCameras().

◆ DayZPlayerCamera3rdPersonProneRaised()

class DayZPlayerCamera3rdPersonProne extends DayZPlayerCamera3rdPersonProneBase DayZPlayerCamera3rdPersonProneRaised ( DayZPlayer pPlayer,
HumanInputController pInput )
protected
558 {
559 //Print("new camera: DayZPlayerCamera3rdPersonProneRaised");
560 m_iBoneIndex = pPlayer.GetBoneIndexByName ("Camera3rd_Helper");
561 m_fDistance = 1.0;
562 m_CameraOffsetMS = "0.0 0.4 0.0";
563 m_CameraOffsetLS = "0.0 0.2 0.0";
564 m_fShoulderWidth = 0.5;
565 }

Используется в DayZPlayerCameras::RegisterCameras().

◆ GetAdditiveAngles()

override vector GetAdditiveAngles ( )

◆ GetBaseAngles()

override vector GetBaseAngles ( )
278 {
279 m_fTime += pDt * 5;
280
281 vector tm[4];
282
283 m_pPlayer.GetBoneTransformLS(m_iPelvisBone, tm);
int m_iPelvisBone
Definition DayZPlayerCamera3rdPerson.c:350
float m_fTime
Definition DayZPlayerCamera3rdPerson.c:351
Definition EnConvert.c:106
DayZPlayer m_pPlayer
data
Definition dayzplayer.c:135

◆ GetCameraName()

override string GetCameraName ( )

◆ IsCamera3rdRaised()

override bool IsCamera3rdRaised ( )
349 {
350 return true;
351 }

◆ OnActivate()

override void OnActivate ( DayZPlayerCamera pPrevCamera,
DayZPlayerCameraResult pPrevCameraResult )
204 {
205 super.OnUpdate(pDt, pOutResult);
206
207 float yPos = m_pPlayer.GetOrigin()[1];
208 float yDiff = yPos - m_fJumpStartY;
209 yDiff = Math.Clamp(yDiff, 0.0, 2.0);
210
211 if( m_fDelayTimer < m_fDelay )
float m_fDelayTimer
runtime values
Definition DayZPlayerCamera3rdPerson.c:284
float m_fJumpStartY
Definition DayZPlayerCamera3rdPerson.c:285
Definition EnMath.c:7
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'.

◆ OnUpdate()

override void OnUpdate ( float pDt,
out DayZPlayerCameraResult pOutResult )

update angles from input

base bone pos

apply shoulder dist

store distance

basically -> transform up vector (0,1,0) and read x coord -> and set is as roll

prev update

movement height

prev update

update angles from input

this is actually negative to yaw

base bone pos

apply shoulder dist

store distance

217 {
219 }
220
221 float newY = pOutResult.m_CameraTM[3][1] - m_fJumpOffset;
222 pOutResult.m_CameraTM[3][1] = newY;
223 }
224
226 float m_fDelay;
227 float m_fDamping;
228
230 float m_fDelayTimer;
231 float m_fJumpStartY;
232 float m_fJumpOffset;
233 float m_jumpOffsetVelocity[1];
234}
235
236// *************************************************************************************
237// ! DayZPlayerCamera3rdPersonJump - 3rd person jump
238// *************************************************************************************
240{
242 {
243 //Print("new camera: DayZPlayerCamera3rdPersonClimb");
244 m_fDistance = 1.0;
245 m_CameraOffsetMS = "0.0 0.3 -0.6";
246 m_iBoneIndex = pPlayer.GetBoneIndexByName("Spine");
248 }
249}
250
251// *************************************************************************************
252// ! DayZPlayerCamera3rdPersonErc - 3rd person erected sprint
253// *************************************************************************************
255{
257 {
258 //Print("new camera: DayZPlayerCamera3rdPersonErcSpr");
259
260 m_fDistance = 2.0;
261 m_CameraOffsetMS = "0.0 1.3 0.0";
262 m_CameraOffsetLS = "0.0 0.3 0.0";
263 m_fShoulderWidth = 0.15;
264
265 m_iPelvisBone = pPlayer.GetBoneIndexByName("Pelvis");
266 if (m_iPelvisBone == -1)
267 {
268 Print("DayZPlayerCamera3rdPersonErcSpr: hips bone not found");
269 }
270
271 m_fTime = 0.0;
272 }
273
274
int m_iBoneIndex
main bone
Definition DayZPlayerCamera1stPerson.c:189
float m_jumpOffsetVelocity[1]
Definition DayZPlayerCamera3rdPerson.c:287
float m_fDamping
Definition DayZPlayerCamera3rdPerson.c:281
class DayZPlayerCamera3rdPersonJump extends DayZPlayerCamera3rdPersonErc DayZPlayerCamera3rdPersonClimb(DayZPlayer pPlayer, HumanInputController pInput)
Definition DayZPlayerCamera3rdPerson.c:241
float m_fJumpOffset
Definition DayZPlayerCamera3rdPerson.c:286
void DayZPlayerCamera3rdPersonErcSpr(DayZPlayer pPlayer, HumanInputController pInput)
Definition DayZPlayerCamera3rdPerson.c:256
float m_fDistance
camera distance (external cameras only)
Definition dayzplayer.c:63
float m_fPredictCollisionRadius
sphere radius used for collision prediction
Definition dayzplayer.c:65
proto void Print(void var)
Prints content of variable to console/log.
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.

◆ UpdateLRAngleLookAt()

float UpdateLRAngleLookAt ( float pMin,
float pMax,
float pDt )
protected

lr angle

437 {
440 {
443
444 m_fLRAngleVel[0] = 0; // reset filter
445 }
446 else
447 {
448 // smooth value back to 0
450 // m_fLeftRightAngle = 0.9 * (1.0 - pDt);
451 }
452
453 return m_LookAtLRAngle;
454 }
float m_LookAtLRAngle
Definition DayZPlayerCamera3rdPerson.c:434
float Limit(float pV, float pMin, float pMax)
limit function
Definition DayZPlayerCamera_Base.c:2
bool m_bForceFreeLook
Definition DayZPlayerCamera_Base.c:554
float m_fLRAngleVel[1]
Definition DayZPlayerCamera_Base.c:550
proto native vector GetAimChange()
returns per tick aim change (in radians)
proto native bool CameraIsFreeLook()
returns true if freelook is active
HumanInputController m_pInput
human input
Definition dayzplayer.c:136
static const float RAD2DEG
Definition EnMath.c:16

Перекрестные ссылки HumanInputController::CameraIsFreeLook(), HumanInputController::GetAimChange(), Limit(), m_bForceFreeLook, m_fLRAngleVel, m_LookAtLRAngle, m_pInput, Math::RAD2DEG и Math::SmoothCD().

Переменные

◆ CONST_CAMERAMOVEMENTHEIGH

◆ CONST_LR_MAX

const float CONST_LR_MAX = 160.0
static

up limit

◆ CONST_LR_MIN

const float CONST_LR_MIN = -160.0
static

down limit

◆ CONST_UD_MAX

const float CONST_UD_MAX = 85.0
static

up limit

◆ CONST_UD_MIN

const float CONST_UD_MIN = -85.0
static

down limit

◆ m_BaseOffsetVelX

class DayZPlayerCamera3rdPersonCrouchRaised extends DayZPlayerCamera3rdPersonCrouch m_BaseOffsetVelX[1]
protected

◆ m_BaseOffsetVelY

class DayZPlayerCamera3rdPersonCrouchRaised extends DayZPlayerCamera3rdPersonCrouch m_BaseOffsetVelY[1]
protected

◆ m_BaseOffsetVelZ

class DayZPlayerCamera3rdPersonCrouchRaised extends DayZPlayerCamera3rdPersonCrouch m_BaseOffsetVelZ[1]
protected

◆ m_bShoulderInLS

bool m_bShoulderInLS
protected

true - shoulder is in local space

Используется в DayZPlayerCameraBase::OnUpdate().

◆ m_CameraOffsetLS

◆ m_CameraOffsetMS

◆ m_fCameraHeight

float m_fCameraHeight
protected

◆ m_fCameraHeightVel

float m_fCameraHeightVel[1]
protected

◆ m_fCameraLRShoulder

float m_fCameraLRShoulder
protected

◆ m_fCameraLRShoulderVel

float m_fCameraLRShoulderVel[1]
protected

◆ m_fDamping

◆ m_fDelay

◆ m_fDelayTimer

float m_fDelayTimer

runtime values

Используется в DayZPlayerCamera3rdPersonErc::OnUpdate().

◆ m_fDistance

float m_fDistance
protected

distance from start

Используется в DayZPlayerCamera3rdPersonCrouch().

◆ m_fJumpOffset

float m_fJumpOffset

◆ m_fJumpStartY

float m_fJumpStartY

◆ m_fLeanDistance

float m_fLeanDistance
protected

shift on leaning

Используется в DayZPlayerCameraBase::DayZPlayerCamera3rdPerson().

◆ m_fLeftRightAngle

float m_fLeftRightAngle
protected

left right angle in rad (in freelook only)

◆ m_fLeftRightAngleAdd

float m_fLeftRightAngleAdd
protected

left right angle in rad (in freelook only)

◆ m_fPredictCollisionRadius

float m_fPredictCollisionRadius
protected

collision prediction

◆ m_fRoll

float m_fRoll
protected

camera roll (deprecated)

◆ m_fShoulderWidth

◆ m_fTime

◆ m_fUpDownAngle

float m_fUpDownAngle
protected

runtime values

up down angle in rad

◆ m_fUpDownAngleAdd

float m_fUpDownAngleAdd
protected

up down angle in rad

◆ m_iBoneIndex

int m_iBoneIndex = -1
protected

runtime config

main bone

◆ m_iPelvisBone

int m_iPelvisBone
protected

◆ m_jumpOffsetVelocity

float m_jumpOffsetVelocity[1]

◆ m_LookAtLRAngle

float m_LookAtLRAngle
protected

Используется в UpdateLRAngleLookAt().

◆ m_MovementState