All of the videos on this channel are extremely high quality videos. I am new in the games industry. Just been working around 3 years and I am amazed at the depth all the contents of this channel goes into. A big thank you for all the effort.
@KetraGames Жыл бұрын
Thanks so much for this comment, it means a lot 😊
@Norman_jeBaits Жыл бұрын
The biggest thing I struggle with is making a character controller which is wild considering how common it is in any game. After so many tutorials and other videos, this is the only one to get it right! Thank you so much for your videos!
@ricardolicorish20193 жыл бұрын
Hi Ketra, another excellent and helpful tutorial!!! The "OnAnimatorMove" explanation is what I was missing. Thanks for showing how it works to bridge the motion.
@KetraGames3 жыл бұрын
Glad it was useful 😊
@alperturan1677 ай бұрын
I am mesmerised by this tutorial. There are tutorials within the tutorial. And even a tiny "glitch" is not skipped (@8:55 the issue with the rear foot slide). Thank you very much for all your effort 💝
@dogo16042 жыл бұрын
I saw lot of videos about 3d animaotion but your videos have lot of details and its very useful. Thanks for the videos.
@thomasshaw48552 жыл бұрын
wow, I just spent many hours googling, searching the forums and other tutorials for just this. Thank you, this was very clear and concise and helped me solve exactly the problem i had. Thats an ez subscribe and kofi from me. Cheers
@KetraGames2 жыл бұрын
Thanks so much! Glad it was useful 😊
@Baram-w6m11 ай бұрын
I was having a problem while making a third person game, and I was able to fix it thanks to you. Thank you so much.
@KetraGames11 ай бұрын
Great, glad it was helpful 😊
@CodemanDTG Жыл бұрын
Thank you so much for making these videos, I wanted to use the Mixamo animations in my project and was really struggling to understand the animations and what settings needed to be adjusted. You are a lifesaver!
@KetraGames Жыл бұрын
Great to hear, glad you found it useful 😊
@ChristianSasso2 жыл бұрын
I like this video a lot because it shows a variety of real world situations and how to address them correctly. Thank you.
@KetraGames2 жыл бұрын
Great feedback, thank you 😊
@waowao-n9f3 ай бұрын
For anyone who had problems at 5:38 with no animations automatically adding, just go to the Blend Tree's inspector and add the motion manually like how it was done in the 11th video in this series!
@adansmith61745 ай бұрын
I love your tutorials ❤
@barax9462 Жыл бұрын
Thank you a lot you saved me a huge effort. My animation were resetting position after being played and this tutorial was the key
@KetraGames Жыл бұрын
Glad you found it useful 😊
@halivudestevez2 Жыл бұрын
Wow! This is very complex, and essential tutorial! I need to learn this.
@KetraGames Жыл бұрын
👍😊
@mrearlragnar31872 жыл бұрын
Probably the best tuts I've come across on Unity and Rootmotion - I recommend making a Udemy course
@KetraGames2 жыл бұрын
Thanks so much 😊
@vrfxrealtime Жыл бұрын
Thank you for Sharing!
@KetraGames Жыл бұрын
👍😊
@Betruet3 жыл бұрын
Great job, well explained.
@KetraGames3 жыл бұрын
Thanks for this comment 😊
@МаксимЖмачинский-т1ю3 жыл бұрын
It's really helpful! Thanks a lot
@KetraGames3 жыл бұрын
Good to hear. Thanks 😊
@ligoex75962 жыл бұрын
Excellent !!!
@KetraGames2 жыл бұрын
Thank you 😊
@YG-gq4zb3 жыл бұрын
Superb
@KetraGames3 жыл бұрын
Thank you 😊
@saigonpastry2 жыл бұрын
I love your tutorials!
@KetraGames2 жыл бұрын
Thanks for this comment 😊
@WatThaDeuce2 жыл бұрын
Thanks for the info! OnAnimatorMove is the link I was missing between using CharacterController and root motion.
@KetraGames2 жыл бұрын
Glad it was useful 😊
@UniteByHumanity Жыл бұрын
Excellent
@gamingmady.5 ай бұрын
thank you
@mr.phantomdx10669 Жыл бұрын
hi can you make a rigidbody third person controller but with animations plz script tutorial plz
@fookustudios3279 Жыл бұрын
Nice tutorial. Can anyone suggest a way to rotate a character in place (not moving) using root motion and a navmeshagent. I've been struggling with this for days now and can't find any answers anywhere.
@LuRybz3 жыл бұрын
Is there a way to combine root motion with navmeshes?
@KetraGames3 жыл бұрын
Hi, yes you would do it in a similar way. So implement the OnAnimatorMove method and then change the velocity of the agent based on the animation movement. Something like this should work void OnAnimatorMove() { agent.velocity = animator.deltaPosition / Time.deltaTime; }
@lyrion0815 Жыл бұрын
There is an issue at 0:35 in the "Sliding Down Slopes" tutorial, which I think has to do with root motion: The character runs against the steep slope and is blocked from running up, BUT the "run" animation keeps playing. Without root motion, the CharacterController would return velocity = 0 and the blend tree would go to "Idle". I'm pretty sure, you have a solution to this 🙂
@3Dpolygon3 жыл бұрын
Awesome Tutorial on creating environment! Can you make a following video on adding buildings? Also, how do you use a character to test the gameplay?
@KetraGames3 жыл бұрын
Thanks. I'll add buildings to the list to cover in a future video. Hopefully our 3D platformer playlist can help you get a character setup - kzbin.info/aero/PLx7AKmQhxJFaj0IcdjGJzIq5KwrIfB1m9 😊
@Radek_M. Жыл бұрын
When I am tapping the button to move forward my character x position is increasing and y position is deacrising so I am "going underground" and turning right all the time. How to fix this?
@samanthastovell787011 ай бұрын
How do you create an animation in Blender that replicates the walk and run animations with the forward motion. Everything works except my characters not moving when I run/walk. They become stuck in one place
@curtislow1676 Жыл бұрын
i have a first person controller capsule as my player, but when i enable root motion and animate physics, my player is stuck floating and isn't affected by gravity, but when i disable root motion, my player is unable to turn the camera left or right, is there something i can do to fix this?
@Artistic_Game_Developer2 жыл бұрын
I have been following your whole playlist but now it's not working properly. My player glitches & stops in a wierd way!! All animations were running so smoothly before this but this root motion has messed things up. Please help me 😭😭😭
@KetraGames2 жыл бұрын
Hi, did you manage to fix this? It could be the animations in the blend tree. Did you remove the idle animation from the blend tree and replace it with a slow walk? If you can't get it working, root motion isn't a must have. If it looked good without it then you can just carry on without it
@KetraGames2 жыл бұрын
@@Artistic_Game_Developer Sorry to hear this 😥
@reynoldbennedictgadmonxi-m32983 жыл бұрын
i wanna ask something, if we delete the maximumspeed, then how the character can be walk/ move?? cause my character won't move after i delete the maximumspeed or did i missed something???
@KetraGames3 жыл бұрын
Hi, the movement is now determined by the animation rather than the script. The walk and run animations have forward movement built in so when we play those animations it moves the character forward. If it's not working for you then check that the animations you are using have forward movement rather than being 'in place'. Also check that you have the Character Controller Move call in the OnAnimatorMove method. Hope that helps 😊
@torchilicho7 ай бұрын
@@KetraGames does this not work if you are using custom animations made in blender?
@yusufilme Жыл бұрын
Thank you so much. Great video. I have a question. If I add Rigidbody to my character with "apply root motion", it starts to fly. I cannot solve this problem. What is the problem? I want my character fall down, so I add it rigidbody. But while using root motion, it moves upward.
@Hombredelverde2 жыл бұрын
This looks exactly what I've been looking to learn. Any chance we can get a revision using the New Input System?
@KetraGames2 жыл бұрын
Hi, we're planning to do a video on how to upgrade to the new input system in the near future. We're also thinking of doing a full refresh of our videos using the new input system and URP, but that will take a while 😊
@smbiplob9476 Жыл бұрын
can you cover it for mobile joystick please.
@gamoe2 жыл бұрын
after I use the action, the character moves very fast, no longer following the original move, help me please, thanks you
@kdawg7178 ай бұрын
My character will not rotate for some reason and I can't figure out why. Also why are you constantly adding to the YSpeed over time?
@vima9046 Жыл бұрын
Hello Ketra! Just discovered your channel! Pretty cool content! I have one curiosity, will you ever cover topic like animation in combat system in your videos?
@KetraGames Жыл бұрын
Hi, thanks. We have a list of content we want to cover in future and combat is definitely on there 😊
@vima9046 Жыл бұрын
@@KetraGames i hope so! It would be superinteresting! Cant wait for it!
@christopherfarrell-artist35573 жыл бұрын
Thank you so much!!!...
@KetraGames3 жыл бұрын
👍😊
@swiatstdio597710 ай бұрын
Thanks so much for this tutorial! I was very confused when the Animator moved the Character Controller even though I controlled it with my movement script. You explained it completely However, I was wondering. Shouldn't we use Time.fixedDeltaTime in OnAnimatorMove method instead of deltaTime?
@KetraGames9 ай бұрын
Hi, you should be safe to always use delta time. Unity will actually set deltaTime to the value of fixedDeltaTime if it's running within Fixed Update. Hope that helps 😊
@SavageXPlayz2 жыл бұрын
what if you cant change the character you are using to humanoid?
@KetraGames2 жыл бұрын
Hi, you can use root motion on generic rigs. You need to set the Root node bone in the Rig section. Hope that helps 😊
@OldDreamStudio2 жыл бұрын
thank you ... but how we can control jump?? ... how we can jump forward?
@KetraGames2 жыл бұрын
Hi, it's often easier to not have the jump controlled by root motion. Take a look at this video where we show how to add an animated jump - kzbin.info/www/bejne/qXvZiKB8jriEfLs. Hope that helps 😊
@larryp22062 жыл бұрын
Hi Ketra - Could you explain why inside of OnAnimatorMove() that velocity is being set to animator.deltaposition? My confusion is that deltaposition has units of length and we are setting it to a velocity. How is this correct? Thanks in advance.
@KetraGames2 жыл бұрын
Hi, perhaps the variable name 'velocity' was not the best choice. animator.deltaposition is a vector containing the position change in the animation that frame. We want to move the Character Controller this amount to keep it in sync with the animation. Maybe the variable should have been called positionChange instead? Hope that clears it up 😊
@dkordy Жыл бұрын
There is definitely a problem and I don't know how to solve it, can you help me? My character does everything it should and walking and running and jumping and everything is perfect but it seems to be slowed down how can I adjust the speed of the character with this script? or does the movement speed depend on the animation speed?
@dkordy Жыл бұрын
actualy its not slow down just movement is for me slow, i wuld like for my character to move faster and i m not able to do that becouse in script there is no speed enymore,so waht shuld i do?
@KetraGames Жыл бұрын
Hi, in the animator you can change the speed of the animations. Try changing the running animation speed to 1.5 or 2. Hope that helps 😊
@CCLawhon Жыл бұрын
I've followed ALL your tutorials! I love them all and have gotten everything to work, so far. I have one issue now. Everything is animated correctly and working well, except after I did the blend tree with idle as default, when the player is on a slope (idle, walking, or running), one foot is buried slightly in the terrain and the other foot is exactly on it. Or, one foot is on it and the other is floating very slightly above it. You said in another comment it might have to do with gravity. My Player (project) settings show -9.81 for both player and cloth. Any thoughts? I am using Mixamo character AJ. Any ideas on how to keep both feet on the ground?! Thank you so much! :) *big fan* Edit: I added player specific gravity multiplier (physics) as you suggested in some other comments. This helped the floaty jumps (my multiplier is set at 1.3), but his uphill side foot still squishes into the ground (as if it is mud) and his downhill side foot still lingers just above it. I messed with the capsule collider and skin size and all that, to no avail. I determined it's not his Y axis height, or his gravity, it's like his X/Z axis doesn't rotate with the terrain. I'm hoping it's simple like the setting for the Root Transform Position on the XZ axes...note this happens in idle, walk and run. When I set that position to center of mass he was waist high in ground. I also checked "foot IK" on all the animations hoping that would make a difference. It did not. Okay I've tried all I can think of!! Any thoughts/help/ideas would be greatly appreciated!!
@Siriys79 ай бұрын
And now how to regulate the speed of walking and running? He moves very slowly...
@iampinball36692 жыл бұрын
I tried to rename the character model for doozy so it was easier to found and it literally broke everything, even after putting the name back. It keeps putting my character in some strange balled up position underneath the floor and I can’t fix it
@KetraGames2 жыл бұрын
Hi, did you manage to fix this? I wasn't able to recreate this issue unfortunately.
@neozoid7009 Жыл бұрын
Is there a method to change the speed of the player in root motion,??
@KetraGames Жыл бұрын
Hi, you can increase the speed on the animation in the animator. If you want it to go twice the speed then set the animation speed to 2. Hope that helps 😊
@neozoid7009 Жыл бұрын
@@KetraGames thanks awesome. and i have one more question I am trying to blend a walk animation to run animation in a 2D blend tree when i move my controller joystick to lower than Half the distance i.e < 0.5 but when i move the joystick just a tiny little bit it didn't stop the value between < 0.5 it directly goes from 0 to 1 . please help . i want a value between 0 and 0.5
@KetraGames Жыл бұрын
Hi, it may be that you're normalizing the input vector. That will set the magnitude to 1
@neozoid7009 Жыл бұрын
@@KetraGamesthanks 🙏 yes you are right I was normalising the input vectors . Again Thanks for the help .👍
@KetraGames Жыл бұрын
Glad you got it sorted 😊
@rehanazeem15562 жыл бұрын
Hi. I have been following all ur videos to make my project. But i am facing a problem which is that ny character is moving only in 1 place. I tried changing root motion option on the animator. However it says its handled by script. Could you help me please.
@KetraGames2 жыл бұрын
Hi, sorry, what do you mean by moving in 1 place?
@paquinho123 жыл бұрын
I decided to try adding root motion to my character following all the steps and it's working well, but the problem is that the speed of the movement is really slow even when running, there's some setting in the animation maybe or in the code to change the final speed of the movement? Thanks!
@KetraGames3 жыл бұрын
Hi, the speed of movement will be driven by the animation. If you want to go faster then you will need to increase the speed of the animation. You can do this by clicking on the State in the Animator Window. Then, in the Inspector there should be a field to set the speed. This will be set to 1 by default. Just increase this until you get the speed you want. This is a really good question and we'll look to do a quick follow up video to show how to do this. Hope this helps in the meantime 😊
@paquinho123 жыл бұрын
@@KetraGames Thanks for taking the time to answer! I sadly think the problem has to be with something more general and not related to the game itself, and it's the scale. My character is pretty small in comparison to the world he's moving in, and I'm realising that even with a fast animation the amount of distance he could travel with each step will still be low, due to the proportions. Think about an ant in real life, no matter how fast it moves the legs, I will not travel the whole garden in seconds :/
@paquinho123 жыл бұрын
For the moment i resolved it by multiplying the speed in the on animator change function, but the result is equal to not using the root motion in the first place (move doesn't sync with step)
@SebastianErestal Жыл бұрын
I have the same problem but this also makes the animation much faster. Which of course looks very weird. Isn't there any other way to solve this?@@KetraGames
@KetraGames Жыл бұрын
If you want the character to go faster but not make the animation go faster then you're better off not using root motion at all. Just move the character directly based on the player input. Hope that helps 😊
@habibiemuhammad62032 жыл бұрын
Managed to follow the tutorial till the end, and the animation is working but my character won't move just staying in place even though I am using the unticked "In Place" version
@KetraGames2 жыл бұрын
Hi, I'm not sure. it might be worth putting a Debug.Log(velocity); in the OnAnimatorMove method to see what value you're getting for the velocity from the animation.
@habibiemuhammad62032 жыл бұрын
@@KetraGames Hello, I tried to debug the velocity, and the output was just (0, 0, 0) all the time unless when I jump. BTW, the Apply Root Motion property is replaced by "Handled by Script" when I use the OnAnimatorMove() and I did a search about this and they say when we use OnAnimatorMove() the Apply Root Motion has no effect when the script implements it
@KetraGames2 жыл бұрын
It seems like the animation may not have any motion. If you select the animation in the Assets Panel you should be able to see the Average Velocity of the animation in the Inspector.
@habibiemuhammad62032 жыл бұрын
@@KetraGames these are the average velocity of idle, walking, and running animations respectively: (0.000, 0.000. 0.000), (0.000, 0.000, 0.015), (0.000, 0.000, 0.041)
@habibiemuhammad62032 жыл бұрын
@@KetraGames I also downloaded the ticked "in place" version of running animation, and the average velocity is (0.000, 0.000, 0.000)
@laurens80692 жыл бұрын
Great tutorial! I have one problem though. I used the exact same animations as you did, but when I stop walking, the player just slides left or right, causing a weird drift in direction. So when I keep tapping the forward key my character just slowly moves right (or left). Do you know how to fix this?
@KetraGames2 жыл бұрын
Thanks. Sorry, I'm not sure. Are you using a Rigidbody or Character Controller?
@laurens80692 жыл бұрын
@@KetraGames Thanks for the quick response! I'm using the builtin CharacterController. I can maybe link a video demonstrating the issue?
@KetraGames2 жыл бұрын
@@laurens8069 Thanks, that would be useful. Also, it might be worth double checking that the checkbox has been ticked for 'Root Transform Rotation - Bake into Pose'
@laurens80692 жыл бұрын
@@KetraGames Yes, I triple checked all the settings on the animations, so unless I'm actually blind (still possible I suppose 😂) I don't think that's the issue. Here's a link to the video: drive.google.com/file/d/14i7XOoiBKEqcd7fnhTHxWOXhy7UjB4Tv/view?usp=sharing You can see how the character slowly starts drifting to the right, without changing rotation
@KetraGames2 жыл бұрын
@@laurens8069 If you go to the animation and press play on the preview, does it drift? If it does you should be able to adjust the root transform rotation offset so that it walks forwards. If you look at this screenshot you can see the arrow in the preview is pointing forwards along the grid line. In this case no offset is required but maybe it is in your case drive.google.com/file/d/1BdCLkJU7yy5mq5jx_N1nKVpm7rmoVCuY/view?usp=sharing
@reynoldbennedictgadmonxi-m32983 жыл бұрын
i wanna ask something again. how to control the walk speed, cause i think the character is walk to slow
@KetraGames3 жыл бұрын
Hi, if you go to the Blend Tree on the Animator window, you can set the speed of the animations. At the moment the walk animation speed is set to 1. You can increase this value to increase the speed of the walk. Hope that helps 😊
@qasimahamad50753 жыл бұрын
Tutorial is great but, I watched the complete video just to listen to your voice I am not interested in the tutorial just wanna listen to your voice and watched two videos for that. you got such a lovely voice
@KetraGames3 жыл бұрын
😂 Thanks 😊
@JosephPlsDonate Жыл бұрын
can you please make a, script that is just the animation! not with the movement!
@carolina12932 жыл бұрын
How do I make the main character walk the "walking" one and the shift the running one
@KetraGames2 жыл бұрын
Hi, you could swap the logic round, so move at half speed if the shift button isn't held down. Something like this should work if (Input.GetKey(KeyCode.LeftShift) == false && Input.GetKey(KeyCode.RightShift) == false) { inputMagnitude /= 2; } Hope that helps 😊
@robinpage27303 күн бұрын
For the life of me i cannot understand why unity insists on forcing devs to hard code character movement. You've got 6 axes of movement, 3 linear and 3 rotation, with velocity. Then you've got specific movements (walk, run, jump) that use specific directions. Then, map the inputs to those movements. Then assign the animations and set the blend trees. I fail to see why that can't be done through a simple graphical interface.
@KDHD.122 жыл бұрын
I can move when I jump but not when I try to walk.
@KetraGames2 жыл бұрын
Hi, when walking it should be using Root Motion of the animation. Do your walking animations contain movement or are they just on the spot?
@KDHD.122 жыл бұрын
@@KetraGames I managed to fix this luckily, it was to do with my blend tree. Though my move speed is still very slow. I understand the speed is determined by the animation though I still do not understand how to increase this. I have spoken with the animator and they do not understand what I am asking for when I ask them to increase the base movement speed of the animation. Is there anyway I can make a hybrid code of the root motion and the original movement speed code? P.S All of your tutorials are an absolute god send and I cannot thank you enough for putting all of these together!
@andrewchua66172 жыл бұрын
Any one found the solution why my character stays in place even though the animation is working?? Edit: i tried putting Debug.Log(vel) on the OnAnimatorMove, but there's no thing shown in the console window. Can I still continue with the project without root motion?
@KetraGames2 жыл бұрын
Hi, have you checked that Apply Root Motion is ticked in the animator?
@andrewchua66172 жыл бұрын
@@KetraGames yes already did. But still stays in place
@KetraGames2 жыл бұрын
@@andrewchua6617 Thinking about it, if everything is setup correctly then you shouldn't be able to tick 'Apply Root Motion'. It should say 'Handled by Script'. Can you see that in the Inspector? If you can't get root motion working then it's not the end of the world. It's definitely not essential for a game and you should still be able to follow along the later videos for the most part
@animemusic95462 жыл бұрын
Ok , after doing everything right , my character still changes position in y axis , when it goes to a steep place and then comes back it position is still where the highest position was, i did that baking of position in in root motion , still its not working
@KetraGames2 жыл бұрын
Hi, could you check that gravity is being applied to your character correctly. Baking the position will only stop the animation changing the position. If you move up a slope and then back again it will be gravity that needs to bring the character down again.
@animemusic95462 жыл бұрын
@@KetraGames hey thanks for replying , i solved the gravity problem...i wanna ask one more thing , my character is not following the camera rotation, I am using CineMachine free look camera...is there any way to use it ??
@animemusic95462 жыл бұрын
Nevermind I solved it , I was using Cinemachine transform in inspector instead of main camera
@KetraGames2 жыл бұрын
@@animemusic9546 Sorry for the late reply. Maybe our video on the free look camera may help - kzbin.info/www/bejne/oJrcgI2YgLeZl7s
@dkordy2 жыл бұрын
my character after i did it evrything the same moving in one place,animations working but character standing in one place!
@KetraGames2 жыл бұрын
Hi, sorry, I'm not sure. Could you compare with the script here to see if there are any differences - dotnetfiddle.net/gBeb0M
@drakenforge37982 жыл бұрын
Try Disabling this if your not using your camera ==> movementDirection = Quaternion.AngleAxis(cameraTransform.rotation.eulerAngles.y, Vector3.up) * movementDirection;