实体
镜头 CCamera
淡入淡出、脚本接管与震动
CCamera.h · 全局 TheCamera
脚本接管后记得 Restore / RestoreWithJumpCut。FOV 也看 CDraw::ms_fFOV。
画面淡入淡出
Fade / SetFadeColour / GetScreenFadeStatus
void Fade(float fadeDuration, short FadeInOutFlag);
void SetFadeColour(unsigned char Red, unsigned char Green, unsigned char Blue);
signed int GetScreenFadeStatus();
bool GetFading();
int GetFadingDirection();脚本接管镜头
TakeControl / TakeControlNoEntity
void TakeControl(CEntity* target, short ModeToGoTo, short TypeOfSwitch, int WhoIsInControlOfTheCamera);
void TakeControlNoEntity(CVector const* FixedModeVector, short TypeOfSwitch, int WhoIsInControlOfTheCamera);
void TakeControlAttachToEntity(CEntity* target, CEntity* attached, CVector* AttachedCamOffset, CVector* AttachedCamLookAt, float AttachedCamAngle, short TypeOfSwitch, int WhoIsInControlOfTheCamera);
void TakeControlWithSpline(short TypeOfSwitch);恢复镜头
Restore / RestoreWithJumpCut
交回游戏默认跟拍。
void Restore();
void RestoreWithJumpCut();镜头震动
CamShake / AddShakeSimple
爆炸、撞击特效常用。
void CamShake(float strength, float x, float y, float z);
void AddShakeSimple(float duration, int type, float intensity);视场角
FindCamFOV / LerpFOV
全局绘制 FOV 见 CDraw。
float FindCamFOV();
void LerpFOV(float zoomInFactor, float zoomOutFactor, float timelimit, bool bEase);固定点位镜头
SetCamPositionForFixedMode
void SetCamPositionForFixedMode(CVector const* fixedModeSource, CVector const* fixedModeUpOffset);宽屏与运动模糊
SetWideScreenOn / SetMotionBlur
void SetWideScreenOn();
void SetWideScreenOff();
void SetMotionBlur(int Red, int Green, int Blue, int value, int Blurtype);
void SetMotionBlurAlpha(int Alpha);球可见性
IsSphereVisible
球是否在视锥。
bool IsSphereVisible(CVector const& origin, float radius);
bool IsSphereVisible(CVector const& origin, float radius, RwMatrixTag* transformMatrix);镜头朝向
GetLookDirection
signed int GetLookDirection();第三人称瞄准向量
Find3rdPersonCamTargetVector
void Find3rdPersonCamTargetVector(float range, CVector source, CVector* pCamera, CVector* pPoint);
float Find3rdPersonQuickAimPitch();