Helicopter Rotor Complex Mechanical Rigging

Hi there,

I’m not a noob in Blender, been modeling for past eight years but for some reasons, never animated a single thing and always been afraid of that part … Now i’m steppin in that field and my lack of knowledge is cruel… But also low understanding, been watching dozens of YT tutorials but never seem to get the thing or apply what I learnt on my case.

Basically, I’m doing mechanical rigging, of push-pull rods with ball end to actuate various mechanical parts. That is very easy in a CAD engineering software with mechanical constraints but becomes a nightmare for me in Blender.

The goal is, with one move of one mesh ( named « Collective Control » ), I want to actuate the whole different parts as shown in the three different sitiation from left to right, left being the minimum stop of the motion and right, third one the maximum mechanical stop. To add difficulties, there are various rotation axis, not all in the same plane, some are off by a couple of degrees.

Been experimentationg with various constraints, empties tracked to other empties, bones, Inverse Kinematics etc … everything bound to fail.

Here is the Blend : https://pasteall.org/blend/8c9d06716855477f97d9a5f6840c20be

I really need to become an expert on these kind of riggings very quickly cause I have the full vehicle to animate with hundreds of similar riggings. After a detailed explanation of how to do this in this special example, could you please point me to some solid tutorials/readings/lessons to master this area ?

Your help is much appreciated !

Hueyman

Any ideas ?

Not sure if it will help you, but if you PM me your e mail address I will send you quite a complex human rig I made a while ago.

You can dissect the file and learn what everything does.

Shaun

Thanks Speed7 that’s kind of you but I think it’s more about mechanical rigging than body.

I shown this to a friend and he made this : https://pasteall.org/blend/717b96e172404230a156f1edaf1f70a3

Told me all about Inverse Kinematic but still extremely complex, maybe you have different or easier way to achieve this ?

Still totally lost

Thanks

Surprised there are not experts rushing in with some good methodology ?

Well, seems there is not much about mechanical rigging with Blender. Thought Inverse Kinematic was the way to go, but that is extremely complex to animate a full assembly of push pull rods, levers, etc …

Do you know of any plugin which may give Blender some flexibility like a CAD software to manage this ?

In Solidworks I can animate this in 10 minutes with mechanical constraints, even if Blender is not made for this, I can’t believe it can do the most complex humain and living environnement animations and not doing this …

Starting to do a monolog here ahah but after lot of investigation, it must be doable in Blender.

Look at this guy and state of the art mechanical animations … this is exactly what I want to do :

SO, it must be doable !

I’d be interested to get gis worklflow and also how to properly use these external drivers to control the motion of the swashplate… fascinating

Hey, It should be doable in blender, and Blender IS NOT CAD animating that is for sure. Best way to go about it is to break it down into small(er) animations. I will have a look at your file.
BTW, It does kinda suck when you gotta end up talking to yourself :smiley:

Hi !

thanks for your support ! Did you tried something with the .blend ?

I discovered a new series of really nice tutorials to really explain and show possibilities of 2.8 animations :

I think if I can master all of this I should be able to do it …

So, continuing in my self digging into that apparently totally unknown subject ahah ( if anybody has any kind of help, please chime in ! )

It seems that Inverse Kinematics is the way to go here but I’m still facing countless issues while discovering this powerful tool.

Where I’m stuck now is, I’d need to use a guide ( called " COLL_GUIDE " here for collective pitch control guide ) to guide my motion vertically when I move the target " SLANT_IK " ( left control bone on the pic )

I tried to set it as target with various constraints without luck so far.

Here is the motion I’m after at this stage :

And here is the .blend : https://pasteall.org/blend/6823d34b2bbd4f3abbfb0c32d83b733f

Hueyman

This guy’s tutorials could help you: https://youtu.be/mO26QhVbfgI

Hey Hueyman, not sure if you’re still having trouble with this? Here’s a revised version of your file, I don’t have a layout of your rotor setup, so assuming this is what you’re looking for, or close to it.

I setup 3 bones as controllers, painted them red with bone groups and “bone” parented them to a “Local” controller (via Bone Properties>>Relations). I added a bone constraint “Child Of” to your “slant_IK” bone and clicked “set inverse”. It was just to show an appendage reacting in the opposite direction, to use bone constraints if you needed that feature for some other part of the rotor.

