Blender or Unity for animation?

So, i've just started with both programs, so i only know the basics. But i was poking around and I noticed there seemed to be options to animate in both programs. I was wondering if one was better than the other for creating a game animation. Also, when I was using Unity I saw an option to create a ragdoll out of several different parts, such as the torso, arms, ect. Would it be better to make different parts in blender, and then assemble them in unity, or make it all in blender? I just wanted to know the info so i could know the best way to do it and not get caught up in doing it one way and find out that I need to do it another way. Thanks!

In terms of animations, Unity animates things differently than Blender. With Blender, you can create animations for your model, such as "Run", "Walk", "Idle", "Attack", and these will all be executed on a mesh-level. But the animations in Unity are primarily for animating properties on your GameObjects. If you want to animate the transform, scale, or rotation, you can. You can also even animate script variables using the Unity Animator.

So it really depends on what you want to do. If you want to create character animations for specific movements that pertain to your character, do them in Blender. If you want to create animations that affect Unity-specific variables, then use the Unity Animator.

And (I'm no expert on Ragdolls having never used one before), but I think what you do is assemble the entire thing in Blender, with a bone structure and mesh hierarchy, and then you import your mesh into Unity where you assign each sub-mesh to the Ragdoll component and Unity will create all the proper constraints and joints for you to create the "Ragdoll" effect.

Unity will import Blender's armature based animations, that is bone-based, and nothing else. There is a useful script in Blender under the Animation script menu where it will bake constraint based animations for you, ie if you have things in Blender that drive your models bones, and animate it, this script will make the much needed animation sequences that Unity can read. Failing that I think you can animate in either program effectively. I suggest watching JoeRobbins' tutorial on animation here:

In our game we use Unity's built-in animations for character movement along paths and FBX-imported animations for the actual character deformations. Just make sure you have both nested, ie. the character (w/ animation) parented to the gameobject that has the path animation.

You could use Unity's animation system for simple in-model animations like a box being cracked open and so forth. Unity animations main advantages are:

  • You can re-sample your animations frame rate on the fly without any penalty - it's really a world of difference having stuff animated at 60-90 frames per second instead of 15 or 30 FPS. In the other hand, imported animations at such rates will sensibly increase in size.

  • You can fire scripts at specific points of your animation, a bit like what you do in Flash, eliminating the need of guesswork or any timing logic to get, for instance, that particle effect showing up in a specific moment of the animation.

Good luck!

This question and answer are now over a decade old, so I thought I’d provide another answer.

Unity animations now have actions like “Run” and “Jump”, like Blender. Blender has both modeling and animations in the same package, which is helpful if you only want to develop expertise in one.

Unity can import a Blender model, though, and I find Unity much easier to use.

So Blender is still probably “better” for animation, but Unity continues to add more support and will likely be releasing new animation tools.