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()
]
]
]
);