Exemple #1
0
        private AnimationState LoadAnim(AnimGroup group, AnimIndex anim)
        {
            if (anim == AnimIndex.None)
            {
                return(null);
            }

            var animGroup = AnimationGroup.Get(Definition.AnimGroupName, group);
            var animName  = animGroup[anim];

            AnimationState state;

            if (!_loadedAnims.ContainsKey(animName))
            {
                var clip = Importing.Conversion.Animation.Load(animGroup.FileName, animName, _frames);
                _loadedAnims.Add(animName, clip);
                _anim.AddClip(clip.Clip, animName);
                state = _anim[animName];
            }
            else
            {
                state = _anim[animName];
            }

            return(state);
        }
Exemple #2
0
        public bool GetAnimNameAndFile(AnimGroup group, AnimIndex anim, ref string animName, ref string fileName)
        {
            if (anim == AnimIndex.None)
            {
                return(false);
            }

            if (group == AnimGroup.None)
            {
                return(false);
            }

            if (null == this.Definition || string.IsNullOrEmpty(this.Definition.AnimGroupName))
            {
                return(false);
            }

            var animGroup = AnimationGroup.Get(this.Definition.AnimGroupName, group);

            if (null == animGroup)
            {
                return(false);
            }

            animName = animGroup [anim];
            fileName = animGroup.FileName;

            return(true);
        }
Exemple #3
0
        private void Play2Animations(int[] boneIds1, int[] boneIds2,
                                     AnimGroup group1, AnimGroup group2, AnimIndex animIndex1, AnimIndex animIndex2)
        {
            PlayerModel._anim[PlayerModel.GetAnimName(group1, animIndex1)].layer = 0;

            AnimationState state = PlayerModel.PlayAnim(group1, animIndex1, PlayMode.StopSameLayer);

            foreach (int boneId in boneIds1)
            {
                Frame f = PlayerModel.Frames.GetByBoneId(boneId);
                state.AddMixingTransform(f.transform, true);
                //	runState.wrapMode = WrapMode.Loop;
            }

            PlayerModel._anim[PlayerModel.GetAnimName(group2, animIndex2)].layer = 1;

            state = PlayerModel.PlayAnim(group2, animIndex2, PlayMode.StopSameLayer);

            foreach (int boneId in boneIds2)
            {
                Frame f = PlayerModel.Frames.GetByBoneId(boneId);
                //	state.RemoveMixingTransform(f.transform);
                state.AddMixingTransform(f.transform, true);
                //	state.wrapMode = WrapMode.Loop;
            }
            state.weight = animationBlendWeight;

            //	PlayerModel._anim.Blend( );
        }
Exemple #4
0
        protected List <Key> ReadComp(float[] src, AnimIndex index)
        {
            List <Key> ret = new List <Key>();

            if (index.Count == 1)
            {
                ret.Add(new Key(0f, src[index.Index], 0f, 0f));
            }
            else
            {
                for (int j = 0; j < index.Count; j++)
                {
                    Key key = null;
                    if (index.KeyTangentType == TangentType.TangentIn)
                    {
                        key = new Key(src[index.Index + 3 * j + 0], src[index.Index + 3 * j + 1], src[index.Index + 3 * j + 2]);
                    }
                    else
                    {
                        key = new Key(src[index.Index + 4 * j + 0], src[index.Index + 4 * j + 1], src[index.Index + 4 * j + 2], src[index.Index + 4 * j + 3]);
                    }

                    ret.Add(key);
                }
            }

            return(ret);
        }
Exemple #5
0
 public AnimId(string fileName, string animName)
 {
     this.animGroup     = AnimGroup.None;
     this.animIndex     = AnimIndex.None;
     this.fileName      = fileName;
     this.animName      = animName;
     this.usesAnimGroup = false;
 }
Exemple #6
0
        public Anim GetAnim(AnimGroup group, AnimIndex anim)
        {
            var animGroup = AnimationGroup.Get(Definition.AnimGroupName, group);

            Anim result;

            return(_loadedAnims.TryGetValue(animGroup[anim], out result) ? result : null);
        }
