Rigging in x-axis (Blender 2.5)

I do checked X-Mirror when painting the weight, but the left side of my character is still virgin. Am i loosing something?

I also changed the names of the bones, with a certain convention, like: arm1_L, arm1_R , and it still won’t work.

Sounds like things aren’t really mirrored in your armature. If you aren’t too far along, I’d start over.

The way I always do this (and I am in 2.5 as well) is this:

  • Make left side. I always append a .L to my bones… ie Shoulder.L, Arm.L, hand.L, etc…
  • Select all bones you want mirrored.
  • Duplicate the bones (Shift-D. Then hit Escape.)
  • Switch to using 3D Cursor Pivot point. (hit the period)
  • Hit Shift-C to center it.
  • Mirror it using CTRL-M (look at bottom left hand corner and you see you have an option of axis. Choose X by hitting the X Key)
  • Now click to deselect (with my mouse setup, that is the left mouse button. I click anywhere in the 3D panel)
  • While new bones are selected, hit the ‘W’ key.
  • Choose “Flip Names Option” and your bones are renamed.

Now, I go into the edit mode. This is a “just to be sure” thing. Select Mirror-X Axis. Select each bone on the left side. Hit G to grab. This makes your two sides equal. Then you can hit the deselect button without moving anything (Right click for my mouse.)

One thing to make sure of is your bone’s roll. When you create an armature, always make sure you are in the ortho mode, not the perspective mode. And always work from the exact front or the exact side. (ie, hit 5 for ortho… hit 1 to view front, hit 3 for side, hit 7 for top.)

Otherwise, when you extrude, you will be rolling your bone unintentionally. Fixing a rolled bone later is a real pain… better to do it up front.

For “mirroring” my armature i used Shift+E each time i needed a mirrored bone. With that command, i can add new bones on left and right at a time, like in this tutorial i’m folowing:
http://wiki.blender.org/index.php/Doc:Tutorials/Animation/BSoD/Character_Animation/Upper_body_armature

Names of the bones are automatically assigned when symmetrically extruding, so x-mirror should work afterwards.

Anyway, as things were failing, i started from scratch and i made a new armature. This time, i renamed the bones.

You can check my results here, in this file:
http://www.aoi-castellano.com.ar/img_al_foro/errores/ranaForAnimate14.blend

Thanks a lot for your comments. I know first seven steps because i use them to create a second eye from an existing one, by i didn’t know it was usefull for armatures as well. Now i’ll try to find out my problem following your instructions. But if you have any other clue, you’ll be welcome.

First time i read the related tutorial my character was ok. But now, with a new character, things are not right.

OK, I am stumped. I looked at your armature. the rotations were messed up, but even when I adjusted that that, the weight painting is not mirroring. I even renamed everything to .L and I even did the create half and mirror thing that works for me, and I had the same effect.

The only thing I can think is that maybe the mesh is not symmetrical? I haven’t checked that, but it is the only thing I can think of… Sorry. I can’t help you. It will take someone better at Blender than me, I’m afraid…

I cannot remember all of the details now, but it seems to me I did something similar when I started out and ended up changing to the “Animate all of one side then mirror” workflow instead.

One thing I would definitely check is your bone rotation. (I haven’t looked at your blend file yet…) It is really easy to mess up rotations in blender when you just grab and pull.

One thing I would definitely check is your bone rotation.

I might be so. I think i pressed alt+R to to clear the rotation of the armature object… but maybe i did it in edit mode, when i had just one bone. So it might be so.

My mesh is imported from another program (Art of Illusion). It’s certainly symmetrical. But if it wasn’t, should that make any difference?

Once i imported the mesh i didn’t manage to place it in the right orientation by changing the coordinates. I did it manually. Anyway, the orientation of the mesh should mess up the armature.

I’ll start with a new armature, making sure that the object (and not the root bone) is not rotated. It should be by default. And the rest of the centered bones should be exactly aligned to the first one as well?

