Rigging Your 3D Models In The Real-World

3D Real-World Rig

Computer animation is a task both delicate and tedious, requiring the manipulation of a computer model into a series of poses over time saved as keyframes, further refined by adjusting how the computer interpolates between each frame. You need a rig (a kind of digital skeleton) to accurately control that model, and researcher [Alec Jacobson] and his team have developed a hands-on alternative to pushing pixels around.

3D Rig with Control Curves
Control curves (the blue circles) allow for easier character manipulation.

The skeletal systems of computer animated characters consists of kinematic chains—joints that sprout from a root node out to the smallest extremity. Manipulating those joints usually requires the addition of easy-to-select control curves, which simplify the way joints rotate down the chain. Control curves do some behind-the-curtain math that allows the animator to move a character by grabbing a natural end-node, such as a hand or a foot. Lifting a character’s foot to place it on chair requires manipulating one control curve: grab foot control, move foot. Without these curves, an animator’s work is usually tripled: she has to first rotate the joint where the leg meets the hip, sticking the leg straight out, then rotate the knee back down, then rotate the ankle. A nightmare.

[Alec] and his team’s unique alternative is a system of interchangeable, 3D-printed mechanical pieces used to drive an on-screen character. The effect is that of digital puppetry, but with an eye toward precision. Their device consists of a central controller, joints, splitters, extensions, and endcaps. Joints connected to the controller appear in the 3D environment in real-time as they are assembled, and differences between the real-world rig and the model’s proportions can be adjusted in the software or through plastic extension pieces.

The plastic joints spin in all 3 directions (X,Y,Z), and record measurements via embedded Hall sensors and permanent magnets. Check out the accompanying article here (PDF) for specifics on the articulation device, then hang around after the break for a demonstration video.

[Thanks Sam]

21 thoughts on “Rigging Your 3D Models In The Real-World

  1. One issue that stands out to me would be resetting the rigs back to specific positions. Instead of being able to save and easily restore specific frames, you’d have to manually reposition it as closely as you could. Just hope you get it right on the first take.

    Though, I’m sure when combined with traditional editing this probably wouldn’t be much of a problem.

    1. Interesting issue you raise there.
      Starting from a specific position – only known digitally – will be tricky. You can easily sort of “snap” on the digital side to get back to the old state, but then the real/virtual model will be slightly out of sycn position wise. hmm..

    2. i dont think this would be much of a problem at all. you start with a basic position alredy, so you would just select a diffrent keyframe, update the rig to match the model, then set the frame. when you need to get back to a previous position, just copy it from the previous keyframe.

    3. this could be easily solved with a a green/red led on every joint, you choose the keyframe you want to replicate and once you rotate the joint to the right position it will light up green

    1. Standard servos can readout position as well if they’re driven by a special circuit. http://forums.parallax.com/showthread.php/84991-Propeller-Application-Proportional-feedback-from-a-Standard-Hobby-Servo-%28Upda/page2 Post #30 for the details.

      Basically under program control I boost the supply impedance for the servo to ~100 ohms. Then I send a 200uS command pulse and measure how long it takes the servo to brown out it’s supply. This pulse width is proportional to the internal position. Micro servos require an extra long pulse to probe as they activate the motor as soon as the internal or command pulse ends, but are just as precise. Works with any analog servo, but only if it’s not moving. (too much energy stored in the spinning motor)

    1. For perspective, Minecraft made $101M in 2012 (source: http://venturebeat.com/2013/02/01/minecrafts-notch-on-earning-101m-in-2012-its-weird-as-f/ )

      CoD: Modern Warfare 2 made $310M on *release day* (source: http://en.wikipedia.org/wiki/Call_of_Duty:_Modern_Warfare_3 )

      This isn’t a criticism of Notch or minecraft, and I’m not saying Minecraft hasn’t been a fantastic success. Obviously, CoD of course had a vastly larger budget and is splitting that revenue between many more people. Truth is that indie games and big name sold-in-stores titles exist in basically different worlds that operate under very different rules.

      It’s also important to understand how the actual gameplay of Minecraft dovetails with the narrative of its development. It rose to popularity, at least initially, on word of mouth, so potential players were entirely aware that MC was literally a one man project for most of its history. The brilliance of this narrative is that the game itself is focused on creation, so Notch’s story lures in the very people the gameplay appeals to. This is a perfect setup for presenting the technical rough edges as part of the charm rather than a shortcoming. IMO this is the more important problem with amgi’s post, beyond just containing an obvious factual error. His implicit thesis–that games don’t need graphics beyond swinging block-arms–is premised in a fundamental failure to understand not just how the industry works in general, but how Minecraft in particular succeeded.

      It’s also popular we all got trolled.

  2. This looks like it could be used for live action animation motion capture,
    if you have the sensors attached to a person, instead of that setup with
    all the dots and multiple cameras that they use nowadays.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.