primitive attribute :
i@unreal_uproperty_ActorHiddenInGame = 1
i@unreal_uproperty_HiddenInGame = 1
not work.
How to set Actor Hidden In Game or Hidden in Game by HEngine
4872 2 0- wacooa
- Member
- 3 posts
- Joined: July 2009
- Offline
- dtlendvaj
- Member
- 6 posts
- Joined: Sept. 2018
- Offline
- volkan-ozdemir
- Member
- 5 posts
- Joined: Nov. 2019
- Offline
I'm not sure if dtlendvaj's method has worked for you, but I just wanted to give a detailed explanation if somebody encounters a problem with "unreal_uproperty_" attributes and how to solve them:
Unreal Engine C++ runtime reflection system for setting UProperty types through
For example, if you got a Blueprint (or C++ Class), TestClass, in Unreal Engine with following member variables:
Then "unreal_uproperty_memberOne" attribute will only set the first _memberOne it encounters. If you write "unreal_uproperty_Member One", it will not match and set this attribute, it has to be written as "unreal_uproperty__memberOne" even if Blueprint would show it as "Member One".
Also, some of these UProperty variables are hidden inside member structures, currently Unreal Engine can't set these properties through the
One solution is to create _houdiniMemberOne variable for use by Houdini only. Set it through "unreal_uproperty__houdiniMemberOne" and then let C++ or Blueprint code set _testStruct._memberOne variable.
It is very convoluted but I doubt Houdini will be able to solve this issue, ideally Unreal Engine should revise their method of FObjectEditorUtils:etPropertyValue.
Unreal Engine C++ runtime reflection system for setting UProperty types through
FObjectEditorUtils::SetPropertyValue
is a bit weird, and I believe this is what Houdini internally uses. Currently Unreal Engine is only able to set the first UProperty member name that it encounters in the Blueprint (or C++) class through the mentioned method. Moreover, you need to ensure "XXXX" of "unreal_uproperty_XXXX" is identical to how it is named in the C++ class, it doesn't consider customized Blueprint naming.For example, if you got a Blueprint (or C++ Class), TestClass, in Unreal Engine with following member variables:
struct TestStruct{ int _memberOne = 0; } class TestClass{ int _memberOne = 0; TestStruct _testStruct; }
Then "unreal_uproperty_memberOne" attribute will only set the first _memberOne it encounters. If you write "unreal_uproperty_Member One", it will not match and set this attribute, it has to be written as "unreal_uproperty__memberOne" even if Blueprint would show it as "Member One".
Also, some of these UProperty variables are hidden inside member structures, currently Unreal Engine can't set these properties through the
FObjectEditorUtils::SetPropertyValue
calls. For example, _memberOne of _testStruct won't be setable through "unreal_uproperty_".One solution is to create _houdiniMemberOne variable for use by Houdini only. Set it through "unreal_uproperty__houdiniMemberOne" and then let C++ or Blueprint code set _testStruct._memberOne variable.
It is very convoluted but I doubt Houdini will be able to solve this issue, ideally Unreal Engine should revise their method of FObjectEditorUtils:etPropertyValue.
Edited by volkan-ozdemir - Jan. 11, 2021 17:21:32
-
- Quick Links