Should You Use Root Motion?

  Рет қаралды 118,821

Birdmask Studio

Birdmask Studio

6 жыл бұрын

In this video I look at what Root Motion is, how it works, and whether or not you should consider using it for your game.
I also demonstrate how i've set up my own rig to animate for Root Motion in Blender, as this is something I have found very little information on online and thought others might find it helpful.
If you want to find out more about scripting and implementing Root Motion to your game, John Mac has done a brilliant tutorial series, using 'The Legend of Zelda Wind Waker' game as a reference, here that I used when first learning about Root Motion:
• Unity Third Person Con...

Пікірлер: 83
@justinspearlord
@justinspearlord 6 жыл бұрын
It sounds like you fast forwarded your voice 😂
@YuriNoirProductions
@YuriNoirProductions 5 жыл бұрын
i was wondering the same thing...it might even be entirely synthesized
@juschu85
@juschu85 4 жыл бұрын
Or it sounds like he just randomly cut out/skipped a few milliseconds of the audio here and there.
@johnbrooks5752
@johnbrooks5752 4 жыл бұрын
@@juschu85 he used script audio instead of root audio
@boythee4193
@boythee4193 4 жыл бұрын
exactly. good hook. computerized? human but clipped and sped up? hmmm
@KBtTech
@KBtTech 4 жыл бұрын
It's a machine voice. Computerized
@psy237
@psy237 3 жыл бұрын
nice!! that's exactly what i needed to hear! Now I know that root motion is actually what I was looking for so many just ignore it or talk only about in-place animations. Thanks a lot!
@JustSomeRandomIdiot
@JustSomeRandomIdiot 3 жыл бұрын
Would be great for something like 'vault over wall' animations or animating the response of an attack, like a knockback in my opinion. Not sure I would use it all the time. While the walking animation is obviously visually more interesting, I'm not sure that kind of animated walking would be necessarily 'better' in terms of gameplay.
@Josje95
@Josje95 5 жыл бұрын
You're a livesaver, this concept was super vague to me but I understand some of it now!
@idatemodels2872
@idatemodels2872 3 жыл бұрын
Excellent content, please slow down. Eg. "People in all the universe praised the content. In regards to learning the content, they asked me to slow down. And I did. I did through repetition and more detail through iterative explanations. In addition..." I loved it!! I want to see more.
@asadd2
@asadd2 3 жыл бұрын
voice is a bit odd but beside of that...great video! I've always wondered what magic there is behind some characters really touching the ground or just sliding over it. Thank you very much!
@CosmicComputer
@CosmicComputer 4 жыл бұрын
I wish I could find more info on animating with root motion in blender, this was great though, thanks!
@BirdmaskStudio
@BirdmaskStudio 4 жыл бұрын
That is one of the biggest problems with root motion, no one seems to talk about how to animate for it. Only method I found, which I show in the video a bit, was adding a ‘Child Of’ constraint tn the feet IKs and setting an empty game object as their parent, and then turning their drivers on and off when I wanted to animate walk cycles. Wasn’t perfect, had quite a few issues and made the rig a bit more cumbersome, but that is at least a way to consider tackling this.
@CosmicComputer
@CosmicComputer 4 жыл бұрын
Birdmask Studio ah I see, thanks for the tips! I swear if I ever figure it out I am making a course lol. Also, your vampire heist game looks freaking amazing!
@GoblinGamesLtd
@GoblinGamesLtd 5 жыл бұрын
You can get the best of both worlds by storing the root data as a curve and then applying that an offset on the mesh while it's still being driven by script.
@Trucktore
@Trucktore 5 жыл бұрын
Do you have any examples / showcases of the result of this method?
@FreemanTraceur
@FreemanTraceur 5 жыл бұрын
You mean Motion Matching? Because, documentation for that is even more scarce.
@JoeyQuint
@JoeyQuint 4 жыл бұрын
I was gonna say the video is missing that, precisely. The example of the character walking slowly in the video is not representative of script motion because they just used an animation meant to use root motion and removed it, so the character's feet will be sliding on the ground. I mean, of course using script motion we're gonna adjust the animation with fake movement instead of letting the character have his feet slide on the ground.
@leomotta5376
@leomotta5376 3 жыл бұрын
You had so much success on this subject that I think you should go deeper, would be good to see how you make such a complex animation state tree
@domagojalagic6678
@domagojalagic6678 3 жыл бұрын
Useful video, thanks! :)
@dandymcgee
@dandymcgee 4 жыл бұрын
This video is really good, thanks! You desperately need a pop filter though, the "S" sounds are brutal.
@speedy_o0538
@speedy_o0538 8 ай бұрын
Best explanation out there
@JtooMe2
@JtooMe2 26 күн бұрын
This is great!
@ZekeMe0ut
@ZekeMe0ut 5 жыл бұрын
Pro Tip: Watch at 0.75x speed.
@andrewogolo7257
@andrewogolo7257 3 жыл бұрын
Jonas Tyroller said to watch tutorial vids at 1.25% speed... I think I won't take his advice
@mikethegamedev
@mikethegamedev 3 жыл бұрын
use 1.25 so it learn 1.2 half faster
@AlexTuduran
@AlexTuduran 3 жыл бұрын
The usual 1.5X is fine here as well.
@kureysalp
@kureysalp 5 жыл бұрын
Can you show us the transitions used for pivot animations?
@medmel2160
@medmel2160 6 ай бұрын
This is gold. Take my sub
@eirik2712
@eirik2712 Жыл бұрын
Tutorial: for those who don't know. In unreal engine at least, you need to have a root bone for your skeleton, and the animations must be set up for root motion. There's a video on a blender plugin that can give a mixamo character a root bone, and mixamo animations root bone data. Then you assign your animation blueprint to the new skeleton
@brodakarat6340
@brodakarat6340 4 ай бұрын
I think for third person root motion is good. I'm making a full-body first person character so most of it is scripted. But for mine there are no keyframes either. My walk cycles are set using math and lots of parameters, allowing the first person experience to be easily customized like view bobbing and stuff
@eirik2712
@eirik2712 4 ай бұрын
@@brodakarat6340 oh wow, smart. Using math for cycles. Yeah in first person root motion is probably not important. For third person games with combat like mine, well since it's a fighting game where every attack moves the character quite a lot, it's essential
@johannesmittig4169
@johannesmittig4169 4 жыл бұрын
can't tell if this is a real or computer voice
@Navhkrin
@Navhkrin 2 ай бұрын
Its gotta be the guy that computers try to imitate.
@nielsvdmarel
@nielsvdmarel 5 жыл бұрын
How would you suggest correctly switching from root motion to physics? For something like reacting to a attack or falling?
@BirdmaskStudio
@BirdmaskStudio 5 жыл бұрын
I can’t give a precise answer - I am still learning all this as it comes up. In most cases i’ve seen, and in unity's default example, the simplest solution would be to turn off the root motion while your character is in the air, or jumping, and calculate the movement by normal scripting, or physics means, until the character is grounded again. Root motion doesn’t have to be constant, as I think was mentioned by someone else here. You can also, along with toggling it on and off, actually have it disabled, but still fetch and apply all the move and rotation data by your own script, rather than the animator, which would give you greater control over how it plays out.
@magnusm4
@magnusm4 4 жыл бұрын
My main issue is I want control like in SM64, meaning very precise control so you should be able in a pvp session to run on a wall and when you land, roll and dodge to the side based on the camera rotation. My main issue I think of with root motion is the blank areas. The points where the animation has to rotate around so you don't turn quickly enough. Say you run to the left and it rotates 90 degrees. But the animation makes you run half a meter forward while turning, but you want more precise and turn much more quickly. It's like in Resident Evil when you turn, imagine you walk down a corridor or a street and you want to suddenly go back, but the animation makes them turn right into the corner or a street lamp. With scripting they would just turn in that direction more precisely. Plus the issue of an enemy projectile pushing you around and having the root motion slow down if you have a gust of wind pushing you back etc. What I mainly think of is, what if you used root motion for Touhou or a bullet hell game in general or in League Of Legends and Counter Strike. Suddenly those quick reaction movements don't work and you're locked away from gameplay
@dfghj241
@dfghj241 2 жыл бұрын
maybe you should make a 180degree turn animation that moves the root motion backwards on the direction you want to go then. make a simple code that detects the desired movement angle, and if it is within a certain threshold ( smaller then - 160 and bigger then 160) you trigger this animation to play, ignoring all the others. with root motion, this will make your character rotate very efficiently. the smaller this 180 turn animation is, the more precise it is in relation to character movement as well.
@LautaroArino
@LautaroArino 3 жыл бұрын
Omg I'm so happy to read the comments about the voice. I thought I was going dumb. Or insane.
@creasu124
@creasu124 4 жыл бұрын
did you speed it up by 1.25 lol like i used KZbin it's speed setting to change it to .75 and it sounds like the normal speed you talk lol
@fabianobersovszky6987
@fabianobersovszky6987 Жыл бұрын
As far as i know, root motion is not recommended in some cases. Can i use root motion for a third person cover system for a MP game?
@magnusm4
@magnusm4 3 жыл бұрын
I wish there was a way to blend script and root motion. So a staff jump can have the arc but you can press jump in the middle for a high jump and cancel it. The problem is their positions in the world and having to contradicting motion compete or having to blend smoothly together becomes an issue. The main issue I have with root motion is it's complete disregard for physics or the world. This is clearly shown in Tomb Raider and many modern games where the jump is scripted and ends up hacking or looking awkward when colliding with things unlike scripted which stops all motion in the direction of the obstacle. Among many other things.
@BirdmaskStudio
@BirdmaskStudio 3 жыл бұрын
It's been a while, but from memory you should be able to blend root motion and scripted movement using deltaPosistion and deltaRotation. It's what I tended to do when I wanted a quick, partially Root Motion, driven character movement. DeltaPosistion and DeltaRotation let's you get the how root motion is attempting to move and rotate you character so if you want to you can take that info and apply it yourself through code after you've applied whatever modifiers you want. An example would be if you don't have turn animations, you can apply the rotation through code and then take the root motions position changes as the forward movement for your character.
@magnusm4
@magnusm4 5 жыл бұрын
I'm split. I have only worked with movement using scripts to wall jump and such. My main fear is that I want an extremely responsive game for 3d platformer that feels fluid and solid. I'm worried animating with levels of uneven and very curved floors could mess this up or make some feel unresponsive
@BirdmaskStudio
@BirdmaskStudio 5 жыл бұрын
I’ve not animated root motion for a full-on platformer character, but i’ll try to respond to the best of my knowledge. While it’s animation driven, root motion movement is very similar to coded movement in how it acts, so there shouldn’t be any more trouble with slopes and uneven floors than you would normally have (Unity’s 3rd Person character example uses root motion and could be a good thing to stress test if you’re looking into it). As for the feel - that depends. Root motion can be very hard to get right, and feeling responsive. If you want a weighty character that carries momentum, it can be great with animated running pivots, skidding stops and so on - (the project from tutorial series I link to in the video shows a good example of that which you can download and try) - but again it takes quite a lot of work to refine, and requires a good deal of back and forth between the animating software and unity to change anything that doesn't feel right. I tend to stick with coded movement most of the time, unless i’m working on a point and move game with navAgents, or one where movement can be kept simple. Root motion can be great and do some unique things movement wise, but it can really cost you in time and resources, so unless there's something you really want to do with it, I recommend leaving it until you can try it out in a less movement intensive game.
@magnusm4
@magnusm4 5 жыл бұрын
Yes see that's the thing. The specific movements. kzbin.info/www/bejne/rHfWe3yoopeVqrc His 5 tips are amazing and I applied the jumping to my 3d platformer and it was amazing. But the problem is the drag. I couldn't find a way to make that in the 3d platformer without messing up the entire code that makes him walk based on camera direction., let alone figure out how to sync it with animation later. If you run but suddenly press backwards I want an animation of him stopping himself with a slide and running backwards. This I can imagine easily making in root motion but in script it's difficult enough to get an acceleration, i'm not even sure I got that done. If i'm still and push left I want an animation for that or if I choose a more rapid change in direction. I feel like root motion gives me the solution, but it's harder to apply and takes time. But scripted means I can't find any solution and instead takes time to figure it out and fine tune it. Then i'd have to sync the animation with speed variations if I get flung by something and I travel at a speed above my run speed then the animation would need to speed up to sync up
@BirdmaskStudio
@BirdmaskStudio 5 жыл бұрын
There are ways you could do what you want with code, though it depends on the specifics of how you’re coding movement. From want that i’ve gathered from what you’ve said so far I recommend looking more at some of the tutorial examples you can find online for coding 3D platformers, adding a sense of acceleration and weight with coded movement, and even slow and sudden turns are much easier to tweak in code if you are able to program it (Rigidbody player characters using force for movement especially, though it can also be done for character controller based ones too). Syncing those movements to animation can take a bit of work but is also doable. I do have a playlist on this channel, and a project download, that goes over some of the basics of moving 3D characters, with fully commented scripts that could be helpful: kzbin.info/www/bejne/Z3q9nXd_ZaaopJI It covers the basics of syncing animations to movements, moving in the direction of the camera and, within the full unity project, are some extra examples of some features that can be added to your character. If you want to have a look at a full example of a sharp pivoting Root Motion platformer character and how to implement it the tutorial here: kzbin.info/www/bejne/mGGzp31qdrypjbM Is the one I learnt from and is a good example to show how it’s done and what it takes. That's all I can really say on the matter but I hope you find it helpful, and I wish you good luck on your work.
@magnusm4
@magnusm4 5 жыл бұрын
Thanks i'l look them up. I'm already currently going through the second link tutorial and it's an interesting watch to compare his methods to the same action I made using different methods, he uses Lerp for the camera movement while I learnt that SmoothDamp is apparently better and the recommended way to do camera controls
@HasimFN
@HasimFN Жыл бұрын
So script motion the animation follows u and rootmotion you follow the animation?
@chienbanane3168
@chienbanane3168 3 жыл бұрын
So root motion is why GTA 4 & 5 character movement feel so unresponsive while looking so fluid?
@urrraight2270
@urrraight2270 3 жыл бұрын
Was gta made with root motion?
@supjay3945
@supjay3945 2 жыл бұрын
I think your noise cancelling filter is messing up the audio.
@Visigoth_
@Visigoth_ 2 жыл бұрын
Is this narrated with Text-to-Speech?
@vinaciotm
@vinaciotm Жыл бұрын
if you can do cutscene to gameplay without cut, like God of War 4, Tomb Raider and Uncharted... you will be THE FIRST!! I cannot find anything tutorial about this
@GameOnBudget
@GameOnBudget 3 жыл бұрын
can you help me ?
@Spaafy
@Spaafy 4 жыл бұрын
is it worth it on a tps multiplayer?
@stuartrockin
@stuartrockin 5 жыл бұрын
Speed 0.5
@dogzer
@dogzer 3 жыл бұрын
I was going to ask how did you manage to get root motion working in Unreal.... then I saw you're working with Unity Man root motion in Unreal is impossible to make it work
@eirik2712
@eirik2712 Жыл бұрын
I can explain it for you. I just managed to do it after some research and testing. If you're still wondering after two years
@coffeediction
@coffeediction Жыл бұрын
1:15 "the result is, wvjwrnnlakdkjdflsj-animation" what?
@oyazdani4214
@oyazdani4214 2 жыл бұрын
I thought it's just me, but even the "Auto-Generated Subtitle AI" is unable to understand the fast-speech in British accent!😂 The guy says: "Between". I hear: Machine! The guy: "Character". AutoGen-Sub: Cattle! Edit: Finally, we (me& AI) ended up helping each other in a 0.75 play-speed to encrypt the voice.
@sharklygoldman4040
@sharklygoldman4040 5 жыл бұрын
Wait. What? Say that again 4x slower.
@kishirisu1268
@kishirisu1268 5 ай бұрын
Seems like you dont uderstand how root motion used in games. Character moved by scripts in both cases, only difference with root motion - root bone position is used to tweak body postion, so it look more naturaly. When jusracter fall and jump it is always work for physics engine, you cant animate gravity. Is”t it obvios?
@MoogieSRO
@MoogieSRO 2 жыл бұрын
Why does the narration of this sound like text-to-speech? It's obviously not, because it sounds too natural, but at the same time it's so jerky, like it's clipping almost between every syllable. It's extremely distracting.
@iSn0w
@iSn0w Ай бұрын
it is TTS
@sagardeka2158
@sagardeka2158 2 жыл бұрын
why so fast😁
@prealityagila4864
@prealityagila4864 3 жыл бұрын
I can't understand what it's saying.
@playplus5386
@playplus5386 5 жыл бұрын
you talking so fast
@ID345891
@ID345891 4 жыл бұрын
what in the everloving fuck was that intro
@Oppay48
@Oppay48 Жыл бұрын
why is this video speaking so fast?
@maddiehad
@maddiehad 3 жыл бұрын
don't make your audio edits more efficient bro...just don't.
@karpadorgx5709
@karpadorgx5709 2 жыл бұрын
Ba n du
@tosuntosungrkm
@tosuntosungrkm 3 жыл бұрын
man great video but you talk so fast!
@user-rd6uc2sf6i
@user-rd6uc2sf6i 4 жыл бұрын
wtf is wrong with the audio? I mean the content is great but your voice sounds weird and it's almost distracting
Swapping Lightmaps In Realtime
6:33
Birdmask Studio
Рет қаралды 17 М.
Why Stairs Suck in Games... and why they don't have to
11:24
Nick Maltbie
Рет қаралды 1,5 МЛН
КАК СПРЯТАТЬ КОНФЕТЫ
00:59
123 GO! Shorts Russian
Рет қаралды 3,2 МЛН
狼来了的故事你们听过吗?#天使 #小丑 #超人不会飞
00:42
超人不会飞
Рет қаралды 64 МЛН
ONE MORE SUBSCRIBER FOR 6 MILLION!
00:38
Horror Skunx
Рет қаралды 15 МЛН
Root Motion Basics | Adv. Anim Application [UE4/UE5]
13:58
PrismaticaDev
Рет қаралды 34 М.
Giving Personality to Procedural Animations using Math
15:30
t3ssel8r
Рет қаралды 2,4 МЛН
Root Motion Explained (Unity Tutorial)
11:49
Ketra Games
Рет қаралды 67 М.
I tried coding my own graphics engine
4:23
Garbaj
Рет қаралды 184 М.
GDC 2016 - Motion Matching, The Future of Games Animation... Today
30:39
Kristjan Zadziuk
Рет қаралды 131 М.
Root Motion Explained - Unity Tutorial
4:02
Roundbeargames
Рет қаралды 25 М.
Creating procedural walk movement | Prototype Series
5:50
Blender - Completely Rigging A Character (5 MINUTES!)
4:29
Royal Skies
Рет қаралды 326 М.
Root Motion + NavMeshAgent (and Nav Mesh Links!) | Unity Tutorial
23:38
Game Development Beyond the Basics
Рет қаралды 4,3 М.
КАК СПРЯТАТЬ КОНФЕТЫ
00:59
123 GO! Shorts Russian
Рет қаралды 3,2 МЛН