Exemple #7
0
 public AnimId(AnimGroup animGroup, AnimIndex animIndex)
 {
     this.animGroup     = animGroup;
     this.animIndex     = animIndex;
     this.fileName      = null;
     this.animName      = null;
     this.usesAnimGroup = true;
 }
 public void Save(XmlWriter writer)
 {
     writer.WriteElementString("AnimType", AnimType.ToString());
     writer.WriteElementString("AnimIndex", AnimIndex.ToString());
     writer.WriteElementString("FrameLength", FrameLength.ToString());
     writer.WriteElementString("Anim1", Anim1.ToString());
     writer.WriteElementString("Anim2", Anim2.ToString());
     writer.WriteElementString("Anim3", Anim3.ToString());
 }
        private AnimationState LoadAnim(AnimGroup group, AnimIndex anim)
        {
            if (anim == AnimIndex.None)
            {
                return(null);
            }
            //	if ("" == anim)
            //		return null;

            if (group == AnimGroup.None)
            {
                return(null);
            }

            if (Definition == null || string.IsNullOrEmpty(Definition.AnimGroupName))
            {
                return(null);
            }

            var animGroup = AnimationGroup.Get(Definition.AnimGroupName, group);

            if (null == animGroup)
            {
                return(null);
            }

            var animName = animGroup[anim];
            //	var animName = anim ;
            //	if (!animGroup.HasAnimation (animName))
            //		return null;

            AnimationState state;

            if (!_loadedAnims.ContainsKey(animName))
            {
                var importedAnim = Anim.Load(animGroup.FileName, animName, _frames);
                if (importedAnim != null && importedAnim.Clip != null)
                {
                    _loadedAnims.Add(animName, importedAnim);
                    _anim.AddClip(importedAnim.Clip, animName);
                    state = _anim[animName];
                }
                else
                {
                    state = null;
                    Debug.LogWarningFormat("Failed to load anim - file: {0}, anim name: {1}", animGroup.FileName, animName);
                }
            }
            else
            {
                state = _anim[animName];
            }

            return(state);
        }
Exemple #10
0
        public AnimationState CrossFadeAnimQueued(AnimGroup group, AnimIndex anim, float duration, QueueMode queueMode, PlayMode playMode)
        {
            var animState = LoadAnim(group, anim);

            _curAnimGroup = AnimGroup = group;
            _curAnim      = AnimIndex = anim;

            _anim.CrossFadeQueued(animState.name, duration, queueMode, playMode);

            return(animState);
        }
Exemple #11
0
        private AnimationState LoadAnim(AnimGroup group, AnimIndex anim)
        {
            string animName = null, fileName = null;

            if (GetAnimNameAndFile(group, anim, ref animName, ref fileName))
            {
                return(LoadAnim(animName, fileName));
            }

            return(null);
        }
Exemple #12
0
        public string GetAnimName(AnimGroup group, AnimIndex anim)
        {
            string animName = null, fileName = null;

            if (GetAnimNameAndFile(group, anim, ref animName, ref fileName))
            {
                return(animName);
            }

            return(null);
        }
Exemple #13
0
        public Anim GetAnim(AnimGroup group, AnimIndex anim)
        {
            string animName = GetAnimName(group, anim);

            if (string.IsNullOrEmpty(animName))
            {
                return(null);
            }

            return(GetAnim(animName));
        }
Exemple #14
0
        public AnimationState PlayAnim(AnimGroup group, AnimIndex anim, PlayMode playMode)
        {
            var animState = LoadAnim(group, anim);

            _curAnimGroup = AnimGroup = group;
            _curAnim      = AnimIndex = anim;

            _anim.Play(animState.name, playMode);

            return(animState);
        }
        private AnimationState LoadAnim(AnimGroup group, AnimIndex anim)
        {
            if (anim == AnimIndex.None)
            {
                return(null);
            }
            //	if ("" == anim)
            //		return null;

            if (group == AnimGroup.None)
            {
                return(null);
            }

            if (Definition == null || (Definition != null && string.IsNullOrEmpty(Definition.AnimGroupName)))
            {
                return(null);
            }
            var animGroup = AnimationGroup.Get(Definition.AnimGroupName, group);

            if (null == animGroup)
            {
                return(null);
            }
            var animName = animGroup[anim];
            //	var animName = anim ;
            //	if (!animGroup.HasAnimation (animName))
            //		return null;

            AnimationState state;

            if (!_loadedAnims.ContainsKey(animName))
            {
                var clip = Anim.Load(animGroup.FileName, animName, _frames);
                if (clip.Clip != null)
                {
                    _loadedAnims.Add(animName, clip);
                    _anim.AddClip(clip.Clip, animName);
                    state = _anim[animName];
                }
                else
                {
                    state = null;
                    Debug.LogWarning(string.Format("File '{0}' doesn't exists!", animGroup.FileName));
                }
            }
            else
            {
                state = _anim[animName];
            }

            return(state);
        }
