HighDetail
HighDetail
#Overview
name: HighDetail
The value of this variable can be defined or overridden in .ini config files. 1
.ini config file referencing this setting variable.
It is referenced in 20
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of HighDetail is to provide a way to define content for a high-detail view in Unreal Engine’s user interface components, particularly in graph-related widgets and nodes.
HighDetail is primarily used in the Graph Editor and various specialized graph-related plugins and modules within Unreal Engine. Based on the callsites, it’s utilized in:
- Environment Query Editor
- Property Access Node
- Common Conversation Graph
- Texture Graph Editor
- Niagara Editor
- PCG (Procedural Content Generation) Editor
- RigVM Editor
- Animation Blueprint Editor
- Behavior Tree Editor
- Kismet (Blueprint) Editor
The value of this variable is typically set as part of a widget’s construction or update process, often within methods like Construct()
, UpdateGraphNode()
, or CreateNodeContentArea()
.
HighDetail is commonly used in conjunction with other layout-related functions, such as LowDetail()
. These functions work together to provide different levels of detail for graph nodes and other UI elements depending on the current view or user preferences.
Developers should be aware that:
- HighDetail is used to define the content that should be displayed when a more detailed view is required.
- It’s often paired with a corresponding LowDetail section for when less detail is needed.
- The content defined in HighDetail may not always be visible, depending on the current view state or user settings.
Best practices when using this variable include:
- Ensure that the most important and detailed information is placed within the HighDetail section.
- Keep the content concise and relevant, even in high-detail mode.
- Test the appearance and functionality of both high and low detail modes to ensure a smooth user experience.
- Consider performance implications when adding complex widgets to the HighDetail section, as they may impact rendering times when visible.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEngine.ini:2417, section: [StaticMeshLODSettings]
- INI Section:
StaticMeshLODSettings
- Raw value:
(NumLODs=6,MaxNumStreamedLODs=0,bSupportLODStreaming=0,LODPercentTriangles=50,PixelError=6,Name=LOCTEXT("HighDetailLOD","High Detail"))
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Plugins/AI/EnvironmentQueryEditor/Source/EnvironmentQueryEditor/Private/SGraphNode_EnvironmentQuery.cpp:271
Scope: file
Source code excerpt:
.HeightOverride_Lambda(GetNodeTitlePlaceholderHeight)
]
.HighDetail()
[
SNew(SVerticalBox)
+SVerticalBox::Slot()
.AutoHeight()
[
SAssignNew(InlineEditableText, SInlineEditableTextBlock)
#Loc: <Workspace>/Engine/Plugins/Developer/PropertyAccessNode/Source/PropertyAccessNode/Private/SPropertyAccessNode.cpp:276
Scope (from outer to inner):
file
function TSharedRef<SWidget> SPropertyAccessNode::UpdateTitleWidget
Source code excerpt:
SNew(SSpacer)
]
.HighDetail()
[
SNew(SOverlay)
+SOverlay::Slot()
[
PropertyBindingWidget.ToSharedRef()
]
#Loc: <Workspace>/Engine/Plugins/Experimental/CommonConversation/Source/CommonConversationGraph/Private/SConversationGraphNode.cpp:410
Scope: file
Source code excerpt:
.HeightOverride_Lambda(GetNodeTitlePlaceholderHeight)
]
.HighDetail()
[
SNew(SHorizontalBox)
+SHorizontalBox::Slot()
.AutoWidth()
.VAlign(VAlign_Center)
[
#Loc: <Workspace>/Engine/Plugins/Experimental/TextureGraph/Source/TextureGraphEditor/Private/EdGraph/STG_EditorGraphNode.cpp:194
Scope (from outer to inner):
file
function BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION void STG_EditorGraphNode::UpdateGraphNode
Source code excerpt:
.BorderBackgroundColor(this, &STG_EditorGraphNode::GetNodeTitleColor)
]
.HighDetail()
[
DefaultTitleAreaWidget
];
if (!SWidget::GetToolTip().IsValid())
#Loc: <Workspace>/Engine/Plugins/FX/Niagara/Source/NiagaraEditorWidgets/Private/SNiagaraOverviewStackNode.cpp:671
Scope (from outer to inner):
file
function TSharedRef<SWidget> SNiagaraOverviewStackNode::CreateNodeContentArea_Default
Source code excerpt:
]
]
.HighDetail()
[
NodeWidget
];
ScalabilityWrapper = SNew(SOverlay)
+ SOverlay::Slot()
#Loc: <Workspace>/Engine/Plugins/PCG/Source/PCGEditor/Private/SPCGEditorGraphNode.cpp:282
Scope (from outer to inner):
file
function void SPCGEditorGraphNodePin::Construct
Source code excerpt:
PinWidgetRef
]
.HighDetail()
[
PinContent.ToSharedRef()
]
]
]
);
#Loc: <Workspace>/Engine/Plugins/Runtime/RigVM/Source/RigVMEditor/Private/Widgets/SRigVMGraphNode.cpp:130
Scope (from outer to inner):
file
function TSharedRef<SWidget> SRigVMGraphNode::CreateNodeContentArea
Source code excerpt:
.Size(this, &SRigVMGraphNode::GetLowDetailDesiredSize)
]
.HighDetail()
[
SAssignNew(LeftNodeBox, SVerticalBox)
];
}
bool SRigVMGraphNode::UseLowDetailPinNames() const
#Loc: <Workspace>/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SAnimNodeReference.cpp:40
Scope (from outer to inner):
file
function TSharedRef<SWidget> SAnimNodeReference::UpdateTitleWidget
Source code excerpt:
SNew(SSpacer)
]
.HighDetail()
[
SNew(SVerticalBox)
+SVerticalBox::Slot()
.AutoHeight()
[
SNew(STextBlock)
#Loc: <Workspace>/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SAnimationGraphNode.cpp:252
Scope (from outer to inner):
file
function TSharedRef<SWidget> SAnimationGraphNode::CreateNodeContentArea
Source code excerpt:
.Size(this, &SAnimationGraphNode::GetLowDetailDesiredSize)
]
.HighDetail()
[
CachedContentArea.ToSharedRef()
];
}
bool SAnimationGraphNode::UseLowDetailNodeContent() const
#Loc: <Workspace>/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SAnimationGraphNode.cpp:388
Scope (from outer to inner):
file
class class SAnimNodeFunctionsWidget : public SCompoundWidget
function void Construct
Source code excerpt:
.Size(FVector2D(24.0f, 24.f))
]
.HighDetail()
[
NodeWidgets.NameWidget.ToSharedRef()
]
];
// Function name
#Loc: <Workspace>/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SAnimationGraphNode.cpp:407
Scope (from outer to inner):
file
class class SAnimNodeFunctionsWidget : public SCompoundWidget
function void Construct
Source code excerpt:
.Size(FVector2D(24.0f, 24.f))
]
.HighDetail()
[
NodeWidgets.ValueWidget.ToSharedRef()
]
];
RowIndex++;
#Loc: <Workspace>/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SAnimationGraphNode.cpp:450
Scope (from outer to inner):
file
function TSharedRef<SWidget> SAnimationGraphNode::CreateNodeTagWidget
Source code excerpt:
.Size(FVector2D(24.0f, 24.f))
]
.HighDetail()
[
SNew(SBox)
.Padding(FMargin(4.0f, 0.0f, 4.0f, 4.0f))
[
SNew(SInlineEditableTextBlock)
.ToolTipText_Lambda([InAnimNode](){ return FText::Format(LOCTEXT("TagFormat_Tooltip", "Tag: {0}\nThis node can be referenced elsewhere in this Anim Blueprint using this tag"), FText::FromName(InAnimNode->GetTag())); })
#Loc: <Workspace>/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SGraphNodeBlendSpaceGraph.cpp:200
Scope (from outer to inner):
file
function TSharedRef<SWidget> SGraphNodeBlendSpaceGraph::CreateNodeBody
Source code excerpt:
.Size(FVector2D(100.0f, 100.f))
]
.HighDetail()
[
SNew(SBlendSpacePreview, CastChecked<UAnimGraphNode_Base>(GraphNode))
.OnGetBlendSpaceSampleName(FOnGetBlendSpaceSampleName::CreateLambda([this, WeakBlendSpaceNode = TWeakObjectPtr<UAnimGraphNode_BlendSpaceGraphBase>(BlendSpaceNode)](int32 InSampleIndex) -> FName
{
if(WeakBlendSpaceNode.Get())
{
#Loc: <Workspace>/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SGraphNodeBlendSpacePlayer.cpp:65
Scope (from outer to inner):
file
function void SGraphNodeBlendSpacePlayer::CreateBelowPinControls
Source code excerpt:
.Size(FVector2D(100.0f, 100.f))
]
.HighDetail()
[
SNew(SBlendSpacePreview, CastChecked<UAnimGraphNode_Base>(GraphNode))
]
];
}
#Loc: <Workspace>/Engine/Source/Editor/AnimationBlueprintEditor/Private/AnimationNodes/SGraphNodeSequencePlayer.cpp:175
Scope (from outer to inner):
file
function void SGraphNodeSequencePlayer::CreateBelowPinControls
Source code excerpt:
.Size(FVector2D(16.0f, 16.f))
]
.HighDetail()
[
SNew(SSlider)
.Style(&FAppStyle::Get().GetWidgetStyle<FSliderStyle>("AnimBlueprint.AssetPlayerSlider"))
.ToolTipText(this, &SGraphNodeSequencePlayer::GetPositionTooltip)
.Visibility(this, &SGraphNodeSequencePlayer::GetSliderVisibility)
.Value(this, &SGraphNodeSequencePlayer::GetSequencePositionRatio)
#Loc: <Workspace>/Engine/Source/Editor/BehaviorTreeEditor/Private/SGraphNode_BehaviorTree.cpp:435
Scope: file
Source code excerpt:
.HeightOverride_Lambda(GetNodeTitlePlaceholderHeight)
]
.HighDetail()
[
SNew(SHorizontalBox)
+SHorizontalBox::Slot()
.AutoWidth()
.VAlign(VAlign_Center)
[
#Loc: <Workspace>/Engine/Source/Editor/GraphEditor/Private/KismetNodes/SGraphNodeK2Copy.cpp:160
Scope (from outer to inner):
file
class class SCopyNodeGraphPin : public SGraphPin
function void Construct
Source code excerpt:
ActualPinWidget
]
.HighDetail()
[
PinContent.ToSharedRef()
]
]
);
#Loc: <Workspace>/Engine/Source/Editor/GraphEditor/Private/SGraphNode.cpp:945
Scope (from outer to inner):
file
function BEGIN_SLATE_FUNCTION_BUILD_OPTIMIZATION void SGraphNode::UpdateGraphNode
Source code excerpt:
.BorderBackgroundColor( this, &SGraphNode::GetNodeTitleColor )
]
.HighDetail()
[
DefaultTitleAreaWidget
];
if (!SWidget::GetToolTip().IsValid())
#Loc: <Workspace>/Engine/Source/Editor/GraphEditor/Private/SGraphNodeDocumentation.cpp:158
Scope (from outer to inner):
file
function void SGraphNodeDocumentation::UpdateGraphNode
Source code excerpt:
.BorderBackgroundColor( this, &SGraphNodeDocumentation::GetNodeTitleColor )
]
.HighDetail()
[
DefaultTitleAreaWidget
];
// Create Documentation Page
TSharedPtr<SWidget> DocumentationPage = CreateDocumentationPage();
#Loc: <Workspace>/Engine/Source/Editor/GraphEditor/Private/SGraphPin.cpp:357
Scope (from outer to inner):
file
function void SGraphPin::Construct
Source code excerpt:
PinWidgetRef
]
.HighDetail()
[
PinContent.ToSharedRef()
]
]
]
);