Animated tying shoes - sanity check

After several months (!) of hard work, I think I am getting near an acceptable result of tying shoes. Size and  complexity of the effort seems massive. Maybe this is inevitable? Maybe I've missed something basic?

  • There are 4 shoe laces, each with 50 bones. (Actually they needed more but it seemed unmanageable.) In fact the behaviors are similar for both shoes, although the timing is different.
  • Each shoe lace has a generic rig in Unity. Perhaps they could have been combined, but size seemed unmanageable.
  • The character obviously has a humanoid rig.
  • The complex motions of all 5 rigs obviously must be synchronized.
  • By use of empties, I ended up with 2 Animation Controllers: one for character, one for laces (with multiple synchronized layers). This seemed to be required because Generic and Humanoid rigs can't be combined.
  • All state machines are made to have the same states and triggers for transitions. A script sends triggers to both controllers.
  • Motion happens in "poses", so there are lots of states, transitions, clips.

Are there any good design/organization techniques or guidelines to optimize the workflow? It's my first experience on a "real" project.