Jump to content

Simple rigging of a lattice using control curves


TomRaynor

Recommended Posts

Hi,

I'm trying to set up a simple rig that allows me to animate a lattice's points by selecting nurbs curves in the viewport and using them to translate, rotate and scale the lattice points. I want to assign each control curve to four points as in my example scene. I currently have a rig set up where I can dive into sop level and select transform nodes and manipulate them but I would like to not have to do that and use the curves instead.

Can anyone point me in the direction of a solution?

Thanks in advance!

rigTest_v01.hip

  • Like 1
  • Downvote 2
Link to comment
Share on other sites

Here's a quick mock up from your file. There's several things I did in there.

  • Use Null objects for the controllers. This serves two purposes: 1) It prevents them from being rendered by default, and 2) It provides convenient options for default "control" rigging geometry.
  • Added Grid SOPs inside the controllers to serve as the actual lattice geometry so that we can just merge them into the rig object.
  • Added a new /obj/GLOBAL_TRANSFORM controller as the parent
  • Positioned the controllers into place and then ran "Clean Transform" on them so that their local parameters are zero for animation.
  • In the rig object, we merge the grids from the controllers and use them as the lattice. Since we're using the "points" mode, it doesn't matter whether the grids are connected or not.
  • For the "rest" input in the Lattice SOP, I just inserted a Null SOP and then "locked" (red node flag) the grids while they were at the desired rest position. This "freezes" the geometry to act as the "rest".
  • So now we can just animate the control objects and have it directly affect the rig
  • Turned off the selectable (green node flag) on /obj/rig since we don't want the user to select/move it
  • Finally, I deleted everything unused.

rigTest_v01_edward.hipnc

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

Nice one Edward, this is definitely a step closer and does as briefed, however the one thing that bugs me is that there is a locked node going into the lattic's second input for the rest geometry.

It would be really cool if I could make the rig procedural so that if I wanted to make it into an otl, I could dynamically change the number of circular control curves and hence chance the subdivisions of the lattice (also potentially changing the control positions in case the input shape to be latticed was larger, as well as changing the grid resolutions).

Any thoughts?

Link to comment
Share on other sites

I just did that because it was convenient. In a real world situation, you need to come up with a sensible scheme for specifying the rest positions of your controllers. The simplest is probably some button on your HDA which writes out the current rest geometry to disk and then reload from that.

Link to comment
Share on other sites

  • 3 years later...
On 9/18/2012 at 11:22 PM, edward said:

Here's a quick mock up from your file. There's several things I did in there.

 

  • Use Null objects for the controllers. This serves two purposes: 1) It prevents them from being rendered by default, and 2) It provides convenient options for default "control" rigging geometry.
  • Added Grid SOPs inside the controllers to serve as the actual lattice geometry so that we can just merge them into the rig object.
  • Added a new /obj/GLOBAL_TRANSFORM controller as the parent
  • Positioned the controllers into place and then ran "Clean Transform" on them so that their local parameters are zero for animation.
  • In the rig object, we merge the grids from the controllers and use them as the lattice. Since we're using the "points" mode, it doesn't matter whether the grids are connected or not.
  • For the "rest" input in the Lattice SOP, I just inserted a Null SOP and then "locked" (red node flag) the grids while they were at the desired rest position. This "freezes" the geometry to act as the "rest".
  • So now we can just animate the control objects and have it directly affect the rig
  • Turned off the selectable (green node flag) on /obj/rig since we don't want the user to select/move it
  • Finally, I deleted everything unused.

 

rigTest_v01_edward.hipnc

Woah thanks edward! This really helped me in my scene.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...