First, let me get this out of the way I did not design the model. The credit for that goes to MZ4250 I’ll link their information down below (go check it out, there’s a lot of excellent models). For the purposes of my project I’ve named the model Gamera.
Second, as I said in the title I’m trying to animate the model in Blender, export to Unity, then export to Tabletop Simulator for D&D.
I have aligned, set, and animated the armature the exported file is deformed.
I’ve applied the weight paint to the entire model, then applied the weight to each vector via the dropdown.
Changed the bone weight settings in Unity from 1 to 2 to 4 to Unlimited.
The deformation is still there in unity. I have tried guide after guide and I’m either not understanding or it doesn’t solve the issue.
Now the good news is my animation works, it’s far from great but it’s a nice first project.
I would really appreciate anyone who could be patient and explain it to me like I’m 5.
Finally, I’ll post updates for those of you who encounter this issue years from now and are scouring the internet for answers. I see you.
Tl;dr: Newbie bites off more than he can chew and needs someone to tell him why his dragon’s neck is broken.
I tried importing your blender file.
Three things I noticed:
There are import warnings that indicate not all vertices have weights. This isn’t always a bad thing, but it could be depending on where the vertices are in the hierarchy
Your armature has a non-uniform scale. I think this probably 90% of your problem. I tried removing the armature modifier from your model, applying scale to the armature, and reparenting the armature with automatic weights and that seems to clear-it up.
It looks like there’s some messed-up geometry around the head on the left side where the head is close to the shell.
About the non-uniform scale thing- Blender doesn’t seem to use bones for scaling, but Unity does. If your armature has a non-uniform scale (that means it’s not the same on all axes), all of the child bones will also inherit that scale, and they’ll also apply the scale to their weighted vertices, which will squish and stretch your model in weird ways. You want the your armature to have a scale of 1,1,1.
I think what you’d need to do is unparent the armature from your model, also remove the armature modifier from the model. Select your armature in object mode, and select object>apply>scale in the menu. This should change your armature’s scale to 1,1,1 without changing the overall shape of your armature. Then you can re-apply the armature modifier, but unfortunately you’ll need to redo your weight painting.
I’m not sure what’s going on with head on the creature’s left side, it looks like there are some vertices connected between the head and the shell that aren’t supposed to be. You can see it in Blender too, so it’s not a Unity import problem. I guess you’ll have to clean this up manually.
Just as a side note: I don’t suppose the person that created this model actually meant for it to be rigged, because normally, you’d model the character in a symmetrical, axis-aligned pose (like the T-pose for humanoid characters, for example). That makes it easier to set-up a skeleton and paint the weights. Also it’s typical to use the mirror modifier so that you’d only need to weight-paint one side and it will be copied to the other.
I followed the same steps as in the video, but it still didn’t work.
But I downloaded PackMotionsFree to test their animations, it worked very well, but only as an Animator, and the tutorial says it is to be done using Animation.
As I said before, Animation doesn’t work, unlike Animator which does a good job. The only problem is that I need TTSAssetBundleEffect to have more than one animation and to be able to choose which one will be activated using buttons.
I don’t know if there is a way to change the Script to work with Animator instead of Animation. Here below is the image of my configuration for Animator (which works)
Sorry, I don’t really know anything about Table Top Simulator. I can answer questions about importing from Blender to Unity, but I don’t know how you’d get it to work with TTS.
When you use that animator and it works, are you importing the model as “humanoid” or “generic”? If you are using “humanoid” then the animator may be re-targeting your animation. That could be why it works in the animator but not as an animation component.
That’s right, it is placed as a Humanoid, and when I import it into TTS it works perfectly, but there is the problem that I can’t change the animations. There is a script I downloaded that does this, but only for Animation. Is there no way to change it to work with Animator??
If you want, I can send you the script
I can import both into TTS with ease, but only the animation from the Animator file works, in Animation it remains static
Humanoid re-targeting is a great convenience feature in Unity and one of the reasons why I use the engine. It lets you use various animations from third-party libraries on your own character with no worries.
Unfortunately, from what you describe, it sounds like this feature just doesn’t work in TTS. From what you describe, it sounds like TTS requires plain animation clips that are compatible with Unity’s “animation” component.
If you want your animation clips to work in an animation component, then you need to make sure that the armature in your character model is exactly the same as the armature in your animation file. The names of the bone objects need to be the same.
For example if your animation file has a fore-arm bone called “arm_upper_right” and the same bone on your character is called “upper.arm.r” then you need to rename that bone so that they’re the same.
Once you do that, you can tell if it’s working by changing your rig to “generic”. That will turn humanoid retargetting off, and then you’ll be able to see if the animation clips work on their own.
What you are looking at there, are actually the Mecanim avatars. These don’t work with the “animation” component at all.
I think you’d need to set the “animation type” in the model’s import settings to “Legacy” instead of “Humanoid”. Then, like I mentioned before, you’ll need to change all of the names of the bones on your character to match those of the animated model. If there is any difference in structure then it may not work
I’m not sure. Unity’s old animation system was never really designed to allow you to transfer animations from one character to another, so it does not always work well unless the armatures happen to be the same.