public static IEnumerable <KeyValuePair <AnimationClip, AnimationClip> > GetOverrides(AnimatorOverrideController overrideController)
        {
            var overrides = new List <KeyValuePair <AnimationClip, AnimationClip> >();

            overrideController.GetOverrides(overrides);
            return(overrides);
        }
示例#2
0
    void Start()
    {
        controller  = GetComponent <CharacterController>();
        animator    = GetComponent <Animator>();
        audiosource = GetComponent <AudioSource>();
        animator.runtimeAnimatorController = animatorOverrideController;
        clipOverrides = new AnimationClipOverrides(animatorOverrideController.overridesCount);
        animatorOverrideController.GetOverrides(clipOverrides);
        pivot.SetActive(true);

        if (horse)
        {
            horse.Equip(horse.equipedItem.type, true);
        }
        weapon.Equip(weapon.equipedItem.type, true);
        secondHand.Equip(secondHand.equipedItem.type, true);
        head.Equip(head.equipedItem.type, true);
        shield.Equip(shield.equipedItem.type, true);

        bool mounted = horse ? horse.equipedItem.type != HorseItem.Type.None : false;

        body.Equip(body.equipedItem.type, mounted, true);
        backpack.Equip(backpack.equipedItem.type, true);

        AnimationParameterRefresh();
        animator.SetFloat("loadFactor", 1f);
        target = interestPoints[interestIndex].location;

        nameLabel.text = pnjName;
    }
        /// <inheritdoc />
        public override AnimationClip[] MapArray(AssetLoaderContext assetLoaderContext, AnimationClip[] sourceAnimationClips)
        {
            if (AnimatorOverrideController != null)
            {
                for (var i = 0; i < sourceAnimationClips.Length; i++)
                {
                    var animationClip = sourceAnimationClips[i];
                    var overrides     = new List <KeyValuePair <AnimationClip, AnimationClip> >(AnimatorOverrideController.overridesCount);
                    AnimatorOverrideController.GetOverrides(overrides);
                    for (var j = 0; j < overrides.Count; j++)
                    {
                        var kvp      = overrides[j];
                        var keyName  = kvp.Key.name;
                        var clipName = animationClip.name;
                        if (StringComparer.Matches(StringComparisonMode, CaseInsensitive, keyName, clipName))
                        {
                            overrides[j] = new KeyValuePair <AnimationClip, AnimationClip>(kvp.Key, animationClip);
                        }
                    }

                    AnimatorOverrideController.ApplyOverrides(overrides);
                }
            }
            return(base.MapArray(assetLoaderContext, sourceAnimationClips));
        }
示例#4
0
        void OnEnable()
        {
            AnimatorOverrideController animatorOverrideController = target as AnimatorOverrideController;

            m_Controller = serializedObject.FindProperty("m_Controller");
            m_Search     = "";

            if (m_Clips == null)
            {
                m_Clips = new List <KeyValuePair <AnimationClip, AnimationClip> >();
            }

            if (m_ClipList == null)
            {
                animatorOverrideController.GetOverrides(m_Clips);

                m_Clips.Sort(new AnimationClipOverrideComparer());

                m_ClipList = new ReorderableList(m_Clips, typeof(KeyValuePair <AnimationClip, AnimationClip>), false, true, false, false);
                m_ClipList.drawElementCallback = DrawClipElement;
                m_ClipList.drawHeaderCallback  = DrawClipHeader;
                m_ClipList.onSelectCallback    = SelectClip;
                m_ClipList.elementHeight       = 16;
            }
            animatorOverrideController.OnOverrideControllerDirty += Repaint;
        }
