/Engine/Plugins/VirtualProduction/Takes/Source/TakeTrackRecorders/Public/TrackRecorders/MovieSceneTrackRecorder.h
CreateTrack is called during PreRecording and should perform any clean up of old data, allocate new tracks if needed and create sections that start at a time of zero. The call to PreRecording can take a significant amount of time when many sources are being recorded (due to the possibly large number of allocations) so the creation time is not passed in. Instead Track recorders should implement SetSectionStartTimecodeImpl which will be called when StartRecording is called. StartRecording is called one after another and should be a non-blocking operation which will ensure all sources will start on the most up to date and in-sync timecode data.
void CreateTrack ( [IMovieSceneTrackRecorderHost](API\Plugins\TakeTrackRecorders\TrackRecorders\IMovieSceneTrackRecorderHost) * InRecordingHost, [UObject](API\Runtime\CoreUObject\UObject\UObject) * InObjectToRecord, [UMovieScene](API\Runtime\MovieScene\UMovieScene) * InMovieScene, [UMovieSceneTrackRecorderSettings](API\Plugins\TakeTrackRecorders\TrackRecorders\UMovieSceneTrackRecorderSettings) * InSettingsObject, const [FGuid](API\Runtime\Core\Misc\FGuid) & InObjectGuid )