bInfiniteKeyAreas
bInfiniteKeyAreas
#Overview
name: bInfiniteKeyAreas
The value of this variable can be defined or overridden in .ini config files. 5
.ini config files referencing this setting variable.
It is referenced in 6
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of bInfiniteKeyAreas is to control whether key area sections in the Unreal Engine 5 Sequencer are set as infinite by default. This setting is primarily used in the animation and cinematic sequencing system of Unreal Engine.
The Unreal Engine subsystem that relies on this setting variable is the Sequencer module, which is part of the Editor subsystem. This can be seen from the file locations where the variable is referenced, all within the Sequencer-related files.
The value of this variable is set in the USequencerSettings class constructor (SequencerSettings.cpp:48) where it’s initialized to false by default. It can also be set through the SetInfiniteKeyAreas function in both the FSequencer and USequencerSettings classes.
This variable interacts with other Sequencer settings, such as bShowLayerBars, bShowKeyBars, and bShowChannelColors, which are all part of the USequencerSettings class.
Developers must be aware that changing this setting will affect how key areas are displayed and behave in the Sequencer. When set to true, key areas will extend infinitely, which can be useful for certain types of animations or effects that need to persist beyond the visible timeline.
Best practices when using this variable include:
- Consider the nature of your project and whether infinite key areas are beneficial for your workflow.
- Be consistent in its usage across your project to maintain a predictable behavior in the Sequencer.
- Remember that this setting can be changed programmatically, so you might want to provide a user-facing option to toggle this behavior if it’s relevant to your project’s needs.
- Be aware that changing this setting will trigger a SaveConfig() call, which saves the setting to the config file, making it persistent across editor sessions.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:854, section: [LevelSequenceEditor SequencerSettings]
- INI Section:
LevelSequenceEditor SequencerSettings
- Raw value:
true
- Is Array:
False
Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:862, section: [TemplateSequenceEditor SequencerSettings]
- INI Section:
TemplateSequenceEditor SequencerSettings
- Raw value:
true
- Is Array:
False
Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:870, section: [TakeRecorderSequenceEditor SequencerSettings]
- INI Section:
TakeRecorderSequenceEditor SequencerSettings
- Raw value:
true
- Is Array:
False
Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:880, section: [EmbeddedActorSequenceEditor SequencerSettings]
- INI Section:
EmbeddedActorSequenceEditor SequencerSettings
- Raw value:
true
- Is Array:
False
Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:907, section: [DaySequenceEditor SequencerSettings]
- INI Section:
DaySequenceEditor SequencerSettings
- Raw value:
true
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Editor/Sequencer/Private/Sequencer.cpp:3142
Scope (from outer to inner):
file
function void FSequencer::SetInfiniteKeyAreas
Source code excerpt:
void FSequencer::SetInfiniteKeyAreas(bool bInfiniteKeyAreas)
{
Settings->SetInfiniteKeyAreas(bInfiniteKeyAreas);
}
bool FSequencer::GetAutoSetTrackDefaults() const
{
return Settings->GetAutoSetTrackDefaults();
#Loc: <Workspace>/Engine/Source/Editor/Sequencer/Private/Sequencer.h:718
Scope (from outer to inner):
file
class class FSequencer final : public ISequencer , public FGCObject , public FEditorUndoClient , public FTickableEditorObject , public UE::MovieScene::FCameraCutPlaybackCapability
Source code excerpt:
virtual void SetKeyInterpolation(EMovieSceneKeyInterpolation) override;
virtual bool GetInfiniteKeyAreas() const override;
virtual void SetInfiniteKeyAreas(bool bInfiniteKeyAreas) override;
virtual bool GetAutoSetTrackDefaults() const override;
virtual FQualifiedFrameTime GetLocalTime() const override;
virtual FQualifiedFrameTime GetGlobalTime() const override;
virtual uint32 GetLocalLoopIndex() const override;
virtual void SetLocalTime(FFrameTime Time, ESnapTimeMode SnapTimeMode = ESnapTimeMode::STM_None, bool bEvaluate = true) override;
virtual void SetLocalTimeDirectly(FFrameTime NewTime, bool bEvaluate = true) override;
#Loc: <Workspace>/Engine/Source/Editor/Sequencer/Private/SequencerSettings.cpp:48
Scope (from outer to inner):
file
function USequencerSettings::USequencerSettings
Source code excerpt:
bShowLayerBars = true;
bShowKeyBars = true;
bInfiniteKeyAreas = false;
bShowChannelColors = false;
bShowInfoButton = true;
ReduceKeysTolerance = KINDA_SMALL_NUMBER;
KeyAreaHeightWithCurves = SequencerLayoutConstants::KeyAreaHeight;
bDeleteKeysWhenTrimming = true;
bDisableSectionsAfterBaking = true;
#Loc: <Workspace>/Engine/Source/Editor/Sequencer/Private/SequencerSettings.cpp:599
Scope (from outer to inner):
file
function bool USequencerSettings::GetInfiniteKeyAreas
Source code excerpt:
bool USequencerSettings::GetInfiniteKeyAreas() const
{
return bInfiniteKeyAreas;
}
void USequencerSettings::SetInfiniteKeyAreas(bool InbInfiniteKeyAreas)
{
if (bInfiniteKeyAreas != InbInfiniteKeyAreas)
{
bInfiniteKeyAreas = InbInfiniteKeyAreas;
SaveConfig();
}
}
bool USequencerSettings::GetShowChannelColors() const
#Loc: <Workspace>/Engine/Source/Editor/Sequencer/Public/ISequencer.h:382
Scope (from outer to inner):
file
class class ISequencer : public IMovieScenePlayer , public TSharedFromThis<ISequencer>
Source code excerpt:
/** Set infinite key area default */
virtual void SetInfiniteKeyAreas(bool bInfiniteKeyAreas) = 0;
/** Gets whether or not property track defaults will be automatically set when adding tracks. */
virtual bool GetAutoSetTrackDefaults() const = 0;
/** @return Returns whether sequencer will respond to changes and possibly create a key or track */
virtual bool IsAllowedToChange() const
#Loc: <Workspace>/Engine/Source/Editor/Sequencer/Public/SequencerSettings.h:632
Scope (from outer to inner):
file
class class USequencerSettings : public UObject
Source code excerpt:
/** Enable or disable setting key area sections as infinite by default. */
UPROPERTY( config, EditAnywhere, Category=Timeline )
bool bInfiniteKeyAreas;
/** Enable or disable displaying channel bar colors for the key bars. */
UPROPERTY(config, EditAnywhere, Category = Timeline)
bool bShowChannelColors;
/** Enable or disable displaying the info button in the playback controls. */