# Bendy Joints in Maya Crit

 04 April 2006 flex24 New Member Felix Leung Student Toronto, Canada Bendy Joints in Maya Crit Hi All, I've been working to create a cartoony bendy character rig. I'm sorta at the begining steps where i'm exploring methods to make joints follow curves, squash, and stretch. At the moment i'm focusing on making a bendy arm set up. I have an expression to position joints along a curve right now. I'm wondering if its a good idea to use expressions for rigs. Will more expressions on a rig make the system run slower? And if so what would be faster to use then expressions? Below I got a demo of the joint set-up on a bendy cylinder. If anything looks funky crits are welcomed. bendy pipe - quicktime file ~3 Mb not streamed so you'd have to wait for it to download --- felix share quote
 04 April 2006 lkruel Kuadro Developer Luiz Kruel Technical Artist Certain Affinity USA Hey that looks pretty solid. How did you go about it? I've done it a couple of ways, one with a spline IK which wasnt the greatest, and one with expressions that didnt have as much control as I wished, but it was an extra bell. If you have some expressions it's fine, if you have a lot it can slow down the rig a lot, you can get around it by constructing a network of nodes, like multiply divide nodes or inverse. So if your joint1.rot = 2* joint2.rot you can do a joint2.rot > input 1 on a multiply divide then set input 2 of the node as 2, then pipe the output into joint1.rot. And make sure the node is set to multiply. My only concern about your method is how it will behave with stretchyness, but it looks pretty solid. I'd like to hear how its done. __________________ kruelgames.com share quote
 04 April 2006 flex24 New Member Felix Leung Student Toronto, Canada Hi Ikruel thanks for the reply. I like the idea of making the expression into a set of utility nodes. I didn't think it was possible but the code is essentially addition, subtraction, and multiplication. I made up a pic to describe how the expression puts the bones into the curve position The curve is based on the positions of the beginning joint, the middle locator and the last joint. Each joint between the first and last are un-parented, this allows them to move freely to follow the shape of a curve. If the joint is going to stay a third of the way along the curve we will find its position as follows: 1 - Take the position a third of the way from the first joint to the locator and call it P1. 2 - Take the position a third of the way from the locator to the last joint and call it P2. 3 - The joint will be placed a third of the way from P1 to P2. and thats how all the joints got lined up along a curve, and moving the locator controls the bend. For the joints to form the curve shape each joint has an aim constraint towards the next joint. And thats the jist of the bendy pipe. I did a quick test for stretchyness that isn't bad, you can pull the end joints and the joints will stretch evenly, but at the moment the locator stays in position. Here's a link to a quicktime video - ~ 1 mb please wait for download to complete share quote
 04 April 2006 lkruel Kuadro Developer Luiz Kruel Technical Artist Certain Affinity USA Pretty cool, that's how Bezier curves are done if I'm not mistaken. To solve your locator problem you can group it to itself and parent that top group to the first and last joint. You might get a cycle if you're not careful though, so you might want to do that to the final controllers. but if you parent it to the beginning AND the end, it'll always stay halfway. __________________ kruelgames.com share quote
 04 April 2006 flex24 New Member Felix Leung Student Toronto, Canada hi Lkruel, i totaly get it. I like it alot too cuz it still gives the freedom to keep the bend during stretching, Thanks for your input. share quote
 04 April 2006 darkjedi1929 Expert   portfolio Mukund Dhananjay Unreal + VR Developer India Solid Stuff! Seeing this, I just have a hypothetical question. If the animator wanted more than one locator for the control.....what then? You know, something like Elastigirl from The Incredibles? __________________ The things we own, end up owning us. share quote
 05 May 2006 flex24 New Member Felix Leung Student Toronto, Canada Hi darkjedi1929 - its totally possible to create more points of control with more locators. it would just get more cluttered. I've reworked this set up to incorporate some expressions and node networks to increase speed incase of something more complex. so its hypothetically possible to have something similar to Elastigirl, the controls though could become a real mess. and i'm sure animators would want something that involves tighter controls over moving sliders. Thanks for your input right now i'm trying to put together a script that will do the expession and node networks automatically for me. hopefully i get enough free time to finish this before the end of the month. share quote
 05 May 2006 overcontrast gone nuts for good!   portfolio Zubuyer Kaolin Dhaka, Bangladesh hey flex, nice bending technique u got there.... i'm working on something similer.... but for my arm rig i want a coupla more controls... like IK/FK switch, Streachyness and ofcourse Bendyness. As far as my test went, i'm done with the IK/FK and Bendyness control. (note: for my arm control i wanted both normal and cartoony movement). I used a combination of 4 joint setup including a Spline IK setup. I'm still thinking about how i'm gonna handle the streaching. Here is a little clip from my expariment where it shows the blend beetween the normal and cartoony movement: (click the image above to download clip) I'm very interested to see how you do the streatching for ur setup.... adios share quote
 05 May 2006 flex24 New Member Felix Leung Student Toronto, Canada hi overcontrast, really like what you got going on there with the blending. You said your arm uses an IK spline set up to create the bendy, i would sugest using the arc length tool to sample the curve length information. You'd want the length of the joints to match the length of the curve as it extends to stretch. You can take the distance information from the arc length node and multiply it by a number and plug that number into the joint's translateX. So when the curve gets bigger, the joints will get longer. I hope i'm not making any confusions. The heat from my pc is frying my brain. The stretch for the setup i've shown mainly works when there are alot of joints and that they are all unparented. If the joints were parented i'd have to work on maintaining their translations. If there were very few joints, then i'd run into problems with the mesh stretching unevenly. share quote
 05 May 2006 flex24 New Member Felix Leung Student Toronto, Canada hi overcontrast, i just made a quick test and my sugestion of using the arc length tool wasn't as good as i thought. The last joint doesn't seem to stay at the end of the curve. This was just an ad hoc idea. playblast.avi file ~1 Mb. right click to save target. share quote
 05 May 2006 overcontrast gone nuts for good!   portfolio Zubuyer Kaolin Dhaka, Bangladesh hey Flex, Your test looks interesting, i think somehting neat can be done using that technique. well the problem sums up when u want ur arm to do a lot of things like IK/FK switch, Bending and Streatching, control over these bendings, then things get a little messy. espacially when u want both ur normal arm and bendy arm to streatch and have control over them. in movies like the increadibles i suppose theres different rigs for different situation. the challange here to get all this done with one single rig. rite now i'm leaving for work... when i come back i'll do some research on how these all could be done using the same rig. share quote
 05 May 2006 CGTalk Moderation Expert Thread automatically closed This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum. __________________ CGTalk Policy/Legalities Note that as CGTalk Members, you agree to the terms and conditions of using this website. share quote

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts vB code is On Smilies are On [IMG] code is On HTML code is Off CGSociety Society of Digital Artists www.cgsociety.org Powered by vBulletinCopyright ©2000 - 2006, Jelsoft Enterprises Ltd.