public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
    {
        var playable = ScriptPlayable <AnimBlendBehaviour> .Create(graph, 2);

        AnimBlendBehaviour clone = playable.GetBehaviour();

        clone.clip1 = clip1;
        clone.clip2 = clip2;
        clone.Init();
        return(playable);
    }
    // NOTE: This function is called at runtime and edit time.  Keep that in mind when setting the values of properties.
    public override void ProcessFrame(Playable playable, FrameData info, object playerData)
    {
        Animator trackBinding = playerData as Animator;

        if (!trackBinding)
        {
            return;
        }

        int inputCount = playable.GetInputCount();

        for (int i = 0; i < inputCount; i++)
        {
            float inputWeight = playable.GetInputWeight(i);
            ScriptPlayable <AnimBlendBehaviour> inputPlayable = (ScriptPlayable <AnimBlendBehaviour>)playable.GetInput(i);
            AnimBlendBehaviour input = inputPlayable.GetBehaviour();

            // Use the above variables to process each frame of this playable.
            Debug.LogError("AnimBlendMixerBehaviour -- ProcessFrame");
        }
    }