The origin is at the feet squarely below the torso. If I sit the character down in for example a spinning chair and try to spin him, he becomes offset from it because his torso is behind the spinning axis of the chair but his spinning axis is still beneath his torso despite posing his legs. This is more of a question of practice than anything. Surely the origin shouldn't be in front of a model because that would compromise his ability to rotate while standing up but I cant think of what to do other than temporarily shift the origin in edit mode which seems like more trouble than it might be worth.
When I would code this for a game, I would do it like this:
- Apply the sit down animation and wait for it to finish.
- Make the Character a child of the spinning chair seat.
- Rotate the seat of the spinning chair.
Im not sure how to do this within a blender animation but I hope this approach might be useful for finding a solution.
You don't have to shift origin in edit mode. Just parent armature to chair (if you want animate spinning from chair origin). For parented armature doesn't matter where origin is placed.
Like here - Armature and Cone are parented to Empty with animated rotation. You can also parent armature directly to Cone, I did it just for a more freedom.
But seems to me more efficient use Bone Constraint modifier (for hip bone) > Copy Rotation, Target: Empty or Chair (animated), Mix: Add .