public override void Initialize()
        {
            if (face != null && !face.Ready())
            {
                return;
            }
            if (skeleton != null && !skeleton.Ready())
            {
                return;
            }
            // TODO: asap needs some default joints...
            VJoint[] vJoints = new VJoint[0];
            if (skeleton != null)
            {
                vJoints = skeleton.GenerateVJoints();
            }

            IFaceTarget[] faceTargets = new IFaceTarget[0];
            if (face != null)
            {
                faceTargets = face.GetFaceTargets();
            }

            agentSpec = new AgentSpec(agentId, vJoints, faceTargets);
            ASAPToolkitManager atkm = FindObjectOfType <ASAPToolkitManager>();

            if (atkm != null)
            {
                atkm.OnAgentInitialized(this);
            }
            initialized = true;
        }
        public virtual void Initialize()
        {
            Debug.Log("Initializing ASAPAgent " + id);
            AddMecanimToHAnimDefaults();
            if (retarget != null)
            {
                GetBoneList(retarget.transform);
            }
            else if (humanoidRoot != null)
            {
                GetBoneList(humanoidRoot);
            }
            else
            {
                GetBoneList(transform);
            }

            AlignCos();
            AlignBones();

            VJoint[]      vJoints     = GenerateVJoints();
            IFaceTarget[] faceTargets = new IFaceTarget[0] {
            };
            agentSpec = new AgentSpec(id, vJoints, faceTargets);
            Debug.Log("Agent initialized, id=" + this.agentSpec.agentId + " Bones: " + this.agentSpec.skeleton.Length +
                      " faceControls: " + this.agentSpec.faceTargets.Length);
            FindObjectOfType <ASAPManager>().OnAgentInitialized(this);
            if (debug)
            {
                CreateManualAnimationRig();
            }
        }