0
$\begingroup$

I have a turret that I have modeled and textured within a blender file. Now this turret is not a single object and is instead multiple objects. Some items are parented to eachother but in general the entire thing is optimized for use in a unity project. The big thing is there is no rig for the turret.

I want to animate the turret popping out of its box, popping back into its box, and firing each as a separate animation. Now I can try and make all of these things happen on one long timeline and do keyframing but splitting them up is useful for their planned export to unity.

Actions do not work, as even pushing them down to the NLA since they reference multiple objects and are pushed down into a single object means that animations will override each other in weird ways. And I can't seem to push down the animation to each object in the NLA without problems happening.

Is there a good way to have multiple compartmentalized animations for a rigless multiobject item within blender? Or is the best method to rig the object and use actions with the rig to animate the object?

If there is a silver bullet I am missing, I would love to know about it so I don't need to rig this turret. However if I simply just need to animate this with a rig I would be open to doing so but would prefer to have confirmation before I jump into that.

This is the file I am working with if you want to better understand my issues. https://drive.google.com/file/d/1gAJmtisM-I_U3U2GDuMYaz1t1gy-cVUv/view?usp=sharing

$\endgroup$
2
  • 1
    $\begingroup$ sounds like you are a bit afraid of rigging ;) but i would recommend to rig it, yes. It is the easiest way to do such kind of animation. But could be, that the moderators close this question because they think it is "opinion based" which is often the case if you ask question like "what is the best way..." because often people have different opinions based on their experiences and knowledge ;) $\endgroup$ – Chris May 17 at 6:11
  • $\begingroup$ I'm not sure if the title of your Q is correct ... you wrote you want to use anim on single object (not multi object), right? $\endgroup$ – vklidu May 17 at 10:54
0
$\begingroup$

What you are actually animating on object level is object's Origin (orange dot) loc, rot, etc. Joining objects into a single one gives you only one origin for all parts to store animation. So there is not a way to keep other actions when joined.

For some kind of animation you can use Shape Keys. They can store vertices location, but issue with them is straight interpolation between locations. It gives you perfect start and end shape, but deformed transition between them. To avoid that you would need a shape key for each frame and keyframe each frame. That is possible, but very ineffective. And I'm not sure if Unity even can reuse Shape Keys.

That is why Blender (and other packages) use Armature system, that is like combination of those two things into a one. If I try to simplify that - each bone can be like an object's origin (pivot point) for transformations, but more then that ... you can assign not only an object to a bone, but especially Vertex Group ... like Shape Keys does, but in a way where vertex is not moving from loc to loc, but according to a bone that is like a pivot point for each vertex.

So ... if you need a single Action (animation set) for character the Armature system is the only one option.

BTW nice character :)

enter image description here

$\endgroup$
0
$\begingroup$

Using a rig is the best way, expecially for exporting to Unity. It lets you also join all the meshes into one and still be able to control each part individually with a serie of separate actions.

This kinds of rigs are very simple, just create in edit mode a bone for every piece, orient them in the same way as Unity's world coordinates for easier editing.

Establish any parent-child relation you need, and create a root bone which will be the parent of every other branch of bones.

Then select the mesh, shift select the armature, press Ctrl P and choose "with empty groups".

Then select the mesh, enter edit mode select all vertices of a piece (shortcut L), select the relevant vertex group/bone and click assign weight 1.0.

Repeat for every piece.

Don't use "with automatic weights", as the pieces are not supposed to deform.

Don't forget to Apply (Ctrl A) all transformations of mesh and armature before rigging.

enter image description here

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.