Exemple #16
0
        public Anim GetAnim(AnimGroup group, AnimIndex anim)
        {
            string animName = GetAnimName(group, anim);

            if (string.IsNullOrEmpty(animName))
            {
                return(null);
            }

            Anim result;

            return(_loadedAnims.TryGetValue(animName, out result) ? result : null);
        }
        public AnimationState RemoveMixingTransform(AnimGroup group, AnimIndex anim, Transform mix)
        {
            var animState = LoadAnim(group, anim);

            if (null == animState)
            {
                return(null);
            }

            _curAnimGroup = group;
            _curAnim      = anim;

            animState.RemoveMixingTransform(mix);

            return(animState);
        }
        public AnimationState PlayAnim(AnimGroup group, AnimIndex anim, PlayMode playMode = PlayMode.StopAll)
        {
            var animState = LoadAnim(group, anim);

            if (null == animState)
            {
                return(null);
            }

            _curAnimGroup = group;
            _curAnim      = anim;

            _anim.Play(animState.name, playMode);

            return(animState);
        }
        public AnimationState AddMixingTransform(AnimGroup group, AnimIndex anim, Transform mix, bool recursive)
        {
            var animState = LoadAnim(group, anim);

            if (null == animState)
            {
                return(null);
            }

            _curAnimGroup = group;
            _curAnim      = anim;

            animState.AddMixingTransform(mix, recursive);

            return(animState);
        }
        public AnimationState CrossFadeAnim(AnimGroup group, AnimIndex anim, float duration, PlayMode playMode)
        {
            var animState = LoadAnim(group, anim);

            if (null == animState)
            {
                return(null);
            }

            _curAnimGroup = group;
            _curAnim      = anim;

            _anim.CrossFade(animState.name, duration, playMode);

            return(animState);
        }
        public void PlayUpperLayerAnimations(
            AnimGroup upperLayerGroup, AnimGroup group, AnimIndex upperLayerIndex, AnimIndex animIndex)
        {
            LoadAnim(upperLayerGroup, upperLayerIndex);

            _anim[GetAnimName(upperLayerGroup, upperLayerIndex)].layer = 1;

            AnimationState state = PlayAnim(upperLayerGroup, upperLayerIndex, PlayMode.StopSameLayer);

            state.normalizedTime = 1;

            //state.AddMixingTransform(Spine, true);

            //foreach (Transform t in Spine.GetComponentInChildren<Transform>())
            //{
            //    //	runState.wrapMode = WrapMode.Loop;
            //}

            LoadAnim(group, animIndex);

            _anim[GetAnimName(group, animIndex)].layer = 0;

            state = PlayAnim(group, animIndex, PlayMode.StopSameLayer);

            state.AddMixingTransform(_root.transform, false);

            state.AddMixingTransform(L_Thigh, true);

            //foreach (Transform t in L_Thigh.GetComponentInChildren<Transform>())
            //{
            //    //	state.RemoveMixingTransform(f.transform);
            //    //	state.wrapMode = WrapMode.Loop;
            //}

            state.AddMixingTransform(R_Thigh, true);

            //foreach (Transform t in R_Thigh.GetComponentInChildren<Transform>())
            //{
            //    //	state.RemoveMixingTransform(f.transform);
            //    //	state.wrapMode = WrapMode.Loop;
            //}
            //state.weight = animationBlendWeight;

            //	PlayerModel._anim.Blend( );
        }
        public void Load(int id)
        {
            var newDefinition = Item.GetDefinition <PedestrianDef>(id);

            if (null == newDefinition)
            {
                return;
            }

            PedestrianId = id;
            Definition   = newDefinition;

            LoadModel(Definition.ModelName, Definition.TextureDictionaryName);

            _curAnim = AnimIndex.None;
            //	_curAnim = "" ;
            _curAnimGroup = AnimGroup.None;

            _anim = gameObject.GetComponent <UnityEngine.Animation>();

            if (_anim == null)
            {
                _anim = gameObject.AddComponent <UnityEngine.Animation>();
            }

            LoadAnim(AnimGroup.WalkCycle, AnimIndex.Walk);
            LoadAnim(AnimGroup.WalkCycle, AnimIndex.Run);
            LoadAnim(AnimGroup.WalkCycle, AnimIndex.Panicked);
            LoadAnim(AnimGroup.WalkCycle, AnimIndex.Idle);
            LoadAnim(AnimGroup.WalkCycle, AnimIndex.RoadCross);
            LoadAnim(AnimGroup.WalkCycle, AnimIndex.WalkStart);

            LoadAnim(AnimGroup.Car, AnimIndex.Sit);
            LoadAnim(AnimGroup.Car, AnimIndex.DriveLeft);
            LoadAnim(AnimGroup.Car, AnimIndex.DriveRight);
            LoadAnim(AnimGroup.Car, AnimIndex.GetInLeft);
            LoadAnim(AnimGroup.Car, AnimIndex.GetInRight);
            LoadAnim(AnimGroup.Car, AnimIndex.GetOutLeft);
            LoadAnim(AnimGroup.Car, AnimIndex.GetOutRight);

            LoadAnim(AnimGroup.MyWalkCycle, AnimIndex.IdleArmed);
            LoadAnim(AnimGroup.MyWalkCycle, AnimIndex.GUN_STAND);

            //	LoadAllAnimations ();
        }
        public AnimationState Blend(AnimGroup group, AnimIndex anim, float targetWeight, float fadeLength)
        {
            var animState = LoadAnim(group, anim);

            if (null == animState)
            {
                return(null);
            }

            _curAnimGroup = group;
            _curAnim      = anim;

            animState.AddMixingTransform(Spine);

            _anim.Blend(animState.name, targetWeight, fadeLength);

            return(animState);
        }
        public AnimationState Blend(AnimGroup group, AnimIndex anim)
        {
            var animState = LoadAnim(group, anim);

            if (null == animState)
            {
                return(null);
            }

            _curAnimGroup = group;
            _curAnim      = anim;

            animState.AddMixingTransform(Spine);

            _anim.Blend(animState.name);

            return(animState);
        }
        public AnimationState PlayAnim(AnimGroup group, AnimIndex anim, bool resetModelStateIfAnimChanged, bool resetAnimStateIfAnimChanged)
        {
            bool animChanged = this.AnimGroup != group || this.animIndex != anim;

            if (resetModelStateIfAnimChanged && animChanged)
            {
                this.ResetModelState();
            }

            var state = PlayAnim(group, anim);

            if (resetAnimStateIfAnimChanged && animChanged)
            {
                state.enabled        = true;
                state.normalizedTime = 0;
                state.speed          = 1;
                state.weight         = 1;
                state.wrapMode       = this.AnimComponent.wrapMode;
            }

            return(state);
        }
