Help with Offset joints in blender

I’m having issues with rigging this arm joint. I have created an IK rig in the picture, and I need the arm joint to rotate around the shoulder joint when i move the IK controller.

it works Fine when i move the Controller up and down, but it breaks when i move it left and right.


Thanks for reading, any help is greatly appreciated.

Hi there, and welcome to the forum!

Since you are new around here, let me explain a few things to help you get help. First. the best way to get help around here is to post up the .blend file. That way someone can get in there a take a look at what you have. Being that you are new here, you probably won’t be able to attach the file to your post. So post the file on a file sharing site and post the link here. So now onto your problem…

The fact that your upper arm bone is offset from the shoulder bone should not have any effect at all on this, everything should work as expected. So you have another problem, this statement:

Makes me think you have a cyclic dependency problem. Basically, that is a problem with your bone hierarchy and the constraints on the bones. In your case, your IK control bone cannot be a child of any part of the arm bones. To see if you have this problem, Tab-key in and out of edit mode and check blender’s console window (Window → Toggle System Console) for error messages.

If this doesn’t help, post up a file…

Randy

Hi Randy! Thanks for the Reply.

I checked the console and there isn’t any Dependency cycles in there.
The IK controller is also separated from the arm.

I Moved the Arm bone to the shoulder and that fixed the disconnecting issue with the arm. but now the forearm bone bends into the chest which isn’t a big issue but i would prefer that it bends like the FK bones do on the left, where it pivots forwards from the edge of the elbow. although this is only a minor issue.

my main issue that when i apply the same set up to the legs they bend inwards.
adjusting the pole angle moves the thigh but keeps the knee bent to the side.


how do i make the knee bend forwards while still keeping it connected to the pelvis

Here’s the Blender File
Randy Help me .blend (1.8 MB)

Thanks for any help you can give me with this.

Took a look at your file - specifically at the right arm.

I moved the upper arm bone back out to where you had it. Made the lower arm bone a connected child of the upper arm bone. Noticed that the pole target bone would cause the arm to twist when switching from pose mode to edit mode. Also noticed when you raise the IK controller bone as the arm bends backwards, the elbow goes past the pole target bone. Meaning now the arm would want to flip around to point at the pole target that is in front of the elbow. So I moved the pole target so it is directly behind the upper arm/lower arm joint, then moved it further back behind the character. Now the arm seems to work pretty good for me…

Didn’t have time to look at the foot, but maybe this will help you there.

Feel free to ask questions,
Randy

Randy Help me 1.blend (1.8 MB)

Thanks for looking into the arm for me, it bends a lot better now.

another issue though. the arm join now disconnects from the torso, this is obscured a bit by his shoulder pads so i them into wire frame

I tried to solve this by creating another set of bones that copy the transforms of the IK bones (they also transform the mesh instead of the IK), and then another bone at the base of the shoulder that copies the transforms of the IK shoulder, which the second shoulder bone is parented to. that way the shoulder bone rotates around the base of the shoulder.

this solution works mechanically, but because Its using the first armature set to offset the second, the IK controller is always misaligned with the mesh.


here the shoulder (with no shoulder pad to block the view) stays connected but now the IK controller gets misaligned when you move it (The IK controller here has been displaced to his left finger)


Here you can see the bones i added
Red is the IK bones
Blue is the Transform bones
Yellow is the Control Bones
(you can also hide them in the bone layers)

Randy Help me pls 3.blend (1.8 MB)
If you could find a way to stop the controller from leaving the mesh that would be extremely helpful

Thanks Randy

I read your reply, but I didn’t look at your file. Instead, I went back into the file I posted, and I took a closer look at things. Originally I just looked at your rig and saw the problems I’ve mentioned, I didn’t look at your mesh object. After reading your post, I took another look at the file I posted and the character’s mesh object and it’s modelling.

Stop messing with the new bones you added (but I haven’t looked at), because you are going down the wrong path there. Generally, you have 2 basic ways of rigging stuff in blender - mechanical or organic. Mechanical rigging is for machines that are rigid, like an excavator/back hoe. They are solid and only bend at joint locations. Organic rigging is for living things, humans, trees, flowers and anything else that isn’t rigid.

So a robot like yours should be mechanically rigged. It’s simple and I thought that was what you had. After reading your reply, looking at your screenshots, and messing with my file, I see what is going on.

The shoulder pad shouldn’t bend or deform in any way. Under the shoulder pad I see this:

Which isn’t really a mechanical joint. I would almost want to organically rig that part. Think I would separate the mesh out into several mesh objects for all parts that won’t deform, like the shoulder pads. The highlighted parts of the shoulder above, I would organically rig. All parts like that would be one mesh with an armature modifier on it and weight painted for smooth deformation. The shoulder pad shouldn’t deform, so you parent the mesh object to the bone and it won’t be deformed by the bone, but will move as the bone moves.

Hope that makes sense. You seem to have some knowledge of rigging, where did you learn this at?

If needed, I can cut your robot down and show you an example, but that would take a bit of time…

Randy

PS - I noticed a 2nd bone layer with a couple of bones called ‘Pole Target Finder Arm’

What are those bones for?

Actually didn’t take much time to rig the shoulder:

