kamilhepner / kinefx_tools

Collection of rigging tools and utils for Houdini Kinefx
Apache License 2.0
111 stars 12 forks source link
houdini kinefx rigging

KineFX Tools

A collection of rigging tools and utilities for Houdini's KineFX.

info | width=30px These tools are compatible only with Houdini 19.5 and newer versions. If you are using Houdini 18.5, please use the tools from the h18.5 branch.

Support

If you find these tools helpful and would like to support my work, consider buying me a virtual coffee:

ko-fi

Installation

Python Scripts

  1. Copy all Python scripts to the source Python directory. Refer to the Houdini Docs for Python script locations.
  2. Alternatively, add the path to your sys.path.

Digital Assets

Ensure all digital assets are installed and set up before using the scripts.

Tutorial

Follow these steps for the majority of use cases:

  1. Download from GitHub: https://github.com/kamilhepner/kinefx_tools

  2. Extract the zip to a directory of your choice. By default, it might be named something like “C:\Users\YourUsername\Downloads\houdini\KineFX_Kamil_Tools\kinefx_tools-main”

  3. Rename the folder kinefx_tools-main to kinefx_tools.

  4. Locate the houdini.env file in your Houdini preferences, typically found at: C:\Users\YourUsername\Documents\houdini19.5\houdini.env.

  5. Update the file to include the path to kinefx_tools/hda. For example:

    KINFX=C:/Users/YourUsername/Downloads/houdini/KineFX_Kamil_Tools/kinefx_tools/hda
  6. Add $KINFX to your OTLs path:

    HOUDINI_OTLSCAN_PATH = $KINFX;$MOPS/otls;@/otls;@/otls;$QLIB/base;$QLIB/future;$QLIB/experimental
  7. Add kinefx_tools to the Python path:

    PYTHONPATH=C:/Users/YourUsername/Downloads/houdini/KineFX_Kamil_Tools;
  8. Launch Houdini.

  9. Create a new shelf named kinefx_tools.

  10. Add a button and paste the following script. This button will create object-level controls:

    import kinefx_tools
    kinefx_tools.create_obj_ctrls.run()
  11. Add another button and paste the following script to promote selected controls to the top of your rig HDA:

    import kinefx_tools
    kinefx_tools.create_obj_ctrls.promote_selected_controls()

Changes in H19.5

KineFX has undergone continuous changes. To ensure the smooth operation of kinefx_tools, it's crucial to regularly update your rigs. Below is a list of key modifications needed for your setups:

Using Existing Rigs

If you don't intend to alter your rigs and only want to animate them, they might function without any hitches. However, if you encounter any issues after updating your Houdini version, it's essential to:

Always Use the Latest Version of Attach Control Geometry SOP

Ensure you're using version 1.3 of Attach Control Geometry SOP. Regularly updating this component is vital when working on your rigs.

Adjust Settings for Attribute Delete in Specific Setups, like Arms

For the Attach Control Geometry to operate flawlessly, certain additional attributes need to be removed. This is especially important in setups with both FK and IK controls, such as Arms or Legs. If you've followed my tutorials on CG Circuit or my YouTube channel, make sure to add the additional attributes to all your Attribute Delete nodes.

h19_5_attribute_delete

HDAs

There are a few handy HDAs, some of them are required to be installed in order to use them with scripts.

required by: create_obj_ctrls.py






Watch the video

Usage

Create object level control

# You can add this code as button on shelf 
from kinefx_extra import create_obj_ctrls
create_obj_ctrls.run()

Promote selected controls:

After the creating controls with above script. Now at object level you will have a group called controls. controls_group

That will let you easily select all controls for your rig. Then just run script:

# You can add this code as button on shelf 
import kinefx_tools
kinefx_tools.create_obj_ctrls.promote_selected_controls()

Create object level controls - Video:

Watch the video

Easy way of locking channels- Video:

Watch the video

Create object level controls - Video:

Watch the video

How to use Space Switch node - Video:

Watch the video

Tips

Bypass Attach Controls Geometry node

After creating your object level controls, you can bypass all Attach Controls Geometry nodes. That will speedup rig significantly due to the slow Python SOP inside. They aren't needed anymore, but keep them in case you would like to change something later. The bypass is enough. You can create group: or bundle if you prefer to be able to easily switch them ON and OFF.

Use blast instead of delete joints SOP

Delete joints sop does an extra reparenting steps via python code. Use blast wherever you can.

Contributing and support

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

Apache-2.0