Exemple #26
0
        private void Load(int id)
        {
            _curPedestrianId = PedestrianId;

            Definition = Item.GetDefinition <PedestrianDef>(id);
            if (Definition == null)
            {
                return;
            }

            LoadModel(Definition.ModelName, Definition.TextureDictionaryName);

            _curAnim      = AnimIndex.None;
            _curAnimGroup = AnimGroup.None;

            _anim = gameObject.GetComponent <UnityEngine.Animation>();

            if (_anim == null)
            {
                _anim = gameObject.AddComponent <UnityEngine.Animation>();
            }

            LoadAnim(AnimGroup.WalkCycle, AnimIndex.Walk);
            LoadAnim(AnimGroup.WalkCycle, AnimIndex.Run);
            LoadAnim(AnimGroup.WalkCycle, AnimIndex.Panicked);
            LoadAnim(AnimGroup.WalkCycle, AnimIndex.Idle);
            LoadAnim(AnimGroup.WalkCycle, AnimIndex.RoadCross);
            LoadAnim(AnimGroup.WalkCycle, AnimIndex.WalkStart);

            LoadAnim(AnimGroup.Car, AnimIndex.Sit);
            LoadAnim(AnimGroup.Car, AnimIndex.DriveLeft);
            LoadAnim(AnimGroup.Car, AnimIndex.DriveRight);
            LoadAnim(AnimGroup.Car, AnimIndex.GetInLeft);
            LoadAnim(AnimGroup.Car, AnimIndex.GetInRight);
            LoadAnim(AnimGroup.Car, AnimIndex.GetOutLeft);
            LoadAnim(AnimGroup.Car, AnimIndex.GetOutRight);
        }
        private AnimationState LoadAnim(AnimGroup group, AnimIndex anim)
        {
            if (anim == AnimIndex.None) {
                return null;
            }

            var animGroup = AnimationGroup.Get(Definition.AnimGroupName, group);
            var animName = animGroup[anim];

            AnimationState state;

            if (!_loadedAnims.ContainsKey(animName)) {
                var clip = Importing.Conversion.Animation.Load(animGroup.FileName, animName, _frames);
                _loadedAnims.Add(animName, clip);
                _anim.AddClip(clip.Clip, animName);
                state = _anim[animName];
            } else {
                state = _anim[animName];
            }

            return state;
        }
 private void loadModel(int id, AnimGroup group, AnimIndex index)
 {
     pedestrian.Load(id);
     pedestrian.PlayAnim(group, index, PlayMode.StopAll);
 }
 public string this[AnimIndex type]
 {
     get { return _animations[(int) type]; }
 }
        public Anim GetAnim(AnimGroup group, AnimIndex anim)
        {
            var animGroup = AnimationGroup.Get(Definition.AnimGroupName, group);

            Anim result;
            return _loadedAnims.TryGetValue(animGroup[anim], out result) ? result : null;
        }
        public AnimationState CrossFadeAnimQueued(AnimGroup group, AnimIndex anim, float duration, QueueMode queueMode, PlayMode playMode)
        {
            var animState = LoadAnim(group, anim);

            _curAnimGroup = AnimGroup = group;
            _curAnim = AnimIndex = anim;

            _anim.CrossFadeQueued(animState.name, duration, queueMode, playMode);

            return animState;
        }
        public AnimationState PlayAnim(AnimGroup group, AnimIndex anim, PlayMode playMode)
        {
            var animState = LoadAnim(group, anim);

            _curAnimGroup = AnimGroup = group;
            _curAnim = AnimIndex = anim;

            _anim.Play(animState.name, playMode);

            return animState;
        }
        private void Load(int id)
        {
            _curPedestrianId = PedestrianId;

            Definition = Item.GetDefinition<PedestrianDef>(id);
            if (Definition == null) return;

            LoadModel(Definition.ModelName, Definition.TextureDictionaryName);

            _curAnim = AnimIndex.None;
            _curAnimGroup = AnimGroup.None;

            _anim = gameObject.GetComponent<UnityEngine.Animation>();

            if (_anim == null) {
                _anim = gameObject.AddComponent<UnityEngine.Animation>();
            }

            LoadAnim(AnimGroup.WalkCycle, AnimIndex.Walk);
            LoadAnim(AnimGroup.WalkCycle, AnimIndex.Run);
            LoadAnim(AnimGroup.WalkCycle, AnimIndex.Panicked);
            LoadAnim(AnimGroup.WalkCycle, AnimIndex.Idle);
            LoadAnim(AnimGroup.WalkCycle, AnimIndex.RoadCross);
            LoadAnim(AnimGroup.WalkCycle, AnimIndex.WalkStart);

            LoadAnim(AnimGroup.Car, AnimIndex.Sit);
            LoadAnim(AnimGroup.Car, AnimIndex.DriveLeft);
            LoadAnim(AnimGroup.Car, AnimIndex.DriveRight);
            LoadAnim(AnimGroup.Car, AnimIndex.GetInLeft);
            LoadAnim(AnimGroup.Car, AnimIndex.GetInRight);
            LoadAnim(AnimGroup.Car, AnimIndex.GetOutLeft);
            LoadAnim(AnimGroup.Car, AnimIndex.GetOutRight);
        }
Exemple #34
0
 public AnimationState PlayAnim(AnimGroup animGroup, AnimIndex animIndex, PlayMode playMode = PlayMode.StopAll)
 {
     return(PlayAnim(new AnimId(animGroup, animIndex), playMode));
 }
        public string GetAnimName(AnimGroup group, AnimIndex anim)
        {
            var animGroup = AnimationGroup.Get(Definition.AnimGroupName, group);

            return(animGroup[anim]);
        }
Exemple #36
0
 public string this[AnimIndex type]
 {
     get { return(_animations[(int)type]); }
 }