Rigging a simple mechanical/extending/telescopic arm with Control Rig?

Hi there!
I’m trying to build the easiest rig for this light prop for a project. The idea is to build a Control Rig, with one controller for transformation for the whole prop, another controller that controls the height of the prop, and the last controller to control the head rotation (and maybe one last controller to control the actual light, so shape color and intensity).
I’ve built and weight painted everything in Blender, and it works as it should, but I can’t seem to find a way to make the extending arm work properly in UE5.
The prop is divided in 5 meshes: 1) the head with the umbrella, 2) the tip of the pole/tripod, 3) the pole in the middle that actually extend and compresses, 4)the black joints in the middle, that should move up and down when extending the arm, but they should not deform in any way, 5) the base of the tripod.
In Blender I’ve basically made an IK skeleton in order to compress or extend the pole in the middle when the tip of the pole is moved up or down, and for each joint of the IK chain I’ve made a child bone that inherits transformations only on position, so that the black joints static mesh follows without any deformation.
I know the solution is very easy, the goal is to make a reusable asset for UE5 for future projects, so that I can place and control the prop with the fewest work.

Any help or hint toward a solution would be godsend!



Ok I think I’ve found a workaround, I’ve made the whole rig with the same hierarchy and then weight painted everything on UE, then I’ve build the control rig with this two-chain IK.
Is not too elegant, as I had to multiply the scaling of each IK bone with some eye-balled value, and lock each bone axis in order to get the correct compression without any bending or overlapping of meshes.

Here’s the 2 IKs with some wonky multiplication…

If anybody can suggest a more elegant and clean solution would be awesome.

Rule 1 of anything 3d:
Do not use skeletal meshes for anything that isn’t soft.

Delete the skeleton. Spearare the meshes and bring them to the engine as separate parts.

Create a BP, parent the meshes to each other in their logical order.
Define extend/contract parameters based on whatever you think - a total height variable for instance?
And adjust the mesh Z position accordingly.

Exact code can be whatever, from using timelines to just using the construction script.
Depends on how the asset is used in the end.

And either way, you dont run into the issues you get with skeletal meshes, like having too many and flooring performance, or having bad light on them because this engine sucks at correctly lighting skeletal meshes…

1 Like

Thank you so much for the advice! I knew there was a way to make my life easier.
As for how the final use for this asset would be, I’ve just posted another question, explaining the idea bit more in dept: Modular prop light rig with BluePrint and Control Rig
Basically, the idea is to have a modular prop that I can easily place, pose and adjust for the lighting, with as less effort and windows swapping as possible.

I’m not sure how useful it is to have the frame and parts of the thing in play unless you specifically need them to be an integrally visible part of the final thing.

Read as:
If they arent in the final render you don’t need to render them, thus placing a light in the right position will work a lot better.

Rgarding placing, posing, etc.

You can likely make the item using constraints (when it comes to the swinging arm, or a camera tripod, or a reflector holder etc).
But as far as ease of use goes, entering in a specific value to set it up is liekly easier overall.

  • click object, check properties, change value, done.

In game stuff, this is more than common with light sources - you need the light, the light profile set, the distance to fade/remove, the mesh to display visually, and a ton more things set up.
So normally you collect the things you want into a single blueprint, set the defaults, expose whatver variables you want to control however you want to control them - or create blueprint interfaces to allow messages to control things - and then you create infinite instances of the thing you made, which can all stay as default or receive their customized values.

Im not sure there is anything eaier than that, and if you want the ability to adjust the arm in a specific way you will likely have to code a specific way to allow the behaviour you want.

Is a skeletal mesh a good idea? Again, no.
BUT… you can attach static meshes to the skeletal mesh bones and get the benefit of having a “constrained” model without having to renounce the good lightning that static meshes get.
For instance.

Personally, id just go all out on coding whatver needed to avoid skeletal mesh overhead costs, but it is more of a personal choiche…

1 Like

Got it! I come more from modelling rigging and animation, coding is not my strongest suit, but I’m trying to improve. So your advice is to drop completely the SkelMesh approach, put all the different meshes and lights in a single blueprint and drive all the build-up by constraints, right? The only reason I kept using SkelMeshes is because I thought it was the only way to be able to have a ControlRig. Again coming from animation, I find it easier to have visible controllers in the scene that I can just grab move and rotate without having to input any number on some slider. So far it kinda works, but is behaving glitchy, sometimes UE crashes, and yes, definitely lighting on skelmeshes has some issues. I’ll try to work out a way to do it as you suggest! Is there a way then to have some kind of control rig to control the blueprint constraints?

Yes.

You could build something. Add anything, mark it as hidden in game, and once you hit play it wont be visible.
You could add stuff to allow a grab and move effect that changes the variable value for you - for instance.