I have a piece of animation which has a movement. If I didn’t enable the root motion, the object will slide back to the beginning point at the end of the animation. But the problem is the movement of the animation is not keyed on the Root bone of the skeleton but on the Bip001 bone which is direct subnode of the Root bone. I know it can work in u3d by setting Root node of the Rig. But I’ve tried every way and it looks like it won’t work in UE4. So it is possible to make the root motion work(the movement of animation plays normal, won’t slide back to beginning position) even if the movement is not keyed on Root bone???
For root motion to work, the root bone has to move. Typically you’d have the root bone set up in your animation software to follow along with the pelvis in XY, which in your case would be following Bip001.
You can set this up at any point through a constraint system and you don’t have to physically animate the root bone, as long as it’s set up to follow along, when you export the animation, it’ll be ok. Although of course you can simply animate it as well, but it’s easier to have the software do that work and you just animate your character. Unfortunately, I don’t think there’s a way for your current setup to “just work”. But not 100% sure of that. From what I know, you’d have to get that root bone moving. You MIGHT have some trouble simply moving the root now if you linked your Biped to it. I haven’t done this in a while but I think as is, you’ll run into problems, not sure now the possible extent of that just purely from memory. There may be ways around it, depending… not sure now exactly. I’d have to take a look at that stuff again to refresh my memory a bit.
If you can give some details about your setup in Max, it could be useful. I just assume, you have the Bip001 linked to a dummy or bone or something.
– As a side note, in my experience when you rig a character for UE4, or any other engine for that matter, it’s generally a better idea to not use Biped directly. Rather create a custom skeleton with the bones systems, and then simply drive that skeleton with Biped. This allows more flexibility when it comes to anything “non Biped”. You can have pure custom hierarchy, constraints, etc. I don’t mean you should go change it, it’s just for future reference. It makes your life easier. A little extra setup time up front, but ultimately easier down the line.
I see. I’ll try to re-edit the animation file in 3dsmax. And you’re right, the original animation maker did have the Bip001 linked to a dummy bone and also thank you for your advise. I’ll take it. Thank your very much !
So, I’ve been looking at this problem a bit and unless I don’t know some tricks, it’s a little harder to solve than I thought, to solve directly on Biped. Poking around a bit and trying out some things, sure it can be sort of dealt with but it’s a little bit of a work around. If you have many animations, it might not be ideal since it’ll need to be some manual work per animation. Biped just don’t like to be messed with. You get into circular dependency issues and working around this is not so great. Normally this would not be an issue because of having a separate control rig. With Biped, it is the rig, I mean, the skeleton is also the rig.
What I might do in this situation, for existing / exported animations, if there’s not a whole lot of animations to deal with. I’d import the FBX files and set up root node follow behavior on there directly, per animation file. When you do this, Max handles the bones basically as normal bones and you can do what you like to them. I can’t script, but I can see a small script do a quick job of this. But even without a script, it shouldn’t be too much. If it’s a lot of animations, and you plan to make more new ones, this will not be ideal and I’d consider something else.
With that said, if there’s only a few animations that need to be dealt with, that’s one thing, but then you need to make sure root motion works for all new animations. So in this case, you might attempt to set up a root follow behavior directly on the biped rig as is. It will not be a great solution but a possible one. Personally, I kind of doubt I’ll end up doing this if it were my problem to solve. You’d kind of lose some Biped functionality and it’s just not good overall I think.
So personally what I’d do at this point, regardless of anything, and I know I mentioned before that I don’t say that you should convert your rig over to a custom skeleton, that is exactly what I’d do here. Creating a custom skeleton with your existing Biped rig being the driver of that skeleton. It’ll be a fairly quick job although you will need to re-skin your mesh, unless you keep hierarchy, axis orientations and naming conventions = to the original Biped. In this case you SHOULD be able to keep your original mesh export. Testing needed…
So anyway, doing this will allow very easy root node setup and if you had a lot of animations to make work for root motion, you can carry all your existing animations over to this rig using biped’s ability to save and load animations very easily. This solution is probably the most reliable all round. Even though maybe it’s about roughly a day or so work to make it all happen. That’s probably a small price to pay for a good working setup. Let me know if you need some help with regards to the setup. I don’t know your Max background. Either way, you don’t need to know much technical stuff, just creating bones and constraints, and some wire parameters… I think is about it. I mean, if you think you want to take this route. This is just my own opinion on the situation. There may be other solutions I don’t know about, or didn’t think of now… but anyway…