TrackSettings
TrackSettings
#Overview
name: TrackSettings
The value of this variable can be defined or overridden in .ini config files. 17
.ini config files referencing this setting variable.
It is referenced in 4
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of TrackSettings is to define default track configurations for different actor classes in Unreal Engine’s Level Sequence Editor. It is used to automatically create appropriate movie scene tracks for actors when they are added to a level sequence.
This setting variable is primarily used by the Level Sequence Editor module, which is part of the MovieScene plugin in Unreal Engine 5. It helps streamline the process of setting up sequences by automatically adding relevant tracks based on the actor type.
The value of this variable is set in the ULevelSequenceEditorSettings class, which is likely configurable through the project settings or editor preferences. It is an array of FLevelSequenceTrackSettings structures, each defining track settings for a specific actor class.
TrackSettings interacts with other variables and classes within the Level Sequence Editor system, such as:
- FLevelSequencePropertyTrackSettings
- FSoftClassPath for DefaultTracks
- FPropertyPath for property-based tracks
Developers should be aware of the following when using this variable:
- It affects the automatic track creation process when adding actors to a level sequence.
- The settings are class-based, so they apply to all instances of a particular actor class.
- It includes both default tracks and property-based tracks.
- There’s a mechanism to exclude certain tracks or properties for specific actor classes.
Best practices when using this variable include:
- Carefully configure the TrackSettings to match your project’s needs and common use cases.
- Regularly review and update the settings as your project evolves to ensure optimal workflow.
- Consider the performance impact of automatically adding many tracks and adjust accordingly.
- Use the exclusion mechanism to fine-tune track creation for specific actor classes when needed.
- Document any custom TrackSettings configurations for your team to ensure consistent usage across the project.
#Setting Variables
#References In INI files
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:912, section: [/Script/LevelSequenceEditor.LevelSequenceEditorSettings]
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:913, section: [/Script/LevelSequenceEditor.LevelSequenceEditorSettings]
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:914, section: [/Script/LevelSequenceEditor.LevelSequenceEditorSettings]
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:915, section: [/Script/LevelSequenceEditor.LevelSequenceEditorSettings]
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:916, section: [/Script/LevelSequenceEditor.LevelSequenceEditorSettings]
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:917, section: [/Script/LevelSequenceEditor.LevelSequenceEditorSettings]
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:920, section: [/Script/LevelSequenceEditor.TakeRecorderEditorSettings]
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:921, section: [/Script/LevelSequenceEditor.TakeRecorderEditorSettings]
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:922, section: [/Script/LevelSequenceEditor.TakeRecorderEditorSettings]
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:923, section: [/Script/LevelSequenceEditor.TakeRecorderEditorSettings]
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:924, section: [/Script/LevelSequenceEditor.TakeRecorderEditorSettings]
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:927, section: [/Script/DaySequenceEditor.DaySequenceEditorSettings]
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:928, section: [/Script/DaySequenceEditor.DaySequenceEditorSettings]
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:929, section: [/Script/DaySequenceEditor.DaySequenceEditorSettings]
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:930, section: [/Script/DaySequenceEditor.DaySequenceEditorSettings]
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:931, section: [/Script/DaySequenceEditor.DaySequenceEditorSettings]
<Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:932, section: [/Script/DaySequenceEditor.DaySequenceEditorSettings]
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Plugins/MovieScene/LevelSequenceEditor/Source/LevelSequenceEditor/Private/LevelSequenceEditorToolkit.cpp:434
Scope (from outer to inner):
file
function void FLevelSequenceEditorToolkit::AddDefaultTracksForActor
Source code excerpt:
// add default tracks
for (const FLevelSequenceTrackSettings& TrackSettings : GetDefault<ULevelSequenceEditorSettings>()->TrackSettings)
{
UClass* MatchingActorClass = TrackSettings.MatchingActorClass.ResolveClass();
if ((MatchingActorClass == nullptr) || !Actor.IsA(MatchingActorClass))
{
continue;
}
// add tracks by type
for (const FSoftClassPath& DefaultTrack : TrackSettings.DefaultTracks)
{
UClass* TrackClass = DefaultTrack.ResolveClass();
// exclude any tracks explicitly marked for exclusion
for (const FLevelSequenceTrackSettings& ExcludeTrackSettings : GetDefault<ULevelSequenceEditorSettings>()->TrackSettings)
{
UClass* ExcludeMatchingActorClass = ExcludeTrackSettings.MatchingActorClass.ResolveClass();
if ((ExcludeMatchingActorClass == nullptr) || !Actor.IsA(ExcludeMatchingActorClass))
{
continue;
#Loc: <Workspace>/Engine/Plugins/MovieScene/LevelSequenceEditor/Source/LevelSequenceEditor/Private/LevelSequenceEditorToolkit.cpp:481
Scope (from outer to inner):
file
function void FLevelSequenceEditorToolkit::AddDefaultTracksForActor
Source code excerpt:
// construct a map of the properties that should be excluded per component
TMap<UObject*, TArray<FString> > ExcludePropertyTracksMap;
for (const FLevelSequenceTrackSettings& ExcludeTrackSettings : GetDefault<ULevelSequenceEditorSettings>()->TrackSettings)
{
UClass* ExcludeMatchingActorClass = ExcludeTrackSettings.MatchingActorClass.ResolveClass();
if ((ExcludeMatchingActorClass == nullptr) || !Actor.IsA(ExcludeMatchingActorClass))
{
continue;
#Loc: <Workspace>/Engine/Plugins/MovieScene/LevelSequenceEditor/Source/LevelSequenceEditor/Private/LevelSequenceEditorToolkit.cpp:518
Scope (from outer to inner):
file
function void FLevelSequenceEditorToolkit::AddDefaultTracksForActor
Source code excerpt:
// add tracks by property
for (const FLevelSequencePropertyTrackSettings& PropertyTrackSettings : TrackSettings.DefaultPropertyTracks)
{
TSharedRef<FPropertyPath> PropertyPath = FPropertyPath::CreateEmpty();
UObject* PropertyOwner = &Actor;
// determine object hierarchy
TArray<FString> ComponentNames;
#Loc: <Workspace>/Engine/Plugins/MovieScene/LevelSequenceEditor/Source/LevelSequenceEditor/Public/Misc/LevelSequenceEditorSettings.h:61
Scope (from outer to inner):
file
class class ULevelSequenceEditorSettings : public UObject
Source code excerpt:
/** Specifies class properties for which movie scene tracks will be created automatically. */
UPROPERTY(config, EditAnywhere, Category=Tracks)
TArray<FLevelSequenceTrackSettings> TrackSettings;
/** Specifies whether to automatically bind an active sequencer UI to PIE worlds. */
UPROPERTY(config, EditAnywhere, Category=Playback)
bool bAutoBindToPIE;
/** Specifies whether to automatically bind an active sequencer UI to simulate worlds. */