Made the shoulder pad a separate mesh object and parented to the upper arm bone. Then the black ‘organic’ part next to the torso, I weighted 100% to the tiny shoulder bone.

Randy Help Org-Mech.blend (1.8 MB)

Randy

I actually got the model from a game called clone drone, all of their parts are mechanically rigged in the game, so while this solution would normally work great, it sadly won’t work here.

The best way i can think of to visualise this joint is like a ball joint that is offset to the arm.


I should probably use FK for it this, but then its gonna be a pain to get limbs to stick when i need them to. which is a lot :sweat_smile:

I really want IK on them because its useful for sticking their hands to things. like having two hands holding a spear, or sword. and I’m not really sure how i would get their feet to say on the floor with FK.

I’ve mainly learned Rigging from Youtube tutorials, although these specific joints are different from any I can find guides to. Tutorials are always rigging human or human like joints where the arm/leg is connected to the shoulder/hip, so I’m a bit lost as to how this one would work in IK.

the Pole Target Finder bones are a set of 3 bones that find the middle point between the head of the Arm bone and the tail of the Elbow bone. a third bone then copies the transforms from each bone, and is then the parent of the Pole target. this way the pole target always stays in the middle of the IK chain unless you move it. I copied the set up from this Level Pixel Level tutorial: https://www.youtube.com/watch?v=suP14lYWpN8 (the set up in your copy of the file is made to find the location from when i had the arm bone at the shoulder socket so the location of the Pole target may vary slightly)

Alright, let’s talk about this for a moment. In the game, it’s all mechanically rigged and I assume you want to stay true to the game. I admire that because I consider myself a perfectionist, but I’m not OCD. So if I get things to be 90% perfect, I’ll stop there, because the other 10% to reach 100% is the OCD zone.

As an artist, you have the freedom to change things as you see fit. It’s your work and you can change things as you see fit. Yeah, it’s based on a video game (which I did look up), but this is your world and you are free to create whatever art you want, even if it’s only 90% correct. Do you think anyone would notice the joint isn’t mechanical? I mean, it’s mostly concealed by the should pad.

I did look at separating out parts of the shoulder and mechanically rigged it, but I saw problems with the mesh. Basically the mesh would need extra work for the mechanical rigging to work.

As I’m looking at this and posing it around, I noticed this:

You have overlapping faces in that area and that will cause render errors.

Randy

PS - to get the above image, I just simply disabled the IK constraint and rotated the lower arm bone.

I Think i Found a Solution!

I modified the rig i made last time so that now the IK controller doesn’t Leave the mesh! and Shoulder also keeps its location.

It also works with my concept arm! so i think that means it works.


Because the IK controller doesn’t dislocate it also works with sticking his hands to things now! here he is holding a big stick he found

it also bends forwards so the same rig works on the leg

i think that covers all the issues I had with the rig :smile:
its a little late for me so I’ll post a file with an explanation later tomorrow.

Thanks for helping me with the elbow joint! Its nice to post on a forum with people who are so welcoming and helpful, like you.

PS - The Elbow joints still clip into each other but at this point I think I’m fine with leaving that in the 10% zone (they actually do clip like that in game so its really more lore accurate if you if think about it)

Glad you figured it out!

Please post your solution, I’d like to take a look at it.

I admit, even after reading about the pivot point being at the shoulder bone location, i was still thinking about the upperarm pivoting at the shoulder bone. Force of habit, I guess…

I played around with adding the shoulder bone into the IK constraint chain length, then adjusting settings for the IK constraint. When working with IK, each bone can have it’s settings adjusted. Those settings are found in the bone’s panel → Inverse Kinematics tab.

Anyway, here’s my example file of that work:
Mech_shoulder1.blend (831.8 KB)

Randy

Here’s my Solution
Ofset Pivot Bones 6.blend (1.9 MB) (updated from 5->6 so that hands and feet don’t disconnect)

Took a little longer than i expected because i couldn’t find a way to conveniently rotate the shoulder.

Each Limb is controlled by 3 bones. An IK Controller, a hand controller, and a shoulder Controller.
(the shoulder Controller is green, and Rotates around the X axis only)

Like an ogre the Armature has layers, 6 of them…

Layer 1 has the Control bones. torso,head, IK CTR ect. the Yellow IK CTR is the Parent of all other IK CTRs

Layer 2 has the Root bones. they transform the mesh, by copying either the IK Root bones or FK bones.
(you can switch the control in the properties tap of the bone that floats above his head)

Layer 3 has the IK Pivot (red) and the IK Root (blue) bones in it. The Blue bones Pivot around the red bones Shoulder.

Layer 4 is the Pole Target Guides. (explained in above post)

Layer 5 has The IK offset Bones which offset the Red IK CTR bone around the Blue IK CTR. this helps keep the Elbows aligned with each other, although its a little off at some angles. it also lets you rotate the Red CTR around the Blue CTR with the Green bone in the first Layer. (this is how the shoulder/thigh rotates)

Layer 6 is the FK bones. (they’re FK bones)

there’s a few other constraints in it too but that’s the overview of how it works.

given the absurd amount of bones i used I’m assuming there’s a way to do this same thing with like 5 bones instead, but I haven’t figured that out yet ¯\_(ツ) _/¯