How to

  • How To:
    • Show the Controller (if you cant see it)
      • Make sure that the control Shape > Visible is enabled (in the details panel with the control selected)
      • That the Hide the Control Shape is not active. You can do this by pressing the keyboard shortcut T to toggle this state.
        • I have not found a UI button to toggle this inside the Control Rig asset
        • But if you have the Animation mode active in the main viewport and the animation tab open you can see that the Hide Control Shapes is beeing toggled by the T shortcut. You can also use the UI in the animation tab to set the visibility.
    • Change the size of a control
      • Make sure that the control is selected in the Rig Hierarchy
      • In the Details panel under Shape > Shape Transform Click the padlock to enable uniform scale and click and drag the scale of either scale component to a size that matches the rig geo.
    • Change the rotation of a control
      • Set the Shape > Shape Transform > Rotator to what you need
    • Change the Shape
      • Select a control shape you like in the details panel > Shape > Shape Properties > Shape

Basic Control Rig

Some notes on how to setup a basic Control Rig in UE5. Below are some basic assets to use while testing.

Assets

4_cubes_rig_01.hiplc
A basic Houdini skeleton for testing
4_cubes_rig_01.fbx
A basic skeleton for testing

Setup

  • Import a skeleton
    • Lets use the “4_cubes_rig_01.fbx” as example file
    • Import the fbx in Unreal
      • Make sure that Convert Scene is enabled
        • This converts the fbx coorsibate system to unreak coordinate system
      • I just used the default settings, and ignored the warnings :)…
        will look into this at a later time.
  • Create a Control Rig
    • On the Skeletal Mesh RMB > Create Control Rig
      • Double click to open up the graph
  • Create a Controller
    • In the Rig Hierarchy On the root joint RMB > New > New Control (Ctrl + N)
    • With the new control root_ctrl selected, unparent by pressing (Shift + P) or by click and dragging the ctrl to an empty space of the Rig Hierarchy.
    • Set the size, rotation and shape as described in the How To section above
    • Click and drag the root_ctrl from the Rig Hierarchy and release on the Rig VM grap from the popup > Get Control
  • Drive Joint with Controller
    • Click and drag the root bone to the graph > Set Bone
    • Drag the Execute pin from the Forwards Solve node and connect to the Execute Context input pin of the Set Transform - Bone
    • Click the arrow of the Transform output pin of the Get Transform - Control node to expose the individual transform outputs.
    • Expand the Value input pin of the Set Transform - Bone to expose the individual transform inputs.
    • Drag the Translation output pin (control node) and connect to the Translation input pin (Bone node)
    • Drag the Rotation output pin (control node) and connect to the Rotation input pin (Bone node)
    • We could use the Transform
      • …but if we do it this way we can insert a Verlet node to jiggle the translation…
      • …or use a Spring Imterpolate (Quaternion) to add a spring rotation offset.

Basic IK Rig

Some notes on how to setup a basic Ik Rig in UE5. Below are some basic assets to use while testing.

Assets

ik_chain_rig.hiplc
A basic Houdini skeleton setup for IK
simple_ik_rig.fbx
A basic IK Skeleton
simple_ik_anim.fbx
A basic anim for the IK skeleton

Setup

  • Import a skeleton
    • Lets use the “simple_ik_rig.fbx” as example file
    • Import the fbx in Unreal
      • Make sure that Convert Scene is enabled
        • This converts the fbx coorsibate system to unreak coordinate system
      • I just used the default settings, and ignored the warnings :)…
        will look into this at a later time.
  • Create a Control Rig
    • On the Skeletal Mesh RMB > Create Control Rig
      • Double click to open up the graph
  • Create a Hand Controller
    • In the Rig Hierarchy On the “hand_L” joint RMB > New > New Control (Ctrl + N)
    • Unparent the controller (drag to empty rig hierarchy space or Ctrl + P)
    • Set the size, rotation and shape as described in the How To section above
    • Since we wanted the transform of the control to be aligned with the hand, we created it by clicking on the hand joint.
    • But we want it to be positioned at the location of the wrist.
    • In the 3D vieport (of the control rig editor) drag the hand control so that it is close to the wrist joint. Then RMB the viewport > Set Offset Transform from Closest Bone
  • Create a Pole Vector Controller
    • In the Rig Hierarchy On the “elbow_L” joint RMB > New > New Control (Ctrl + N)
    • Unparent the controller (drag to empty rig hierarchy space or Ctrl + P)
    • Set the size, rotation and shape as described in the How To section above
    • Give it the name “PV_ctrl”
    • In the 3D vieport (of the control rig editor) drag the pv control so that it is outside the elbow bone. Then RMB the viewport > Set Offset Transform from Current
  • Create a Basic IK Setup
    • Basic IK node
      • In the rig graph Tab > start typing “ik…” select Hierarchy > Basic IK
      • On the Basic IK node
        • set Item > Name > shoulder_L
        • set Item > Name > elbow_L
        • set Item > Name > wrist_L
    • Set the IK Control
      • Drag the hand_L_ctrl (from the rig hierarchy) and drop in the graph > Get control
      • Connect the Transform output pin from the controller and connect to the Effector input pin of the Basic IK node
    • Set the Pole Vector Control
      • Drag the pv_ctrl (from the rig hierarchy) and drop in the graph > Get control
      • Expand the Transform output pin of the pv control to expose the Translation vector pin
      • Connect it to the Pole Vector input of the Basic IK node
    • Solve the IK
      • From the Execute output pin of the Forwards Solve node, connect it to the Execute input pin of the Basic IK node
    • Press Compile & save

Constraints

  • Todo