Environment Artist: Question About Building Tools with Houdini for Maya.

   6840   6   3
User Avatar
Member
23 posts
Joined: April 2016
Offline
Hello, I'm an environment artist for games interested in moving to a more technical role building tools for Maya using Houdini. I was successfully able to build my first digital asset, a simple wire generator, and manipulate its parameters in Maya. The procedural workflow within Houdini is very enjoyable and came easily to me as I am familiar with Substance Designer.

I also have a beginner-intermediate background in C style programming and am interested learning more about Python within the context of both Houdini and Maya to further extend my ability to make flexible art tools.

Some questions I have are:

Is it possible to use Python in Maya to make a custom user interface for a Houdini Digital Asset in Maya? Is this a common workflow if you needed something different than the default hda interface in Maya?

Would I choose to create tools in Houdini over scripting them in Maya with Python because Houdini is a more robust toolset?

In what situations are you using Python within a Houdini to Maya workflow? How can learning Python be useful for me as a Houdini/Maya user? I'd love to hear some common use- case scenarios, as my understanding is incomplete at the moment.


Since I've never used Python before, this post is me searching for the justification to start learning it. I'm looking forward to hearing about the new opportunities it can open up.
Thank you for any help or direction as I continue my journey.
User Avatar
Member
897 posts
Joined: July 2018
Offline
Hey! I spend most my days working on python wrappers for engine tools in Maya. My environment artists are happy with this aproach as they can direct the ux and the tool features and then I find ways either in qt or Houdini to implement it.

For smaller tools artists are ok with only the attribute editor but with complexity this breaks down. Especially to deal with custom workflow requests like ‘changing the behaviour for a selected object’.

I also do things like writing out files through Houdini Python operators and read them in Maya when Engines I/O is not sufficient.
B.Henriksson, DICE
User Avatar
Member
23 posts
Joined: April 2016
Offline
Thanks for the response kahuna. Its great to hear the real world production scenarios for this stuff. Is your role at DICE considered technical artist?

Things are becoming a bit more clear to me as I get further into Houdini. Matt Estela's explanation on cgwiki was helpful:link [www.tokeru.com]

I'm currently having fun exploring vex inside of sops. It seems Python will be the knowledge gap to bridge if I want to create a more robust UI, or complete other useful tasks outside the scope of vex, like writing to a file, as you mentioned. I have some Python specific tutorials queued up for the future, but they are focused on using it solely in Maya. Its a starter tutorial, creating a simple tool in Maya with a simple UI. If I learn the language in one package, does it translate well to Houdini?

Thanks for your help!
-Eric
User Avatar
Member
897 posts
Joined: July 2018
Offline
Yes, your Maya Python skills will be directly translatable to Houdini. It sounds like quite a task to learn vex, python and qt at the same time but I think you're doing it right messing around in sops. When you find a useful setup you can continue to the python.

Maybe one can generalize the aproach to
1. Make tool in Houdini.
2. Wrap tool in Python. (Stuff user shouldn't have to worry about - load plugg, load hda, connect input, custom i/o extract results to your pipeline, etc). Could be shelf buttons.
3. Qt wrapper. Custom gui, scene behaviour, cooking controls, access or auto run python functions etc.
Edited by kahuna031 - Dec. 26, 2017 06:37:06
B.Henriksson, DICE
User Avatar
Member
23 posts
Joined: April 2016
Offline
Hi kahuna, your explanation helps a lot.

I definitely want to avoid overwhelming myself with trying to learn too much at once. For now I'm enjoying experimenting on mini projects in sops, to become more comfortable inside of Houdini. Perhaps over time I can try to add in some more python skills. Thanks for sharing your knowledge!

-Eric
User Avatar
Member
23 posts
Joined: April 2016
Offline
Hello, I am back again. I've made some useful tools in Houdini and would ultimately like to wrap them up for use inside of Maya with a custom UI that I can launch through something like a shelf button.

kahuna, the high level overview you gave me was very helpful. It looks like I am on step 2 currently. I'm new to Python, but learning quick as I have some previous beginner/intermediate programming experience. Would you(or anyone) be able to give a deeper explanation of how Python wraps a Houdini engine asset? Or at least point me in the direction of where I can learn more?

Thank you for your help as I continue to learn, I do appreciate it
-Eric
Edited by Subtle 1rony - May 15, 2018 02:26:26
User Avatar
Member
897 posts
Joined: July 2018
Offline
Sorry for the late response Subtle. Are you still in search for python wrappers? It's basically writing a bunch of python to control the nodes attributes and its interaction with the maya scene.

For example, when starting my gui I load Engine, hda node, import maya files with helper data, create materials that matches what comes out from the Houdini setup etc. The widgets on the interface is typically linked to the attributes on the asset node.

The best way to start would probably be look into writing qt interfaces for Maya. Down the lines of this: https://vimeo.com/122424605 [vimeo.com]
B.Henriksson, DICE
  • Quick Links