Hello there! I am working (in UE5) on an animation system for characters and came across this idea: there are several characters in the game and each of them has its own IK Rig (not Control RIg) and with/without additional body parts, but they all have compatible skeletons. For some additional limbs (like the tail) I use dynamic animation (Anim Dynamics node) in the animation blueprint. Also use some IK Goals for dynamic limb slacement.
So what I want is to make one universal anim blueprint that will have child classes for each individual character. In each of them, I want to change the selected animation sequences, blendspaces (which the engine provides), but also the IK Rig and the turn on/off dynamic animation and on which bones.
And an actually question - how to make it? The UE does not have the ability to set the rigs and bones (at least the nodes that i using) via variables that could be changed in the settings of child blueprints. And even if it were, how can I bring the settings of these variables to the default settings of class? Or should i use Control Rig for all of this?
To make your variables instance editable (change value per child) you click on the closed eye symbol on the right of each variable type. to show inherited variables in children, in the top right of the functions and variables there’s a small settings button, if you tick show inherited variables, you will see them.
As for settings rigs and bone names , it’s not possible. even in control rig you can’t expose the class as a variable. however if you use control rig instead of the anim node of anim dynamics (not sure you can that in control rig yet) you can expose the control rig bone names and have them as variables. as long as the skeleton has same hierarchy you don’t need to switch the control rig class.
finally, you can turn stuff on and off by making the alpha a variable.
Deam, I completely forgot about this feature, thanks!
So looks like i do have to use a Control Rig for this. And yes, as I wrote, they have compatible skeletons, so this should not be a problem. But then the question is - what is the best way to change the settings for each rig for a character? For example, the limits on the rotation of the bones and stiffness when reaching the IK Goal.
I’m thinking about using one rig as a parent and creating children of it for each character. And in the animation BP, use each of them depending on the current character. For now, I will switch between them through the blend node, but can you tell me if this can be done through animation layers and linking? Like use one node (linked to layer) to use the rig and change its link to another animation layer when changing the character - is this possible? I myself have not yet studied this topic in depth and understand it superficially.
yes it can be done through an animation bp interface , you’d have an interface that has a different linked graph for each different character and you switch which is active at runtime,
you can also use control rig full body ik node and adjust stiffness and stuff, the simplest way to do, is to have 1 control rig , with multiple functions , each function is gated with a bool for that character, example, a bool for male, and bool for male with tail. you expose these bools as variables then in the parent animBP then you can set the right one to true for each different character and the right part of the control rig will run.
I was thinking about creating layers in the Anim BP itself, but looks like this option is more elegant.
I think for additional body parts this is really good solution, but for skeleton IK settings - I will still use child classes.
Anyway, thanks for the clarification and information!
no problem, i just wanted to clarify, that the IK rig is the same thing as the full body IK node in control rig. however you can connect variables into the stiffness, preferred angles etc… and expose them to the animation blueprint. this is the only way currently to have 1 full body ik with settings that can change at runtime