示例#5
0
 private void InitializeAnimatorOverrideController()
 {
     _animatorOverrideController         = new AnimatorOverrideController(_animator.runtimeAnimatorController);
     _animator.runtimeAnimatorController = _animatorOverrideController;
     _clipOverrides = new AnimationClipOverrides(_animatorOverrideController.overridesCount);
     _animatorOverrideController.GetOverrides(_clipOverrides);
 }
    void Start()
    {
        // clips = new Queue<AnimationClip>();
        // clipPlayables = new AnimationClipPlayable[5];
        anim         = GetComponent <Animator>();
        AOcontroller = new AnimatorOverrideController(anim.runtimeAnimatorController);
        anim.runtimeAnimatorController = AOcontroller;

        AOclips = new AnimationClipOverrides(AOcontroller.overridesCount);
        AOcontroller.GetOverrides(AOclips);

        AOclips["Light"]  = Light;
        AOclips["Medium"] = Medium;
        AOclips["Heavy"]  = Heavy;

        // playGraph = PlayableGraph.Create();
        // //var playQueuePlayable = ScriptPlayable<PlayQueuePlayable>.Create(playGraph);

        // //var playQueue = playQueuePlayable.GetBehaviour();

        // var playableOutput = AnimationPlayableOutput.Create(playGraph, "Animation", anim);
        // mixPlayer = AnimationMixerPlayable.Create(playGraph, 4);

        // playableOutput.SetSourcePlayable(mixPlayer);

        // ctrlPlayable = AnimatorControllerPlayable.Create(playGraph, controller);

        // playGraph.Connect(ctrlPlayable, 0, mixPlayer, index);

        // playGraph.Play();
        // AnimationPlayableUtilities.PlayAnimatorController(anim,controller, out playGraph);

        //StartCoroutine(PlayQueue () );
    }
示例#7
0
        public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
        {
            playerPos                  = GameObject.FindGameObjectWithTag("Player").transform;
            temperamentData            = animator.GetComponent <TemperamentData>();
            animationData              = animator.GetComponent <AnimationData>();
            aiSettingData              = animator.GetComponent <AiSettingData>();
            wayPointData               = animator.GetComponent <WayPointData>();
            attackRange                = TemperamentManager.CombatTriggerRange(temperamentData.CombatStyle);
            moodRange                  = TemperamentManager.MoodTriggerRange(temperamentData.Mood);
            animatorOverrideController = new AnimatorOverrideController(animator.runtimeAnimatorController);

            //animatorOverrideController["Walking"] = animationData.AttackAnimation;

            clipOverrides = new AnimationClipOverrides(animatorOverrideController.overridesCount);
            animatorOverrideController.GetOverrides(clipOverrides);


            clipOverrides["Idle"]      = animationData.IdleAnimation;
            clipOverrides["Walking"]   = animationData.WalkAnimation;
            clipOverrides["Running"]   = animationData.RunAnimation;
            clipOverrides["Attacking"] = animationData.AttackAnimation;
            clipOverrides["Death"]     = animationData.DeathAnimation;
            animatorOverrideController.ApplyOverrides(clipOverrides);
            animator.runtimeAnimatorController = animatorOverrideController;
        }
    public void Sample()
    {
        AnimatorOverrideController aoc = new AnimatorOverrideController(Rac);
        List <KeyValuePair <AnimationClip, AnimationClip> > overrides =
            new List <KeyValuePair <AnimationClip, AnimationClip> >();
        List <KeyValuePair <AnimationClip, AnimationClip> > overrides1 =
            new List <KeyValuePair <AnimationClip, AnimationClip> >();

        aoc.GetOverrides(overrides);
        foreach (KeyValuePair <AnimationClip, AnimationClip> pair in overrides)
        {
            overrides1.Add(new KeyValuePair <AnimationClip, AnimationClip>(pair.Key, AniClip));
        }

        aoc.ApplyOverrides(overrides1);
        Ani.runtimeAnimatorController = aoc;

        Ani.Rebind();
        Ani.StopPlayback();
        Ani.recorderStartTime = 0;


        int frameCount = (int)(AniClip.frameRate * AniClip.length);

        Ani.StartRecording(frameCount);
        for (int i = 0; i < frameCount; i++)
        {
            Ani.Update(1.0f / frameCount);
        }

        Ani.StopRecording();
        Ani.playbackTime = 0;
        Ani.StartPlayback();
    }
