Hey Guys!
I have a little trouble over here :poly122:
I'm working on the rigging of a character to be exported using *.FBX file format for Unity engine.
"Use CAT" they said, it's better than the crapy biped (I'm no fancy animator :poly142: , so I did.
I used cat, it's seems a lot better than BIPED, BUT when i tryed to do some export test in game, realized in the export pocess the character was transformed in a horror creature!
Also I got this warning from max:
One or more objects in the scene has local axes that are not perpendicular to each other (non-orthogonal).
The FBX plug-in only supports orthogonal (or perpendicular) axes and will not correctly import or export any transformations that involve non-perpendicular local axes.
I did some research and i belive that the problem it's related to some coordinates issues from the perspective view while I was setting up the CAT rig.
Theres is some way to solve this?
I used different fbx versions with any succes.
Thanks guys!
Replies
My advice...
Either.
reimport the fbx and fix them, then fix the skinning problems
build a nw deformation rig out of bones, skin the character to that, constrain it to the animated cat rig and export that instead
id do the second one myself...
You might want to try resetting the scale/transform matrix for the CAT pieces, Control Panel > Hierarchy tab (4 white boxes) > Reset > Scale & Transform. It might fix it, or it might break CAT. I also seem to remember hearing something about a export node in cat that can help when exporting animation, you might want to hunt around the help file for some info on that.
Best of luck!
Anyway, that warning is just a warning. It should work fine even with it, although ideally it shouldn't be there. The issue you're having looks to me to be something else. You should check the scaling when you export, and check the baking of bones and whatnot. I've seen issues where it converts the scale from meters to inches or feet or whatnot. It can also bake objects into regular bones which seems to work better.
But yeah, I agree, Biped was solid at this point and it had that "it just works" feel to it. But its functionality is limited. I'm personally happy they're moving to CAT, but I do wish CAT worked half as well as Biped does. Oh well, maybe in Max2021 it'll work well.
So for bipeds I use biped, almost everything else I'll use CAT.
I went through a lot of problems trying to eliminate most of the warnings I got while trying to export a skeletal mesh for udk.I got that error for my characters hair planes.I probably should have freezed transformations before binding and painting skin weights.Now I am having the same problem with motionbuilder.
So far, since this it's a time based proyect I did again the rig, but this time using biped.But i won't give up on this, I'll try to fix the CAT rig.
I think biped it's a great choice, it has limitations of course.
But also I want to understand how the heck CAT works!
So i will try to fix the model as you suggested and get back to you guys.
One more crazy thing, as a test ,I created an alien rig from CAT, without any modifications and also spitted it out the same error. =_=
poopipe:: I can't understand how I could messed up the scaling like building the rig, I tryied to be clean as possible but It borked anyways.
Also I read that maybe the error it could be for creating the rig using the perspective view, but it sounds like BANANAS!
Also as a test created an alien rig from CAT, without any modifications and also spitted it out the same error.
Mark Dygert : Yeah, biped its like the old trick taht always works.I tried CAT, because it's overall advantages to animate, But its so easy to breake!
Bigjohn : I got freaked out by the warnings and when I got back the *.fbx to max, the model was large deformed mosnter.The horror!
melviso : Hey it sounds dandy!
Got some noob animation questions:
How I delete history and freeze transformations ?
Maya has a history stack, max has a modifier stack.
Max also keeps a record of what you have done to the object such as scale, move, rotate, this isn't a full record of what you do in 'sub-object mode' (poly, vert, edge ect) but a record of what you did to the 'object'. This object space should be reset to zero before skinning any objects to bones.
I go over why object space transforming can be difficult to work with here:
http://www.polycount.com/forum/showthread.php?p=1631776#post1631776
To see what the transform matrix is reporting for a specific object you...
Select your object right click the scale tool in the main toolbar, this will pop up the type in transform box, everything should read 100.0, select the rotate and move tools and check that everything is zero'ed out. If not head over to the command panel, click the hierarchy tab, and then under 'Adjust Transform' inside reset click transform and scale. This will zero out the transform matrix for the object.
This should ALWAYS be done before skinning an object to bones and you should be careful how you scale bones for the exact same reasons. With biped it only lets you scale bones in figure mode which it suspends the transform matrix so it's never an issue, CAT on the other hand is much easier to break and harder to fix... Hopefully they will invest some time in bullet proofing it...
To 'Freeze Transforms' you go to the command panel > Hirearchy tab > Link Info tab > and check on all the boxes for move scale and rotate. This really isn't nessesary in max, but it keep you from accidently selecting the mesh and tweaking the transform matrix with the move/scale/rotate tools after it's been bound, a handy step but probably not going to fix anything for you in max.
TLDR:
Before skinning...
Collapse the modifier stack.
Check the transform matrix and reset as necessary.
Lock down move scale and rotate if you need to.
Max is very forgiving over transform matrices on bones, it kind of knows that you don't want a stupid tranform on a bone because that would be silly. The thing is, it has to export the information to fbx just in case so when it brings the objects in, anything weird come back in without max having had the chance to decide it probably isn't desirable.
Do everything Mark says
And also,
I never skin a character to the same rig that gets animated - the character gets skinned to a nice straightforward bone rig with frozen transforms and that rig gets constrained to the animation rig. That avoids this and a multitude of other potentially nasty issues to do with scaling and inheritance, it also gives you some redundancy and a cushion in case animators get all bitchy about how the animation rig is set up.
Followed is a list of bones that are converted to geometry. Followed by a list of bones that don't comply.
So here is the strange thing. Supposedly you had to collapse trajectories for the cat rig before export. I tried that and cat motion gave me the result you show in your screen shots. Its the kind of result you get in other engines when you try and export a character that is not centered, at least where the root is not x=0, y or z=0 depending on what your up axis is. In short voodoo mumba limbs The animated keys work no problem. I read that position keys (set key) will send you character to the center of the unity universe so stick to auto key is probably best while animating.
I tried to export out of max without fiddling with trajectories and the animation came in fine with the mesh. It also came in with all the bones as geometry but the fbx plug told me so. Ok, so I exported and pushed the cat HIK (human ik) button. The rig came into unity with the tail, palms, fingers, lower jaw and feet bones this time. Thats it. The animation is flawless and the mesh looks good, plus the cat motion walk cycle tacked onto the end of the idle animation also works without any issues.
It seems unity reads my included bones as CharacternamePelvis which I cant delete. What you can do is select the bones and hide them from the render. The bones dissapear in the viewport and are not visible when you enter unity play mode. I have no idea if this will create issues further down the line but for now everything works like you hope it would.
I also tracked down a method to retarget animation for cat fbx export here (first vid): http://area.autodesk.com/louis_tutorials/cat_overview_part_3_working_with_cat_data_and_crowds#step1
Testing this method is todays task Looks good though because it reduces the rig to geometry and just loads animation onto them, like poopie says.
I like the cat system because it is easier to use than CS. I had a very unfortunate experience with a bought model a client supplied that used CS (2011) and it was a nightmare. I am no animator by any stretch and if I cant get f curves to do what I want its just hell! For the best result I would build a simple bones skel in max, name it properly and export everything to motionbuilder and do everything there. MB pretty much rocks and is nice and smooth. One nice thing about cat is that if your character is in any way bestial cat motion does a nice job if you lower the pelvis from a higher rig which eliminated knee pop entirely. Also with the flick of a switch you get back, and strafe cycles free of charge.
Op let me know how you get on. I will put down my findings on the retarget thing here when I am done.
Cheerio
second error - bad transforms on things.
refer to my previous post on separating the deformation rig from animation rig and you won't suffer these issues. i successfully managed a max to maya to max to engine pipeline using fbx as the backbone by doing this.
It is not my intention to hijack this thread I just hope it helps the op.
Yes checking the second error revealed a reset of scale and transformation should do the trick, but you cant because of the first error ha ha!
Yes the retargeting (max tutorial I linked to) the animation will do what you say. The retarget rig is just a snapshot of the animated rig which reduces it back to simple geo I guess. Am doing it now.
Cheers
i generally prefer to build the deformation rig out of bones - snapshotting a cat or biped will give you geometry which you then have to explicitly not render. i don't think it'll make a lot of difference resource wise but still worth thinking about
Thanks