1
0
KF2-Dev-Scripts/Engine/Classes/InterpTrackDirector.uc
2020-12-13 18:01:13 +03:00

76 lines
2.6 KiB
Ucode

class InterpTrackDirector extends InterpTrack
native(Interpolation);
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*
* A track type used for binding the view of a Player (attached to this tracks group) to the actor of a different group.
*
*/
cpptext
{
// UObject interface
virtual void PostLoad();
// InterpTrack interface
virtual INT GetNumKeyframes() const;
virtual void GetTimeRange(FLOAT& StartTime, FLOAT& EndTime) const;
virtual FLOAT GetTrackEndTime() const;
virtual FLOAT GetKeyframeTime(INT KeyIndex) const;
virtual INT GetKeyframeIndex( FLOAT KeyTime ) const;
virtual INT AddKeyframe(FLOAT Time, UInterpTrackInst* TrInst, EInterpCurveMode InitInterpMode);
virtual INT SetKeyframeTime(INT KeyIndex, FLOAT NewKeyTime, UBOOL bUpdateOrder=true);
virtual void RemoveKeyframe(INT KeyIndex);
virtual INT DuplicateKeyframe(INT KeyIndex, FLOAT NewKeyTime);
virtual UBOOL GetClosestSnapPosition(FLOAT InPosition, TArray<INT> &IgnoreKeys, FLOAT& OutPosition);
virtual void UpdateTrack(FLOAT NewPosition, UInterpTrackInst* TrInst, UBOOL bJump);
/** Get the name of the class used to help out when adding tracks, keys, etc. in UnrealEd.
* @return String name of the helper class.*/
virtual const FString GetEdHelperClassName() const;
virtual class UMaterial* GetTrackIcon() const;
virtual void DrawTrack( FCanvas* Canvas, UInterpGroup* Group, const FInterpTrackDrawParams& Params );
// InterpTrackDirector interface
FName GetViewedGroupName(FLOAT CurrentTime, FLOAT& CutTime, FLOAT& CutTransitionTime);
const FString GetViewedCameraShotName(FLOAT CurrentTime) const;
const INT GenerateCameraShotNumber(INT KeyIndex) const;
const FString GetFormattedCameraShotName(INT KeyIndex) const;
void DisplayShotNamesInHUD(UInterpGroupInst* GrInst, APlayerController* PC, FLOAT Time);
}
/** Information for one cut in this track. */
struct native DirectorTrackCut
{
/** Time to perform the cut. */
var float Time;
/** Time taken to move view to new camera. */
var float TransitionTime;
/** GroupName of InterpGroup to cut viewpoint to. */
var() name TargetCamGroup;
/** Shot number for developer reference */
var int ShotNumber;
};
/** Array of cuts between cameras. */
var array<DirectorTrackCut> CutTrack;
/** True to allow clients to simulate their own camera cuts. Can help with latency-induced timing issues. */
var() bool bSimulateCameraCutsOnClients;
defaultproperties
{
bOnePerGroup=true
bDirGroupOnly=true
TrackInstClass=class'Engine.InterpTrackInstDirector'
TrackTitle="Director"
bSimulateCameraCutsOnClients=TRUE
}