Hello guys,
Control rig is overriding the state machine, instead of one being additive to the other. Unless i lower the alpha and then its a strange mix between them.
How do i layer them in a way that allow both of them to perform in real time ?
Hello guys,
Control rig is overriding the state machine, instead of one being additive to the other. Unless i lower the alpha and then its a strange mix between them.
How do i layer them in a way that allow both of them to perform in real time ?
Difficult to evaluate what’s going on without showing what’s happening in Control Rig and also understand what you want to layer.
You can always use Layered blend per bone with a cache if you want a specific behaviour applied on the lower/upper body, but if you’re using IK on limbs in Control Rig, is kind of normal that it’ll override the idle.
Thanks, i think i got a bit confused
I see examples of epic doing real time animation while control rig is active in game and react. like the first unreal 5 demo or the new 5.4 chinese dragon.
for example here the control rig is not override the current animation just adding layer of adjustment to the hand on the door:
You said “You can always use Layered blend per bone with a cache if you want a specific behaviour applied on the lower/upper body” - i see its exist since unreal 4, i was assuming control rig is more modular and flexible, this is why i built a real time rig, to avoid addressing each bone and instead manipulate the controllers.
in my case all controls are simple fk. one control aim the chest. and when the chest is rotating (the wings rotate with it),they have cool interpolation that made them look organic in real time, that i hoped could be layered above whatever existing animation is currently plays.
Is there an example that show how to have both key frame animation and control rig behavior working of top of each other ?
I added a video to demonstrate my issue, using the most basic example. fresh project.
In many tutorials, it states that this way you can layer control rig on top of an animation, but its not the case when i create a very simple project: (same problem in my main project).
Oh I see, well here you’re using a control that you made inside Control Rig that doesn’t have any animation value, since it exist only inside Control Rig, and you’re setting the cube transform to follow the control.
This means that you’re overriding the incoming animation with values from your control, so quite normal.
If you want the control that you created to add animation on top of the existing one, you can either drag&drop the root joint into control rig viewport and choose Offset, and there you plug your joint ctrl, that allows you to add TRS to the current animation.
Alternatively you can multiply the root joint and joint ctrl quats, which will keep the existing rotation, but it will add any rotation you will add with your ctrl.
Rule of thumb if you want to keep the original animation is to get the joint(s) that have animations and store them into a transform connected to the Forward Solve, then after that you apply your custom transforms.
Thank you i appreciate the help.
Is it possible to see a screenshot of each solution ? i don’t know control rig well enough to know how to exactly to dot that, what nodes to use and where exactly to connect, it can help me a lot if possible sir. thank you again for the time and help
Thank you for showing me . is that a practical way to apply it to an entire character skeleton later? the cube is just an example i made ofc
It really depends on what you need to do.
For example if you want to use IK on feet and eventually adapt the location/rotation to the terrain, then you can use the sphere trace and get the foot location, then chain the IK node and eventually add/multiply the location/rotation.
I don’t use offset control that often since it works in rig space, while I usually need to tweak the joint local space, so I’ll just get the current joint transform and then apply an additional transform after that.
I don’t use offset control that often since it works in rig space, while I usually need to tweak the joint local space, so I’ll just get the current joint transform and then apply an additional transform after that.
How do i apply an additional transform to it without using set transform or set offset nodes?
Basically what I wrote, you can get the joint transform and set the joint transform.
For location you can either add or subract them, then plug the result into the translation of the Set joint.
For rotation you can multiply quaternions, where the first input is the additive quat, while the second input is the current joint quat.
Thank you for the explanation,
I tried it out. it seems that XYZ translate and rotate on the Z are working, But rotating on the X or Y create strange offset from the middle, and i’m not sure if that is my wrong setup or expected behavior, and how to overcome this so i can later apply it on a character
The joint isn’t in the middle of the cube, so the rotation pivot is off center.
Consider that the rotation will be applied on the joint, it doesn’t take into account the ctrl center of rotation, it’ll just apply the rotation in global space.
If you want to have the cube rotating by its center I suggest you to modify the joint location in your DCC or directly in Unreal.
I edit it so the bone will be in the middle, there is less offset when rotating but still exist
I guess that i have a hard time to understand why the bone goes up on transform while rotating on that rotation axis, when the rotation is 180.
But, I see that if i change the set node to local space the bone rotates only to its own space what seems to solve the issue.
Is that a common practice? or it will generate other issues later on ?
Local? sure thing, but then again it depends what you need to do.
Local always takes into account the joint local axis, so if you need to translate/rotate a joint, that is ideal.
I strongly suggest you to check the Content Example and Lyra to see how the various nodes are used, which allows you to get a better understanding of the flow of logic and execution.
Sorry for late reply.
Nothing i do work. there is always some strange offset. it might due to my lack of understanding in rigging, but i tried so many things that i don’t know if control rig is even meant to work together with animations in real time or if i push it to something its not meant to do
Do you know a tutorial that focuses specifically on using control rig as a real time layer in a game with state machines? a good solid tutorial step by step with good theory background in all aspects?
Seems like all tutorials just repeat themselves, covering how to connect IK nodes to the default Ue5 character and use it with default template.
Thank you for all the help so far
I strongly suggest you to take a look at Lincoln Margison on Udemy, he made some pretty good Control Rig focused tutorials which may help you understanding how Control Rig works in detail and allows you to build whatever you need.