Aslak Kjølås-Sæverud
AslakKS
About Me
3D Generalist
EXPERTISE
Generalist
Connect
LOCATION
Bergen,
Norway
WEBSITE
Houdini Skills
ADVANCED
Procedural Modeling | Lighting | Fluids | PDG | VEX
INTERMEDIATE
Environments | Digital Assets | Motion Editing | Animation | Hair & Fur | Cloth | Solaris | Mantra | Karma | Pyro FX | Destruction FX | Realtime FX | Python
BEGINNER
Crowds | Muscles
Availability
I am currently employed at Devant
My Gallery
Recent Forum Posts
Promote specyfic channel to animation. Aug. 29, 2026, 6:28 a.m.
Sorry, I completely jumped over the part where you mentioned the animation editor.
This does sound like a very good RFE to send to support, I would also love to see this easily done without having to dive deep into apex.
I did manage to create a monkey patch that does this with shelf tool that you click when an apex animate state is active.
Slop code, but I tested that it works 🫣
edit: made the code more precise by filtering the scoped channels
This does sound like a very good RFE to send to support, I would also love to see this easily done without having to dive deep into apex.
I did manage to create a monkey patch that does this with shelf tool that you click when an apex animate state is active.
Slop code, but I tested that it works 🫣
import stateutils; import types viewer = stateutils.findSceneViewer() if viewer is None: hou.ui.displayMessage("No scene viewer found") else: args = {} viewer.runStateCommand("getState", args) state = args.get("state") if state is None or not hasattr(state, "getScopedChannels"): viewer.setPromptMessage("Not in APEX Animate state") elif hasattr(state, "_apex_non_locked_scoped_original"): state.getScopedChannels = state._apex_non_locked_scoped_original del state._apex_non_locked_scoped_original viewer.setPromptMessage("Scope non-locked channels: disabled") else: original_scoped_channels = state.getScopedChannels def locked_axes(control_path, transform): try: control = state.control_manager.controls[control_path] minimum = ( getattr(control, f"{transform}_min_lock") if getattr(control, f"{transform}_use_min_lock") else getattr(control, f"{transform}_min") if getattr(control, f"{transform}_use_min") else None ) maximum = ( getattr(control, f"{transform}_max_lock") if getattr(control, f"{transform}_use_max_lock") else getattr(control, f"{transform}_max") if getattr(control, f"{transform}_use_max") else None ) if minimum is None or maximum is None: return set() return { axis for axis in "xyz" if abs(getattr(minimum, axis)() - getattr(maximum, axis)()) < 1e-6 } except (AttributeError, KeyError, TypeError): return set() def filter_channels(scoped_channels): return { rig_path: [ channel for channel in channels if not ( (control_name := channel.rpartition("_")[0]) and len(component := channel.rpartition("_")[2]) == 2 and component[0] in "rts" and component[1] in locked_axes(f"{rig_path}/{control_name}", component[0]) ) ] for rig_path, channels in scoped_channels.items() } def get_scoped_channels(_state): return filter_channels(original_scoped_channels()) state._apex_non_locked_scoped_original = original_scoped_channels state.getScopedChannels = types.MethodType(get_scoped_channels, state) viewer.setPromptMessage("Scope non-locked channels: enabled")
Promote specyfic channel to animation. Aug. 28, 2026, 12:48 p.m.
This can be controlled by modifying channel limits with Configure APEX Controls.
Here is a screenshot where I limit the rotation to only revolve around RY and translation on TX.
Here is a screenshot where I limit the rotation to only revolve around RY and translation on TX.
Is there a way to disable text anti-aliasing in Houdini 22? July 22, 2026, 4:23 a.m.
This just looks like a bug, you should report it.
https://www.sidefx.com/forum/topic/15603/ [www.sidefx.com]
https://www.sidefx.com/forum/topic/15603/ [www.sidefx.com]