Rigid animation and skinned animation are two different things. Skinned animation would typically be animations recorded in Blender (or some other program). It involves skinning (attaching vertices to an armature - which requires that there be an armature) and rigging (which is setting up your armature to make it easy to animate with).
Skinned animation is great for creatures and humans where you need the texture to kind of bend around the surface and where an artist is going to do animations in Blender (or some other program) that will be played back in the game.
Rigid animation is what you’re doing. In rigid animation, every “piece” is created as a completely separate mesh in Blender (or some other program), and then the pieces are “parented” to one another in a family tree of relationships. This can go several levels deep with great-great-great-grand-parents and such. Each mesh has its own transform (world matrix) and because of that they can be positioned or oriented independently of one another. Because of the parent-child relationship, they can also move and orient as one piece.
The way that it works is that when you move or rotate the parent, the child goes with it. Yet when you move or rotate the child, the parent is unaffected. This allows, for example, the wheels of a car to rotate separately from the car yet when the car moves forward the wheels stay attached.
In code, this is accomplished by the fact that both the car and the wheels all have separate world matrices (transforms in Unity). When the model is imported, these relationships are noted by the software. Then the transforms(or matrices) are applied from parent to child. When you multiply the parent’s world matrix times the child’s world matrix, the result will be a world matrix that places the child in the scene relative to the parent both in terms of position and orientation(rotation).
As far as pivot points, the pivot point is always the origin (center of the 3D universe). If you look at the math, there’s no other possibility. So, your vertices are where you put them in Blender, mathematically. When you import the model, they’re still where you put them. By applying the object’s transform(world matrix) to the vertices you move those vertices and rotate them. So, if the transform (world matrix) is set to an identity matrix (probably zero’ed out in Unity) the vertices will be in their natural place they were originally created in.
When you rotate, the rotation happens around the origin. If the object is centered at the origin, this causes the object to rotate. If the object is not, it will basically orbit the origin because its still rotating around the origin. So, as you probably know, the trick is to move the object to the origin between draw frames, rotate it, then move it back.
In a parent-child relationship like this, the child’s “origin” is the parent’s transform (world matrix). Because the child’s transform (world matrix) is combined (by multiplying) with its ancestors, it will be positioned and oriented relative to them. If you did not do this combining (multiplying), the object would be placed and oriented relative to the origin. Unity typically handles most of this under the hood with its parent child relationships and transforms.
Of course, when you go to rotate a child, you still have to move it to the origin between frames or it will orbit its parent rather than rotating around its own axis.
Unity typically does this by making a game object a child of another object.
Note that in rigid animation you don’t animate in Blender, you don’t skin or rig, in fact you have no “armature”, and you have separate meshes for each part. In skinned animation you have the opposite and may only have one mesh. The vertices of the single mesh are probably attached to the bones of the armature which in reality each bone is a world matrix (transform). Theoretically you could animate a skinned model through code, but you usually don’t. Theoretically you could animate a rigid model in Blender, but you usually animate it in code.