示例#9
0
    private void setupOverrides(Dictionary <string, AnimationClip> items)
    {
        AnimatorOverrideController o = new AnimatorOverrideController();

        o.runtimeAnimatorController = AssetDatabase.LoadAssetAtPath <RuntimeAnimatorController>(TEMPLATE_PATH);
        List <KeyValuePair <AnimationClip, AnimationClip> > list = new List <KeyValuePair <AnimationClip, AnimationClip> >();

        o.GetOverrides(list);

        List <KeyValuePair <AnimationClip, AnimationClip> > overrides = new List <KeyValuePair <AnimationClip, AnimationClip> >();

        foreach (var clip in list)
        {
            AnimationClip c;
            if (items.TryGetValue(clip.Key.name, out c))
            {
                overrides.Add(new KeyValuePair <AnimationClip, AnimationClip>(clip.Key, c));
            }
        }

        o.ApplyOverrides(overrides);
        WriteAsset(o, "Assets/tmp/Overrides.overridecontroller");

        obj.GetComponent <VRC_AvatarDescriptor>().CustomStandingAnims = o;
        obj.GetComponent <VRC_AvatarDescriptor>().CustomSittingAnims  = o;
        obj.GetComponent <Animator>().runtimeAnimatorController       = o;
    }
示例#10
0
 protected void SetupOverrideController()
 {
     _overrideController = new AnimatorOverrideController(_animator.runtimeAnimatorController);
     _animator.runtimeAnimatorController = _overrideController;
     _overrides = new AnimationClipOverrides(_overrideController.overridesCount);
     _overrideController.GetOverrides(_overrides);
 }
示例#11
0
 private void Awake()
 {
     clipOverrides = new AnimationClipOverrides(userAnimOverride.overridesCount);
     userAnimOverride.GetOverrides(clipOverrides);
     userAnim.SetFloat("vertical", startVerticalParam);
     userAnim.SetFloat("horizontal", startHorizontalParam);
 }
示例#12
0
    //角色生成后初始化
    public void Init()
    {
        rb2d     = GetComponent <Rigidbody2D>();
        levelTag = 0;
        animatorOverrideController         = new AnimatorOverrideController(animator.runtimeAnimatorController);
        animator.runtimeAnimatorController = animatorOverrideController;

        clipOverrides = new AnimationClipOverrides(animatorOverrideController.overridesCount);
        animatorOverrideController.GetOverrides(clipOverrides);

        comboMark            = false;
        clickCount           = 0;
        comboEffectMark      = false;
        comboEffectFirstMark = false;
        canMove              = true;
        canChangeMouseDir    = true;
        buffers              = gameObject.AddComponent <Buffer>();
        skillCoolDownTimer_1 = gameObject.AddComponent <Timer>();
        skillCoolDownTimer_2 = gameObject.AddComponent <Timer>();
        skillCoolDownTimer_3 = gameObject.AddComponent <Timer>();
        skillCoolDownTimer_4 = gameObject.AddComponent <Timer>();
        preCastTimer_1       = gameObject.AddComponent <Timer>();
        preCastTimer_2       = gameObject.AddComponent <Timer>();
        preCastTimer_3       = gameObject.AddComponent <Timer>();


        castingTimer          = gameObject.AddComponent <Timer>();
        castingTimer.Duration = 0.1f;
        castingTimer.Run();
        skills         = new BaseSkill[4];
        releasedSkills = new GameObject[4];
        isBaseAttack   = false;
        BaseAttackSwitch();
        SkillSwitch();
    }
    public static void Switch(Animator anim, string endsWith)
    {
        var oc = new AnimatorOverrideController(anim.runtimeAnimatorController);

        anim.runtimeAnimatorController = oc;

        var overrides = new List <KeyValuePair <AnimationClip, AnimationClip> >(oc.overridesCount);

        oc.GetOverrides(overrides);

        int clips = oc.overridesCount;

        for (int i = 0; i < clips; i++)
        {
            string clipName = overrides[i].Key.name;
            if (!clipName.EndsWith(endsWith))
            {
                string newName = clipName.Substring(0, clipName.Length - endsWith.Length + 1) + endsWith;
                var    newClip = overrides.FindIndex(p => p.Key.name == newName);
                if (newClip == -1)
                {
                    continue;
                }
                overrides[i] = new KeyValuePair <AnimationClip, AnimationClip>(overrides[i].Key, overrides[newClip].Key);
            }
        }
        oc.ApplyOverrides(overrides);
    }
