I’m a programmer and relatively new to 3D models and animations. I’m trying to get a little more background to make it easier to communicate with artists.
Is it possible to have a model without a skinned mesh, yet still has animations? Unity seems to be able to dynamically batch normal mesh renderers (as long as the vertices/triangles are low enough) but can’t for a skinned mesh renderer. We have someone using Blender to create a low poly 3D model with animations.
You can animate normal meshes by manually updating vertices, but that’s only useful in certain circumstances. If you mean standard character animation, no, that needs a skinned mesh renderer.
You don’t have to skin a mesh to animate it, but it really depends on what you are trying to make. If you are making something mechanical that has separated parts it’s easy enough to either pin the parts to a rig or even have them in their own hierarchy.
It’s going to be a bunny (very simple, it wont even have arms or legs. just a body, face, ears, and some piece of clothing like a bow)
The bunny will hop around, kinda dangle when picked up, and have heart animations
I have yet to try importing an animated object into Unity or any other engine that wasn’t rigged. I’d imagine if you were to move objects along their axis and key specific positions of an object and export as an FBX file, and then into Unity you might be able to read those movements similarly to blendshapes. I might try this myself. I would recommend setting up a custom rig for your character though. This way you can modify (as you can with other rigs) skin weights.
If you are capable of adding IK controllers to your rig you might be able to bake animations and export them to FBX, and then into Unity. IK (Inverse Kinetics) allows you certain creative control over how natural movements of objects or creatures are.
I am new to Unity. I will read through the documentation myself, but I believe I remember reading that Unity also natively supports blendshapes in version 4.0 +. However there is little in the way of dictating how a blendshape will move in relation between point A and B. I usually reserve such for lip syncing, and facial animations outside of Unity. Blendshapes can also be applied to FBIK or Full Body Inverse Kinetic rigs for use in facial animation without the need to use shape controllers. The use of such features may vary per application.
As gninjagnome says, you can import animation with bodyparts parented to bones, i.e. as you might do for a robot. This does require your character to have seperate meshes for limbs, so unless it’s a style thing (i.e. Lego people) it may look a bit 1990’s…
It will work as-is if using Legacy import options.
If you’re using the new Generic options (Mecanim) then you’ll need to make sure you have a root transform node from which your other character nodes branch off of (you have to manually assign which node/bone/joint is the root).
A quick test looks like Humanoids will also work without a skin.
gninjagnome and Pix10… YES, this is exactly what I am trying to do - create a unskinned mechanical object with moving parts - specifically, a puzzle with a main-body mesh, with some attached rotating gear meshes, which a ball must interact with. I do not want it skinned, because obviously its a mechanical model. Also, the gears must use mesh colliders for the ball to collide with.
I am using Blender, doing simple mesh-to-bone parenting, but the model always imports to Unity as skinned (with Skinned Mesh Renderers). Could you offer any advice in regards to the workflow from Blender?
Some details… I have simple single armature, with one root bone, to which the main-body mesh is parented. Each of the 4 gears is parented to their own bone, and each of those bones is parented to the root bone. Method of parenting meshes to bones (in Blender) is the simple “select mesh”, then “Shift+select bone”, then “(Pose Mode)”, then CTRL+P and select ‘Bone’ option".
Is there an export/import setting I am missing between Blender and Unity? Actually I have tried directly importing .blend file, and exporting to .FBX from Blender, with same results.
On the Unity side, in the import settings, I am using Rig = “Legacy”, Generation = “Store in Root(New)”, and disable importing of animations (I manipulate model in script).
EDIT: After experimenting with Blender , I learned a few things. First of all, I found the “Deform” option under Blender Bone settings. I thought that was the solution. I was wrong - different results depending on export format to Unity. .blend and FBX make no sense - deselecting “Deform” for all bones results in no bones showing up in Unity. Collada seems to be the format to use, at least for unskinned models. The model even comes into Unity in a more logical structure, with meshes as a child of their parent bone (not so with .blend or .FBX). And they are normal meshes, not skinned.
I was trying to do the same thing and collada works, but I get problems with reverse rotations in animation. And I’m not sure if you can export actions as multiple animations with collada?