Property Editors for asset types allow you to drag assets from the Content Browser into them, or to make a selection using an Asset Picker widget. Some examples would be selecting Static Meshes or Materials inside the Details Panel for level actors, or by using a SinglePropertyView on an Editor Utility Widget.
However, if the chosen asset is within a path that contains a valid non-alphanumeric character, the selection will fail. On the other hand, if a previously-selected asset is then moved to a folder containing one of those characters, the reference is updated correctly and everything works fine.
Note that, when trying to rename folders and assets inside the Content Browser, the character restrictions seem different. This is a contibuting factor to the bug, but not the root cause:
\:*?"<>|',.&!~@#/[] disallowed for folders
\:*?"<>|',.&!~@#/[]$%(){}= disallowed for assets
The root cause seems to be related to the following call chain that happens when an asset is selected:
[Engine\Source\Editor\PropertyEditor\Private\PropertyHandleImpl.cpp]
[:4078] FPropertyHandleObject::SetValueFromFormattedString()
[Engine\Source\Runtime\CoreUObject\Private\UObject\PropertyBaseObject.cpp]
[:303] FObjectPropertyBase::ParseObjectPropertyValue()
[Engine\Source\Runtime\CoreUObject\Private\UObject\Property.cpp]
[:685] FPropertyHelpers::ReadToken()
[:645] ParsePropertyToken()
Function FObjectPropertyBase::ParseObjectPropertyValue() calls FPropertyHelpers::ReadToken() and expects it to return with a pointer to the next ' character. However, its internal function ParsePropertyToken() stops the parse when reaching any ASCII characters outside a set (alpha-numerics plus "_-+.:/" ). This causes the parse to fail (interestingly, it does not fail when the path includes any non-ascii special characters).
1 - In the Content Browser:
1.1 - Create a folder with a valid special character, such as "My(Test)Folder" without quotes
1.2 - Inside it, create a Material named "M_Test"
1.3 - Outside it, create and edit an Actor BP named "BP_Test"
2 - In the BP Editor:
2.1 - Create a variable named "MyMaterial" with type "Material"
2.2 - Mark the new variable as instance-editable
2.3 - Compile, save and close
3 - In the Level Editor:
3.1 - Place and select an actor of type "BP_Test"
3.2- In the Details Panel, try to select "M_Test" by either dragging from the Content Browser or using the Asset Picker
3.3- The operation will fail
error message when install in U.E 5.3 - IS-IN-FCO2-82
I am not able to find world outliner how to enable it?
I'm working on a VR Project and I cannot add Nav Mesh to the stairs??
Delay nodes occasionally don't fire the "Completed" output in a nativized build
How to achieve HLSL Multiple Render Target in Material blueprints?
What method is used to fill polygonal regions when drawing spline mesh at run time?
How can i modify the param name in EQS node
Undefined sysmbol: typeinfo for AActor when cross-compile linux dedicated server on windows
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-225087 in the post.
0 |
Component | UE - Editor - Workflow Systems |
---|---|
Affects Versions | 5.4.4 |
Created | Sep 20, 2024 |
---|---|
Updated | Oct 4, 2024 |