As the conveyor is quite a complicated mesh, the automatic weights algorithm fails (an info warning appears on the bottom of the screen when trying the parenting), so you have to weight it manually (which is always prefereable with rigid mechanical objects).
To do so select the conveyor, go to edit mode, select all vertices, select "bone" vertex ...
In the modifier you can enable the On Cage option and, in Edit mode, the mesh will appear as it is when posed (even though the gizmos will stay at the non-modified position, which is unfortunate imho):
If you want your mesh to definitely take the Pose position and don't need anymore armature, apply the Armature modifier.
If you want to keep the armature and ...
If you move the joint, bones have to stretch along their Y axis. This behaviour can be obtained with this setup, in which every deforming bone has one constraint to copy the location of a control bone and another constraint to stretch to the following control bone.
One way to do this is weight painting. Here is an example of just the arm.
Give each bone in the armature a name. I have mine parallel to the Z axis, so I picked top and bottom
parent the arm to the armature. Select with Empty Groups. This will create two vertex groups for the arm. The names of the groups will match the names of the bones.
Select all of ...
Probably the parent/child relationship is established with a Blender constraint, that Unity doesn't recognize.
In this case you have to bake your animations: in pose mode go to pose menu > animation > bake action, and check the "clear constraints" option.
In pose mode, 3d viewport menu, you can find select->select pattern. This lets you select all bones by name. It's intended for use with a wildcard operator, for selecting all bones with a particular naming system (like *.L), but you can use it for selecting single bones. You can assign a hotkey to this menu item by right clicking on the menu item and ...
Well, I figured out how to work around this. Instead of using the armature modifier, I set my armature as a constrain. Then when I perform the boolean everything works as intended. I'm pretty sure it has to do with the hierarchy in the modifiers panel.
Anyway, I'm happy it's working now and that was the solution in case someone else is having trouble with it....
You need to manually paint weights values of 0-1 in weight-paint mode. There is no easy way to go about it besides the automatic-weights assignment which you'd already stated as invalid for this scenario. Additionally, make sure that your mesh has no double (overlapping) vertices.
Blender is pretty inflexible in that regard, it's designed around having the bone's forward vector be Y+ and will mirror by just moving the bone head and tail resulting in similar rotation on both sides. Even if you tried to do this by hand in Edit Mode via scaling, it really just moves the head and tail in such a way that you cannot flip the bone scale-wise....
Bones are meant to deform mesh, so I would think you would just have the spine scan be deformed by the actual armature in a slightly unrealistic way, rather than be super scientifically accurate and make a multidozen bone spinal cord. However, you might go with a mix and use bendy bones, which deform things in even unified segments rather than blending with ...
If the bones stay in place when you apply the pose, and only the mesh moves, there's a simple solution:
The correct procedure, in this case, is:
Prepare the desired pose.
Apply armature modifier to the mesh.
Apply pose as rest pose.
Select the mesh, shift select the armature, Press Ctrl P > Armature Deform.
If the bones also move when applying the pose as ...
After testing with MakeHuman and Mixamo characters, it's working for me now. I got the characters I was using before from the same source, but maybe something happened after turning them into collections and appending.
I think this script should do what you want.
armatures = [o for o in bpy.context.scene.objects if o.type == "ARMATURE"]
# If you want to select only from selected armatures, use the next line instead.
# armatures = [o for o in bpy.context.selected_objects if o.type == "ARMATURE"]
selected_bones = bpy.context....
I was facing the same problem. I tried something. first, go to edit mode, and remove the parent from the armature, then start posing the bone to relate to the mesh in edit mode, when done, start parenting every object to the armature in object mode. my armature was moving its location from object mode to editing mode, and that was annoying. I removed it, ...
If you use automatic weight, Blender can only "take" what it has. Since there is only one bone in your armature, Blender takes all vertices to do it, so your whole person moves.
If you add bones like this:
blend file (but be aware, i just made "rough" bones, and just on one side to prove it works):
Any action that is not assigned to an object is automatically deleted by the garbage collector after a certain amount of time.
To prevent any of your unused actions from disappearing, use the Fake User feature (shield icon) to permanently keep the certain action in your blend-file's data memory.
As an update to this very useful question, in 2.92 I often run into this after a major sculpting session, when I'm trying to attach my mesh to an armature. Sculpting with dyntopo can give you a crazy vertex count that is easy to screw up, but we have a few new features that can come to the rescue.
"Magic button" methods like the earlier ones tend ...
As long as you follow the Rigify bone naming conventions, the rig widgets should generate. As it looks like you're creating your own custom rig, I recommend you read through the Rigify documentation so you understand how the addon works.