3
$\begingroup$

I am rigging a crossbow to be exported to Unity3D. It is currently just a model of a bow, and I am trying to perfect the rig as much as possible before I model the stock. I have been trying to fix a problem where the bow deforms the opposite way it should along the mirror axis, even though I have already applied the mirror modifier. It looks (mostly) fine before deforming,Looks Fine but when it deforms, it is absolutely horrible when it crosses over the y-axisI don't even think I have to say what is wrong with it I don't think this has much to do with it, but I am using inverse kinematics, TrackTo, rigify, and, as stated earlier, a mirror modifier, but it was applied earlier. In the first picture, you can see that only one half is rigged, and the other should be mirroring it, I have checked vertex weights, bone constraints, all of the modifiers, and everything I currently know that can go wrong, but have found no indication of what could be happening. I am fairly new to armatures and rigging, so I am sorry if this has a very simple fix that I am not aware of. If anyone knows how to fix this, I would appreciate it if you could answer.

Thanks in advance.

$\endgroup$
2
$\begingroup$

You'll need to create a symmetrical armature first, rig it properly, and then assign proper weights to the mesh. What you get is partially logical. Think about it: The vertices of the right hand side of your crossbow are parented to the left bone. That bone, when it deforms, rotates counter-clockwise. Since the vertices have no idea yet that they should behave like they were mirrored, they just inherit this rotation, and everything becomes distorted. Without having your model in hand, it's impossible to judge what's causing the middle section to deform in such a strange manner. But in your screenshot, some bones under the large deformation bone are visible, so I'd suggest looking there.

To tell the right hand side to behave mirrored, they need bones which behave like so. So your rig should in top view look like this:

rig top view

I've created the left hand side, setup the constraints in Pose Mode, and when I was done I mirrored the deformation bones using the Cursor as the mirroring center. To mirror, select the bones in Edit Mode, Shift + D to duplicate, RMB click to Cancel translation. Then, Ctrl + M to activate mirroring, and type in the axis:

armature mirror

The weighting for this example is easier, as you can take advantage of the mirror modifier, which creates the right half for you automatically. Important: You need to stick to a naming convention for this to work. Name your bones Bone.L, Bone002.L for the left side, and Bone.R, Bone001.R for the right side, so Blender knows its way. There is a nice tool in the Specials Menu, keybinding W, in Edit Mode, which helps you in this:

flip names

Paint your weights now before you add a mirror modifier, make sure there are EMPTY Bone.R, Bone001.R vertex groups present, and then add and apply the mirror modifier afterwards. Alternatively, you can of course use the Automatic Weights Binding and fix the weights later.

Here is an example Blend file:

Use it like this:

using the rig

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.