示例#14
0
        void Awake()
        {
            m_controller = new AnimatorOverrideController();

            if (m_sharedAnimatorController == null)
            {
                // Lazy load the shared animator controller
                m_sharedAnimatorController = Resources.Load <RuntimeAnimatorController>(CONTROLLER_PATH);
            }

            m_controller.runtimeAnimatorController = m_sharedAnimatorController;
            m_animator = GetComponent <Animator>();
            m_animator.runtimeAnimatorController = m_controller;

                #if UNITY_5_6_OR_NEWER
            m_controller.GetOverrides(m_clipPairList);
                #else
            m_clipPairArray = m_controller.clips;
                #endif

            m_animator.enabled = false;     // PowerQuest tweak to disable animator if there's no animation
            Play(m_defaultAnim);

            m_nodes = GetComponent <SpriteAnimNodes>();
        }
示例#15
0
    void InitPlayer()
    {
        var asset = AssetsHelper.LoadAssetAtPath(@"Assets\GameAssets\Models\aisi\[email protected]", typeof(GameObject)) as GameObject;

        player = GameObject.Instantiate(asset);
        player.transform.SetParent(root.transform);
        var animator = AssetsHelper.LoadAssetAtPath(@"Assets\GameAssets\Models\aisi\aisi.overrideController", typeof(AnimatorOverrideController)) as AnimatorOverrideController;

        animationController = GameObject.Instantiate(animator);
        playerAnimator      = player.GetComponent <Animator>();
        playerAnimator.runtimeAnimatorController = animationController;

        var btn = AssetsHelper.LoadAssetAtPath(@"Assets\Prefabs\Btn1.prefab", typeof(GameObject)) as GameObject;
        // foreach (var clip in animationController.clips) //RuntimeAnimatorController.clips已废弃
        List <KeyValuePair <AnimationClip, AnimationClip> > overrides = new List <KeyValuePair <AnimationClip, AnimationClip> >();

        animationController.GetOverrides(overrides);
        foreach (var data in overrides)
        {
            var originClip   = data.Key;
            var overrideClip = data.Value;
            var subBtn       = GameObject.Instantiate(btn);
            subBtn.transform.SetParent(BtnGrid.transform);
            var controller = subBtn.AddComponent <UIButtonController>();
            var animName   = originClip.name;
            controller.Init(animName, OnSubBtnClick);
            if (overrideClip != null)
            {
                animSet.Add(animName);
            }
        }
    }
示例#16
0
    private void Awake()
    {
        //always replace instance bc we know
        //there will only be one instance active at a time
        instance = this;

        Debug.Assert(armory != null);
        armory.Define();

        audioSource = GetComponent <AudioSource>();
        rb          = GetComponent <Rigidbody2D>();
        hitbox      = GetComponent <Collider2D>();
        anim        = GetComponent <Animator>();
        torsoRend   = transform.Find("Torso").GetComponent <SpriteRenderer>();
        legsRend    = transform.Find("Legs").GetComponent <SpriteRenderer>();
        ammoRend    = transform.Find("AmmoCount").GetComponent <SpriteRenderer>();

        weaponTrans = transform.Find("Weapon");
        weaponAnim  = weaponTrans.GetComponent <Animator>();
        weaponRend  = weaponTrans.GetComponent <SpriteRenderer>();

        //anim
        weaponAnimOverCont =
            new AnimatorOverrideController(weaponAnim.runtimeAnimatorController);
        weaponAnim.runtimeAnimatorController = weaponAnimOverCont;
        weaponAnimOverrides =
            new AnimationClipOverrides(weaponAnimOverCont.overridesCount);
        weaponAnimOverCont.GetOverrides(weaponAnimOverrides);
    }
