Ariff Jeff
WhyIsHoudiniSoHardHelp
About Me
EXPERTISE
Generalist
INDUSTRY
Advertising / Motion Graphics
Houdini Skills
Availability
Not Specified
Recent Forum Posts
Retiming quaternion keyframe animation curves? Nov. 7, 2024, 7:25 p.m.
Submitted, thanks.
On another note, I was almost finished implementing my own tool for this anyways.
On another note, I was almost finished implementing my own tool for this anyways.
Retiming quaternion keyframe animation curves? Oct. 30, 2024, 10:44 p.m.
I have some geometry I've keyframe animated its rotations for. I've gone into the animation editor window and set all the keyframes' functions from the default of bezier() to qlinear() (bottom right drop down box of the window). This allows me to get quaternion rotations instead of the default of Euler. Given that this is using qlinear(), the interpolation between the keyframes in linear. Any attempt to adjust the curve profile auto-changes their function back to bezier, which means I lose the benefit of quaternion rotations (shortest path of rotation between angles).
Is there a way to adjust the animation curve timings just like you would normally for any other animation (i.e. ease in, ease out, etc.) but without losing the benefit of quaternion rotations? Essentially I am looking for the best of both worlds here.
I feel like there would need to be some hacky implementation to get this to work.
A time shift node is obviously not a solution since it affects the entire geometry (all its channels). I'm just trying to focus on rotations here.
Thanks everyone!
Is there a way to adjust the animation curve timings just like you would normally for any other animation (i.e. ease in, ease out, etc.) but without losing the benefit of quaternion rotations? Essentially I am looking for the best of both worlds here.
I feel like there would need to be some hacky implementation to get this to work.
A time shift node is obviously not a solution since it affects the entire geometry (all its channels). I'm just trying to focus on rotations here.
Thanks everyone!
Get all plugin data for every Houdini version? Nov. 20, 2023, 11:21 p.m.
For context, I am on Windows.
I have a python 3.9 project (not integrated with Houdini in any way). I have multiple versions of Houdini installed such as H19.5 and H20. For both of those installs, I need my python project to grab all of the processed package config data that Houdini locates in /packages in the .json files there. This data contains the paths to any given plugin location on disk as environment variables, among other config data, which allows Houdini to actually locate and load plugins.
Since those .json package files can contain variables that need to be resolved, on startup, Houdini will resolve the config files to produce absolute file paths and such. I believe Houdini does this through hconfig.exe, since if you call hconfig.exe through python (using the subprocess command), it will give you that exactly nice processed data.
The problem is I don't know how to get that data for every Houdini install. My python project is using Python3.9. But if I try to run H20's hconfig.exe from Python3.9, I will get an error saying 3.9 and 3.10 are incompatible. This is because H20 ships with python3.10.
I do not want to change the python version my project is built upon every time Houdini ships with a new python version. I'd like it to be future proof for all future Houdini versions. Is there an easy way to get all the processed package data for all Houdini installs found on disk?
I've played around with hython and managed to get it to output all that useful processed package data using:
The issue is that all the env vars are mixed together (not separated by which config file they originated from) and they're also mixed in with a whole lot of other data I don't want. There's also a large loading time overhead by starting up hython, which I don't want to do for every installed Houdini just to get some env var data.
What's the solution here? How do I easily get this data in a clean and efficient way?
I have a python 3.9 project (not integrated with Houdini in any way). I have multiple versions of Houdini installed such as H19.5 and H20. For both of those installs, I need my python project to grab all of the processed package config data that Houdini locates in /packages in the .json files there. This data contains the paths to any given plugin location on disk as environment variables, among other config data, which allows Houdini to actually locate and load plugins.
Since those .json package files can contain variables that need to be resolved, on startup, Houdini will resolve the config files to produce absolute file paths and such. I believe Houdini does this through hconfig.exe, since if you call hconfig.exe through python (using the subprocess command), it will give you that exactly nice processed data.
The problem is I don't know how to get that data for every Houdini install. My python project is using Python3.9. But if I try to run H20's hconfig.exe from Python3.9, I will get an error saying 3.9 and 3.10 are incompatible. This is because H20 ships with python3.10.
I do not want to change the python version my project is built upon every time Houdini ships with a new python version. I'd like it to be future proof for all future Houdini versions. Is there an easy way to get all the processed package data for all Houdini installs found on disk?
I've played around with hython and managed to get it to output all that useful processed package data using:
# import os # os.environ # nevermind (ignore above code), this is better code that only gives the plugin paths hou.getenv("houdini_path")
The issue is that all the env vars are mixed together (not separated by which config file they originated from) and they're also mixed in with a whole lot of other data I don't want.
What's the solution here? How do I easily get this data in a clean and efficient way?