Houdini engine for Unity V2 (pete's notes)

   320   10   2
User Avatar
Member
425 posts
Joined: Dec. 2013
Offline
Hi there,

Just trying Unity engine v2 and it looks like it has come a long way! It’s getting really cool.
I thought I’d post up my experience with it, because there are some issues that stop me from using it.

  • If you modify a HDA and refresh it in unity, the whole thing will reset This is unintuitive since changing a HDA in Houdini or changing a script component in unity would not result in the whole thing reseting. It makes the whole system way less flexible.


  • I reckon the component would be way better if it had less borders going on. In this image you can see the standard Unity component has a usable slider but the Houdini one is all squished up. Generally these inspector windows are vertically biased and often squashed to the side to make way for the scene or game view so they need to function in minimal space. Could those buttons be just tiny icons on one line with tooltips?


  • Is there a way to have Engine components ‘live’ in the scene and never have to bake them? I realise it’s hard to have them live on build because of libraries and such but ultimately it would be nice to be able to forget about baking everything and have them editable in scene.

  • Getting linker errors on iOS builds


I am so glad engine is getting some love! Hopefully this is of some help.
Thanks,
Pete
Edited by peteski - Aug. 5, 2018 03:29:53
User Avatar
Staff
142 posts
Joined: May 2017
Offline
peteski
Hi there,

Just trying Unity engine v2 and it looks like it has come a long way! It’s getting really cool.
I thought I’d post up my experience with it, because there are some issues that stop me from using it.

  • If you modify a HDA and refresh it in unity, the whole thing will reset This is unintuitive since changing a HDA in Houdini or changing a script component in unity would not result in the whole thing reseting. It makes the whole system way less flexible.

I will investigate to see if possible to reapply the parameter presets on Rebuild. Note that you can use Recook for the most part for the HDA to pick up changes. The issue with Recook is when you remove nodes in Houdini, it might still keep them around in Unity.

Also it looks like your are using a slightly older version of the plugin. I have recently fixed the issue of the Rebuild button label getting stuck on “Loading”, among other improvements. So please update to the latest daily build if possible.

peteski
  • I reckon the component would be way better if it had less borders going on. In this image you can see the standard Unity component has a usable slider but the Houdini one is all squished up. Generally these inspector windows are vertically biased and often squashed to the side to make way for the scene or game view so they need to function in minimal space. Could those buttons be just tiny icons on one line with tooltips?

I have plans to revisit the UI sometime soon. Since the initial design, more buttons and widgets have been added so the layout and buttons in general need to be reviewed. I agree shortening the labels and perhaps reducing down to just the icons might be the best approach.

peteski
  • Is there a way to have Engine components ‘live’ in the scene and never have to bake them? I realise it’s hard to have them live on build because of libraries and such but ultimately it would be nice to be able to forget about baking everything and have them editable in scene.

Indeed, the default behaviour is as you describe. You can leave the HDAs in the scene as is, without needing to bake. The HDA_Data gameobject is marked with the “Editor Only” tag and will get automatically removed at build time, leaving just the outputs.

peteski
  • Getting linker errors on iOS builds


I haven't built on iOS specifically, but will add to my list to test soon. I am guessing it is complaining about a missing .Net API that is not supported on iOS. If you have a screenshot or can paste the error, I may look at it sooner.

peteski
I am so glad engine is getting some love! Hopefully this is of some help.
Thanks,
Pete

Thank you for taking the time to post these issues. This is the kind of feedback that will help improve the plug-in and make it usable for our users.
User Avatar
Member
425 posts
Joined: Dec. 2013
Offline
Hey thanks for the update,
I started a fresh test scene today and I'm not getting the linker errors any more so my builds are working now which is great!
If they pop up again I'll make sure to save them. I have a few other questions I thought I might throw at you.

I'm not too sure where to grab the latest build? Is the best place here - https://www.sidefx.com/download/daily-builds/ [www.sidefx.com] (bundled with the application).

Could there be an option to have the whole thing on the one node? It just seems to clutter the hierarchy especially if you are nesting a few of them together. I think you could put if UNITY_EDITOR [docs.unity3d.com] on the data component to stop it running if that was a problem.

Passing material and tag info through attributes is really cool, is there a layer attribute?

Is there a way to access parms from the HDA component from other scripts?

Thanks
Pete
Edited by peteski - July 31, 2018 02:18:09
User Avatar
Staff
142 posts
Joined: May 2017
Offline
peteski
Hey thanks for the update,
I started a fresh test scene today and I'm not getting the linker errors any more so my builds are working now which is great!
If they pop up again I'll make sure to save them. I have a few other questions I thought I might throw at you.

I'm not too sure where to grab the latest build? Is the best place here - https://www.sidefx.com/download/daily-builds/ [www.sidefx.com] (bundled with the application).

Yes, the daily builds contain the latest versions of Houdini.

peteski
Could there be an option to have the whole thing on the one node? It just seems to clutter the hierarchy especially if you are nesting a few of them together. I think you could put if UNITY_EDITOR [docs.unity3d.com] on the data component to stop it running if that was a problem.

The current architecture is not easily changeable to be combined into a single gameobject. The reasons for this hierarchy structure was to support the many combinations of outputs and use cases, and work well with Unity's prefab system. Some HDAs could have multiple outputs (having multiple objects), others could have packed primitive instances, or combination of, which require a hierarchical structure. When an HDA has multiple output gameobjects, there needs to be a common root gameobject to group them, otherwise they are free floating in the scene. In some cases, users will create HDAs that will output a single gameobject then change parameters that might output multiple (instancing for example). One of the goals with the new plug-in was to also allow for updating existing prefabs and gameobjects (after baking), which is hard to do without having a common root.

For an HDA with just one output gameobject, it does seem unnecessary have a 3-gameobject hierarchy. In those cases if you bake to prefab or standalone gameobject, it will compress down to just a single gameobject. You can also update these later by dragging it into the Bake Update gameobject list, and hitting Bake Update. Hope that is clear.


peteski
Passing material and tag info through attributes is really cool, is there a layer attribute?

Good suggestion. I am surprised we don't already support layers. I'll add that in soon.


peteski
Is there a way to access parms from the HDA component from other scripts?

Thanks
Pete

Yes definitely. Check out the example script shipped with the plug-in found in Assets/Plugins/HoudiniEngineUnity/Scripts/Examples/HEU_ScriptParameterExample.cs

It shows how to get access to the HoudiniEngineAsset component, set some parameters, then cook it.
User Avatar
Staff
142 posts
Joined: May 2017
Offline
Hi Pete,

As of today's daily build (16.5.550), asset's with string-type attributes with name “unity_layer” can be used to set the Unity layer on the gameobject and its children. The attribute must have either a detail or primitive owner. Note that the layer must exist in Unity, as there is no way to create it automatically via their API.
User Avatar
Member
425 posts
Joined: Dec. 2013
Offline
Awesome, I grabbed that and it works great!

Thanks for the letting me know about hierarchy structure, that makes more sense now and I'm glad for it since I hadn't know there was a tag for ‘Editor Only’ tag, might have to use that one myself
The Layer and tag don't get transferred to the baked object by the way.


I was trying to test handles in unity but I don't seem to have the ‘enable handels’ option, is that something that has been hidden?

https://www.sidefx.com/docs/unity/_handles.html [www.sidefx.com]

Also just experimenting with hierarchies with object level sops and the result seems to be a little different. The hierarchy isn't maintained in Unity and the names seem to be from the active node within each object. Is that right? This in Houdini -

Becomes this in Unity -


Thanks,
Pete
Edited by peteski - Aug. 5, 2018 03:52:29
User Avatar
Staff
142 posts
Joined: May 2017
Offline
I will fix that Layer and tag bake issue.

Enable Handles should automatically show up if you have handles exposed. I added a simple hda to show how its setup in Houdini.

No we don't mimic the parent relationship between objects. So yes, the output in Unity, where they are all parented to the same root is correct behaviour.

Attachments:
handle_box.hda (25.7 KB)

User Avatar
Staff
142 posts
Joined: May 2017
Offline
Hi Pete,
The layer and tag do get baked out. Let me know if there is a specific case where it fails to do so.
User Avatar
Member
425 posts
Joined: Dec. 2013
Offline
Thanks seelan,

Can you check this out? The handle on this HDA seem to work fine in Houdini but I don't get the option in Unity.

Ahh, also with the layer baking issue I was having, it seems that if you change the layer in Houdini (via the layer attribute) then press “Bake Update” in Unity, it wont update the layer changes. So initially it works fine but updates don't come across.

P.
Edited by peteski - Aug. 9, 2018 03:18:33

Attachments:
PT_HandleTest.hdalc (5.4 KB)

User Avatar
Staff
142 posts
Joined: May 2017
Offline
That uses pivot type handles which the plugin does not support. Currently only transform handles are supported.

Btw, since Houdini 16.5.561, Rebuild Asset will now keep parameter values as well as input nodes. This was your first ask in this thread.
User Avatar
Member
425 posts
Joined: Dec. 2013
Offline
Ahh thanks for the heads up, just trying it now and it's great!
  • Quick Links