3DSMax Biped Rig for HeroTPP (Default Blue Man)...

Ok, so I took a closer look at this problem. and I had to kind of come up with a bit of a round about way to make it work. When I looked at it last night, it was just real quick and the problem that prevented a simple setup is just that CAT doesn’t like being linked to a dummy and also control that dummy. It creates a dependency error, where with normal dummies, it does actually work.

So, anyway, I made this video to explain the problem a bit and show a working setup.

I will say with all this though, it also makes it a bit clearer why it’s better to keep your “game skeleton” separate from your animation rig. There will be other problems if you used twist bones and things like that. But it’s always easier to have a separate rig just for this reason, where you create these dependency loops to try and make things work within one skeleton hierarchy.

But anyway, take a look at that video and see if it makes sense to you and if you have any questions, please post them here.

I did actually do a full export test based on this setup, doing animation with root motion and it all functions properly. The only problem I see is with exporting the CAT rig, it doesn’t come out cleanly as “bones”. So when you try import the animation file, it doesn’t seem to recognize it as animation in UE4. I didn’t do a whole lot of testing with regards to this, but you can get the animation imported, it just doesn’t automatically see the correct format because CAT bones comes through as objects, not bones.

I just saw this thread top again, and I would like to let you know, that the biped hand controller is a bit off. I used it for first person iron sight logic (and the hand had to be perfectly rotated forward in world space) and it took me some time to figure this out. :slight_smile:
Not that this rig was intended for first person, but I still like to point that out.

Other than that, this rig is still da **** life saver.

Yeah, sorry, there’s not much I can do. Biped is not really possible to “snap” to another rig. It’s all hand aligned, so it “works” but it’s not actually a 1:1 representation.

As long as you do your poses or weapon alignments based on the HeroTPP skeleton and only use Biped to actually affect the pose, then it should actually be ok. Because the skeleton will represent the in game pose, the biped drives it but ultimately the biped positioning may be slightly off. If that makes sense… :slight_smile:

Though what you’re talking about there is a kind of precision that I’d do another way anyway. Using a controller in Max to be able to force the thing dead straight, or whatever.

Mr Obihb.

Thank you for your time once again about this. I searched around CatRig documantation and I have found something called “Motion Extraction Node”. I fiddled with it’s limitations abit and was able to make it behave like a Root Motion bone.

The only thing I get is a fbx warning in 3dsmax, but it does not effect anything in UE4. If you want I can give more information about it.

Regards.

Cool, I’m glad you got a working solution. If you want to post a link or just information here, please, feel free. I personally don’t really use CAT, I just did this for people that might choose CAT in stead of Biped. I’m also still considering a custom rig, maybe some day when I have nothing better to do… :slight_smile:

But, yeah, if you have useful information that you want to share here, please post it.

Very well, I will show the “hack” once I get to home from work. :slight_smile:

@ Obihb: Thanks for sharing; this will help me with some on-going scene tests.

That’s a Funky dope maneuver man!! your a hero yourself.

Dear obihb
This has been quite a great help for those using Max characters with unreal root motion! Thank you.
The problem is that I am using Biped (as you do, I think). I tried to setup a root “bone” following the last video (Cat rig with RootBone for Root motion) but I could not succeed. Instead of the pelvis in Biped we would choose bip001 (Ok?). But the Controller dummy point (2) can not control Z position in the Bip001, which exposes only "Vertical; Horizontal; and Turning in the wiring setup procedure. Could you please help in this case? In fact if you could explian the whole process with biped, it would be extremely important… Thank you. José Mateus

Obihb You need to change your max units to centimeters and re save/export, your blueman is much larger than epic’s. Otherwise really great share! :slight_smile: <3

Hi,

First of all, thank you very much for this Obihb . I am very new to 3ds max and i have one question i hope someone has an answer for me. I have tried messing around with Bipeds before and whenever i added a footprint i could see it visually on the ground with the number of the footprint next to it. But when i add a footprint in your HeroTPP file they are invisible and it makes it really hard to keep track of them. Is there any way to turn the footprints back on?

Thanks!

** JoseMateus: I personally don’t use much root motion in my project, and I don’t use this specific rig in my main project, so I haven’t gone and done any existing setups for more complex root motion. But with that, well, you can do anything that allow you to get the motion that you need. So you mention that you use Bip001 as your control object and the problem with that is exactly as you mention with the available parameters. You don’t get what you need to make it work. But you can literally use anything that does give you what you need. Your control rig can be anything, it doesn’t matter as long as you get your end result.

So, what you could do in a case like that where you lack control is use an ExposeTransform and pick the Bip001 as the Expose Node. This way you get access to the actual world positions of the Bip001 and you can wire that up from the ExposeTransform node. This would of course make your dummy that you want to use for root motion control go and sit directly on the Bip001, because they would match on world coordinates, but you can layer in a PositionXYZ on top of that and then re-position it to where it needs to be.

BUT… ultimately this may or may not be exactly what you need, considering on Z you have a floor to deal with. So then you can probably use IK to control that, set up an extra IK chain that is just meant to control Z on that root motion dummy. Anyway, see what you can make of it, if you get even more stuck, maybe PM me and I can help you out more directly.

I think because of your post, I might do an updated rig and post a new one with total root control, just can’t promise anything right now, but it seems a good idea to do that for future use.

** SaxonRah: Actually if you export with Units set to “Automatic” … it will be just fine.

** keylax: If you look at the layers I have in the file, there is one called BipedExtras, this layer is hidden and contains the Footsteps node, so if you unhide this layer, your footsteps will be visible. Just make sure not to include any of that stuff at export.

So, I’ve created a biped rig for the new Grey Guy Epic added since 4.8 and I’ve updated the first page with the download link for it.

