1
$\begingroup$

I'm trying to create a set of animations for two human characters which will then be exported into Unity. Ideally this import will be as a single fbx that includes the two character models and all animations, which I can then use to trigger an animation by name (e.g. "shake_hands") which will then trigger the hand shake animation on both characters.

These animations need the characters to interact directly (e.g. shaking hands etc), so I assumed that the best way to ensure the interactions worked well would be to animate both characters in a single scene in Blender. I'm new to rigging, and Rigify looked like a powerful but simple tool, so I decided to use that. I heard about problems with generating two rigs in the same file, so I created the two models (for the two characters) in different files. I created a new file and appended my two models to it (by specifically going in to the Object folder and grabbing the meshes and rigs rather than going by the scene route). I had experimented with animating a single character first of all, so one of the armatures came with some animations already. By that I mean one armature had some actions set up for it, with keyframes for bones in that armature.

I assumed that when I thought about "an animation for two characters" what that really meant was "an action that has keyframes for both armatures". This means that I assumed that animating the second character would be as easy as adding keyframes for the second armature to the existing action. However, when I started trying to do so by putting the second armature in Pose mode, opening the action editor, going to the existing action and adding keyframes for bones, the bones of the first armature took on the poses that I set for the second armature, overwriting the animation. I assumed this was because the animation (the dope sheet specifically) refers to bones by names, and thus because Rigify generates the same bone names each time you generate a rig, the keyframes ended up being assigned to both copies of the bones with the same names.

This seemed weird, but I set about renaming the important bones of the second armature, so I could keyframe them separately, but now the Rigify UI started to fail, as tools like "Snap IK to FK" etc relied on bone names that were no longer there. I considered merging the two rigs into a single armature out of pure frustration, but that would have been even worse to work with.

Am I misunderstanding some part of the process? Is there a reason why noone on the internet seems to be talking about having this problem? The whole time I was working on this I couldn't shake the feeling that there has to be an easier way: so is there?

$\endgroup$

1 Answer 1

1
$\begingroup$

As Rigify is based on Blender's internal drivers, constraints, and scripts, it's not directly exportable to Unity, so you should think of it as a Blender instrument.

The common workflow is to program the animation into Blender, using two different Rigify rigs (use the advanced options, near to the generate rig button, to give an unique name to every rig).

When the animation is finished you can turn on the Deforming bones layer only, select all deforming bones (bone layer 29, counting from 00 to 31, all bones have the "DEF-" suffix), and in pose mode go to the menu pose > animation > bake action (turn on all the preferences), so that a copy of the rig, maden of deforming bones only, with baked action, can be directly exported to Unity.

Usually we use two rigs for two characters, but if you really want a single action, at this stage you can join (Ctrl J) the two only deforming bones rigs: all bones names and animation channels will update adding the .001 suffix to the joined copy.

$\endgroup$
2
  • $\begingroup$ This solution is looking good, thank you! I've managed to re-rig and get an animation working in sync, so it solved that problem. I want to try exporting it first before accepting, but rest assured I'm on it! $\endgroup$
    – Rjmcf
    May 28, 2021 at 17:33
  • $\begingroup$ Ok, after a bit of fiddling, and some help from answers to this question I was able to sync up animations on both rigs with a single Trigger. Thanks again! $\endgroup$
    – Rjmcf
    May 29, 2021 at 18:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .