I just spent ten minutes wondering why I wasn't walking forward, just to realize I hadn't set up inputs yet for WASD lol. Great stuff as always, I look forward to seeing if there is anything else you've made in the time since this.
Since the fixed IK system has been put off indefinitely, could you do a video on using IK with the system currently in place? Some examples could be a person aiming a gun or properly placing their foot on terrain.
The main issue I'm having is that blender is only exporting the hips bone. It seems like the plugin is no longer correctly generating the root bone in the latest blender version. Or am I missing something?
I think you should try to place a grid texture on the ground and try running your game again. The character's foot slides and doesn't move fast enough at all, compared to how it shows up in the RootMotionView, or using the equivalent transform3d in godot 3.
How everything works perfectly for you. I added root bone and looks like my animation comes in 1/100 size. Cant see animation because root bone is too big!
I'm using Blender 4.0, and whenever I try to import a folder with multiple FBX animations through the Mixamo Root add-on, it only imports the first animation in the list, and I can't figure out why. Any ideas?
@@InternetMenace8526try rename mixamorig:Hips to mixamorig1:Hips (add the 1) under the Hip Bone Name of the plugin it looks like Mixamo has renamed the bone so its not finding the right bone. I just did that and I was able to import all the animations fine
@@InternetMenace8526 I had that issue in 4.1, but I had checked the " remove prefix" option, when i unchecked it and tried again, it imported them all.
Happened to me as well, all you have to do is add a 1 after the "mixamorig" for Hip Bone Name and Name Prefix in the Mixamo root add-on. So it should look like this: mixamorig1: & mixamorig1:Hips
I'm facing an issue where my animations all got offset on the z axis. It works nicelly in Blender, but if I export it as glb or save it straigth to godot, the animations get screwd, the run animation makes the char just disapear at the horizon lol the only difference i see is the skin and the Hip bone is called "mixamorig1:Hips". I've changed the name in the addon panel, and so on.. DO you know how can i solve this problem? ty so much
Why does it only import one of the animations when i check insert root. I've tried different versions of blender and i tried your repository and Richard Perrys
@@FinePointCGI I'm not getting any errors. It just imports a lone armature with no mesh or animations whenever I try to use it on something with the Mannequin model.
@@dabajabaza111 You need to use mixamorig1 (the 1 was missing) in both the nameprefix and for the hip bone name, and it should work. At least it did for me.
@@FinePointCGI While you at it - some animations don't seem to get imported. in my case this happend w/ "strafe walk" (left and right), walk and idle straight from mixamo.
Can you throw those up into a Google drive so I can take a look at it on my end.. I haven't had any issues with any importing with my latest version on my github though who knows
when using the example code, the model always snaps back to the starting position after a run cycle. is this still compatible with godot 4.3? Edit: it works if you replace the character node with your own. Thank you very much, this is the only root motion tutorial that worked for me!
Thanks alot, keep up the great work! However after completing the tutorial, if you turn on shadows, and run for a while the character is slightly going up and up off the grid.... ?
@@FinePointCGI Thanks for the response :), the issue im having is that one of my animation is too far back because in blender i set the "middlepoint?" too far forward. So im trying to change the position of the mesh BUT ONLY for that speicific animation. Is that possible?
You would need to rekey the hip bone if you're using miximo and that would hopefully move all of your stuff forward.. You could also try selecting whichever bone is your base that moves all of your bones and just set that as the roopon and it might work but then your character might can't left and right so you might have to go in and get rid of all the rotation of that bone
How to add new animations/remove unused ones later on? I tried to re-export blender file with new set of animations into godot folder and clicked re-import on .dlb file in godot, but they don't show up in animation tree.
I hand to drag the character file back into the scene to get the new aims. Then add it to the library of the original. Hopefully there is an easier way.
What if I want to make a root motion in Godot itself? Like using Node3D or just the center of something? I want to use Root Motion in Sprite3D to be exact.
I'm wondering why you don't have the camera controller just as a child of the character instead of setting it's location to the character location in script?
Now that sounds like a bug! Id lodge one with the plugins git and see if they have any ideas why. But something to check make sure all of your bones have there scale and rotation applied. It can fix funky behavor
😮 omg thank you so much U solved my problem I wanted my animation walk but not reset so I have to use animation tree Thank you so much Unforchanetly not much people were talking about this Edit: It didn't solved my problem
Great tutorial...Im using synty characters, and have managed to follow along up until you add the rootmotionview node, and I get no movement....its animated, but its not moving....I managed to put a root bone on the character, and on the animation library Im using (action adventure), and the animations are animated and moving in blender, but in Godot, its just animated, no movement.....any idea why? Cheers!
Are you using the mixamo rig with the synty characters? I've found that I needed to add a bone map using the default humanoid profile when importing mixamo to godot.
yes, I am using the mixamo skeleton...I found it too dificult to animate all the bits at once though, and Im making an RPG, so need to swap out parts, so Im currently playing with mounting all the static meshes as you would a weapon....doesn't morph with the animations anymore, but its meh....that'll do for now :) @@KyleRassweiler
@@MrMikhead If you export the meshes without the armature they don't seem to export their skin data and won't animate in godot... I'm doing the same as you and found that I need to export everything to "models.glb" then export only the armature to "armature.glb"
Hey when you set up your BlendSpace2D, I noticed your implementation has some weird behavior I'm encountering, but you didn't really touch on it. When you are about half way between walk and sprint, the walk and sprint animations become out of sync and deconstructively interfere, creating a skipping like motion. This happens when walking on a 45 degree angle as well, since the forward component is about half way between walk and sprint. Any thoughts on how to overcome this? It is sneaky when developing on key and mouse
@@FinePointCGI my mind has been on this issue in the background for the last 20 hours so here is what I found: - getting your animation loops for walking and running to be roughly the same number of frames helps sometimes? - getting you animation loops for walking and running to start stepping with the same leg in the loop helps sometimes? - if you do those two things make sure to enable the "sync" checkbox in the BlendSpace2D so it makes a difference if you have a sprint button you can clamp the blend position to stay within the walk region of the blend space another nice touch I found is to use move_toward() or some other interpolation function to smoothly move the blend position. It helps for digital inputs like keyboards so the character slowly starts moving. it also helps transition from sprinting to walking just a brain dump after my working on a similar system!
I was doing a project and really needed help with root motion, 10/10 tutorial man 👍. When do you plan to do the C# version, since C# is just the better language? :)
Maybe you figure it out but in case you have not try rename mixamorig:Hips to mixamorig1:Hips (add the 1) under the Hip Bone Name of the plugin it looks like Mixamo has renamed the bone so its not finding the right bone.
Hey great video! but I have a doubt I noticed in the end the character snaps when changing animations. Is it possible to mix Root Motion and the techniques presented in your video "Creating A 3d Character Controller" to make transitions between animations smoother?
if your gonna do a ground its always better to have everything in order not criticizing but for the ones who are new youll start gettin a headache if you dont set things in order. some nodes cant go before or after other nodes. so if you set a ground do it like this to stay organized. click on 3D scene and name it world> right click add child node and add static body3D> right click static body add a child node and add mesh instance3D> under mesh instance on the right side of your screen click on empty and choose a cube> click on the small cube picture and scale the x to 200 and z to 200> scroll down to transform and on the Y position type in -0.51 this will lower the platform just beneath the X axis> now go back to static body add a child node and add the collision shape3D> do the same thing as you did for the mesh instance 3D with scales of 200 on the X and 200 on the Z and -0.51 on the Y position under transform> now since you renamed the scene “world” when you save this scene as tscn itll automatically have it name as world. small edit: make sure you set the collision shape 3D to 1 under the transform section, so position on Y is 1 this will put the character right above the floor perfectly
You can entirely remove the need for a root motion by using call method tracks for either signals or functions in the animations, you are gonna need to use call method tracks for other things like combat/destroying tiles/building anyway so might as well
Hello, can you make a video about how to make a 3d character move to where you tap on the screen in 3D? Like Dota 2. I really want to make a mobile game but I don't know how to code it. 🥲
I have a video on how to use the 3d navigation system in Godot 4 that should get you going if you combine the character controller animation portion and that tutorial it should get you relatively close. I'll link it when I get home.
Hope you're doing well friend! Thanks for the awesome vid!
Hey thanks for the tip! I really appreciate it! I am doing well work has been busy but im getting though my list of videos one by one!
I just spent ten minutes wondering why I wasn't walking forward, just to realize I hadn't set up inputs yet for WASD lol. Great stuff as always, I look forward to seeing if there is anything else you've made in the time since this.
Since the fixed IK system has been put off indefinitely, could you do a video on using IK with the system currently in place? Some examples could be a person aiming a gun or properly placing their foot on terrain.
I think that would be alot of fun! Ill look into it!
The main issue I'm having is that blender is only exporting the hips bone. It seems like the plugin is no longer correctly generating the root bone in the latest blender version. Or am I missing something?
Excellent congratulations!
This tool works well in theory but it's broken currently. Please update if you can.
Another great tutorial.
Thank you so much.
I think you should try to place a grid texture on the ground and try running your game again. The character's foot slides and doesn't move fast enough at all, compared to how it shows up in the RootMotionView, or using the equivalent transform3d in godot 3.
I fixed it by changing the AnimationTree's Process Callback from 'Idle' to 'Physics.'
I guess with each blender update the import tool break. What is your blender version ?
Thnx brother didn't know that u will actually create a vid on it. and also can u suggest how to implement jump using root motion cuz am stucked there
Of course! All of my videos (well most) are viewer suggested!
How everything works perfectly for you.
I added root bone and looks like my animation comes in 1/100 size. Cant see animation because root bone is too big!
Look at your export settings see if it has something to do with scaling not being applied.
I'm using Blender 4.0, and whenever I try to import a folder with multiple FBX animations through the Mixamo Root add-on, it only imports the first animation in the list, and I can't figure out why. Any ideas?
Same here, did you manage to get it working?
@@InternetMenace8526try rename mixamorig:Hips to mixamorig1:Hips (add the 1) under the Hip Bone Name of the plugin it looks like Mixamo has renamed the bone so its not finding the right bone. I just did that and I was able to import all the animations fine
@@InternetMenace8526 I had that issue in 4.1, but I had checked the " remove prefix" option, when i unchecked it and tried again, it imported them all.
@@_keerp I managed to get it importing them all by using the 3.something version of Blender. I'll try your method next time, thanks.
Happened to me as well, all you have to do is add a 1 after the "mixamorig" for Hip Bone Name and Name Prefix in the Mixamo root add-on. So it should look like this: mixamorig1: & mixamorig1:Hips
I'm facing an issue where my animations all got offset on the z axis. It works nicelly in Blender, but if I export it as glb or save it straigth to godot, the animations get screwd, the run animation makes the char just disapear at the horizon lol
the only difference i see is the skin and the Hip bone is called "mixamorig1:Hips". I've changed the name in the addon panel, and so on..
DO you know how can i solve this problem? ty so much
When I exported from Blender only the currently selected animation in the Action Editor came along with the GLTF export.
Select character mesh, armature, in export select: glTF Binary (.glb), and Include -> Limit to -> Selected objects
Why does it only import one of the animations when i check insert root. I've tried different versions of blender and i tried your repository and Richard Perrys
In hip bone name change it too mixamorig2:Hips. So basically adding a 2 after mixamorig
For some reason, importing animations using the addon doesn't work with the Mannequin model from Mixamo.
Are you getting any errors? Ill have to look more indepth on this.
@@FinePointCGI I'm not getting any errors. It just imports a lone armature with no mesh or animations whenever I try to use it on something with the Mannequin model.
I'll dig into it and see what's going on something seems to be up
@@dabajabaza111 You need to use mixamorig1 (the 1 was missing) in both the nameprefix and for the hip bone name, and it should work. At least it did for me.
@@AetherPowered Thank you! This solved the issue for me.
Nice Work!
The BlenderAddon doesn't seem to create a root bone for the armature with the skin (Blender 3.4).
I'll have to take a look... I just recently updated it to handle crouching animations properly
@@FinePointCGI While you at it - some animations don't seem to get imported. in my case this happend w/ "strafe walk" (left and right), walk and idle straight from mixamo.
Can you throw those up into a Google drive so I can take a look at it on my end.. I haven't had any issues with any importing with my latest version on my github though who knows
@@FinePointCGI sure, how do you want me to you?
drive.google.com/drive/folders/1lbIi1eXJsySOTS0GhTVurwBHeAJagZ43?usp=share_link
Upload it to that. Ill be closing that link down in a few hours
when using the example code, the model always snaps back to the starting position after a run cycle. is this still compatible with godot 4.3?
Edit: it works if you replace the character node with your own. Thank you very much, this is the only root motion tutorial that worked for me!
Thanks alot, keep up the great work! However after completing the tutorial, if you turn on shadows, and run for a while the character is slightly going up and up off the grid.... ?
That's because the character doesn't have gravity yet
If I dont have a root bone, do you have a other way to force my model to stay in 1 place, I messed up the root place thing in blender. Im new tho
No you must have a root bone to do root motion unfortunately!
@@FinePointCGI Thanks for the response :), the issue im having is that one of my animation is too far back because in blender i set the "middlepoint?" too far forward. So im trying to change the position of the mesh BUT ONLY for that speicific animation. Is that possible?
You would need to rekey the hip bone if you're using miximo and that would hopefully move all of your stuff forward..
You could also try selecting whichever bone is your base that moves all of your bones and just set that as the roopon and it might work but then your character might can't left and right so you might have to go in and get rid of all the rotation of that bone
How to add new animations/remove unused ones later on? I tried to re-export blender file with new set of animations into godot folder and clicked re-import on .dlb file in godot, but they don't show up in animation tree.
I hand to drag the character file back into the scene to get the new aims. Then add it to the library of the original. Hopefully there is an easier way.
What if I want to make a root motion in Godot itself? Like using Node3D or just the center of something?
I want to use Root Motion in Sprite3D to be exact.
I'm wondering why you don't have the camera controller just as a child of the character instead of setting it's location to the character location in script?
I prefer to seperate them because it will give me more flexability in the future. For instance if I wanted to add in a "photo mode" or something.
Nice!
But how do I add an animation after all of this? E.g. when I extend my movement system later.
The insert root options just scales all my armatures down and changes their rotation randomly
Now that sounds like a bug! Id lodge one with the plugins git and see if they have any ideas why. But something to check make sure all of your bones have there scale and rotation applied. It can fix funky behavor
Godot: heres a lot of tools, and toys figure it out!
Unity: Ill put it together for you, but Im going to use duct tape
Unreal: *slaps to the face*
😮 omg thank you so much U solved my problem I wanted my animation walk but not reset so I have to use animation tree
Thank you so much
Unforchanetly not much people were talking about this
Edit: It didn't solved my problem
@ _physics_process(): Node not found: "LookAt" (relative to "/root/Node3D/Node3D/SpringArm3D/Camera3D").
Check your node path and verify its in the right location judging by what im seeing you may have an extra Node3D in your path.
Great tutorial...Im using synty characters, and have managed to follow along up until you add the rootmotionview node, and I get no movement....its animated, but its not moving....I managed to put a root bone on the character, and on the animation library Im using (action adventure), and the animations are animated and moving in blender, but in Godot, its just animated, no movement.....any idea why? Cheers!
Are you using the mixamo rig with the synty characters? I've found that I needed to add a bone map using the default humanoid profile when importing mixamo to godot.
yes, I am using the mixamo skeleton...I found it too dificult to animate all the bits at once though, and Im making an RPG, so need to swap out parts, so Im currently playing with mounting all the static meshes as you would a weapon....doesn't morph with the animations anymore, but its meh....that'll do for now :)
@@KyleRassweiler
@@MrMikhead If you export the meshes without the armature they don't seem to export their skin data and won't animate in godot... I'm doing the same as you and found that I need to export everything to "models.glb" then export only the armature to "armature.glb"
Hey when you set up your BlendSpace2D, I noticed your implementation has some weird behavior I'm encountering, but you didn't really touch on it. When you are about half way between walk and sprint, the walk and sprint animations become out of sync and deconstructively interfere, creating a skipping like motion. This happens when walking on a 45 degree angle as well, since the forward component is about half way between walk and sprint. Any thoughts on how to overcome this? It is sneaky when developing on key and mouse
That's interesting! I honestly haven't tried it with a controller so now I'm going to have to try it and look at it..
@@FinePointCGI my mind has been on this issue in the background for the last 20 hours so here is what I found:
- getting your animation loops for walking and running to be roughly the same number of frames helps sometimes?
- getting you animation loops for walking and running to start stepping with the same leg in the loop helps sometimes?
- if you do those two things make sure to enable the "sync" checkbox in the BlendSpace2D so it makes a difference
if you have a sprint button you can clamp the blend position to stay within the walk region of the blend space
another nice touch I found is to use move_toward() or some other interpolation function to smoothly move the blend position. It helps for digital inputs like keyboards so the character slowly starts moving. it also helps transition from sprinting to walking
just a brain dump after my working on a similar system!
I was doing a project and really needed help with root motion, 10/10 tutorial man 👍. When do you plan to do the C# version, since C# is just the better language? :)
I hope to get it out friday or saturday!
hm I'm not getting the root bone, tried over ten times and followed this perfectly
Maybe you figure it out but in case you have not try rename mixamorig:Hips to mixamorig1:Hips (add the 1) under the Hip Bone Name of the plugin it looks like Mixamo has renamed the bone so its not finding the right bone.
@@enricosanti7627 thanks!
Hey great video! but I have a doubt
I noticed in the end the character snaps when changing animations. Is it possible to mix Root Motion and the techniques presented in your video "Creating A 3d Character Controller" to make transitions between animations smoother?
Yes! This is supposed to augment that technique so any of the blending or things like that will work!
I should have specified that lol
if your gonna do a ground its always better to have everything in order not criticizing but for the ones who are new youll start gettin a headache if you dont set things in order. some nodes cant go before or after other nodes. so if you set a ground do it like this to stay organized. click on 3D scene and name it world> right click add child node and add static body3D> right click static body add a child node and add mesh instance3D> under mesh instance on the right side of your screen click on empty and choose a cube> click on the small cube picture and scale the x to 200 and z to 200> scroll down to transform and on the Y position type in -0.51 this will lower the platform just beneath the X axis> now go back to static body add a child node and add the collision shape3D> do the same thing as you did for the mesh instance 3D with scales of 200 on the X and 200 on the Z and -0.51 on the Y position under transform> now since you renamed the scene “world” when you save this scene as tscn itll automatically have it name as world.
small edit: make sure you set the collision shape 3D to 1 under the transform section, so position on Y is 1 this will put the character right above the floor perfectly
is that godot language?
Yes it does!
you should do a tutorial like this but for first person to prevent gun clipping and sstuff like that
first
You can entirely remove the need for a root motion by using call method tracks for either signals or functions in the animations, you are gonna need to use call method tracks for other things like combat/destroying tiles/building anyway so might as well
You must be refering to animation events such as playing a sound when on foot contact on the floor. That has nothing to do with root motion.
@@SoulGuitarMetal that's why I said you don't need root motion.
Hello, can you make a video about how to make a 3d character move to where you tap on the screen in 3D? Like Dota 2.
I really want to make a mobile game but I don't know how to code it. 🥲
I have a video on how to use the 3d navigation system in Godot 4 that should get you going if you combine the character controller animation portion and that tutorial it should get you relatively close.
I'll link it when I get home.
@@FinePointCGI thank you
ruclips.net/video/KT06pv06Q1U/видео.html
Granted it's in GD script so if you need I can always look at doing a c# version