示例#17
0
        public static List <KeyValuePair <AnimationClip, AnimationClip> > GetOverrides(this AnimatorOverrideController rc)
        {
            var overrides = new List <KeyValuePair <AnimationClip, AnimationClip> >();

            rc.GetOverrides(overrides);
            return(overrides);
        }
示例#18
0
        public static void TransferOverrides(AnimatorOverrideController source, AnimatorOverrideController dest)
        {
            List <KeyValuePair <AnimationClip, AnimationClip> > sourceOverrides = new List <KeyValuePair <AnimationClip, AnimationClip> >(source.overridesCount);

            source.GetOverrides(sourceOverrides);

            dest.ApplyOverrides(sourceOverrides);
        }
示例#19
0
        public static bool ReplaceAnimation(this AnimatorOverrideController oc, int index, AnimationClip c)
        {
            var overrides = new List <KeyValuePair <AnimationClip, AnimationClip> >();

            oc.GetOverrides(overrides);

            return(oc.ReplaceAnimation(overrides, index, c));
        }
示例#20
0
        void Awake()
        {
            OverrideController = new AnimatorOverrideController(RealAnimator.runtimeAnimatorController);
            RealAnimator.runtimeAnimatorController = OverrideController;

            // By default, we will make a override for all state in the controller.
            m_clipOverrides = new AnimationClipOverrides(OverrideController.overridesCount);
            OverrideController.GetOverrides(m_clipOverrides);
        }
示例#21
0
    public void InitializedActor(Actor a, string ActorName, RuntimeAnimatorController b = null)
    {
        actor            = a;
        a.OnTurn        += OnTurn;
        a.OnExpGain     += OnExpGain;
        a.OnDamage      += OnDamage;
        a.OnKillActor   += OnKillingSomeone;
        a.OnEquip       += OnEquip;
        a.OnDeath       += OnDeath;
        a.OnBlocked     += OnBlocked;
        a.OnApplyEffets += OnApplyEffects;
        Indicator.color  = ActorColor;



        isAI = !actor.Controllable;
        if (a.AnimatorPath.Contains("~"))
        {
            InverseSprite = true;
        }
        this.name = actor.Name;
        Name      = actor.Name;
        if (b)
        {
            foreach (var item in anim)
            {
                item.runtimeAnimatorController = b;
            }
        }
        string[] amn = new string[b.animationClips.Length];


        animcont = new AnimatorOverrideController(anim[0].runtimeAnimatorController);
        anim[0].runtimeAnimatorController = animcont;
        clipov = new AnimationClipOverrides(animcont.overridesCount);
        animcont.GetOverrides(clipov);
        for (int i = 0; i < animcont.runtimeAnimatorController.animationClips.Length; i++)
        {
            amn[i]         = animcont.runtimeAnimatorController.animationClips[i].name;
            clipov[amn[i]] = Resources.Load <AnimationClip>("Sprites/Animation/Actors/" + ActorName + "/" + amn[i]);
        }



        animcont.ApplyOverrides(clipov);

        if (a.inventory.HasWeapon)
        {
            for (int i = 0; i < a.inventory.GetWeapons.Count; i++)
            {
                if (i < Wep.Length)
                {
                    OnEquip(a.inventory.GetWeapons[i]);
                }
            }
        }
    }
示例#22
0
    public AnimationClipSwitcher(Animator animator)
    {
        this.animator      = animator;
        overrideController = new AnimatorOverrideController(animator.runtimeAnimatorController);
        animator.runtimeAnimatorController = overrideController;

        clipOverrides = new AnimationClipOverrides(overrideController.overridesCount);
        overrideController.GetOverrides(clipOverrides);
    }
