Runtime Rigging: Best workflow for aiming a weapon many joints with various weights

Hey folks

The runtime rigging package seems super robust, so much so that I’m struggling with figuring out the best workflows for stuff. Seems like you have to make A LOT of game objects to set stuff up - or at least they do in the all blog posts / videos / examples.

I’m used to FinalIK but wanted to try this. In finalIK the Aim component (added simply to the rig) allows you to give it a source transform (a gun), a target and hint transform, and an unlimited number of joints with set weights for how much they much change to get the gun transform aiming at the target. There is no animation / pose of the character aiming to augment.

What is the best / cleanest way to replicate this level of functionality in the Runtime Rigging Package?


Sorry to prod you again @davehunt_unity - you seem to be the expert here!

I'm struggling with simple stuff like the multi aim doesn't have an up vector so there's always movement on the gun that I wanna stabilise, the old old normal aimConstraint even has that, feels like I'm doing something wrong here.

Hi theazz,

Yes, this is true that the setup in Animation Rigging uses additional GameObjects as holders for the Rig and Constraint definitions. You don’t need to worry that this adds cost to your animation hierarchy because this is not evaluated in the animation stream (unless told to do so by assigning a “RigTransform” component). It’s actually really useful to have these definitions separate from the skeleton hierarchy for organizational purposes. That makes it possible to use share-able prefabs can be made of rigs and sub-rigs (maybe a leg or an arm, as suggested in our SIGGRAPH workshop here).

I’m not sure I understand your question about replicating results you made in FinalIK… Could you elaborate?

Here are the docs for MultiAim constraint where you can see a plus (+) button next to the list of Source Objects. You can add multiple Source Objects and blend between them with the associated weight value. This is done as a post-process on the final resulting skeleton pose from the animation stream. Does this not give you the behavior you are looking for?