4 This is a binding/unbinding functions for custom instances, specially for Sequencer tracks
5
6 This is complicated because Sequencer Animation Track and ControlRig Tracks could be supported through this interface
7 and it encapsulates lots of complications inside.
8
9 You can use one Animation Track - it's because this track doesn't take input from other pose, so this is always source
10 You can use multiple ControlRig Tracks - this is because ControlRig could take inputs from other sources
11
12 However this is not end of it. The way sequencer works is to allow you to add/remove anytime or any place.
13
14 So this behaves binding/unbinding depending on if you're source (Animation Track) or not (ControlRig).
15
16 If you want to be used by Animation Track, you should derive from ISequencerAnimationSupport and implement proper interfaces.
17 Now, you want to support layering, you'll have to support DoesSupportDifferentSourceAnimInstance to be true, and allow it to be used as source input.
18
19 1. ControlRigLayerInstance : this does support different source anim instance, and use it as a source of animation
20 2. AnimSequencerInstance: this does not support different source anim instance, this acts as one.
21
22 The code is to support, depending what role you have, you can be bound differently, so that you don't disturb what's currently available