示例#23
0
    private void Start()
    {
        attackAnimationTime = 0f;

        animator = GetComponent <Animator>();
        animator.runtimeAnimatorController = animatorOverrideController;
        clipOverrides = new AnimationClipOverrides(animatorOverrideController.overridesCount);
        animatorOverrideController.GetOverrides(clipOverrides);
        AnimationParameterRefresh();
    }
    void Awake()
    {
        animator = GetComponent <Animator>();
        animatorOverrideController         = new AnimatorOverrideController(animator.runtimeAnimatorController);
        animator.runtimeAnimatorController = animatorOverrideController;

        clipOverrides = new AnimationClipOverrides(animatorOverrideController.overridesCount);
        animatorOverrideController.GetOverrides(clipOverrides);
        ChangeAnimationClips();
    }
示例#25
0
        private void Start()
        {
            // if(testClip1)
            //  AnimationPlayableUtilities.PlayClip(anim, testClip1, out playableGraph);
            overrideController             = new AnimatorOverrideController(anim.runtimeAnimatorController);
            anim.runtimeAnimatorController = overrideController;
            clipOverrides = new AnimationClipOverrides(overrideController.overridesCount);
            overrideController.GetOverrides(clipOverrides);

            origAnimController = anim.runtimeAnimatorController;
            RandomizeGestures();
        }
示例#26
0
 public void SwapLegs(AnimatorOverrideController rac)
 {
     //anim.runtimeAnimatorController = rac;
     overrides = new List <KeyValuePair <AnimationClip, AnimationClip> > (rac.overridesCount);
     rac.GetOverrides(overrides);
     for (int i = 0; i < overrides.Count; ++i)
     {
         overrides[i] = new KeyValuePair <AnimationClip, AnimationClip> (overrides[i].Key, overrides[i].Value);
     }
     aoc.ApplyOverrides(overrides);
     anim.Update(0f);
 }
示例#27
0
    public AnimationClipMap GetOverrides(AnimatorOverrideController controller)
    {
        AnimationClipMap map = new AnimationClipMap(controller.overridesCount);

        controller.GetOverrides(map);

        map["Default Attack"]      = attack != null ? attack : map["Default Attack"];
        map["Default Equip"]       = equip != null ? equip : map["Default Equip"];
        map["Default Combat Idle"] = idle != null ? idle : map["Default Combat Idle"];
        map["Default Combat Walk"] = walk != null ? walk : map["Default Combat Walk"];

        return(map);
    }
    private void Awake()
    {
        animator       = GetComponent <Animator>();
        spriteRenderer = GetComponent <SpriteRenderer>();

        animatorOverrideController         = new AnimatorOverrideController(animator.runtimeAnimatorController);
        animator.runtimeAnimatorController = animatorOverrideController;

        clipOverrides = new AnimationClipOverrides(animatorOverrideController.overridesCount);
        animatorOverrideController.GetOverrides(clipOverrides);
        ChangeAnimationClips();
        UpdateArmorColorByBlinkState();
    }
示例#29
0
    //int start, main, end, def;
    //AnimatorStateInfo stateInfo;
    void Start()
    {/*
      * start = Animator.StringToHash("Base.start");
      * main = Animator.StringToHash("Base.main");
      * end = Animator.StringToHash("Base.end");
      * def = Animator.StringToHash("Base.default");*/
        anim = GetComponent <Animator>();
        animatorOverrideController     = new AnimatorOverrideController(anim.runtimeAnimatorController);
        anim.runtimeAnimatorController = animatorOverrideController;

        clipOverrides = new AnimationClipOverrides(animatorOverrideController.overridesCount);
        animatorOverrideController.GetOverrides(clipOverrides);
    }
示例#30
0
    // Start is called before the first frame update
    void Start()
    {
        if (Animator == null)
        {
            Animator = GetComponent <Animator>();
        }
        AnimatorOverrideController         = new AnimatorOverrideController(Animator.runtimeAnimatorController);
        Animator.runtimeAnimatorController = AnimatorOverrideController;
        animationClipOverides = new AnimationClipOverrides(AnimatorOverrideController.overridesCount);
        AnimatorOverrideController.GetOverrides(animationClipOverides);

        SpriteRenderer = GetComponent <SpriteRenderer>();
    }