12:02 You say you're not a youtuber, we say you haven't faced the truth yet. You have a good voice, explain things really well, with a good pace, very important, and you're presenting something not covered out there about Godot. Post once a week, once a month, no stress. You're great. Instant subscription! Cheers!
Thanks man! I may have some new videos coming too, I've been experimenting with cell phone video to mocap AI, and feeding that mocap animation into blender, adding a rigify controller and to separating the animations into NLA animations :) I'm getring clever over here, I'm just working out the kinks, and it's time consuming!
@@catprisbrey No, but seriously....everyone who tries to explain NLAs is like "it's like an animation library that...just works...and you use it." and that's their explanation....not a one mentioned there's even a sidebar option in the NLA editor, for example.
@@WalkerRileyMC well i have a bunch more stuff I will need to show folks how to do then. I'm not amazing or anything but I'm not terrible at teaching and along the little I do know. I've got some cool DIY video to motion capture to Godot stuff coming soon.
This is by far the best Mixamo to Godot pipeline that I've ever seen. It speeds up things so much that I think it's priceless for fast prototyping. Thanks a lot!
Bro, you are an absolute legend! I spend the entire day yesterday trying to get Synty assets into Godot and animated and this was the missing piece! Thanks!!
great video, I always felt annoyed by the idea of animating characters because it can be pretty tedious and slow. Your method however not only greatly speeds up development time, but makes it super easy and convenient to use as well! Instantly subbed, it was truly helpful!
I have not recently videos going through the process in other ways, and also have made an animation library of about 80 non-mixamo animations in a single resource file that can retarget to any standard skeleton character. It's in the new souls template I published. Worth checking out to save yourself a ton of time amassing the basic animations for prototyping
I've got a lot more stuff in the works. I know I keep repeating that in comments, but I'm like 80% done with a a ton of helpful stuff that'll hopefully blow everybody's minds and get folks making games faster
I've got many more going over this sort of process. And my latest Souls Template I just released last week comes with an animation library I made with about ~80 animations. They're not amazing (because I'm no animator) but they're not terrible, they're Mixamo , and they're public domain now)
Holy shit bro, can you please setup a paypal or something so we can buy you a coffee at least. This is by far the best pipeline for mixamo ever and it is very very helpful.
Haha, rather than paypal, there's always my Bandcamp page: bonesinthewalls.bandcamp.com/ Maybe find a single, EP, or album of mine you like, and buy it? It's all name-your-price for all my stuff on there, so folks can pass me whatever they like (and get some music out of it too)
Was searching for a tutorial for exactly this task yesterday for an hour. Got it today randomly in the feed 😂 thanks a lot for the video! Will check your music out as well ;)
Thanks! I recently made a new video on retargeting animations and saving the libraries because this left folks with questions and small issues. If you run into trouble here, watch that one too, it may have the missing piece to the puzzle to get your stuff working
on 10:35 animations do not display on my own custom model using the bonemap. It seems to also output alotttt of errors as i let the animations run. But the premade library worked fine. Just not one i made
Give me an error you are getting specifically, 1 will likely be enough. I imagine they are bone index errors, because it sounds like the skeleton isn't mapped properly. The animation is trying to move bones it can't find on your model. Open the import menu for your model in Godot, click on your skeleton, and in the right side of the menu go through every window for the bone map and make sure every bone is lit green. If any are red or pink it means they aren't found. So you need to click on the red or pink node, and then find the corresponding bone on your skeleton. Godot needs to know which bone is which in order to have the animations play on your models body.
@@catprisbrey Here is an example of the errors i still get. This is after mapping every bone and making it green On Animation: 'MovementAndSit/idle', couldn't resolve track: 'Model/Skeleton3D:mixamorig_HeadTop_End'. Node not found: "Model/Skeleton3D:mixamorig_LeftHandMiddle3" (relative to "/root/@EditorNode@17637/@Control@697/@Panel@698/@VBoxContainer@706/@HSplitContainer@709/@HSplitContainer@717/@HSplitContainer@725/@VBoxContainer@726/@VSplitContainer@728/@VSplitContainer@754/@VBoxContainer@755/@PanelContainer@800/MainScreen/@CanvasItemEditor@10090/@VSplitContainer@9915/@HSplitContainer@9917/@HSplitContainer@9919/@Control@9920/@SubViewportContainer@9921/@SubViewport@9922/Player/FamePlayerModel"). On Animation: 'MovementAndSit/idle', couldn't resolve track: 'Model/Skeleton3D:mixamorig_LeftHandMiddle3'. Set resource_local_to_scene editor/plugins/bone_map_editor_plugin.cpp:646 - Run auto mapping. editor/plugins/bone_map_editor_plugin.cpp:700 - Auto Mapping couldn't guess Root. editor/plugins/bone_map_editor_plugin.cpp:745 - Auto Mapping couldn't guess LeftEye. editor/plugins/bone_map_editor_plugin.cpp:752 - Auto Mapping couldn't guess RightEye. editor/plugins/bone_map_editor_plugin.cpp:762 - Auto Mapping couldn't guess Jaw. editor/plugins/bone_map_editor_plugin.cpp:1242 - Finish auto mapping.
Thinking about this more today. In case it wasn't clear either. You need to make sure you've imported your model's skeleton correctly, (all green nodes) before saving your own animation library. If you save your animation library before making sure every bone is mapped correctly, then that library will be full of animations they Godot won't know how to apply to other skeletons So hopefully that makes things more clear. Every single model you use, and hope to pass animations between, will need to be mapped on import to Godot's bones. Think of it as a "make compatible" step. You add a model, make it compatible, open the animation player and save its compatible library. Add a new model, make it compatible, add a compatible library to their animation player..be sure to click "Make Unique". And done.
@@catprisbrey Still. I am afraid it is not working.. I can load up discord and get into a vc to show proof! Either way what i took from this, is that they use diff naming altogether in animation player. Miximo Y bot animations: Model/Skeleton3D:mixamorig_Hips Fame Prebuilt Lib: %GeneralSkeleton:Hips
@@TheRealFame in the import process you can choose the new naming scheme for the reimported skeleton, the default is GeneralSkeleton. Once you reimport the model in Godot properly matching each mixamo bone into Godot, you're too will be called Generalskeleton (unless you changed the name in the import menu)
They look good in blender so I'm not sure. I already followed the tutorial and it worked with the ybot. The skeletons are slightly different so that's probably it. The bone mapping isn't quite the same.
Ok so it was the bonemap. Apparently when I upload the synty character it does not change the name of the bones so it worked just fine without a bone map.
@@kilrain_dev for more consistency and future prepping, you could make and save a synty bone map.tres file. Anything to help point the bones into Godot will likely be handy to have in case you run into any weirdness in the future with other models.
I've noticed this as well -- for me all the animations work in the AnimationPlayer, but in the AnimationTree only the first library that I import works. The skeleton looks the same, so it must be an internal shortcut (like internal IDs) being used Godot beta 8-10's AnimationTree
I'm having the same issue with synty models - they've been a proper mare to work with because the rigs never match the animation sequences they come with, so I decided to use mixamo to fix that :D
Great tutorial ! I also had the issue where animations only worked for the base character. Fix is to clear the profile after loading bone map and then re-select skeletonprofilehumanoid. For some reason bone map is wrong without this step - Godot RC6.
Indeed other have had something similar happen. In my experience it usually happens when you try to copy and paste over nodes of one character to a new character rather than adding everything anew. It's best to load things fresh on each character as you've mentioned doing, adding, reselecting and importing the map fresh. Else voy/pasted animation players, etc get confused and don't work on subsequent characters created. Now that 4 Stable is out, I'll have to tinker and ensure this is still an issue, and check if process is still the best it can be.
This doesn't seem to work anymore. No errors in the output window but the character remains in the T-pose no matter which animation I attempt to play. The names of the bones do seem to match with the mixamo bone map that I pulled from Github but nothing happens. I should mention that I used Mixamo to rig and animate a custom character that I created and I used the animations from that character. Next I downloaded one of their stock models in the T-pose and tried to use the animation library create in Godot. It shouldn't matter though since Mixamo rigged both characters.
Update: I believe I found the issue. My first model had bones named such as mixamorig_Hips and the second one named them like mixamorig1_Hips. No idea why they are different but it explains why trying to reuse the animation lib failed.
@@Skiggles I still use this/similar workflow almost daily, it still works. Are you certain you mapped properly or Maximo skeleton into Godot? Don't trust the bone map, it's inconsistent, make your own by selecting each of your eczema bones in the mapping process. You may want to watch my other More recent retargeting videos where I showed that a bit more step by step
@@Skiggles ah perfect, glad you found it. Yeah mix samo is a bit inconsistent with some other skeletons I found on some of the t-po's models. I don't know why. But basically if you don't trust the bone map, and double check the skeleton, you'll be in good shape
When I add a new animation, my character model rotates 180 degrees and the animation is all messed up. I fixed this issue by downloading the animation with skin instead of no skin and then removing all but one armature and meshes after import.
That's always the question, -z forward, or model forward. It ends up being such a common issue when moving between systems you start to go blind to it and simply adjust things as needed to accommodate.
Hmm, this works for me until about 10:00 - I can't seem to apply the rig to my models. Using Load (Quick Load never seems to show anything). One to try again tomorrow :) *edit worked it out, I saved a corrupted version of the Mixamo Bonemap :D It still doesn't seem to successfully replace the bone rig in my characters, but I'll get that worked out.
@@Warlock_UK Consider watching some of my newer retargeting videos that go into better detail. Most the time the issue is not mapping your model correctly, assuming that a bone map is correct when it's not. The mixmamo bone map I used to supply with confidence I've found to be hot or miss, depending on the Mixamo model. Really your best off just mapping your specific skeleton yourself, and saving your own bone map file rather than trust this one
@@catprisbrey Ah, thanks for that - I'll check some of them out tomorrow! As a plan B I could always upload one of the characters I have to mixamo, get the anims for that and then make a library the way this tutorial shows; that would probably be a secondary method :)
@@Warlock_UK indeed, you don't need a standard skeleton to make a library, a library can be for any skeleton... But if you can make your skeleton retargetted to the standard, then any standard skeleton libraries you find will be compatible. So big benefits to finding a way to make them standard. Consider checking out my other project. Rigodotify. It extends blenders built in Rigify tool, giving it a standard skeleton, helping you avoid some of the headache that comes with trying to rig a standard. It's also a feature set, that gives you rigs already in t-pose not a-pose. You'll find videos for that on my channel too, all of it free. And it all definitely works, I use it every single day.
Of course, Godot gives so many options for that. My video doesn't cover that topic because it's unrelated. I'd recommend just using a capsule shape around the whole model for easy movement, and then bone attach a few more collision shapes to specific locations where you need additional specific collision detection (like around the head for headshots in an FPS, etc)
So great, just the functionality I have been looking for. Only issue is for some reason when i try to save to a res and "Load Library" elsewhere I get "invalid animation file" (even after "Make Local"). Works fine dragging the glb into a scene, though.
That's curious, i wonder what's going on on your end. i have found some fussiness with saved library no wanting to run in an animation player until i remove and readd a fresh animation player and point it to the character again. But nothing consistent enough to submit a big report for. I'll share more videos soon relating to animations and libraries, hopefully some of that ends up being useful for you.
@@catprisbrey I found a way around it. Create a library (name it anything), then you can load the RES file into it, just not at "global scope". Cheers!
@@DavidM_GA this is good info. I'm expanding my use with these libraries further these past few days and definitely seeing some strangeness in goodie getting confused between libraries and players. I'm going to try your suggestion, it may be the solution I'm also searching for!
To clarify, my issue happens when i have an animation player (and tree referencing it) using a library file, and then create another characterbody, with another player and tree using the same library file. It ends up the recent player takes over all the animations and leaves the former invalid. Your workaround would suggest i basically end up creating a unique/saved library for the subsequent players to make them unique. Which makes sense given how global materials, etc, can have similar shared situations if not made unique.
Not sure what is happening to you here. Your the first to have that issue. Download it again, add it fresh again to s fresh animation player, try again, see what happens?
Rigify has quadrupeds that are be decently customized and rigged for animations. But the bones of rigify once generated aren't heirarchal and won't transfer easily in Godot, also Godot doesn't have an easy bone map for them. My recommendation would be to transfer the animations in blender instead keeping a single generic base animated quadruped file you keep around for the purpose. I recently made a rigify plugin (check my recent video) for humanoid skeletons, and I'm currently cooking ideas on how to approach quadrupeds but it'll take some investigation and work before I have anything ready. Maybe follow my repo or something in case I get that feature added soon?
Questions on Animation Libraries, can you assign multiple one to the same model and how do you access them in code. And what if I break them up. HumanoidCore,HumanoidGestures,HumanoidWeaponLibraries, etc. Buy say I have different animation in some libraries that I want to override core. for example in core I have attack and block (in core these would be unarmed attack and block) but say in a sword and shield weapon , and two handed weapon I also have attack and block. ) is there a way to make that work?
@@Adamthegeek70 Yes to all of that. Add as many libraries as you want. Edit them and delete out animations you're not needing for that model, etc. no limitations there. You access them in code exactly like accessing any other animation in Godot. Normal documentation applies, there's nothing fancy happening here, this is all built-in features of Godot. Mixing and matching animations is also just using the built-in animation tree node features. You'll turn on filtering and choose which bones you want to blend with another set of animations. Based on your questions, you actually will get more answers not from looking at animation libraries, But instead in watching tutorials on how the animation tree nodes work in Godot. Learn up about the different nodes, and your options, experiment with them, and you'll find you can do everything you're asking with them, no matter what animations you use or wherever they come from (to a degree, you should make sure your skeleton is compatible for the different libraries, but I'm assuming your animations are already functioning on your model)
Grab all of the files if you like, you could download a zip of everything, but just the .tres files are under the GitHub repo's "Code" tab, and when viewing the code files, look under the folder "BoneMaps". I just confirmed logging in, they're all downloading fine for visitors.
Hey! I was just following this tutorial and its great. I was wondering how this would work with custom characters though. This might be a stupid question but if I auto rig a character in mixamo, how do i export it as a tpose. I know I could just have it do the tpose and export it with skin but then would it affect how the animations work with it? Thank you
Sounds like you need to watch later videos. This one is way old and I have many more taking you through the process of custom characters, mixing and matching libraries. Etc
Sorry for not such a great reply, I've just already done several several videos on the questions you're asking And also have just released a template, and a massive 80 animation library that you can pass to any standard skeleton. The answer to all your questions is yes, you can do all the things you want
Found the one that will answer your questions, but honeslty just export any animation with it and you'll be good. you just need any old animation present on your rig for it to have the animation player needed in Godot to pass animations to it, the animation doesn't matter and you can delete it later if you want: ruclips.net/video/3XAIhZ_uhc8/видео.html
@@catprisbrey Thank you so much, I will check it out for sure! I've been watching the souls like videos for fun in the background while I do other stuff, didn't even realize it was your series. Keep up the great work
Thanks Cat! Worked fine for 1 character. When I instantiate a second one and load the res library, applying animations in AnimationPlayer of the 2nd character, affects always the 1st character and not the 2nd. Will appreciate if you clue me what am I doing wrong (I am rather new to Godot; using v4.0.beta9). Cheers!
I've found i have an issue similar to what you describe while making my games too. It seems to happen when i copy and paste the animation player from a character 1 into character 2-- rather than setup a fresh animation player. I found it'd easily avoided if i add a fresh animation player on character 2, 3, 4 etc, and re-add the animation libraries to it. I think on the backend Godot must be using IDs of some sort to keep track of the anim players, and when you copy and paste it to another scene, it's no longer unique, it's literally in two places and so when the animation is called, both anim players take action. So short story: remove the animation player from player 2. Save. And then add a fresh animation player and add the libraries to it fresh. They don't seem to like to be re-used with a copy/paste
11 месяцев назад
My models are invisble when I import them on a scene, even when I reset the Transform
Is this after adding animation libraries or are you just talking in general, that when you bring in a model, it's invisible? Scale is the usual culprit in a lot of cases but honestly it may be hard to answer for you. Too many possibilities., in most cases though, your model isn't usually invisible, its usually EXTREMELY BIG, or EXTREMELY SMALL, or your skeleton/weights are odd and the libraries are tearing the body apart and so there is nothing to see, or even, your normals are flipped, so you are seeing the inside faces of the model, and with culling, it's make it 'invisible' since there's be nothing to render to the screen without being inside your model
@ so are you just asking for general help with importing in Godot? Your issue doesn't have to do with adding libraries at all, you just need help importing a model? You may want to look at a video that discussed importing and importing options then, rather than asking here. It'd be better for you to understand better all the import settings and what you're doing wholly, rather than just get a quick answer and move along to something complex like animation transfers
11 месяцев назад
@@catprisbrey Gonna search this, aparently its something wrong with the mesh
how to add new animations to existing animation libraries in godot, or create new anim libraries and append to the model?, and updating the blender file with new anims? seems like this only covers creating everything for the first time.
Not sure what you mean, perhaps elaborate? Once you have a library file of animations (which can be made from any model you have already with animations) you can append them to any other model. The only prerequisite for appending animations across models is that their skeletons have been mapped on godot. So always import your model mapping it's skeleton. the GitHub includes a bone map already Mixamo skeletons. Once you have mapped your skeleton of your model I'm Godot, you can mix and match their animations and library files seamlessly.
@@catprisbrey sure, I meant adding an animation to an existing animation library already assigned to a character in Godot. I don't want to add additional animation libraries, but extend an already assigned animation library with additional animations.
@@rambosweat correct, okay..so you already have a character with animations. So you'll import it into Godot, map it's Skeleton, and then in the animation player click "load library. You select the library file of animations you interested in, and hit okay Now you have the two sets of libraries on your model. You can also save now a new library file of this current model, creating a new library containing the both sets. Similarly you an also click the trash icon and delete single animations from the player, and save a slimmer more streamlined animation library. Mix and match, add and remove all you like and save as a new library to use on other models. Etc.
Not working for me and followed exactly, animations run fine but won't remap, the character just stays in TPose, Godot 4.1.1. I'll attempt to do this again from scratch!
@@catprisbrey The problem was the SkeletonProfileHumanoid object that was created when adding the Mixamo BoneMap resource, the dots were red, so I deleted it and created a new Profile and all the dots were green and so the animations are now working. Thanks.
I've seen a few videos but in the end i found it too awkward looking. I still prefer to just check the boxes on Mixamo to keep them in one place, or i'll edit the animations in blender to remove any forward motion to keep it centered. I'm not saying Godot 4 can't do it, I've just avoided it whenever possible.
I'm not sure if you're doing anything wrong. Godot has many view panes, but they may take some tweaking or moving around to find the import button. This was also made on an early Beta and things have changed a bit now that we're at the release candidates. I may just need to make a new video once Godot 4 is out to show the process again.
following this tutorial and after importing the packed file, the animationplayer has double the animations, where one animation is for the model and one for the bones separately, any idea what could cause this? using the new beta 2 and blender 3.3
Ubuntu Studio on one computer, and Ubuntu Budgie (with the Ubuntu Studio software installer) on another. All the tools I generally use in one place, ready immediately after imaging. I primarily use my computer for audio work, and Ubuntu Studio is so perfectly packed with Ardour and great FOSS plugins. KDE is a great DE and I love it, but it runs a bit slow on my older machine where I use Budgie instead which feels a bit lighter and more zippy.
This was pretty helpful, but what if I'm not using mixamo? I have a pack of animations and a model all with the same bone setup. How did you get/create the bone map?
I'd they're not using a hierarchical bone set, or an odd number if bones outside of the normal ,it'll be more tricky. You can only share with others of the same bone style/count, and you won't so the import process. Those animations will only be compatible with others of the same setup. BUT, If they're using a standard game engine skeleton like Mixamo, unreal, or unity typical ones, the process is the same. I showed in the video Also, my most recent bone retargeting video may answer more of your questions, or fix you a place to start digging
This sounds like either you didn't remap and Re-import the skeleton on your source model (where you created the library), or you didn't remap and Re-import the skeleton on the destination model. It will see the animations in the viewer but won't be able to apply them if the skeletons are different, which is why you need to remap both of them to match in Godot.
Digging around in my own projects, i hit what may be the same thing! I was using an animation library.res file on some models and it was working like normal. Then all of the sudden it stopped working for any model in my project. I troubleshot for a long while and found a way to bring it back. I deleted the library, clicked "Project > Reload Current Project" and once it reloaded i brought the library back into Godot and it worked again. I'll investigate further what the bug is specifically and then pass it on to the issue tracker.
@@catprisbrey I just found out that in the bone mapper the prefix to search for bones is "mixamorig_" but on some models / animations the bones are prefixed with "mixamorig1_"
@@Emaxoso ah interesting, i wonder why they'd be different. To clarify, you're seeing some Mixamo animations referencing bones that don't appear on their own Mixamo skeletons?
Hi, I'm getting an issue with the animations doubling in Godot. For each actual animation there's one with the NLA track name and one with the action name, and only one of them actually animates in the engine. Have you encountered this?
If a model already has animations included within it, and then import a library, yes, I'll see two sets of the animations. But not if I only do one or the other, at least in my experiences.
@@catprisbrey I think I figured it out - after adding the actions to NLA tracks under the main rig, the original rig has to be deleted and then it imports only once. I'm not sure why this happens though because I followed the video step by step. Perhaps they changed something in the Godot 4 stable release or smth
@@catprisbrey sorry I actually meant to edit my comment because I also realised that I didn’t specify. When you went into the action editor and pressed N at 5:15. But I figured it out!
@@crimmerz2000 cool, this video is pretty old, and I have some newer ones on retargeting that are more useful and cover a lot of the common problems and issues
Excellent Tutorial. I knew almost nothing about Godot (Switching due to Unity issue) and nothing about Blender (3.6). However ... Sorry about the However, It seems Godot and/or Blender have changed a bit. Whn i click on Skeleton3D I do not get the Open to load a Bone Map. Im using the default X & Y bots. I ran through the tutorial 3X thinking I was missing something. AM I or is this tutorial now broke due to App Changes? FYI. The animation library is there, they are on the charcters .. but when i select an animationa nd click run, stay in TPose mode. No animation
If the skeleton doesn't have its bones mappes, then the animations files are going to be useless. This sort of bone mapping/retargeting is only available on Godot 4. Make sure you're not using 3.x. In the import or reimport menus for your GLTF file, you should have the extra options when clicking on the skeleton, if you don't, I'm not sure why that'd be.
Ok my issue is at Timestamp 7:28 - 7:50. I have the Xbotpacked.glb, Ybotpacked.glb and Mixamo BoneMap.tres files in scene. Make one or other local, click on Skeleton3D and no Import option like your tutorial. The other 3 times i did it I said screew it, its the default models from Maximo .. .so maybe they already have the correct bones. I wish i could attach a screenshot here, Im sure youd know WTF instantly. But im stuck :( Even shutdown Godot (it is 4.1.1.stable.official [bd6af8e0e]) and reloaded project. *update* I really think this latest Godot breaks it. When I double click on the imported GLB it lets me rename. It looks like you are opening in a scene. So I click make local instead. Now i can see the Skeleton3D. When i select it, there is no import option I get Bones, Motion Scale, Show Rest Only, Animate Physical Bones (on), and of course Transform, Visibility, Process, Editor Descriptiona dn Script (empty) If Godot v4.1.1.stable.official [bd6af8e0e] does not break it ... i'm dumber than a box of rocks!
@@Andrew_Donelson I'm going to make a.new video for folks. All the unity guys coming in have sent me tons of questions across my videos and it's too hard to troubleshoot this way. Everything works right, except maybe my bone maps my files....but my bonemaps aren't needes. And that's key to understand when doing all this. I'll make a new video to help folks out today
If anyone is using the current version of godot 4 stable and have fixed the issue of characters having wonky animation behaviors please let me know how you fixed it. My ybot has the correct animations and I saved the res file to use as library for other characters, but when it is applied on other characters it looks like the arms are snapped backwards. Things I have tried: Make sure nothing is copy/pasted (aka animation player), cleared the profile before reimport then added a skeletonprofilehumanoid, tried different file formats glb/bltf/fbx2glb, tried many different characters (some of which are imported from mixamo to godot as glb or fbx). Any help is appreciated!
I'm working on some new videos and animation libraries at the moment. I was forced to take a big break from all the game dev for a while but I'm back at it. I'll have some updated stuff working better for folks soon. In particular, a new souls like controller that imitates Elden Ring's controls pretty faithfully :D
@@catprisbrey that would be great! I will also continue to try to figure out this issue and report back if I get it working. I would love to get this up and running as this workflow saves many hours of work!
@@CROXoDyLE i plan to flesh out a bunch of libraries, building them from motion capturing myself. Are there any library types you'd find useful? Obviously a basic locomotion of walk run jump etc, but like, any themed ones you'd need? Medieval sword work? Gun/military animations? Magic? Social conversation gestures?
@@catprisbrey personally more gesture related ones would be nice to have. (Shoulder shrugging, pointing, looking left/right, etc.) also in the future I would love to see someone come up with a mouth moving library to sync with text. I’m guessing that part is much more advanced and would use machine learning. Perhaps that’s something that I can work on at a later time
I may have just experienced what you experienced. When i added the OpenBot to Godot4 (my first time using him in the 4 Stable versions), when i gave him the MixamoBoneMap.res file, it didn't map properly his neck, upper chest, or chest bones. I had to click on each on the reimport window and point them to the corresponding bones. i wonder if that's what happened to you too?
I cant seem to attach my library to another character. I tried using the warrior model that you have in your video, but I get this error message: Node not found: "RootNode/Armature/GeneralSkeleton:RightLittleDistal" (relative to "/root/@@16579/@@655/@@656/@@664/@@667/@@675/@@683/@@684/@@686/@@712/@@713/@@752/MainScreen/@@9766/@@9593/@@9595/@@9597/@@9598/@@9599/@@9600/Node3D/RootNode"). On Animation: 'shooter-library/idle', couldn't resolve track: 'RootNode/Armature/GeneralSkeleton:RightLittleDistal'. Will post solution here if I find it! :)
When attaching to another character you need to make sure the library is unique to each body. So you'll open the Animation Player, open the animations again where you added the library, click the save icon, and select the option to make unique. Do this for every character using the library or else you'll end up with all sorts of buginess between them all
Although the fact it's a specific finger that it can't resolve makes me wonder if that model needs mapping for they finger. Consider opening then import for that character again too, and confirming that his right hand is completely mapped to all the deform bones since that one track seems to be listed in your error specifically.
@@catprisbrey I had to explicitly make the animations unique to the ybot before saving them as a library, so this fixed it for me! Many thanks for your help and this excellent video!
@@felixjonsson4471 be sure to make unique for any others that you add it to as well. My enemies and my hero character share the library and so I have to make it unique on each or else one animation player will take priority and nobody else will animate but that one
@@catprisbrey i newbie in godot and have both versions, but in yt a more tuts about 3.5 than 4 and in godot 4 no visual scripting, thats why i try to 3.5, but 4 is good, yeah
Really good video! Unfortunately I struggled for quite a while but its all working now. For me, the models I downloaded had different bone structures than the bone map supported. For example, the character "Joe" needs a bonemap that says: bone_map/Chest = &"mixamorig7_Spine1", but the provided one says "bone_map/Chest = &"mixamorig_Spine1". I am using three characters and they all had different numbers there. All I had to do was find the number in their skeleton then replace all in the bonemap to have the proper number. Hope that helps someone!
Indeed, i made this video assuming folks had watched the FinePointCGI video and find mine through them or something. I should do a video focused on each step of animation retargetting so folks understand better each step they're taking, and how each step affects the final outcomes in Godot. That way they can better troubleshoot their own issues and not feel confused or lost.
I have a very small issue where some models from Mixamo have broken animations. For example fingers which fold backwards on themselves. Everything looks perfect on YBot, but a lot of other models have broken skeletons. Any ideas what might be the cause/what i am doing incorrectly?
god, I've been trying for so long to figure out how tf to import mixamo animations to an existing model. Still not helpful. I've been trying for HOURS to figure out this shit and every tutorial is missing crucial info. its soooo annoying. where are you getting these .res files?? cant download them in that format from mixamo. .fbx and .res do not work to load in the animation player and I cant get it to an acceptable file type!
I have a more recent video where I explain this again but better and point out some pitfalls and also go through NOT using res files since a lot of folks lean on them as a crutch and never end up understanding properly what they're even trying to do. I'd recommend watching that one and if you are still hitting issues, comment in that one what part isn't workinf
Thank you so much for this, its super helpful when prototyping. Importing and exporting from/to difference software has always been a pain, this makes things much easier! (EDIT) : I do have a question though, have you had any issues with Godot 4 being really slow saving/loading scenes with these models imported in them? Everything was fine until I imported .glb model, fbx and .blend files save as normal but scenes with these models take 30+ secs to save. Launching the game is the same. FBX and .blend files work fine but they don't import materials properly for me. (EDIT again): Seems that exporting the way you did, without the materials stops the slow save/load. I'll figure out a different way to apply materials, thanks again for the video!
The thing with materials and exporting is you have to decide how economical you want to be about managing them. I personally like my materials stripped from Blender and added in with Godot, that way i can have 5 distinct models sharing the same 1 material. But leaving materials bound to the model at export, and then pulling them into Godot means that my 5 distinct models are all using their own 5 "unique" sets of materials, even if they were originally the same material in Blender. So to save on space, i strip all the materials at export, and then add them back in Godot. It's more work, but makes for a more lightweight game.
Animation trees with sub-animation trees. Get animations you need for the various attacks or idles etc, you make a variety of different trees and use transition nodes to switch between them.
Same sort of process, make a new animation res file of the new animations, go to the old animation res file, hit "load library" and add the 2nd animation file into the 1st one.
In this other video about animation retargeting, I show at the end adding one animation file into another real quick. ruclips.net/video/zCvCHO6sk3Y/видео.htmlfeature=shared
I have a problem, my 3D model is of Megaman Zero which has long hair, when I import the model to Mixamo the hair stays straight, is there any way that the hair can be animated as well?
Depends how your MegaMan was made. If they have the hair its own bones, they're extra bones and not part of the standard skeleton, so they aren't going to get any deformations from any animations not built with those bones in mind. I'd suggest adding a plugin like the bendy bones plugins, and adding some of your own deform bones for the hair in Godot just for managing the hair being reactive on its own. Then you could use any standard animation libraries you want and the hair will still be cool and reactive
12:02 You say you're not a youtuber, we say you haven't faced the truth yet. You have a good voice, explain things really well, with a good pace, very important, and you're presenting something not covered out there about Godot. Post once a week, once a month, no stress. You're great. Instant subscription! Cheers!
Kind words, and much appreciated. I'll strongly consider putting out more videos then if i think they'll be helpful to others. 👍 Thanks!
Commenting for the algorithm so other G4 users to see
Got to feed the machine, thanks 👍
Holy.....shit....
You taught NLA better than anyone who focuses on just Blender tuts....
Thanks man! I may have some new videos coming too, I've been experimenting with cell phone video to mocap AI, and feeding that mocap animation into blender, adding a rigify controller and to separating the animations into NLA animations :)
I'm getring clever over here, I'm just working out the kinks, and it's time consuming!
@@catprisbrey No, but seriously....everyone who tries to explain NLAs is like "it's like an animation library that...just works...and you use it." and that's their explanation....not a one mentioned there's even a sidebar option in the NLA editor, for example.
@@WalkerRileyMC well i have a bunch more stuff I will need to show folks how to do then. I'm not amazing or anything but I'm not terrible at teaching and along the little I do know. I've got some cool DIY video to motion capture to Godot stuff coming soon.
This is by far the best Mixamo to Godot pipeline that I've ever seen. It speeds up things so much that I think it's priceless for fast prototyping. Thanks a lot!
Glad it was helpful!
+1
Holy Bananas! I needed this for Gadot! Thank you good Sir.
Bro, you are an absolute legend! I spend the entire day yesterday trying to get Synty assets into Godot and animated and this was the missing piece! Thanks!!
Glad it was useful for you!
great video, I always felt annoyed by the idea of animating characters because it can be pretty tedious and slow. Your method however not only greatly speeds up development time, but makes it super easy and convenient to use as well! Instantly subbed, it was truly helpful!
I have not recently videos going through the process in other ways, and also have made an animation library of about 80 non-mixamo animations in a single resource file that can retarget to any standard skeleton character. It's in the new souls template I published.
Worth checking out to save yourself a ton of time amassing the basic animations for prototyping
Uow. Bro, go on, we need you.
This is insanely requested....awesome tutorial!
I've got some new stuff brewing, getting excited about it :)
bruh this is amazing lol complete time saver for prototyping fast. Thank you so much.
I've got a lot more stuff in the works. I know I keep repeating that in comments, but I'm like 80% done with a a ton of helpful stuff that'll hopefully blow everybody's minds and get folks making games faster
best explanation clear even for noob like me, very difficulty to find a tutorial like this instant subscribe from me and a big tumb up
I've got many more going over this sort of process. And my latest Souls Template I just released last week comes with an animation library I made with about ~80 animations. They're not amazing (because I'm no animator) but they're not terrible, they're Mixamo , and they're public domain now)
Holy shit bro, can you please setup a paypal or something so we can buy you a coffee at least. This is by far the best pipeline for mixamo ever and it is very very helpful.
Haha, rather than paypal, there's always my Bandcamp page:
bonesinthewalls.bandcamp.com/
Maybe find a single, EP, or album of mine you like, and buy it? It's all name-your-price for all my stuff on there, so folks can pass me whatever they like (and get some music out of it too)
Thank you. The amount of time & nonsense this will save is incalculable.
Was searching for a tutorial for exactly this task yesterday for an hour. Got it today randomly in the feed 😂 thanks a lot for the video! Will check your music out as well ;)
Thanks! I recently made a new video on retargeting animations and saving the libraries because this left folks with questions and small issues. If you run into trouble here, watch that one too, it may have the missing piece to the puzzle to get your stuff working
😀😀😀😀😀😀😀 Wow blew my mind, now I need to write something and buy your music for it :)
Got a link to you from ruclips.net/video/XbuJBwSP9Yw/видео.html
Absolutely amazing tutorial! I will try this right now.
I've been trying to find the perfect solution for this for at least two years. I was missing the bone mapping step. Thanks very much for sharing!
I wish i could take credit, it's honestly just that Godot 4 has bone mapping and so suddenly we're able to do cool stuff now like this.
Wow, thank you so much :)
Thank you this is exactly what I needed to get involved in 3D FPS and TPS game dev.
Loved it
This is amazing content, thank you for sharing!
Great! Tks a lot!
my hero
Really helpful!!!
great job!!!
Ty man will try tmr
7:45 i cant get this window to open when i double click the glb
Perfect :)
This is fantastic! Thank you for the video!
amazing stuff! Thank you,Man!
this is awesome!
i really wanna try this now
Excellent tutorial. Really appreciate it.
Chad.
Excellent tutorial ,very helpful ,thanks a lot
on 10:35 animations do not display on my own custom model using the bonemap. It seems to also output alotttt of errors as i let the animations run. But the premade library worked fine. Just not one i made
Give me an error you are getting specifically, 1 will likely be enough. I imagine they are bone index errors, because it sounds like the skeleton isn't mapped properly. The animation is trying to move bones it can't find on your model.
Open the import menu for your model in Godot, click on your skeleton, and in the right side of the menu go through every window for the bone map and make sure every bone is lit green. If any are red or pink it means they aren't found. So you need to click on the red or pink node, and then find the corresponding bone on your skeleton.
Godot needs to know which bone is which in order to have the animations play on your models body.
@@catprisbrey
Here is an example of the errors i still get. This is after mapping every bone and making it green
On Animation: 'MovementAndSit/idle', couldn't resolve track: 'Model/Skeleton3D:mixamorig_HeadTop_End'.
Node not found: "Model/Skeleton3D:mixamorig_LeftHandMiddle3" (relative to "/root/@EditorNode@17637/@Control@697/@Panel@698/@VBoxContainer@706/@HSplitContainer@709/@HSplitContainer@717/@HSplitContainer@725/@VBoxContainer@726/@VSplitContainer@728/@VSplitContainer@754/@VBoxContainer@755/@PanelContainer@800/MainScreen/@CanvasItemEditor@10090/@VSplitContainer@9915/@HSplitContainer@9917/@HSplitContainer@9919/@Control@9920/@SubViewportContainer@9921/@SubViewport@9922/Player/FamePlayerModel").
On Animation: 'MovementAndSit/idle', couldn't resolve track: 'Model/Skeleton3D:mixamorig_LeftHandMiddle3'.
Set resource_local_to_scene
editor/plugins/bone_map_editor_plugin.cpp:646 - Run auto mapping.
editor/plugins/bone_map_editor_plugin.cpp:700 - Auto Mapping couldn't guess Root.
editor/plugins/bone_map_editor_plugin.cpp:745 - Auto Mapping couldn't guess LeftEye.
editor/plugins/bone_map_editor_plugin.cpp:752 - Auto Mapping couldn't guess RightEye.
editor/plugins/bone_map_editor_plugin.cpp:762 - Auto Mapping couldn't guess Jaw.
editor/plugins/bone_map_editor_plugin.cpp:1242 - Finish auto mapping.
Thinking about this more today. In case it wasn't clear either. You need to make sure you've imported your model's skeleton correctly, (all green nodes) before saving your own animation library. If you save your animation library before making sure every bone is mapped correctly, then that library will be full of animations they Godot won't know how to apply to other skeletons
So hopefully that makes things more clear. Every single model you use, and hope to pass animations between, will need to be mapped on import to Godot's bones.
Think of it as a "make compatible" step. You add a model, make it compatible, open the animation player and save its compatible library.
Add a new model, make it compatible, add a compatible library to their animation player..be sure to click "Make Unique". And done.
@@catprisbrey Still. I am afraid it is not working.. I can load up discord and get into a vc to show proof! Either way what i took from this, is that they use diff naming altogether in animation player.
Miximo Y bot animations: Model/Skeleton3D:mixamorig_Hips
Fame Prebuilt Lib: %GeneralSkeleton:Hips
@@TheRealFame in the import process you can choose the new naming scheme for the reimported skeleton, the default is GeneralSkeleton. Once you reimport the model in Godot properly matching each mixamo bone into Godot, you're too will be called Generalskeleton (unless you changed the name in the import menu)
Any luck doing this with synty models? Mine are coming it forward 90 degrees and the animations bounds from side to side quite a bit.
They look good in blender so I'm not sure. I already followed the tutorial and it worked with the ybot. The skeletons are slightly different so that's probably it. The bone mapping isn't quite the same.
Ok so it was the bonemap. Apparently when I upload the synty character it does not change the name of the bones so it worked just fine without a bone map.
@@kilrain_dev for more consistency and future prepping, you could make and save a synty bone map.tres file. Anything to help point the bones into Godot will likely be handy to have in case you run into any weirdness in the future with other models.
I've noticed this as well -- for me all the animations work in the AnimationPlayer, but in the AnimationTree only the first library that I import works. The skeleton looks the same, so it must be an internal shortcut (like internal IDs) being used Godot beta 8-10's AnimationTree
I'm having the same issue with synty models - they've been a proper mare to work with because the rigs never match the animation sequences they come with, so I decided to use mixamo to fix that :D
Great tutorial !
I also had the issue where animations only worked for the base character. Fix is to clear the profile after loading bone map and then re-select skeletonprofilehumanoid. For some reason bone map is wrong without this step - Godot RC6.
Indeed other have had something similar happen. In my experience it usually happens when you try to copy and paste over nodes of one character to a new character rather than adding everything anew.
It's best to load things fresh on each character as you've mentioned doing, adding, reselecting and importing the map fresh. Else voy/pasted animation players, etc get confused and don't work on subsequent characters created.
Now that 4 Stable is out, I'll have to tinker and ensure this is still an issue, and check if process is still the best it can be.
This doesn't seem to work anymore. No errors in the output window but the character remains in the T-pose no matter which animation I attempt to play. The names of the bones do seem to match with the mixamo bone map that I pulled from Github but nothing happens. I should mention that I used Mixamo to rig and animate a custom character that I created and I used the animations from that character. Next I downloaded one of their stock models in the T-pose and tried to use the animation library create in Godot. It shouldn't matter though since Mixamo rigged both characters.
Update: I believe I found the issue. My first model had bones named such as mixamorig_Hips and the second one named them like mixamorig1_Hips. No idea why they are different but it explains why trying to reuse the animation lib failed.
@@Skiggles I still use this/similar workflow almost daily, it still works. Are you certain you mapped properly or Maximo skeleton into Godot? Don't trust the bone map, it's inconsistent, make your own by selecting each of your eczema bones in the mapping process. You may want to watch my other More recent retargeting videos where I showed that a bit more step by step
@@Skiggles ah perfect, glad you found it. Yeah mix samo is a bit inconsistent with some other skeletons I found on some of the t-po's models. I don't know why. But basically if you don't trust the bone map, and double check the skeleton, you'll be in good shape
@@catprisbrey thanks for the reply. My comment on your other video was the problem here as well. I filed a bug report with the Godot devs.
@@Skiggles cool cool, glad to hear you got it working and found the bugs.
When I add a new animation, my character model rotates 180 degrees and the animation is all messed up. I fixed this issue by downloading the animation with skin instead of no skin and then removing all but one armature and meshes after import.
That's always the question, -z forward, or model forward. It ends up being such a common issue when moving between systems you start to go blind to it and simply adjust things as needed to accommodate.
Hmm, this works for me until about 10:00 - I can't seem to apply the rig to my models. Using Load (Quick Load never seems to show anything). One to try again tomorrow :) *edit worked it out, I saved a corrupted version of the Mixamo Bonemap :D It still doesn't seem to successfully replace the bone rig in my characters, but I'll get that worked out.
@@Warlock_UK Consider watching some of my newer retargeting videos that go into better detail. Most the time the issue is not mapping your model correctly, assuming that a bone map is correct when it's not. The mixmamo bone map I used to supply with confidence I've found to be hot or miss, depending on the Mixamo model.
Really your best off just mapping your specific skeleton yourself, and saving your own bone map file rather than trust this one
@@catprisbrey Ah, thanks for that - I'll check some of them out tomorrow! As a plan B I could always upload one of the characters I have to mixamo, get the anims for that and then make a library the way this tutorial shows; that would probably be a secondary method :)
@@Warlock_UK indeed, you don't need a standard skeleton to make a library, a library can be for any skeleton... But if you can make your skeleton retargetted to the standard, then any standard skeleton libraries you find will be compatible.
So big benefits to finding a way to make them standard.
Consider checking out my other project. Rigodotify. It extends blenders built in Rigify tool, giving it a standard skeleton, helping you avoid some of the headache that comes with trying to rig a standard.
It's also a feature set, that gives you rigs already in t-pose not a-pose. You'll find videos for that on my channel too, all of it free. And it all definitely works, I use it every single day.
Thanks for tutorial save me a lot of time!
I have a question is possible to attach a collision shape that follow this models?
Of course, Godot gives so many options for that. My video doesn't cover that topic because it's unrelated. I'd recommend just using a capsule shape around the whole model for easy movement, and then bone attach a few more collision shapes to specific locations where you need additional specific collision detection (like around the head for headshots in an FPS, etc)
@@catprisbrey Dont know how often you check comments, but im having some trouble using the the downloaded files. help please. :)
@@ssj4achilles57 State your problems, we'll see if we can find your solution
So great, just the functionality I have been looking for.
Only issue is for some reason when i try to save to a res and "Load Library" elsewhere I get "invalid animation file" (even after "Make Local"). Works fine dragging the glb into a scene, though.
That's curious, i wonder what's going on on your end. i have found some fussiness with saved library no wanting to run in an animation player until i remove and readd a fresh animation player and point it to the character again. But nothing consistent enough to submit a big report for.
I'll share more videos soon relating to animations and libraries, hopefully some of that ends up being useful for you.
@@catprisbrey I found a way around it. Create a library (name it anything), then you can load the RES file into it, just not at "global scope".
Cheers!
@@DavidM_GA this is good info. I'm expanding my use with these libraries further these past few days and definitely seeing some strangeness in goodie getting confused between libraries and players.
I'm going to try your suggestion, it may be the solution I'm also searching for!
To clarify, my issue happens when i have an animation player (and tree referencing it) using a library file, and then create another characterbody, with another player and tree using the same library file. It ends up the recent player takes over all the animations and leaves the former invalid.
Your workaround would suggest i basically end up creating a unique/saved library for the subsequent players to make them unique. Which makes sense given how global materials, etc, can have similar shared situations if not made unique.
Can you make a tutorial how to use Unreal Engine animations with this approach?
I've never used unity or unreal beyond just installing them unfortunately
it says invalid animation library file
Not sure what is happening to you here. Your the first to have that issue. Download it again, add it fresh again to s fresh animation player, try again, see what happens?
Do you have any tips for quadruppeds?
Rigify has quadrupeds that are be decently customized and rigged for animations. But the bones of rigify once generated aren't heirarchal and won't transfer easily in Godot, also Godot doesn't have an easy bone map for them. My recommendation would be to transfer the animations in blender instead keeping a single generic base animated quadruped file you keep around for the purpose.
I recently made a rigify plugin (check my recent video) for humanoid skeletons, and I'm currently cooking ideas on how to approach quadrupeds but it'll take some investigation and work before I have anything ready. Maybe follow my repo or something in case I get that feature added soon?
Questions on Animation Libraries, can you assign multiple one to the same model and how do you access them in code. And what if I break them up. HumanoidCore,HumanoidGestures,HumanoidWeaponLibraries, etc. Buy say I have different animation in some libraries that I want to override core. for example in core I have attack and block (in core these would be unarmed attack and block) but say in a sword and shield weapon , and two handed weapon I also have attack and block. ) is there a way to make that work?
@@Adamthegeek70 Yes to all of that.
Add as many libraries as you want. Edit them and delete out animations you're not needing for that model, etc. no limitations there.
You access them in code exactly like accessing any other animation in Godot. Normal documentation applies, there's nothing fancy happening here, this is all built-in features of Godot.
Mixing and matching animations is also just using the built-in animation tree node features. You'll turn on filtering and choose which bones you want to blend with another set of animations.
Based on your questions, you actually will get more answers not from looking at animation libraries, But instead in watching tutorials on how the animation tree nodes work in Godot. Learn up about the different nodes, and your options, experiment with them, and you'll find you can do everything you're asking with them, no matter what animations you use or wherever they come from (to a degree, you should make sure your skeleton is compatible for the different libraries, but I'm assuming your animations are already functioning on your model)
Thanks for this. When I go to the githib it doesnt give me the option to download the tres file .
Grab all of the files if you like, you could download a zip of everything, but just the .tres files are under the GitHub repo's "Code" tab, and when viewing the code files, look under the folder "BoneMaps". I just confirmed logging in, they're all downloading fine for visitors.
Hey! I was just following this tutorial and its great. I was wondering how this would work with custom characters though. This might be a stupid question but if I auto rig a character in mixamo, how do i export it as a tpose. I know I could just have it do the tpose and export it with skin but then would it affect how the animations work with it? Thank you
Sounds like you need to watch later videos. This one is way old and I have many more taking you through the process of custom characters, mixing and matching libraries. Etc
Sorry for not such a great reply, I've just already done several several videos on the questions you're asking
And also have just released a template, and a massive 80 animation library that you can pass to any standard skeleton. The answer to all your questions is yes, you can do all the things you want
Found the one that will answer your questions, but honeslty just export any animation with it and you'll be good. you just need any old animation present on your rig for it to have the animation player needed in Godot to pass animations to it, the animation doesn't matter and you can delete it later if you want:
ruclips.net/video/3XAIhZ_uhc8/видео.html
@@catprisbrey Thank you so much, I will check it out for sure! I've been watching the souls like videos for fun in the background while I do other stuff, didn't even realize it was your series. Keep up the great work
Thanks Cat! Worked fine for 1 character. When I instantiate a second one and load the res library, applying animations in AnimationPlayer of the 2nd character, affects always the 1st character and not the 2nd. Will appreciate if you clue me what am I doing wrong (I am rather new to Godot; using v4.0.beta9). Cheers!
I've found i have an issue similar to what you describe while making my games too. It seems to happen when i copy and paste the animation player from a character 1 into character 2-- rather than setup a fresh animation player.
I found it'd easily avoided if i add a fresh animation player on character 2, 3, 4 etc, and re-add the animation libraries to it.
I think on the backend Godot must be using IDs of some sort to keep track of the anim players, and when you copy and paste it to another scene, it's no longer unique, it's literally in two places and so when the animation is called, both anim players take action.
So short story: remove the animation player from player 2. Save. And then add a fresh animation player and add the libraries to it fresh. They don't seem to like to be re-used with a copy/paste
My models are invisble when I import them on a scene, even when I reset the Transform
Did you apply all transforms in blender before bringing over your model (to make sure scale is set properly)?
@@catprisbrey In godot, in the skeleton options there is something called Alpha Surface, its invisble, I can only see the colision shape
Is this after adding animation libraries or are you just talking in general, that when you bring in a model, it's invisible? Scale is the usual culprit in a lot of cases but honestly it may be hard to answer for you. Too many possibilities., in most cases though, your model isn't usually invisible, its usually EXTREMELY BIG, or EXTREMELY SMALL, or your skeleton/weights are odd and the libraries are tearing the body apart and so there is nothing to see, or even, your normals are flipped, so you are seeing the inside faces of the model, and with culling, it's make it 'invisible' since there's be nothing to render to the screen without being inside your model
@ so are you just asking for general help with importing in Godot? Your issue doesn't have to do with adding libraries at all, you just need help importing a model?
You may want to look at a video that discussed importing and importing options then, rather than asking here. It'd be better for you to understand better all the import settings and what you're doing wholly, rather than just get a quick answer and move along to something complex like animation transfers
@@catprisbrey Gonna search this, aparently its something wrong with the mesh
how to add new animations to existing animation libraries in godot, or create new anim libraries and append to the model?, and updating the blender file with new anims? seems like this only covers creating everything for the first time.
Not sure what you mean, perhaps elaborate? Once you have a library file of animations (which can be made from any model you have already with animations) you can append them to any other model. The only prerequisite for appending animations across models is that their skeletons have been mapped on godot. So always import your model mapping it's skeleton. the GitHub includes a bone map already Mixamo skeletons. Once you have mapped your skeleton of your model I'm Godot, you can mix and match their animations and library files seamlessly.
Ah or perhaps you needed the update video that came a few days later? ruclips.net/video/NZpj25eu5BQ/видео.html
@@catprisbrey sure, I meant adding an animation to an existing animation library already assigned to a character in Godot. I don't want to add additional animation libraries, but extend an already assigned animation library with additional animations.
@@rambosweat correct, okay..so you already have a character with animations. So you'll import it into Godot, map it's Skeleton, and then in the animation player click "load library. You select the library file of animations you interested in, and hit okay
Now you have the two sets of libraries on your model. You can also save now a new library file of this current model, creating a new library containing the both sets. Similarly you an also click the trash icon and delete single animations from the player, and save a slimmer more streamlined animation library.
Mix and match, add and remove all you like and save as a new library to use on other models. Etc.
Not working for me and followed exactly, animations run fine but won't remap, the character just stays in TPose, Godot 4.1.1. I'll attempt to do this again from scratch!
Check my more recent video on retargeting. I made it to clear up issues had from following this one (and the other one I made from way back when)
@@catprisbrey Thanks for the extremely rapid response. I'll watch that now.
@@catprisbrey The problem was the SkeletonProfileHumanoid object that was created when adding the Mixamo BoneMap resource, the dots were red, so I deleted it and created a new Profile and all the dots were green and so the animations are now working. Thanks.
@@malcolmcolindixon common pitfalls, yeah, you have to make sure godot knows what bone is what, or else they'll be ignored
Do you have any suggest on getting this working with Root Motion?
I've seen a few videos but in the end i found it too awkward looking. I still prefer to just check the boxes on Mixamo to keep them in one place, or i'll edit the animations in blender to remove any forward motion to keep it centered.
I'm not saying Godot 4 can't do it, I've just avoided it whenever possible.
I don't get the same page you do when double clicking the character to re important the skeleton. Do you have any ideas what I'm doing wrong?
I'm not sure if you're doing anything wrong. Godot has many view panes, but they may take some tweaking or moving around to find the import button.
This was also made on an early Beta and things have changed a bit now that we're at the release candidates. I may just need to make a new video once Godot 4 is out to show the process again.
following this tutorial and after importing the packed file, the animationplayer has double the animations, where one animation is for the model and one for the bones separately, any idea what could cause this? using the new beta 2 and blender 3.3
nevermind, i forgot to delete the hierarchy in blender before exporting so ill leave this here for anyone else getting the same problem
lezgoooooooooooooooodot
curious what distro you are using?
Ubuntu Studio on one computer, and Ubuntu Budgie (with the Ubuntu Studio software installer) on another.
All the tools I generally use in one place, ready immediately after imaging. I primarily use my computer for audio work, and Ubuntu Studio is so perfectly packed with Ardour and great FOSS plugins.
KDE is a great DE and I love it, but it runs a bit slow on my older machine where I use Budgie instead which feels a bit lighter and more zippy.
This was pretty helpful, but what if I'm not using mixamo? I have a pack of animations and a model all with the same bone setup. How did you get/create the bone map?
I'd they're not using a hierarchical bone set, or an odd number if bones outside of the normal ,it'll be more tricky. You can only share with others of the same bone style/count, and you won't so the import process. Those animations will only be compatible with others of the same setup.
BUT, If they're using a standard game engine skeleton like Mixamo, unreal, or unity typical ones, the process is the same. I showed in the video
Also, my most recent bone retargeting video may answer more of your questions, or fix you a place to start digging
i have the .res file in godot and it shows the animations in the list but none of them play its stuck in t pose. im using the beta build
This sounds like either you didn't remap and Re-import the skeleton on your source model (where you created the library), or you didn't remap and Re-import the skeleton on the destination model.
It will see the animations in the viewer but won't be able to apply them if the skeletons are different, which is why you need to remap both of them to match in Godot.
Digging around in my own projects, i hit what may be the same thing!
I was using an animation library.res file on some models and it was working like normal. Then all of the sudden it stopped working for any model in my project. I troubleshot for a long while and found a way to bring it back. I deleted the library, clicked "Project > Reload Current Project" and once it reloaded i brought the library back into Godot and it worked again. I'll investigate further what the bug is specifically and then pass it on to the issue tracker.
@@catprisbrey I just found out that in the bone mapper the prefix to search for bones is "mixamorig_" but on some models / animations the bones are prefixed with "mixamorig1_"
@@Emaxoso ah interesting, i wonder why they'd be different. To clarify, you're seeing some Mixamo animations referencing bones that don't appear on their own Mixamo skeletons?
Hi, I'm getting an issue with the animations doubling in Godot. For each actual animation there's one with the NLA track name and one with the action name, and only one of them actually animates in the engine. Have you encountered this?
If a model already has animations included within it, and then import a library, yes, I'll see two sets of the animations. But not if I only do one or the other, at least in my experiences.
@@catprisbrey I think I figured it out - after adding the actions to NLA tracks under the main rig, the original rig has to be deleted and then it imports only once. I'm not sure why this happens though because I followed the video step by step. Perhaps they changed something in the Godot 4 stable release or smth
When I press N nothing comes up
@@crimmerz2000 at what point do I say to press N? It's been a few years since this video, I don't remember what that'd be for
@@catprisbrey sorry I actually meant to edit my comment because I also realised that I didn’t specify. When you went into the action editor and pressed N at 5:15. But I figured it out!
@@crimmerz2000 cool, this video is pretty old, and I have some newer ones on retargeting that are more useful and cover a lot of the common problems and issues
Excellent Tutorial. I knew almost nothing about Godot (Switching due to Unity issue) and nothing about Blender (3.6). However ... Sorry about the However, It seems Godot and/or Blender have changed a bit. Whn i click on Skeleton3D I do not get the Open to load a Bone Map. Im using the default X & Y bots. I ran through the tutorial 3X thinking I was missing something. AM I or is this tutorial now broke due to App Changes?
FYI. The animation library is there, they are on the charcters .. but when i select an animationa nd click run, stay in TPose mode. No animation
If the skeleton doesn't have its bones mappes, then the animations files are going to be useless.
This sort of bone mapping/retargeting is only available on Godot 4. Make sure you're not using 3.x.
In the import or reimport menus for your GLTF file, you should have the extra options when clicking on the skeleton, if you don't, I'm not sure why that'd be.
(It's definitely not broke, j do this sort of work daily still on the latest stable version.)
@@catprisbrey latest blender. Latest godot stable, 4.1.1. Give me a few minutes. I'll run through the tutorial again with the info you just provided
Ok my issue is at Timestamp 7:28 - 7:50. I have the Xbotpacked.glb, Ybotpacked.glb and Mixamo BoneMap.tres files in scene. Make one or other local, click on Skeleton3D and no Import option like your tutorial. The other 3 times i did it I said screew it, its the default models from Maximo .. .so maybe they already have the correct bones. I wish i could attach a screenshot here, Im sure youd know WTF instantly. But im stuck :( Even shutdown Godot (it is 4.1.1.stable.official [bd6af8e0e]) and reloaded project.
*update*
I really think this latest Godot breaks it. When I double click on the imported GLB it lets me rename. It looks like you are opening in a scene. So I click make local instead. Now i can see the Skeleton3D. When i select it, there is no import option I get Bones, Motion Scale, Show Rest Only, Animate Physical Bones (on), and of course Transform, Visibility, Process, Editor Descriptiona dn Script (empty)
If Godot v4.1.1.stable.official [bd6af8e0e] does not break it ... i'm dumber than a box of rocks!
@@Andrew_Donelson I'm going to make a.new video for folks. All the unity guys coming in have sent me tons of questions across my videos and it's too hard to troubleshoot this way.
Everything works right, except maybe my bone maps my files....but my bonemaps aren't needes. And that's key to understand when doing all this.
I'll make a new video to help folks out today
Not using fbx2gltf?
I haven't heard of it. I'll check it out.
If anyone is using the current version of godot 4 stable and have fixed the issue of characters having wonky animation behaviors please let me know how you fixed it. My ybot has the correct animations and I saved the res file to use as library for other characters, but when it is applied on other characters it looks like the arms are snapped backwards. Things I have tried: Make sure nothing is copy/pasted (aka animation player), cleared the profile before reimport then added a skeletonprofilehumanoid, tried different file formats glb/bltf/fbx2glb, tried many different characters (some of which are imported from mixamo to godot as glb or fbx). Any help is appreciated!
I'm working on some new videos and animation libraries at the moment. I was forced to take a big break from all the game dev for a while but I'm back at it. I'll have some updated stuff working better for folks soon.
In particular, a new souls like controller that imitates Elden Ring's controls pretty faithfully :D
@@catprisbrey that would be great! I will also continue to try to figure out this issue and report back if I get it working. I would love to get this up and running as this workflow saves many hours of work!
@@CROXoDyLE i plan to flesh out a bunch of libraries, building them from motion capturing myself. Are there any library types you'd find useful?
Obviously a basic locomotion of walk run jump etc, but like, any themed ones you'd need?
Medieval sword work? Gun/military animations? Magic? Social conversation gestures?
@@catprisbrey personally more gesture related ones would be nice to have. (Shoulder shrugging, pointing, looking left/right, etc.) also in the future I would love to see someone come up with a mouth moving library to sync with text. I’m guessing that part is much more advanced and would use machine learning. Perhaps that’s something that I can work on at a later time
I may have just experienced what you experienced. When i added the OpenBot to Godot4 (my first time using him in the 4 Stable versions), when i gave him the MixamoBoneMap.res file, it didn't map properly his neck, upper chest, or chest bones. I had to click on each on the reimport window and point them to the corresponding bones.
i wonder if that's what happened to you too?
I cant seem to attach my library to another character. I tried using the warrior model that you have in your video, but I get this error message:
Node not found: "RootNode/Armature/GeneralSkeleton:RightLittleDistal" (relative to "/root/@@16579/@@655/@@656/@@664/@@667/@@675/@@683/@@684/@@686/@@712/@@713/@@752/MainScreen/@@9766/@@9593/@@9595/@@9597/@@9598/@@9599/@@9600/Node3D/RootNode").
On Animation: 'shooter-library/idle', couldn't resolve track: 'RootNode/Armature/GeneralSkeleton:RightLittleDistal'.
Will post solution here if I find it! :)
When attaching to another character you need to make sure the library is unique to each body. So you'll open the Animation Player, open the animations again where you added the library, click the save icon, and select the option to make unique. Do this for every character using the library or else you'll end up with all sorts of buginess between them all
Although the fact it's a specific finger that it can't resolve makes me wonder if that model needs mapping for they finger. Consider opening then import for that character again too, and confirming that his right hand is completely mapped to all the deform bones since that one track seems to be listed in your error specifically.
@@catprisbrey I had to explicitly make the animations unique to the ybot before saving them as a library, so this fixed it for me! Many thanks for your help and this excellent video!
@@felixjonsson4471 be sure to make unique for any others that you add it to as well. My enemies and my hero character share the library and so I have to make it unique on each or else one animation player will take priority and nobody else will animate but that one
@@catprisbrey thanks!
Did it work in Godot 3.5?
I don't believe targeting existed pre 4. I haven't tried or used 3.x since 4 came out
@@catprisbrey ok thank u, i'll gonna try in 3.5 but if its not work, gonna work in 4
@@sergeitrojanski2208 4 is great. I don't understand anybody staying on 3.5 honestly
@@catprisbrey i newbie in godot and have both versions, but in yt a more tuts about 3.5 than 4 and in godot 4 no visual scripting, thats why i try to 3.5, but 4 is good, yeah
Consider watching my more recent video explaining better the retargeting process and possible issues
face-red-heart-shape
Really good video! Unfortunately I struggled for quite a while but its all working now. For me, the models I downloaded had different bone structures than the bone map supported. For example, the character "Joe" needs a bonemap that says: bone_map/Chest = &"mixamorig7_Spine1", but the provided one says "bone_map/Chest = &"mixamorig_Spine1". I am using three characters and they all had different numbers there. All I had to do was find the number in their skeleton then replace all in the bonemap to have the proper number. Hope that helps someone!
Indeed, i made this video assuming folks had watched the FinePointCGI video and find mine through them or something. I should do a video focused on each step of animation retargetting so folks understand better each step they're taking, and how each step affects the final outcomes in Godot. That way they can better troubleshoot their own issues and not feel confused or lost.
I have a very small issue where some models from Mixamo have broken animations. For example fingers which fold backwards on themselves. Everything looks perfect on YBot, but a lot of other models have broken skeletons. Any ideas what might be the cause/what i am doing incorrectly?
Sounds like those other skeletons might be odd. What skeleton are they using? One generated by Mixamo? One you've built yourself? The openbot rig?
god, I've been trying for so long to figure out how tf to import mixamo animations to an existing model. Still not helpful. I've been trying for HOURS to figure out this shit and every tutorial is missing crucial info. its soooo annoying. where are you getting these .res files?? cant download them in that format from mixamo. .fbx and .res do not work to load in the animation player and I cant get it to an acceptable file type!
I have a more recent video where I explain this again but better and point out some pitfalls and also go through NOT using res files since a lot of folks lean on them as a crutch and never end up understanding properly what they're even trying to do.
I'd recommend watching that one and if you are still hitting issues, comment in that one what part isn't workinf
ruclips.net/video/zCvCHO6sk3Y/видео.htmlfeature=shared this is the one
@@catprisbrey thank you for the reply I will take a look!! Much appreciated
Thank you so much for this, its super helpful when prototyping. Importing and exporting from/to difference software has always been a pain, this makes things much easier!
(EDIT) : I do have a question though, have you had any issues with Godot 4 being really slow saving/loading scenes with these models imported in them? Everything was fine until I imported .glb model, fbx and .blend files save as normal but scenes with these models take 30+ secs to save. Launching the game is the same. FBX and .blend files work fine but they don't import materials properly for me.
(EDIT again): Seems that exporting the way you did, without the materials stops the slow save/load. I'll figure out a different way to apply materials, thanks again for the video!
The thing with materials and exporting is you have to decide how economical you want to be about managing them. I personally like my materials stripped from Blender and added in with Godot, that way i can have 5 distinct models sharing the same 1 material.
But leaving materials bound to the model at export, and then pulling them into Godot means that my 5 distinct models are all using their own 5 "unique" sets of materials, even if they were originally the same material in Blender.
So to save on space, i strip all the materials at export, and then add them back in Godot. It's more work, but makes for a more lightweight game.
Yea that makes sense, I think that's the approach I'll take as well. Thank you!
This is very useful! For animations that include weapons (Spear, Sword, Shield, potentially multiple), is there a similar solution for that?
Animation trees with sub-animation trees. Get animations you need for the various attacks or idles etc, you make a variety of different trees and use transition nodes to switch between them.
Great tutorial! One question, if later in the process I see I need another animation how can I add it to the animations list in godot?
Same sort of process, make a new animation res file of the new animations, go to the old animation res file, hit "load library" and add the 2nd animation file into the 1st one.
In this other video about animation retargeting, I show at the end adding one animation file into another real quick. ruclips.net/video/zCvCHO6sk3Y/видео.htmlfeature=shared
@@catprisbrey great thanks!
I have a problem, my 3D model is of Megaman Zero which has long hair, when I import the model to Mixamo the hair stays straight, is there any way that the hair can be animated as well?
Depends how your MegaMan was made. If they have the hair its own bones, they're extra bones and not part of the standard skeleton, so they aren't going to get any deformations from any animations not built with those bones in mind.
I'd suggest adding a plugin like the bendy bones plugins, and adding some of your own deform bones for the hair in Godot just for managing the hair being reactive on its own. Then you could use any standard animation libraries you want and the hair will still be cool and reactive