Most rigs have a global control for object space, a local control to move the model relative to the global space, and sub controllers for all other moving parts. Normally you could setup controllers in a separate armature set, just a different way of doing things. In this case they’re in the same armature, it’s easier, simpler. Up to you if you want/need global and local controls, or just one.

Mechanical rigging, I’d suggest regular parenting from mesh object to bone. Object constraints like “Child Of” can work too, may take a little getting used to.

You may know any of this info, just want to add some insight for others who might read this post in the future.

Looks like a fun project! I’m working on a bell ah-1s myself. Just the modeling right now though, that’s been a pain enough to understand what goes where.

IK Push Pull Rods-REVISED.blend (586.3 KB)

1 Like

Hello Bluepython,

Thank you very much for your input, much appreciated !

I miss spare time these days, but look forward to give it a try !

Ah, a Cobra nice ! Do you have some wip shots ?

Cheers,
Valentin

Here’s a few screen grabs. I’ve been trying to finish it for about 15 years or so, finally putting more into it the last couple months. Hoping to list it to sell at some point. Your rotor is of course a bit more involved technically with rigging it and all.

I can relate to the lack of spare time though. Hope you finish it someday, would love to see the end result!

1 Like

Hey very nice work dude !

Looks very accurate and detailed !

Yeah unfortunately I’m so busy these days cannot use Blender at all, hopefullt soon I can find some time to progress…

Cheers !

Hi,

I’m JB, I’m currently working on a helicopter and I try to rig the rotor. However I’ve never did this before and that’s not easy to understand how rig works, especially with this complex mechanism. I would like to know if @bluepython can comeback on this topic to deeply dive in this subject ?

I share with you an image of my rotor :

Best regards

Hey JB,

Attached is a crude rigging example, using the inverse kinematics bone constraint.

rotor-rigging-01.blend (1023.4 KB)

The key to armatures is figuring out your anchoring point (stationary part), in this case inside the blade. Then find your moving part (the swash plate that moves up and down the mast). Your bone links should extrude towards the moving part and away from the anchor point.

For mechanical rigging (hard surface objects), you can just parent objects to selected bones (you have to enter edit mode, select bone, then exit and parent to “bone” under parenting menu).

Few things to take note of:

Under bone properties, you’ll notice bone.004 and bone.011 have “relative parenting” checked and “connected” is unchecked. Their parent is “bone” which is the primary bone that moves everything.

Also, bone.012 is parented to bone.009 and under bone properties “connected” is unchecked, but “inherit rotation” remains checked for this bone. This frees bone.012 to be moved/unlinked from other bones, in this case moved to the base of bone.009 but it still inherits bone.009’s rotation.

These bone properties you’ll be playing around with for different needs. The bone constraints, mainly IK, Track To, and Child Of, you’ll possibly use regularly.

Hi @bluepython ,

I appreciated a lot your information and I thank you for giving time to it.

I’m pretty confident I succeed reproducing what you explained but I’m not sure I did it well enough. I uploaded my file if you can check it. My blade is rotating as wished but there are additional wrong rotations, same for the “Swash_Plate_Upper”. If I can allow myself to ask … how can we rotate the all parts moving continuously around the Z axe and move depending the “Swash_Plate” inclination ?

Attached .Blend file : Rotor_Animation_Test.blend

By the way, I searched a way to contact you in private but I couldn’t figure it out

Hey Jean-baptiste,

Try the following. I added chain length to both your IK constraints (you usually want to input the amount of links (bones) that will be included within the ik bend (in this case 2):

I created a new bone as a rotor controller and parented bone.001, bone.004, bone.005 to it, keeping them parented but not connected. I also parented the rotor mast to the controller bone as well. You can created more bones for local and global control, above this mast controller, parenting the mast controller (rotor_local_controller) to them.

I can send you a pm. Let me know if you have other questions.

Rotor_Animation_Test_02.blend (1.6 MB)

Hey JB, you can try this file instead. I’m assuming for the blade, you wanted it to not rotate diagonally? If you select one of your bones within the IK link, you can use additional limits and locks in the Inverse Kinematics sub menu (see screenshot). I locked X and Y IK on bone.001, and changed its roll and re-parented your blade to it (so it rotates vertical, not diagonal.

I’m still not clear on your issue with the swash plate upper, but hopefully this helps a small bit.

Rotor_Animation_Test_03.blend (1.6 MB)