Well, clearing rotation in pose mode doesn’t change the initial set-up in Edit mode. But I don’t think that is your problem here. (It will be a problem when you go to animate, but that shouldn’t throw off the weight painting.)

I would definitely go into a modeling program, bring the frog in, and set it’s correct orientation. Save it back out (maybe even export it as an OBJ file) and bring it back in and see if that helps. (I would use something other than Blender to do this – just to make sure nothing carries over from your scene. If you have something other than Blender…)

Just a hunch, but I can sort of see where that MIGHT mess things up.

Nothing else leaps out at me. I hope someone who knows Blender well jumps in this thread, because I am pretty much out of bullets.

@MarkJoel60 Thanks! Exporting the mesh well centered, and in the appropriated rotation required by blender (in .obj) the mirror now works. That was it.

Btw: i use Art of Illusion as modeler. It’s similar to Wings3d through a plugin called Polymesh, but it’s much more handy. Even AoI has a good rendering engine, and it supports animations. But for animations Blender is absolutely better. So here i’m.

I’m glad you guys figured this out :smiley:

I’d just like to explain how to do this in Blender without external tools…

select the mesh in object mode, press ctrl+a and apply both location and rotation. Then delete half of the mesh. Select all the vertices along the center in front ortho view (make sure to disable backface culling so you can include both front and back verts) and scale them down along X to make them into a straight line. While they are still selected set their location X to 0 (press n key for transforms). Then re-mirror the mesh with the mirror modifier.

You may need to redo the weights, but atleast it will work properly from then on :slight_smile:

And just for curiosity sake, the reason this was a problem is because the mirror modifier works on the object locally… so if the object is rotated, the X axis is no longer matching the global x-axis. If you take your original file, delete half, and apply the mirror modifier in X you’ll see it mirrors upwards (in global Z). This means that weight painting was attempting to do the same thing :slight_smile: …and then just that additional issue of the center vertices being aligned properly.

It’s interesting… I just realized the rotation value causing the big concern is actually on the XYZ Euler property - hidden from view. This could lead to a whole new generation of rigging confusion! But this is precisely why you always clear transforms before starting a rig. I will make sure to address both of these issues in the tutorials I am working on, thanks guys :slight_smile:

the center in front ortho view (make sure to disable backface culling so you can include both front and back verts) and scale them down along X to make them into a straight line. While they are still selected set their location X to 0 (press n key for transforms). Then re-mirror the mesh with the mirror modifier.

You may need to redo the weights, but at least it will work properly from then on

This seems to works, but let me ask just a couple of points:

  • Why scaling on x? Can’t we just forget that step?
  • The mirror doesn’t have to be applied? If not, well… i can see both sides of the mesh being painted at once. But it’s certainly not the way i was getting amused to. As my tutorial says, mirror do has to be applied before rigging, and if i make so after following your steps, the the method proposed just won’t work.

so if the object is rotated, the X axis is no longer matching the global x-axis.

Certainly, this must be the key.

If you take your original file, delete half, and apply the mirror modifier in X you’ll see it mirrors upwards (in global Z). This means that weight painting was attempting to do the same thing

ANd this, oh! I’ll have to think about it for a couple of days. But i can figure it out. Thanks for commenting.

I’d like to read your tutorials in a further time. Have you something already online?

The reason for scaling the center vertices in X is to make sure they are perfectly aligned in X - it’s a trick :slight_smile: If you were to simply select them all and set location X to 0 the center of the selection would be at X=0 but each vertice would have it’s own individual X value. Scaling them into eachother ensures they all share the same X value.

I use blender to model, and when I do I always enable ‘do clipping’ on the mirror modifier to snap all the vertices at the center automatically while I work.

The mirror modifier can be applied, yes. I’m sorry I didn’t make that explicit, but then again you don’t have to apply it unless you plan to use asymmetrical shapekeys.

I have not made many tutorials yet myself. I am currently putting together a video tutorial series for my blog. Everything I currently know about rigging can be found linked there in one form or another :slight_smile:

Now i understood the scaling to x axis trick.

