HDA Building PT 2 | Jeff Wagner | July 18, 2018

   12022   18   3
User Avatar
Staff
93 posts
Joined: Dec. 2015
Offline
If you have comments / questions about the HDA Building webinar - you can post them here and Jeff will reply…


ORIGINAL DESCRIPTION:

In Part 2 we will continue looking at Houdini Digital Assets or HDA construction from basics to in depth details. All live in Houdini. All the time building up HDAs to demonstrate all features.

This webinar will focus on expanded use of HDAs in Houdini, making HDA tools and using scripting to make smarter HDAs, and managing these HDAs, picking up ideas from the questions in the first HDA webinar.

HDAs are used throughout Houdini from geomtery to shading. From compositing to outputs. Any node network can be captured in an HDA. HDAs can also have behavours by using scripting. As you build more and more HDAs, you need to manage them.
Customizing HDAs is a big part of the work. This requires an in-depth look at the Edit Operator Type Properties dialog as this is the key tool for tool construction.

Managing HDAs is also covered. HDAs are automatically added to context tab menus and you can install assets directly on the shelf. You may have ten, hundreds or thousands of assets to manage in Houdini. You can have multiple assets inside a single .hda file will be discussed. There are command-line tools to help manage HDAs along with three key ways of configuring your environment. Versioning HDAs is also covered along with HDA diff'ing.
User Avatar
Member
100 posts
Joined: Sept. 2006
Offline
Would it be easy to point us a link to a documentation where we can find how to access (via HScript|HExpression|Python) the channels (lock/hide) if we dont use “Save Default values” and use the UI to do that.
Thanks !
Edited by axelsp - July 18, 2018 13:05:52
User Avatar
Member
100 posts
Joined: Sept. 2006
Offline
Coming from softimage i am used to save my assets without version on the name. I usually use this format /drive/project/hda/AssetName/version/AssetName.hda. And There is a “version string or integer” as an Attribute/Parameter set inside the asset. (that in softimage)
Im quite happy I can use this exact same structure in houdini, Im just not sure at this moment how I can use the “::version” bit efficiently.
Edited by axelsp - July 18, 2018 13:16:48
User Avatar
Member
100 posts
Joined: Sept. 2006
Offline
Is there a way to expose saved presets on the HDA UI ?

Attachments:
Capture.JPG (41.2 KB)

User Avatar
Member
38 posts
Joined: July 2005
Offline
How to clear the screen in Python:
https://stackoverflow.com/questions/4810537/how-to-clear-the-screen-in-python [stackoverflow.com]

import os
_=os.system(“cls”) # on windows
or
import os
_=os.system(“clear”) # on linux / os x

Works in a terminal on linux but not in the Python Shell in Houdini. Any hints why?

Not elegant but seems to work in the Python Shell in Houdini:

print (“\n” * 100)
Edited by matsbtegner - July 18, 2018 14:47:05
If you'd like to cultivate insomnia,
Bed down with a pretty girl.
Amor vincit omnia.
User Avatar
Member
100 posts
Joined: Sept. 2006
Offline
tried that, it crashed HOU. on windows.
User Avatar
Member
100 posts
Joined: Sept. 2006
Offline
Thanks but no thanks lol.. Thats 100 carriage returns. Not exactly clear screen. But its better than having all the history on ur shoulders..
User Avatar
Member
38 posts
Joined: July 2005
Offline
axelsp
Thanks but no thanks lol.. Thats 100 carriage returns. Not exactly clear screen. But its better than having all the history on ur shoulders..

I noticed that…I edited my original post.
If you'd like to cultivate insomnia,
Bed down with a pretty girl.
Amor vincit omnia.
User Avatar
Member
100 posts
Joined: Sept. 2006
Offline
Woops, I owe you an apology then. Every idea is a good idea matsbt. No need to un-post i dont think. If its not ideal for one situation might help a lot for another.
User Avatar
Member
1110 posts
Joined: Aug. 2008
Offline
Is there a way to do a onCreated script that destroys the node it just spawned ? something like:

newnode = kwargs['node']
newnode.destroy()

Except that the above code doesn't work

I want to spawn a node that creates a little network of other nodes and then removes it self.
/M

Personal Houdini test videos, http://vimeo.com/magnusl3d/ [vimeo.com]
User Avatar
Member
38 posts
Joined: July 2005
Offline
Is there a way to watch the recording on Vimeo?:
https://vimeo.com/280639638 [vimeo.com]
is listed as private.
If you'd like to cultivate insomnia,
Bed down with a pretty girl.
Amor vincit omnia.
User Avatar
Staff
93 posts
Joined: Dec. 2015
Offline
Had to do an edit on the video and re-upload - will be making it public this afternoon…
User Avatar
Staff
93 posts
Joined: Dec. 2015
Offline
Ok - public now: https://vimeo.com/280639638/ [vimeo.com]
Edited by chrishebert - July 19, 2018 15:00:00
User Avatar
Member
100 posts
Joined: Sept. 2006
Offline
SWEEET!! THX
User Avatar
Member
2127 posts
Joined: Sept. 2015
Offline
Having been away and missing the live HDA pt.2 I was unable to re-ask a quesion I had in part 1.

I asked if it's possible to embedd user defined vex functions in the asset that the vex nodes within the asset could access in a similar way with the #include Pre-Processor ‘command’.

Jeff said it is possible and that it could be looked at in Pt.2

Typically when I have a vex approach to something that uses many lines of code, I will wrap them up into a defined function/s and put them in a text file with an arbitrary extension like *.h

Then wherever I want to use them(the functions) in a wrangle I just place on the first line of the wrangle:

#include <NameOfFile.h>

And then after just call the function by name to use it.

Beforehand I will have placed the text file/s in a folder named ‘include’ which is within a folder named ‘vex’ which in turn lies in the same directory folder as the hip file that has the wrangle with the above code.

By default Houdini will ‘see’ the file so that I can call any function there instead of having write to it all out(define the function again).

With an HDA it would be good to be able to do the same i.e. use the equivalent of #include to reference the code that is placed in the asset itself instead of the hip directory > vex > include folder.

Would be nice if the equivalent text file could be embedded in the asset itself to ‘follow it around’ wherever it might be used, without having to re-setup directories and copy/pasting the text files.
Edited by BabaJ - Aug. 3, 2018 15:16:35
User Avatar
Member
4 posts
Joined: Jan. 2018
Offline
Does anyone know what happened to the video: https://vimeo.com/280639638/ [vimeo.com]

Thanks!
User Avatar
Staff
93 posts
Joined: Dec. 2015
Offline
lifire
Does anyone know what happened to the video: https://vimeo.com/280639638/ [vimeo.com]

Thanks!

We took it down because too many people were complaining about the audio quality…here's the link [vimeo.com] but keep in mind the audio's not perfect!
User Avatar
Member
159 posts
Joined: Feb. 2018
Offline
It's really a pity that the great Webinar been taken down just because of the audio problem. I will never find that Webinar without the link you guys provided here.
Anyway, I downloaded the video and made a quick fix of the audio and if it is fine I'll put the video link here.

https://drive.google.com/file/d/1Mu4GRllXmOm-W_fsJyT-Gn8MstX_ycv7/view [drive.google.com]

The audio is not perfect but acceptable though, I just copied the left channel to the right and made some denoise process.
User Avatar
Member
2127 posts
Joined: Sept. 2015
Offline
The video wasn't taken down permanently.

As Chris provided the link above.

It is also in the Learn > Talks & Webinars section.
  • Quick Links