Just want to mention that this rig has basically 2 extra features on the root bone. For one, the root can also go up on Z, so it is possible with this rig to animate a jump properly with root motion. The root will still stick to the floor going down. And the second one is rotation. I’ve added the ability to rotate on Z. I’ve kept it to Z only for the sake of not messing up people’s capsule. Having XY rotation on your capsule is not a good idea, unless you know what you’re doing and have specific reasons for doing so. I want this rig to be general public friendly, so I decided not to have rotation on XY. So anyway, now you can animate rotation on Z in your root motion with this rig.

By default the rotation is “OFF”. I’ve done that for safety I guess. If you’re new to root motion, so things don’t go all weird on you. So to enable it, select the red root motion controller, go to the Modify tab and you’ll see a check box with “Root Rotation” label. Use that to switch it on and off.

Anyway, if anyone end up using this rig, please post back here any problems. I did some simple tests with it, but it’s always clearer when you really use it if there’s something wrong somewhere. At this point I’m not actually using this rig for anything, so I won’t be tracking problems with it myself, so if you find anything, even something simple, please post here.

Hey thanks for that :slight_smile: I never knew that’s how automatic worked.

Actually, It doesn’t work like that.

No matter how i get your biped /cat into the scene max wants me to change my system units to inches, or re-scale the model to system units, either way i choose and export with automatic it’s still far too large.

I downloaded the grey guy and I’m trying to retarget an animation, but I can’t select the grey guy as a target rig. Am I missing something?

SaxonRah: I’d have to look at your Max file to see what’s going on, but I’d think if it asked you to change units to the file when you’re opening the biped file, it means you’ve changed the system units to begin with in which case, things can get messed up. You should use generic units, which is Max’s default, and you should stick to that. It will translate as 1-1 with UE4… 1unit = 1cm in UE4.

Ringeril: With this rig, you can export it and load it directly on the GreyGuy skeleton in UE4. No retargetting necessary. You should not be exporting the Biped, you should be exporting the game skeleton that the biped is driving underneath. I showed the exporting in the video I posted. It is with the BlueGuy, but they both work the same.

Hi @OBihb I have a question about your cat rig root motion node. I have a Cat Rig animated with a cat motion layer (And i’m really happy with the result).

But If I cannot bind the x and z position to the pelvis because it is controlled by the root motion controller.

I did try to parent another dummy on the pelvis and wire my parameters to the dummy’s x and z, but then the root does not follow.

Also tried to make a new point and link that one via a position constraint to the pelvis dummy and keep the original offset (which gives me x and z translation on the floor, but also Y translation)
I then tried another point to be the root motion and wire those positions to the x and z of the last point, but that one does not move either.

The only thing that does sort of work is to enable the motion extraction node on the cat parent and to wire x and z to the arrow - but that motion gets lost on export.

Any help would be greatly appreciated!

Can you maybe explain better what motion it is you are trying to get?.

The reason I ask is because you mention that you want to bind X and Z position to the pelvis. I assume X and Z for the root bone to follow the pelvis. Currently the root bone will follow on X and Y. So I’m not 100% sure of what it is you want to do there in stead, because the root bone X axis already will follow the pelvis. Do you also want Z axis of the root bone to follow on the pelvis?. I guess, I’ll ask this, do you want all 3 axis of the root bone to follow the pelvis?.. or am I missing the point?.

Hey Obihb this is some amazing work and represents the fix to the problems i’ve been having but for one problem, for me the rig is huge! when i open it in max and concurrently send it to motion builder it is way bigger than everything i’ve worked with so far including the Herotpp mesh and rig. I am hoping it’s something i’m doing wrong if you could advise me on this i would love you forever :slight_smile:

Yeah, it is actually really easy to get various scaling depending on your default unit settings and import settings.

The important thing is to have Max set up to use Generic Units. Then also keep an eye on what scale things get imported, and then what scale do they get exported. You can actually have pretty much any general scale settings, as long as you import and export correctly. Although it pays to use the correct settings at the system settings, it’s not required to make it work correctly. So then in your importer settings under Advanced Options -> Units, you need to make sure when you import, the object comes in at a scale factor of “1.0” and then again when you export, the object goes out at “1.0”. This specifically with regards to going between UE4 and Max.

So the first place something can go wrong is if you imported an FBX that came from UE4 at the wrong scale.

So, now with Motion Builder and Max, sending stuff between them using the built in “Send To”… should be 1-1. I hate to make the assumption, but I don’t have much experience with it. I’ve done some tests, but that’s about it. So not sure if there’s any settings to influence that. Going by defaults, that seems to be the behavior.

My guess is that with your other stuff, maybe they were imported at a different scale originally into Max, and that’s where things may go wrong now with this. Without knowing exactly what you did with your other imports, I can’t say 100% for sure.

If that’s the case, it’s a matter of fixing it inside Max, before sending to Motion Builder. To do this you can try use the Rescale World Units in the Utilities panel. You will just need to know the scale factor difference to put the right value but if you knew what the difference was at import, you can get that value there. Otherwise you can always trial and error to find the value.

If you want to go so far as to send me one of your Max files with one of your objects, I can try and help find the exact solution or scale factor. It has to be a Max file and not an FBX because with FBX, I may have a different import scale factor than you and so gets me no closer to the problem. So maybe see if it makes sense to you and take it from there.

One thing to note, if you do rescale the units on a scene in Max, with a skinned object, that model may look weird afterwards, that’s not a problem, and is easy to fix, so don’t worry if you try it and you see that happening.

Anyway, not sure if any of this is useful, and I am making some assumptions here so not sure if I’m hitting the mark for your problem, but yeah, let me know if you can’t figure it out.