Hello.
Now I am creating Character systems: Movement, Jumping.
So now it can move around and I use Animator and Root Motion for this. Just playing Animation Clips depending on several variables receiving from the Input.
Next, I want to create Jump mechanic, but I don’t want to use Root Motion here because I want to control the character in the air. Slightly moving him before his landing.
So I have 4 animation clips - prepare-to-jump, jump-push, jump-fly, jump-land. I was going use this in parallel to some physics, that will push my character in the air with some force.
I have added a RigidBody to object and AddForce in the script. But this makes conflict and work very bad. After long tunes, the best point that I can get is momentarily moving in position, where the character is should be after this Force.
Also, Gravity does not work properly.
My question is: How to use Animator and Physics together?
I want to start Jump-Push animation, then add a force to the character to get him in the air, then transit to Jump-Fly animation, so like its flying, then see the gravity in action, and start Jump-Land, then the character will be in front of the ground.
1 Like
Now I found something in Model Import Settings in Animation Tab.
It is Root Transform Position Y and XZ. I check Bake into Pose and now physics affect my character then he is in this states in Animator (in fact - the ability to turn Root Motion off on certain animation clips).
But now I can jump only in Y-axis. Although, i wrote this code:
public Vector3 jumpVector;
public float jumpSpeed;```
if jump
```rb.velocity = jumpVector * jumpSpeed;```
and assign (0, 1, 3) to jumpVector in Editor.
If I attach this to the cube (without animator), its good to jump along z-axis too.
Character doesn't jump along the z-axis.
BTW: Although rb.velocity do something...
```rb.AddForce(jumpVector * jumpSpeed);```
do nothing in this case.
UPDATE: Excuse me. I forget ForceMode.
```rb.AddForce(jumpVector * jumpSpeed, ForceMode.Impulse);```
This code is driven object along Z-axis. But very strange.
All of this happens very strange :smile:
Why it dosn't translate smooth on z-axis? / / / -- -- -- \ \ \
https://www.youtube.com/watch?v=G4TNFGipbfo
I turn ‘Apply Root Motion’ off… and its all the way good. Character pushing from the ground… make a half-circle path in the air and land on the ground.
So, what you want to say… If I have at least one Root Motion Animation in my Character, so its all? I can’t get any physics on my character properly? 
rb.AddForce(jumpVector * jumpSpeed, ForceMode.Impulse);
// landing
animator.applyRootMotion = true; // !!!!!! :smile:```
I am speaking with myself.
It is always good to speak with smart person :smile:
10 Likes