sideeffects / HoudiniEngineForUnreal-v2

Houdini Engine Plugin for Unreal Engine 4 - Version 2
http://www.sidefx.com/unreal
Other
294 stars 75 forks source link

Deleting/Inserting instance for MultiParm became incorrect when the parameter is Operator Path #174

Open fblangrt opened 2 years ago

fblangrt commented 2 years ago

When the sub-parameter of a multiparm is operator path, delete or insert instances in the middle of the list will result in a wrong order. Like the pictures show: I click "Remove an Instance" for the first instance of the multparm parameter. image

The geometry input of the cube should be removed, however, it remains and the next one - the sphere is removed.

image

Illia-FI commented 6 days ago

There seems to be an issue with how multiparm object references are stored, probably in some kind of separate array or something outside of the multiparm list. It remembers the references in specific order and then shifts the values of the parameters when items added/deleted to/from the list. It also affects/breaks Houdini Inputs references and causes the assets to crash with LogHoudiniEngine: Error: Hapi failed: HAPI Error: The node is invalid. Either the otl/hda asset library file was deleted or another otl/hda asset library file was loaded that contained an operator type with the same name as this asset's operator type. You must unload this node's asset and re-instantiate it. (D:\Nightly20.0CMake\dev\engine\unreal\5.3\Engine\Plugins\Runtime\HoudiniEngine\Source\HoudiniEngine\Private\HoudiniEngineUtils.cpp:5530)

It makes it impossible to use multiparms with object references.