class MugetsuThirdPersonMode extends MugetsuCameraModeBase;
var float CamOffsetDistance; //distance to offset the camera from the player in unreal units
var float CamMinDistance, CamMaxDistance;
var float CamZoomTick; //how far to zoom in/out per command
var float CamHeight; //how high cam is relative to pawn pelvis
function bool CameraUpdate( float fDeltaTime, out vector out_CamLoc, out rotator out_CamRot, out float out_FOV, Pawn playerpawn )
{
local vector HitLoc,HitNorm, End, Start, vecCamHeight;
vecCamHeight = vect(0,0,0);
vecCamHeight.Z = CamHeight;
Start = playerpawn.Location;
End = (playerpawn.Location+vecCamHeight)-(Vector(playerpawn.Controller.Rotation) * CamOffsetDistance); //cam follow behind player controller
out_CamLoc = End;
//trace to check if cam running into wall/floor
if(playerpawn.Trace(HitLoc,HitNorm,End,Start,false,vect(12,12,12))!=none)
{
out_CamLoc = HitLoc; // + vecCamHeight;
}
//camera will look slightly above player
out_CamRot=rotator((playerpawn.Location + vecCamHeight) - out_CamLoc);
return true;
}
DefaultProperties
{
CamHeight = 20.0 //40 default value
CamMinDistance = 10.0 //40 default value
CamMaxDistance = 512.0 //350 default value
CamOffsetDistance= 200.0 //250 default value
CamZoomTick= 20.0
bSmoothTransition = false
}