The new h20.5 recipes are useful for many things one of them been saving material libraries.
The problem is that when saving a recipe with a Octane Material Builder it fails to load outputting a python error.
If the material builder has only the default 2 nodes inside then it works but it creates the nodes disconnected. If the material has any other node inside it gives the error when trying to load the saved recipe.
I works perfectly with non octane materials.
Already contacted Sidefx but they say they don't support any plugins so I could not submit the bug.
Thanks!
Andreu
Recipes (H20.5) not working with Octane Material Builder
Andreu wrote:The new h20.5 recipes are useful for many things one of them been saving material libraries.
The problem is that when saving a recipe with a Octane Material Builder it fails to load outputting a python error.
If the material builder has only the default 2 nodes inside then it works but it creates the nodes disconnected. If the material has any other node inside it gives the error when trying to load the saved recipe.
I works perfectly with non octane materials.
Already contacted Sidefx but they say they don't support any plugins so I could not submit the bug.
Thanks!
Andreu
Hi Andreu,
Thank you so much for this.
Would you please share the steps to replicate and the python script?
cheers
Kind Regards
bk3d
bk3d
No special steps required, Octane Material Builder node doesn't properly load when saving it as a Recipe.
Just create a default Octane Material Builder press right mouse button and select Recipes/Save selected item as tool.
Then try to load it and it loads back the Octane Material Builder node but the nodes inside are disconnected.
There isn't any python script being used for this error to ocur, is just using basic Recipe functionality to save and reload a material what is not working.
If instead of default Material you add any node before saving it to the Recipe then it will also through a python error when calling the recipe back through tab menu:
Traceback (most recent call last):
File "andreu::test", line 1, in <module>
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\houpythonportion\data.py", line 211, in applyTabToolRecipe
return ref.applyRecipe(kwargs, **tabtoolrecipe_set_opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\storage.py", line 751, in applyRecipe
return recipedata.applyTabToolRecipe(self.loadRecipeData(add_name=True), kwargs, **tabtoolrecipe_set_opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\api\recipedata.py", line 715, in applyTabToolRecipe
resulted_data = hou.data.createClusterItemsFromData(parent=parent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\houpythonportion\data.py", line 100, in createClusterItemsFromData
return networkcluster.setClusterFromData(parent=parent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkcluster.py", line 476, in setClusterFromData
return cluster.setData(parent=parent, data=data, **opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkcluster.py", line 348, in setData
items_dict = networkitems.setNetworkItemsFromData(parent=parent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitems.py", line 1363, in setNetworkItemsFromData
_setItems(parent, {"children": data}, opts)
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitems.py", line 714, in _setItems
_setItems(container=item,
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitems.py", line 693, in _setItems
networkitemconnection.setVopInputsFromData(sub_item_data, container)
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitemconnection.py", line 423, in setVopInputsFromData
success = _createWireFromConnectionData(wiredata, container)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitemconnection.py", line 394, in _createWireFromConnectionData
return setInputFromData(item, connection_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitemconnection.py", line 283, in setInputFromData
srcnode = item.parent().item(srcpath)
^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'parent'
As suggested by Sidefx I tried latest daily build and the python error is gone but the nodes inside the material are still disconnected.
Also tested with other external renders materials and they all work so it seems very specific of Octane Material Builder.
Just create a default Octane Material Builder press right mouse button and select Recipes/Save selected item as tool.
Then try to load it and it loads back the Octane Material Builder node but the nodes inside are disconnected.
There isn't any python script being used for this error to ocur, is just using basic Recipe functionality to save and reload a material what is not working.
If instead of default Material you add any node before saving it to the Recipe then it will also through a python error when calling the recipe back through tab menu:
Traceback (most recent call last):
File "andreu::test", line 1, in <module>
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\houpythonportion\data.py", line 211, in applyTabToolRecipe
return ref.applyRecipe(kwargs, **tabtoolrecipe_set_opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\storage.py", line 751, in applyRecipe
return recipedata.applyTabToolRecipe(self.loadRecipeData(add_name=True), kwargs, **tabtoolrecipe_set_opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\api\recipedata.py", line 715, in applyTabToolRecipe
resulted_data = hou.data.createClusterItemsFromData(parent=parent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\houpythonportion\data.py", line 100, in createClusterItemsFromData
return networkcluster.setClusterFromData(parent=parent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkcluster.py", line 476, in setClusterFromData
return cluster.setData(parent=parent, data=data, **opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkcluster.py", line 348, in setData
items_dict = networkitems.setNetworkItemsFromData(parent=parent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitems.py", line 1363, in setNetworkItemsFromData
_setItems(parent, {"children": data}, opts)
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitems.py", line 714, in _setItems
_setItems(container=item,
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitems.py", line 693, in _setItems
networkitemconnection.setVopInputsFromData(sub_item_data, container)
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitemconnection.py", line 423, in setVopInputsFromData
success = _createWireFromConnectionData(wiredata, container)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitemconnection.py", line 394, in _createWireFromConnectionData
return setInputFromData(item, connection_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitemconnection.py", line 283, in setInputFromData
srcnode = item.parent().item(srcpath)
^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'parent'
As suggested by Sidefx I tried latest daily build and the python error is gone but the nodes inside the material are still disconnected.
Also tested with other external renders materials and they all work so it seems very specific of Octane Material Builder.
Andreu wrote:No special steps required, Octane Material Builder node doesn't properly load when saving it as a Recipe.
Just create a default Octane Material Builder press right mouse button and select Recipes/Save selected item as tool.
Then try to load it and it loads back the Octane Material Builder node but the nodes inside are disconnected.
There isn't any python script being used for this error to ocur, is just using basic Recipe functionality to save and reload a material what is not working.
If instead of default Material you add any node before saving it to the Recipe then it will also through a python error when calling the recipe back through tab menu:
Traceback (most recent call last):
File "andreu::test", line 1, in <module>
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\houpythonportion\data.py", line 211, in applyTabToolRecipe
return ref.applyRecipe(kwargs, **tabtoolrecipe_set_opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\storage.py", line 751, in applyRecipe
return recipedata.applyTabToolRecipe(self.loadRecipeData(add_name=True), kwargs, **tabtoolrecipe_set_opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\api\recipedata.py", line 715, in applyTabToolRecipe
resulted_data = hou.data.createClusterItemsFromData(parent=parent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\houpythonportion\data.py", line 100, in createClusterItemsFromData
return networkcluster.setClusterFromData(parent=parent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkcluster.py", line 476, in setClusterFromData
return cluster.setData(parent=parent, data=data, **opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkcluster.py", line 348, in setData
items_dict = networkitems.setNetworkItemsFromData(parent=parent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitems.py", line 1363, in setNetworkItemsFromData
_setItems(parent, {"children": data}, opts)
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitems.py", line 714, in _setItems
_setItems(container=item,
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitems.py", line 693, in _setItems
networkitemconnection.setVopInputsFromData(sub_item_data, container)
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitemconnection.py", line 423, in setVopInputsFromData
success = _createWireFromConnectionData(wiredata, container)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitemconnection.py", line 394, in _createWireFromConnectionData
return setInputFromData(item, connection_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitemconnection.py", line 283, in setInputFromData
srcnode = item.parent().item(srcpath)
^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'parent'
As suggested by Sidefx I tried latest daily build and the python error is gone but the nodes inside the material are still disconnected.
Also tested with other external renders materials and they all work so it seems very specific of Octane Material Builder.
Hi Andreu,
Thank you so much for the response.
Yep, we can replicate this issue and have created an internal ticket to investigate.
cheers
Kind Regards
bk3d
bk3d
I also noticed the same issue when trying to create recipes for Octane Material node setups. All the nodes inside would be disconnected and jumbled up after activating the recipe. Even saving the setup as a decoration didn't work. Someone in a FB group told me that recipes only work for SOP nodes, but I'm curious whether this is true or not. Hopefully you can get it to work, BK. Thanks for looking into it.
That is the issue I'm referring to. I think when you say "Octane Material node setup" and "Octane Material Builder" is the same thing.
I have tested it and Recipes work in all context including other external render's material networks so this is a Octane plugin's issue.
One thing I forgot to mention is that it doesn't work in either "Octane Material Builder" and "Octane Material Builder Solaris" so it also affects to the non Solaris plugin.
I have tested it and Recipes work in all context including other external render's material networks so this is a Octane plugin's issue.
One thing I forgot to mention is that it doesn't work in either "Octane Material Builder" and "Octane Material Builder Solaris" so it also affects to the non Solaris plugin.