I’m doing the rigging of a game character with IK arms and legs and I’d like to share some solutions I found to do the rigging. This may not be the best solution: feel free to propose me a better one! 🙂
I will share the full character once everything seems to work smoothly.
The goal is to learn a bit more about complex rig that include IK stretch and muscles deformation to have better realistic behavior such as elbow, biceps or deltoids that moves the skin.
The first hint is a very easy way to have Strechy arm with an IK target controller.
This is what I did to simulate deltoids, pectoral and biceps linked to the IK. A lot of trials to get the stretch/muscle bones not going crazy but if you look in the file, the addition of the “no roll” arm bone as a controller for them was the solution and is also very useful for other bones I’ll post later.
Skinning is very bad but I focused only on the rigging 😉
Note that it’s also working in the Game Engine at a very decent framerate.
It’s very fun to do actually.
I have two problems with my whole character rig for now. The stretchy arm is working but there is a small difference between to the rest position and the pose position.I don’t understand why and I don’t even know if that’s an issue or not… but I keep in mind that those two modes should be the same by default? Am I wrong?
The file is in the first post, if someone know how to fix that, it would be very nice! 🙂
The second problem is for the hips rotation that doesn’t work very well like I did. @georgesl could maybe tell me more about it. I started like your “Bertrand” setup but I have a cycle problem why I tried to move both the hips pivot to the root pivot and the root pivot to the hips pivot at the same time. Typically a cycle problem, but how to solve that inside the same armature? Daniel Salazar spoke about it during his conference in Amsterdam. He used two armature but do we have to do that in that case?
No, this is not the angle that makes my armature change. But I find out what happens! This is related to stretch feature of the IK. Probably because the pole target is used and is not exactly located in the center of the IK chain when threshold is reached (or something like that :D). The solution is to not use the pole target at all… and let the IK be driven by the last bone rotation of the IK chain. The second rig of Rigify works like that instead of using the pole target and I find it not that bad. I don’t know what an animator would prefer?
Last hint for the arm rig : muscle bones (deltoids) are not enough to deform correctly the base of the arm and the shoulder area for some poses. All tutorials I watched explain how to use extra bones to simulate the roll of the forearm but this approach is also very useful to do the shoulder area. The “no roll” bone I spoke about before is again very handy in the setup.
I used b-bones of Blender that allows segmentation and automatic roll depending of the child bone. This is a really old feature of Blender but still very powerful. This is doable with long chain of multiple bones in outdated software like Maya with spline IK or expression 😉
I really don’t know if I did well on that part because I found no information about it, but at the end, this works quite well. Again, don’t hesitate to give me your opinion!
Legs/foot roll is done except the stretch IK yet and I still need the have a better control of my hips but I’m close to have a complete rig that is BGE compatible and I’ll could start some animations very soon! 🙂
I finally finished the full body rig! with stretch arms and legs, foot roll controller and some muscle/tendon deformers.
I tried to make it as simple as possible : no switch IK/FK that is useless to me with the Blender workflow. No driver curves are used, muscle are driven automatically in the armature itself, without any shapekeys and even the IK roll is directly constrained by the bone rotation rather than a separate pole vector controller. Everything is then easily portable on any character and works on the BGE as well.
Any remarks are welcome!
New version of the rig!
I did some mistakes that should be fixed now. I added a calf muscle like @collignon_david suggest me but it was really not so easy to do! :-w
There is a stretch and squash controller for the head and the muscles now follow correctly the arms and legs even if they are stretched and bended.
It’s now time to try it in my game prototype! 🙂
Based on that topic, this operator creates an empty object in the same LocRot than a pose bone. Really useful to control a IK controller as a FK one. I prefer this solution rather than a IK/FK switch.
bl_idname = “pose_to_empty.btn”
bl_label = “Pose to empty”
def execute(self, context):
active_armature = context.active_object
active_bone = context.active_pose_bone
matrix = active_bone.matrix
bone_rotation = matrix.to_euler()
bone_location = matrix.translation
bpy.ops.object.empty_add(type=’PLAIN_AXES’, radius=1, view_align=False, location=bone_location, rotation=bone_rotation)
empty = context.object
empty.select = False
context.scene.objects.active = active_armature
active_armature.select = True
You must be logged in to reply to this topic.