wierd IKspline deformation

this is my first time at setting up and IK spline. i was following a tutorial and this happened: http://img689.imageshack.us/img689/3969/iksplinestuffup3.png
By dragoncath at 2012-02-21

just so you know, it was a snake.
but this is what happened to the bones. these are the first bones in the chain:
http://img850.imageshack.us/img850/7403/iksplinestuffup.png
By dragoncath at 2012-02-21

i need a hand with this, as it is for an assignment at school and i chose to use blender to make it

Upload the .blend and I’ll take a look, the only thing I can tell from your screenshots is that it isn’t working…

Randy

here: http://www.pasteall.org/blend/11953

Ok, took a look at it and really I think the easiest way to fix it would be to start over. That’s not as bad as it sounds… here’s why: you have 162 bones in the spline IK chain and I’m not sure how you created them all (perhaps starting with one bone and subdividing it until you ended up with 162), but the naming of all those bones is a bit of a mess. Bone.096 parent is Bone.015, Bone.015 parent is Bone.097, etc, etc, so the naming isn’t logical - it isn’t like Bone.001 parent is Bone.002, Bone.002 parent is Bone.003 and so on. So trying to figure out the problem is confusing from the start. So that’s the first reason why I would start over.

The second reason why I would start over is you don’t need 162 bones. At the very most, you’d only need 65 bones. Your snake has 65 edge loops on it’s body and the mesh can only deform/bend where you have edge loops. So you have about 100 extra bones in there that really won’t be doing much of anything other than making it confusing. And really, I think it might work good enough if you only had maybe 40 bones.

It’s really not as bad or as much work as you might think (although some of it might be boring stupid work). I would do it in this manner:

  • select the mesh and delete the armature modifier
  • go to the object data panel (icon looks like upside down triangle) scroll down to vertex groups and delete all them
  • select the curve in object mode, tab into edit mode and select the control point closest to the head and snap the cursor to it
  • select the spline armature in object mode, tab into edit mode and select all bones & delete them
  • add a new bone
  • select the curve again in object mode, enter edit mode and select the last control point at the tail end, snap the cursor there
  • select the new bone just created and in edit mode, select the tip (the ball at the top pointy end) and snap that to the cursor
  • now select the whole bone (not just the tip that is selected) and subdivide it until you have 40-65 bones
  • add the spline IK constraint like you did before, to the last bone in the chain and check that it works

Once it’s working, you get the fun (bull$hit, pain in the a$$) job of renaming all those bones so they have some sort of order to them. No easy way to do it, but to make the job less work, I’d name the first bone something like ‘bone’, copy the name ‘bone’ with ctrl-c, then rename the ‘bone’ to ‘bone.1’. Now when you select the next bone, you can select it’s name and paste with ctrl-v, and just add .2 to the end of the name, then just repeat this process until they are all renamed…this is why I would go with only 40 or so bones.

If you work and get the file to this point, paste it up and post the link, and I’ll take a look and show you how to finish it. By the way, there are 2 or 3 other things that should be changed, but they are minor.

I’m more than willing to help, but you have to get the above part finished first.
Good luck!

Randy

Randy,

Super post. One thing, though - in such a case I would skip the naming step. Believe me, I like naming things - ojects, bones, materials, textures… Heck, I am even an advocate of renaming Object Data meshes with a python loop if the .blend is for redistrobution.

But no way would I rename 65 snake vertebrae!

-rking

rking,

I do see your point, 65 is a lot of bones!! And the truth is, I think we could get away with only 40 bones, maybe even 30, and still get good deformation. Yes in this case, since they are in a separate armature, I guess that step could be skipped.

To be honest, if it was my project, I would name them all, but I would cheat at naming them by using a few ‘tricks’ while I created them and letting blender do the dirty work. Since the OP mentions this is for a school assignment, I won’t mention those ‘tricks’ for fear of creating confusion.

Yes, dragongirl, skip the renaming step!!!

Randy

hi randy.
thanks for that but i can’t remember how to get the spline armature to follow the curve and i can’t find the tutorial that told me.

You really don’t need a tutorial, ti’s pretty simple, look:


On the last bone, in this screen shot from your previous attempt it’s the one that is colored yellow, add a spline IK constraint to it. Fill in the name of the curve as shown, and set the # of bones. And that’s pretty much it…

Randy

awsome. now, i’m haveing trouble with the head rig.

Can you post a .blend? :spin:

Randy