The mirror modifier can be applied, yes. I’m sorry I didn’t make that explicit, but then again you don’t have to apply it unless you plan to use asymmetrical shapekeys.

Mh… Even when we already solved this thread, i wish i could understand your point. The mirror is applied to the mesh, so when i weight paint it, both sides of the mesh are being painted. But if i try to move a bone, both sides of the mesh moves. So they are not independent.

The Riggind Repo seems to be a place to visit often. Last week i searched for video tutorials on rigging with null results. The videos on youtube that are supposed to teach how to rig in blender are just complex rigged characters to show how it moves.

Sorry I’m probably trying to address too many issues at once :slight_smile: lol, I tend to do that sometimes because there is a lot of information to cover :eek:

A character can be fully rigged without applying the mirror modifier, so long as the mirror modifier is placed above the armature modifier, and the ‘vertex groups’ function is enabled on the mirror modifier. For an example check out Larry, he is a fully rigged character I made using a mirrored mesh. It just doesn’t work to do this if you plan to use asymmetrical shapekeys (since the mirror modifier influences the mesh after the shapekeys; you wouldn’t be able to make asymmetrical shapekeys on a mirrored mesh).

I’m with Larry’s file. The rig is pretty complex, as far as i know. It consist in other things but not in bones. So, i’ll be waiting for the beginners tutorials in your channel. And i’ll take it easy, not trying to understand everything on my first steps on Blender.

Off topic: i also made a dragon some months ago. I you can see him flying here: http://www.youtube.com/watch?v=UAUB-qtBrDs

Very nice animation :smiley:

Yea I just meant for you to check out the mesh on larry and see that it was mirrored, yet the controls are able to move the left and right side separately.

I will make sure to address these issues in my tutorials. I’m planning on covering all the basics first, in order to provide a proper foundation, and clear up a lot of the simple yet misleading traps that many new users fall into :slight_smile:

Here i’m again. A new character has problems to be rigged with x-mirror. I tried scaling x vertex to 0 (middle ones) and writing 0 in the N panel for x, z, and y. But when i paint the model, even when i can see the weight paint reflected in the other half of the mesh, the bones just won’t take weight from there opposites.

Could you please check the file?
http://www.aoi-castellano.com.ar/img_al_foro/ejemplos/varios/pajarito21.blend

Hi mayid,

The file is working properly. I think what is confusing you is the way weight painting is displayed when using a mirrored mesh. Since there isn’t actually another side to the mesh you are painting, the weights for both sides are displayed for the bone you have painted. But if you rotate the sides individually, you will see that they rotate independently left and right.

I would actually suggest that you apply the mirror modifier before weight painting, but it is up to you :slight_smile:

Remember though that if you plan to use shapekeys you will need to apply the mirror modifier first.

I see. The mirror was confusing me. Thanks a lot!

(i’m not sure about what shapekeys are. Meyba the keys to animate?)

I think the way i’m rigging is the basic one. If you have a “second level” rigging tutorial handy, please point it to me. I’d like to know if there’s a way for “auto weight paint” or something… : )

UF! I did half of what you suggested. I painted the weight whit the mirror (not applying it). And after painting all the bird, i applied it finally. But a half moves the whole, and the other half, nothing.

:o

But if you rotate the sides individually, you will see that they rotate independently left and right.

But they are supposed to move flesh with 'em! And just one side does. http://www.friendlyskies.net/aoiforum/img/smilies/icon_eek.gif

Hmmm not really sure what you might have done…

Applying the mirror modifier should mirror the weights on the mesh. It works when I tried it.

There is an ‘auto paint’ kind of thing you could use:
Parent the mesh to the armature with ctrl+p>>Armature Deform with Automatic Weights. Then make sure you only have one armature modifier in your modifiers panel (if you already had one applied it will create another one). You could then adjust the weights yourself to clean it up a bit. :slight_smile:

Thanks for caring. I assume that the practice will reveal me some mysteries. This afternoon i repainted the bones, so i have the character already working on a scene. My bird is flying!