I did the tongue animation of the salamander in max with CAT and a tail bones by scaling the base and then rotating it, it looks fine in max but in unity it breaks.
This short video explains it better.
Is it wrong how i did this?
What’s the correct way to do this so that it works in unity?
What can i do to get it to work as it is?
Bones scaled in Unity propagate down the bone chain. So if bone C is parented to bone B and bone B is parented to bone A, and bone A is scaled - the scale factor will be propagated and (I think) multiplied down the bone chain to bone B and bone C.
There are two methods to create Unity acceptable bone scale in Max that I know of. Both of which are involved so I won’t go into them extensively, but I will list them and allow you to perform your own research.
-
Look at, parent and orientation constraint setup with dummy helpers, so each bone is not a child of (the parent) bone. Essentially this creates a bone chain (bone, dummy, bone, dummy, bone, etc) that each bone does not have a parent but is position/orientation constrained to the previous dummy helper object. the dummy objects are also constrained to the previous bones, and upon export these dummies are not included in the export. This setup takes iteration to get setup and working correctly.
-
I can’t remember what this setup is called, Bone Squash & Stretch basically. But from my research it only works with 1 bone, so it probably would not work for your tongue setup. Essentially you create a bone chain and allow the bone chain to be scale-able (squash and stretch).
This is the process, explained by BadSeedGames on youtube
-
? A thread from reddit I have not seen before - but directly related to your question.
Reddit - Dive into anything
Hope this helps - it is something I wish was a little easier to accomplish - would greatly increase the quality of game animations in Unity.