Home Technical Talk

bow rig help 3ds max

rockbox
polycounter lvl 6
Offline / Send Message
rockbox polycounter lvl 6
Hey guys,
I'm trying to rig a bow in 3ds max to bring into udk but I'm having trouble figuring out how I should set it up. In the image below I made some bones and an IK solver but it does not bend realisticly like a bow. any ideas?
captureba.jpg

Replies

  • GeeDave
    Options
    Offline / Send Message
    GeeDave polycounter lvl 11
    If you forget about the idea of "I pull string, bow bends", this whole thing becomes a lot less complex. If you were to rig this with an FK setup instead, this job could literally take minutes as you'd just set the major poses (there won't be many for a bow), and then animate inbetween as needed.
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
    GeeDave, what does an FK setup consist of?
  • GeeDave
    Options
    Offline / Send Message
    GeeDave polycounter lvl 11
    Boulderdash! You know exactly what an FK rig is, it's your rig before you apply an IK solver, and can consist of all the usual suspects. Bones, Geo, Dummies, Splines etc.

    With an IK solver, you're hoping for an "automatic" solution to a very simple problem, this is just a bow, not an arm or a leg. The animation of a bow is 2D and while a bendable IK would be nice, it's a bit overkill.

    That said, spline IK's and wire parameters will get you a pretty nice "auto" bow pretty swiftly.
  • Mark Dygert
    Options
    Offline / Send Message
    FK stands for Forward Kinematics, its how bones normally operate where the parent influences what is linked, normally through rotation. You move the parent and only the children follow.

    With Inverse Kinematics, the children influence the parents, you move the end of the chain and all other links are effected.

    You aren't creating a real world simulation but bending a few points in 3D space to behave in the way you want with the least effort and complexity possible. The simplest solution is normally the best, especially when dealing with games where every layer of complexity can slow the game down and add to it another way in which to break.

    You MIGHT be able to do this with two bones and control the bending of the bow/string through the weighting. One bone for the bow, one for the string, I would have to test it out and play with it.

    Or actually you might need 4 bones, one for the string one for the bow and one for each tip. The two tip bones could be link constrained to the main bow and string, so as the string is pulled back the tips assume a point between the bow and the string.
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
    GeeDave, oh ok I see. the problem is for some reason I cannot move the bones without IK. As soon as I delete the IK gismos it's just bones and I can't move them. Also, here is a video showing what i was going for with the IK: http://vimeo.com/29973835

    Mark Dygert, I have tried 4 total bones (one for one side of bow,then one for half the string.then i mirrored that for the other half of the bow) but the few amount of bones make the bending real hard,not a smooth flow of the polygons on my model.
  • Mark Dygert
    Options
    Offline / Send Message
    BowRig.gif
    Two bones and adjusted weights.

    It helped to animate the bones, and then blend the weights while it was in the extreme drawn back position. Making the rig more complex won't solve the weighting problem you will need to weight them effectively no matter how complex the rig is.

    I can see making it slightly more complex if you plan to do a lot of bows and want to just easily skin all of those bows to some already animated bones, but a HI/IK rig might be harder to export correctly. You might have to bake the joint rotations or come up with a simpler rig that is constrained to the HI/IK rig, skin to that and export only the simple rig.

    Personally I would rather just keep the bows simple, and adjust the weights with two bones. Less moving parts, less likely to break.
  • Lamoot
    Options
    Offline / Send Message
    Lamoot polycounter lvl 7
    You can check the bow rigging tutorial at CGMasters http://www.cgmasters.net/free-tutorials/bow-and-arrow-rigging/ . It's done in Blender and involves a few more bones, but the end result is very nice to use. Perhaps some of the things shown here will be of help?
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
    I have tried watching the video in Lamoot's post but I'm currently stuck because i can't move the child bones
  • GeeDave
    Options
    Offline / Send Message
    GeeDave polycounter lvl 11
    Sounds like you've b0rked the controller up, you can either re-assign it here:

    (the values here are the default ones)
    2012-09-18_1523.png

    Or just create a new, clean rig.

    Not sure how else to help without making a specific video. If you're still getting stuck after building a new rig, you'll need to provide more information than "can't move the child bones".

    Good luck, and don't over-think it.
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
    GeeDave, I'm not sure what you mean with the controller. Here's my new rig. I'm trying to move the single bone to the left that's the string bone.
    capturevrm.jpg
  • poopipe
    Options
    Offline / Send Message
    poopipe grand marshal polycounter
    If you want it done quick n simple just go with the fk solution. to rig it with ik and for it to be usable (ie pull string, bow bends) things get a fair bit more involved and you're not looking at a simple 1 level rig.

    Its a good example to learn from if you decide to put the time in but its a question of whether you need it done now or in a day or two...
  • Mark Dygert
    Options
    Offline / Send Message
    Is the string bow parented to the main bow bone? If so the scale and length on bones is locked by default. By moving a child you are attempting to change the length of the bone (that isn't actually visually represented in the scene, but because they where linked, the distance was locked).

    A bone is just 2 points in space, when you parent one object to another the distance between the two pivots, gets locked by default.

    To change this...
    Click on the main bow bone.
    Go to main menu > animation > Bone Tools.
    Down at the bottom under Object properties uncheck "Freeze length" and set stretch to none. Now you should be able to move the string bow and it will still follow the main bone.

    Doing this allows the length of the invisible bone between the string and the main bone, to change (you created a bone by linking the two objects, but it is not visually represented in the scene). I have no clue what this will do to an exporter, most games lock the length of bones and don't allow you to change the distance between them, some do but you need to flip some pretty deep settings to make it happen and it can come at a pretty high cost.
    So if you are working with an exporter you should test this.

    If you can NOT adjust bone lengths due to technical constraints...
    You could try setting up a 3 bones and use a IK Limb solver. This is a little more widely supported by most popular game engines and it won't change the length of the bones but will allow you to side the end forward and back. A bit like your arm or leg, where it gets its name and common use from.

    Note: it's important to put a slight bend in your chain because it acts like a rubber band, if your bones are perfectly straight it won't know what way to bend.
    BowRigString.gif

    You can parent the base of this chain to the main bone and it will follow it while still allowing you to move the end effector of the IK limb solver. You can parent the end effector to the main bone also.

    You might want to lock down its X and Y motion (hierarchy tab > Link Info) so it only moves on one axis.

    This creates a few more bones than is necessary but you might be well within the number of bones the game allows for weapons, but again you should check and test this. If you are over, you might need to create another simplified rig, skin your mesh to that and export it, using this more complex rig for the mechanics.
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
    Mark Dygert, I tried to uncheck the "freeze length properties" on all the bones.it worked i could rotate all the bones and i could move the string bone around freely.However,you said to watch out with exporters and as I'm exporting this to udk i decided to undo it.to re-check the "Freeze length" boxes on all the bones.This made the string bone unable to move but the other bones can still be rotated etc.

    I'm using the IK Limb solver which seems to work well for the bending,to an extent. Before I can really test that i need to get the string bone moving so i can connect them to move at the same time.
  • Mark Dygert
    Options
    Offline / Send Message
    I was suggesting you use the limbIK for the string, like this...
    BowRigStringIK.gif

    I'm not sure limb IK will work effectively for the bow bending since it limits the number of bones you can have. A HI solver will allow you to have more bones and do the same thing making the bend (and default skin weights) much more smooth. Just don't go crazy with the bone counts, you could easily use half of the bones I used and still get a decent bend.

    Then you just need attach all of the end effectors to the main bone so they follow along and rotate properly.

    You will need to animate each of the 3 end points independently, unless you want to start getting into using reaction manager or wire parameters. While this would be a good exercise to learn those things, its more time than I can devote to this =/
  • Benton
    Options
    Offline / Send Message
    Why not just animate it by hand. It seems like such a simple animation.
  • Mark Dygert
    Options
    Offline / Send Message
    Yea why use a bunch of bones, IK and HI solvers when you can use two bones like I suggested in my first post *shrug*

    None of it is all that complex to set up, it took me more time to make the gif than it did to rig and animate that example. If it exports great.

    People always think the "pros" use these overly complex systems and that they need to make complex systems for simple things because that's how the pros do it. Well... the pros have a lot of work to do and they make the systems as complex as they need to be and no more.

    The only reason I would go with my latest example over my first is that it gets the skin weights right. The reason I would use HI instead of regular FK, is animating 3 points is easier than rotating and managing the bones by hand. Granted you can rotate them all at the same time but then they curl instead of bend back. If the curl works great, if not you have to tweak it and that could take more time.

    It's not like setting up a HI chain is a complex procedure...
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
    I'm trying to learn about these solvers and helpers so I want to get this working right.i could animate most by hand but without the use of these solvers i cannot get the string bone to move. I followed your example Mark and have set up the limb bones but i ran into a new problem. it does not stay in its path like in yours it moves on the x axis only. as you can see in the picture here mine gets off that path.
    capture2im.jpg
  • Mark Dygert
    Options
    Offline / Send Message
    I would start with a fresh set of bones, it looks like the string limbIK bones are scaling in a weird direction and the solver is sliding off the end of the chain and it isn't fully extend, that is weird...

    Did you scale the bones? Because that will cause problems. Remake the string limbIK bones.
    Select the Bones create tool in the command panel, under the IK Chain Assignment rollout, set it to IKlimb and check on assign to children, then create the two bones and right click to finish it.

    If you need to adjust the bones, use Bone Tools > Edit Bone Mode.
    Why? Scale is inherited by the children from the parents and anything skinned to the bones will also take this scale into account, DO NOT SCALE BONES, unless you specifically need those types of results for a very specific reason. 99% of the time its going to FUBAR your rig.

    If you already have limbIK applied to the bones you need to delete it before you edit the bones. Click on the end effector (the "+" point helper) then delete it. This removes the limbIK chain from your scene.

    Then go into Main Menu > Animation > Bone Tools and turn on Bone Edit mode, this will allow you to reposition the bones without effecting their scale, click on each bone and move it around it will stretch and distort but everything stays zero'ed out.

    Then recreate the limbIK chain click the first bone and go into Animation > IK Solvers, pick IK Limb Solver and click on the last bone in the chain. This will recreate the IK chain. Or you could just delete the bones and recreate them, it doesn't really matter, I'm just showing you both ways to create it.

    Did you link the end of the limbIK (the "+" point helper) to the main bone? If you linked the last bone in the chain that will FUBAR the limbIK by reordering and destroying the order of the bones.
    So link the big +, (not the tiny bone nub at the end of the bone chain) to the main bone.

    TL,DR:
    I personally would turn on 3D snaps, set it to vertex, fire up the bone tool and recreate the 3 bone chains using the IK Chain Assignment option to automatically assign the HI and IK to the bones. It would take a min to recreate the rig and you would know that everything is fresh and clean.
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
    Ok so I remade the bones, the bow bend is looking better but nomatter what i do with the skin weights the string look fu@k#d up as a football bat.
    capture3qr.jpg
  • Mark Dygert
    Options
    Offline / Send Message
    Remove the verts in the middle, so there are only three sets of verts at the tips of each chain and weight the verts to the end bones.
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
    you mean on the actual model? It's not a problem but the only way I could do that is by reskinning right?
  • poopipe
    Options
    Offline / Send Message
    poopipe grand marshal polycounter
    no, just remove them - it'll be fine
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
    This is probably a dumb question but..how? I tried just deleting them from the skin edit mode and the whole string is deleted..
  • Mark Dygert
    Options
    Offline / Send Message
    Go into edge mode, select the edges, hold ctrl and click Remove. This will remove the edges and the verts. If you don't hold ctrl, it will remove the edges but leave the verts.
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
    and this would lower the resolution of the uvw map,correct?

    Alright so I did that and the bones and all look like a decent motion now so there's one other issue i noticed about the skin. The string bends like your example but it is also being stretched sheet thin...
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
  • Mark Dygert
    Options
    Offline / Send Message
    You probably have two problems...
    1) The verts in the center of the string are weighted to the bone at the end of the limbIK, which is rotating, so it twists the string.
    2) The verts on the end of the string don't point toward the string bone, so they skew rather than rotate.

    To get around this you could link bones to the last bone in each chain. Then assign "look at constraints" so they point at the right things.

    BowRigStringLookAt.gif
    The tips of the string look at the yellow string bone.
    The yellow string bone looks at the main bone, so it won't ever rotate.

    To assign a look at constraint select the bone, go Main Menu > Animation > Constraints > LookAt then click on the bone you want it to point to.

    Then you add the new bones to skin, under parameters turn on vertex this will allow you to select and weight the verts, then click the wrench button and use the skin weights tool to weight the verts for the string 100% to the newly created look At bones.
    OR
    You could detach the string from your main mesh, apply skin to it and only add the yellow bones.
  • renderhjs
    Options
    Offline / Send Message
    renderhjs sublime tool
    that is a very nice GIF :) ... saved to my folder
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
    Thank you for working with me so much on this one... this is the result of the LookAt constraint applied to the new bone.
    resultrf.jpg
  • Mark Dygert
    Options
    Offline / Send Message
    It looks like you assigned the look at constraint to the bone at the end of the HI chain, this will FUBAR the HI chain. You want to create 2 new bones and then align and link them to the end of the HI chain leaving all of the bones in the HI chain intact.

    The rig is starting to get complex and fairly dense in bones. If you are under your limit for bones great, if not you probably need to think about a removing some bones from the bow, or creating a simplified rig that aligns and keys to this more complex one. I suggest looking at Jim Jaggers Animated Align script. It's what I use in those cases.
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
    EDIT: Ok so I remade the new bones and now I got it working the way it should with the look at constraints and all and the string is skinned but there's no difference.the string still flattens in the middle.the string is detached and only skinned to the new bones,except for the middle verts
    capturefuw.jpg

    I would simplify the rig to just two bones on both the top and bottom side for the bending of the bow but the reason I havnt is because already when the bow is fully bent it looks blocky.and there's a decent amount of geometry there. If I lesson the bones it will be worse.
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
    I know,it puzzles me...
  • Mark Dygert
    Options
    Offline / Send Message
    If you wouldn't mind posting the rig, I could take a look and probably straighten it out.

    It looks like you need to create the yellow bones from scratch, and skin the string to them. The center looks to be skinned to some of the old bones in the LimbIK which will rotate pinching the string, they need to be skinned only to the yellow bones and that center yellow bone needs to be looking at the main bone so it doesn't rotate.
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
    I can't find the problem in the skin so here is the file
    http://www.mediafire.com/?hlc811oes8w3moe
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
  • Mark Dygert
    Options
    Offline / Send Message
    Oh yea thanks for the bump I downloaded it but never got around to opening it, work got in the way =P
    Sorry about that...

    So everything seems fine but the verts in the middle of the string are rotated oddly. Go back down the modifier stack to edit poly, vert mode select those verts and hit "Y" next to the Make Planar button. It will straighten those out, exit sub-object mode and click on skin and everything should be fine.
    BowStringMesh.jpg

    Or you could mirror the bow string so you have verts that slant in both directions on either side of where the arrow goes. But that adds more geometry than what is probably needed.
  • rockbox
    Options
    Offline / Send Message
    rockbox polycounter lvl 6
    That did it,I cant believe it was such a simple fix! Thanks for helping me with this problem for so long Mark haha!
  • theGrandPoobah
    Options
    Offline / Send Message
    theGrandPoobah polycounter lvl 8

    You MIGHT be able to do this with two bones and control the bending of the bow/string through the weighting. One bone for the bow, one for the string, I would have to test it out and play with it.

    Or actually you might need 4 bones, one for the string one for the bow and one for each tip. The two tip bones could be link constrained to the main bow and string, so as the string is pulled back the tips assume a point between the bow and the string.

    Sorry for the thread necro, but this is a really interesting idea, and an issue I am working to learn now. I noticed the OP ended up using a whole bunch of bones, but is it possible to just use the few bones you proposed?

    And would that look something like this diagram?
    CupidsBow-bow_rig_diagram_zps521c847e.jpg
  • Mark Dygert
    Options
    Offline / Send Message
    I think you probably mean, position constraint? A link constraint would be applied to the transform node and it only allows the object to switch parent objects at specific keys, "at 10f follow this new parent, at 20f follow this other object." It doesn't have a way to follow or blend between two parent objects at the same time.

    If you use a "Position Constraint" on the position track (not the transform node) it will allow an object to get it's position from a mid point between several objects, like the main bow and string bones.

    Position constraint has a weight that you can blend but it has a fatal flaw that needs to be solved, it would only move the points backward.

    At that point you might as well use two bones?
    Bow-Position-Constraint.gif

    I guess you could experiment with animating the position constraints weight, that might affect its trajectory a bit and cause it pull in, but that's probably not that predictable and a pain to animate. You might be able to automate it but that's a pain too.

    I think using two bones would work fine in a lot of cases, if you really need the tips to bow in as the string draws back use simple rotations, like I talked about in this thread.

    If you're allergic to doing things simply and must use something more complex this thread is littered full of convoluted ways to rig a bow, heh.
  • theGrandPoobah
    Options
    Offline / Send Message
    theGrandPoobah polycounter lvl 8
    I think you probably mean, position constraint? A link constraint would be applied to the transform node and it only allows the object to switch parent objects at specific keys, "at 10f follow this new parent, at 20f follow this other object." It doesn't have a way to follow or blend between two parent objects at the same time.

    If you use a "Position Constraint" on the position track (not the transform node) it will allow an object to get it's position from a mid point between several objects, like the main bow and string bones.

    Position constraint has a weight that you can blend but it has a fatal flaw that needs to be solved, it would only move the points backward.

    At that point you might as well use two bones?
    Bow-Position-Constraint.gif

    I guess you could experiment with animating the position constraints weight, that might affect its trajectory a bit and cause it pull in, but that's probably not that predictable and a pain to animate. You might be able to automate it but that's a pain too.

    Thanks a lot for the response and the great insights. This is really helpful to better understanding the different caveats of how to do this.


    Re your comments on link vs position constraints-- being still a beginner, I am a little unclear on the nomenclature and was simply parroting the language you were using, but thank you for the clarification and for the gif.

    As far as turning this into actionable items go, I think running with the 'vanilla rotation' execution makes the most sense. Again, this is my first run at this, so I really appreciate the feedback.


    One thing that's bothering me though is what are those circular nubs in both the examples on the x axis?


    1. Set up bone system (2 upper bones + nub, mirror at center pivot for lower bones).

    2. Create the 'circular nubs' (helpers?)

    3. Link IK HI solvers from bone closes to nub to the 'mid-bone'

    4. apply Orientation Constraint from bones closest to nub to the (helper) at mid point on bow string.

    5. Apply transform constraints to the (helper) only able to move on x-axis.

    6. Link the two mid-bones to the (helper) on the right/outside of the bone.

    Sorry if this is a little too granular, but I have been drilling into the Autodesk video tutorials and I'm struggling to turn what I have learned into something actionable.
  • Mark Dygert
    Options
    Offline / Send Message
    The circular nubs sitting on the black line, are just the tips of a bone chain after I deleted the bones, leaving the nubs.

    A bone is technically a distance between two points (the child and the parent), if a bone doesn't have some kind of child at the end, the bone is just one point with no length, even if the visual representation looks like it has length.
    Bone%20Length.jpg
    Even though the upper bone looks like it has length, its really just a single point, it needs a child linked to it in order for it to actually have length.

    1. Set up bone system (2 upper bones + nub, mirror at center pivot for lower bones).
    2. Create the 'circular nubs' (helpers?) (single point bones)
    3. Link the two mid-bones to the (helper) on the right/outside of the bone.
    4. Select the bone chains, set the pivot gizmo to local, turn on autokey and rotate the bone chain to draw it back and rotate it while animating.

    You don't need the HI solvers, simple bone rotation is all you really need (step 4).

    You don't really need the look at constraints for the string, unless you run into problems with the string losing volume. But there are a few other ways to handle that with skinning and smart use of geometry, rather than just throwing more bones at it.
  • theGrandPoobah
    Options
    Offline / Send Message
    theGrandPoobah polycounter lvl 8
    Thanks! I like your minimalist rig model, but what if I did indeed want the bow string to be the driving force for the rest of the bow like in real life.

    What additions would I have to make?
  • theGrandPoobah
    Options
    Offline / Send Message
    theGrandPoobah polycounter lvl 8
    I may be missing something, but I tried what I perceived to be your revision of my suggested process for rigging this bow.

    [/post edited for clarity, check new post for update]

    I have a couple questions:
    1) What is linking the two mid bones to the outer nub meant to achieve? It doesn't even seem to be mentioned for actually animating the bones-- the end user has to select all the bones, and then rotate them.

    2) What is the purpose of the the rear nub/bone? It's not mentioned at all in the process.

    3) In the outer nub creation, you mentioned deleting the bones the nubs were originally attached to. Do the nubs have to be on the same chain? I created two sets of bones, roughly matching them with my eye
  • theGrandPoobah
    Options
    Offline / Send Message
    theGrandPoobah polycounter lvl 8
    Update. So, after hovering in this thread the entire day and studying the max file the OP uploaded, I had my own crack and completely starting the rig over. This time, I made sure the bones were mirrored on the plane as precisely as possible.

    My objective: create the rig emulating this gif that @MarkDygert posted:
    BowRigStringIK.gif
    My rig has few bones based on this gif:
    Bow-Position-Constraint.gif

    Here's the series of bones I created, with their hierarchy also displayed:
    bow_rig_prob4_zpsfd485442.jpg

    The two bow bone-nubs have a look-at constraint applied to the IKLimb goal. Obviously, that isn't sufficient to drive the rest of the bones to curve as the bow string is bent.

    I could be wrong, but I feel very close-- what am I missing? Do I need to add the bones that were in the OP's mesh (a bone and a bone nub aligned and linked to both IK HI goals)? The OP's bow was not bending like either of the bows depicted in the GIF fyi.

    Appreciate any feedback!
  • Mark Dygert
    Options
    Offline / Send Message
    1) What is linking the two mid bones to the outer nub meant to achieve? It doesn't even seem to be mentioned for actually animating the bones-- the end user has to select all the bones, and then rotate them.
    The nub out in front of the bow is the main bone, all bone chains link to it, so they all move with it, this way you can link that bone to a hand and everything follows along.
    2) What is the purpose of the the rear nub/bone? It's not mentioned at all in the process.
    That's for the string.
    3) In the outer nub creation, you mentioned deleting the bones the nubs were originally attached to. Do the nubs have to be on the same chain? I created two sets of bones, roughly matching them with my eye
    No the nub was just a simple bone, the end point of a chain after I removed the chain. I copied it to make the string bone.
  • Mark Dygert
    Options
    Offline / Send Message
    My objective: create the rig emulating this gif that @MarkDygert posted:
    BowRigStringIK.gif
    This rig is an overly complicated pile of crap. It's what happens when someone wants to learn a few techniques and I overly complicate a project they where already working on so they have a frame of reference. No one is going to make a rig like that, its only good as an example of how to use HI solvers and look at constraint.
    The two bow bone-nubs have a look-at constraint applied to the IKLimb goal.
    The LimbIK is to get around ancient engines that do not allow bone scaling. All engines except for po-dunk backwater engines made by someones cousin, support bone scaling so you should never have to use limb IK for the string, it was a "what if my engine is crazy stupid simple?" Chances are you can turn off freeze length and squash/stretch in Bone Tools and and you will be able to draw back the string bow without having to have bones with locked lengths. Almost every game since Half Life supports this... 1998... 16 years ago, pre-xbox... pre-halo... That example isn't advanced, it's ancient.
    Obviously, that isn't sufficient to drive the rest of the bones to curve as the bow string is bent.
    Nothing in that HIsolver example drives everything, it is 3 pieces animated separately. You still have to animate the end effectors and the bow string independently. To have one thing drive everything you end up spending a lot of time with reaction manger or wire parameters or scripting to make those connections work. That's a lot of time wasted when you could be animating and no professional is going to waste time on something like that unless the absolutely have to.

    Still if you're interested in figuring it out just for the sake of learning, reaction manager is probably the most straight forward way to do it without knowing any scripting. Set the string bone position as the master, and the bow bones rotation as the slaves.
    Create 3 states:
    State1 = Bow in natural position.
    State2 = Bow drawn back.
    State3 = Bow over extended.

    Bow-Reaction-Manger.gif
    But to dial in each state you have to sit there in reaction manager and edit the values, which is a lot more tedious than just rotating the bones when you're animating. Plus by using reaction manager you're locking the bones to these pre-defined states, if you want to change it you can't just grab the bones and tweak it, you have to come back in and adjust the states.

    I'm not even going to bother going into scripting or wire parameters, that's a lot more complicated and has a lot more prerequisite knowledge than I want to cover.
  • theGrandPoobah
    Options
    Offline / Send Message
    theGrandPoobah polycounter lvl 8
    Gotcha, thanks for the clarification.

    I kept thinking in the back of my mind, the rig created in this example:
    http://vimeo.com/29973835

    But you're right, it looks like he is using wire parameters as well as HI solvers.

    Edit: I see your point about the reaction manager boondoggle and the need to animate this regardless, so might as well go back to that.

    I apologize if I look like I am running around in circles, but I am interested in returning back to your original suggestion of using the rotate tool-- the issue I had when I first tried this was that trying to rotate the bones by selecting the mid bones and rotating the z-axis.


    but if I understand correctly, in the original simple rig, you're saying that I should forget about all the IK solvers and just rotate each individual bone's z-axis, manually transform the bow bone's x-axis and then weight those bones to the mesh (using skin modifier) accordingly?

    Also, I tried linking the single bow bone/nub to the chief bone and I can no longer transform the nub-- how do you link the bone so that it follows the parent but still can transform?
  • Mark Dygert
    Options
    Offline / Send Message
    ... you're saying that I should forget about all the IK solvers and just rotate each individual bone's z-axis
    Set your pivot gizmo to local and "use pivot point center" (Max defaults to this when you turn on autokey). Then select the bones and rotate them. Each one will rotate from it's own pivot, they will do this:
    Bow-Bones.gif
    If both sides don't rotate the right way, they where not mirrored correctly. You can remirror them using bone tools, try ZX first that should do the trick but it really depends on what viewport you drew the bones in as to how their pivots are oriented.
    Also, I tried linking the single bow bone/nub to the chief bone and I can no longer transform the nub-- how do you link the bone so that it follows the parent but still can transform?
    To solve this you go into the Bone Tools menu, expand "Object Proterties, select your root bone and the string bone, uncheck "freeze length" and set Strech to none.
    Screenshot%202013-12-21%2018.32.56.png
    This needs to be done for both bones in the link that you want to free. By linking the string bone to the main bone, it creates a bone (that is invisible), bones have their lengths frozen by default so they don't stretch, but you can turn that off in bone tools, but it has to be done on both ends of the bone.
  • theGrandPoobah
    Options
    Offline / Send Message
    theGrandPoobah polycounter lvl 8
    Set your pivot gizmo to local and "use pivot point center" (Max defaults to this when you turn on autokey). Then select the bones and rotate them. Each one will rotate from it's own pivot, they will do this:
    Bow-Bones.gif

    FYI, I created controllers because of my inability to manipulate the chains like your GIF shows. In this screen grab, the controllers are not constraining the bones.

    If both sides don't rotate the right way, they where not mirrored correctly. You can remirror them using bone tools, try ZX first that should do the trick but it really depends on what viewport you drew the bones in as to how their pivots are oriented.

    I tried that last time, and it just ended up turning into a haymaker, with each bone spinning from its pivot, but looking nothing like that GIF.

    Here's a screen grab of what I have, after just trying again:

    bow_rig_prob5_zps14b852ed.jpg

    edit2: just redid the mirror after re-positioning the mesh/bone chain-- I was mirroring the bone chain just on the Y-axis when I should have mirrored on the YZ-axis.

    That seems to have done the trick!

    Edit 3:Well as an update, the bow and arrow has been skinned and animated. Thanks a ton for the advice, Mark! You're right, once I figured out the shenanigans, it's a much faster solution.

    I'd like to figure out how to create a controller so I don't have to select all the bones each time I'd like to animate though...
  • Mark Dygert
    Options
    Offline / Send Message
    Using reaction manager as I outlined in my previous post will set it up so the string bone drives the two bow bone chains. You could also use wire parameters and scripting but that requires some fairly advanced rigging knowledge. It would take me quite a few posts to go over it all and I just don't have time for that. Reaction manager is probably the only way to do it without scripting.
Sign In or Register to comment.