Ejemplo n.º 1
0
 private void ResetClips()
 {
     if (m_overrideController != null)
     {
         AnimationClipPair[] clips = m_overrideController.clips;
         for (int i = 0; i < clips.Length; ++i)
         {
             AnimationClipPair clip = clips[i];
             if (clip.overrideClip != null)
             {
                 m_overrideController[clip.originalClip.name] = null;
             }
         }
     }
 }
Ejemplo n.º 2
0
    static int _CreateAnimationClipPair(IntPtr L)
    {
        int count = LuaDLL.lua_gettop(L);

        if (count == 0)
        {
            AnimationClipPair obj = new AnimationClipPair();
            LuaScriptMgr.PushObject(L, obj);
            return(1);
        }
        else
        {
            LuaDLL.luaL_error(L, "invalid arguments to method: AnimationClipPair.New");
        }

        return(0);
    }
Ejemplo n.º 3
0
 private void SetCurrentAnimationClip()
 {
     if (animation == null)
     {
         AnimatorOverrideController animatorOverrideController = new AnimatorOverrideController();
         AnimationClip[]            clips = runtimeAnimatorController.animationClips;
         AnimationClipPair[]        pairs = new AnimationClipPair[clips.Length];
         for (int i = 0; i < clips.Length; ++i)
         {
             AnimationClipPair pair = new AnimationClipPair();
             pairs[i]          = pair;
             pair.originalClip = clips[i];
             pair.overrideClip = animClip;
         }
         animatorOverrideController.runtimeAnimatorController = runtimeAnimatorController;
         animatorOverrideController.clips   = pairs;
         animator.runtimeAnimatorController = animatorOverrideController;
     }
 }
Ejemplo n.º 4
0
    static int get_overrideClip(IntPtr L)
    {
        object o = LuaScriptMgr.GetLuaObject(L, 1);

        if (o == null)
        {
            LuaTypes types = LuaDLL.lua_type(L, 1);

            if (types == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name overrideClip");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index overrideClip on a nil value");
            }
        }

        AnimationClipPair obj = (AnimationClipPair)o;

        LuaScriptMgr.Push(L, obj.overrideClip);
        return(1);
    }
Ejemplo n.º 5
0
    static int set_originalClip(IntPtr L)
    {
        object o = LuaScriptMgr.GetLuaObject(L, 1);

        if (o == null)
        {
            LuaTypes types = LuaDLL.lua_type(L, 1);

            if (types == LuaTypes.LUA_TTABLE)
            {
                LuaDLL.luaL_error(L, "unknown member name originalClip");
            }
            else
            {
                LuaDLL.luaL_error(L, "attempt to index originalClip on a nil value");
            }
        }

        AnimationClipPair obj = (AnimationClipPair)o;

        obj.originalClip = LuaScriptMgr.GetNetObject <AnimationClip>(L, 3);
        return(0);
    }
Ejemplo n.º 6
0
    void setController()
    {
        // get the number of clips on the AnimatorOverrideController
        int numClips = controller.clips.Length;

        // make a new array of that length
        AnimationClipPair[] newClips = new AnimationClipPair[numClips];

        // loop through each clip pair
        for (int i = 0; i < numClips; i++)
        {
            AnimationClipPair pair = controller.clips[i];

            // get the appropriate clip from your model
            string        name = pair.originalClip.name;
            AnimationClip clip = getClipWithName(name);
            if (clip == null)
            {
                print("ERR: Couldn't find clip with name: " + name);
                continue;
            }

            // if there is a model clip,
            // set it as the overrideClip on the pair
            if (clip != null)
            {
                pair.overrideClip = clip;
            }

            // save the pair to your new clips array
            newClips[i] = pair;
        }

        // when everything is properly set,
        // replace the entire clips array
        controller.clips = newClips;
    }
    private void RandomizeFollowClips()
    {
        var holder = AudienceAnimWarehouse.curr;

        if (holder == null)
        {
            return;
        }
        AnimatorOverrideController overCtrl = new AnimatorOverrideController();

        overCtrl.name = "Follow Audience Override Anim Ctrl";
        overCtrl.runtimeAnimatorController = controller.runtimeAnimatorController;
        var clipPairs = overCtrl.clips;

        AnimationClipPair leftChatPair  = null;
        AnimationClipPair rightChatPair = null;

        foreach (var pair in clipPairs)
        {
            if (holder.followFocusedClips != null && holder.followFocusedClips.Length > 0)
            {
                bool found = false;
                foreach (var clip in holder.followFocusedClips)
                {
                    if (pair.originalClip == clip.clip)
                    {
                        float sample = Random.value;
                        for (int i = 0; i < holder.followFocusedClips.Length; ++i)
                        {
                            if (sample < holder.followFocusedClips[i].probability)
                            {
                                pair.overrideClip = holder.followFocusedClips[i].clip;
                                break;
                            }
                        }
                        found = true;
                        break;
                    }
                }
                if (found)
                {
                    continue;
                }
            }

            if (holder.followBoredClips != null && holder.followBoredClips.Length > 0)
            {
                bool found = false;
                foreach (var clip in holder.followBoredClips)
                {
                    if (pair.originalClip == clip.clip)
                    {
                        float sample = Random.value;
                        for (int i = 0; i < holder.followBoredClips.Length; ++i)
                        {
                            if (sample < holder.followBoredClips[i].probability)
                            {
                                pair.overrideClip = holder.followBoredClips[i].clip;
                                break;
                            }
                        }
                        found = true;
                        break;
                    }
                }
                if (found)
                {
                    continue;
                }
            }

            if (holder.followChattingClips != null && holder.followChattingClips.Length > 0)
            {
                bool found = false;
                foreach (var clip in holder.followChattingClips)
                {
                    if (pair.originalClip == clip.clip1)
                    {
                        leftChatPair = pair;
                        break;
                    }
                    else if (pair.originalClip == clip.clip2)
                    {
                        rightChatPair = pair;
                        break;
                    }
                }
                if (found)
                {
                    continue;
                }
            }
        }

        float s = Random.value;

        for (int i = 0; i < holder.followChattingClips.Length; ++i)
        {
            if (s < holder.followChattingClips[i].probability)
            {
                leftChatPair.overrideClip  = holder.followChattingClips[i].clip1;
                rightChatPair.overrideClip = holder.followChattingClips[i].clip2;
                break;
            }
        }

        overCtrl.clips = clipPairs;
        controller.runtimeAnimatorController = overCtrl;
    }