示例#1
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( );
        }
示例#2
0
        private void ReadTransformAnimations(ANIM animFile, AnimGroup animGroup, SBAnimation animation)
        {
            var decoder = new SSBHAnimTrackDecoder(animFile);

            foreach (AnimNode animNode in animGroup.Nodes)
            {
                SBTransformAnimation tfrmAnim = new SBTransformAnimation()
                {
                    Name = animNode.Name
                };
                foreach (AnimTrack track in animNode.Tracks)
                {
                    object[] Transform = decoder.ReadTrack(track);

                    if (track.Name.Equals("Transform"))
                    {
                        for (int i = 0; i < Transform.Length; i++)
                        {
                            AnimTrackTransform t = (AnimTrackTransform)Transform[i];
                            tfrmAnim.Transform.Keys.Add(new SBAnimKey <Matrix4>()
                            {
                                Frame = i,
                                Value = GetMatrix((AnimTrackTransform)Transform[i]),
                            });
                        }
                    }
                }
                animation.TransformNodes.Add(tfrmAnim);
            }
        }
示例#3
0
    public void Equip(AnimGroup animGroup, AnimAttackType animAttackType, Color color)
    {
        float flashAmount = color.a;
        Color flashColor  = new Color(color.r, color.g, color.b, 1f);

        m_spriteRenderer.material.SetFloat("_FlashAmount", flashAmount);
        m_spriteRenderer.material.SetColor("_FlashColor", flashColor);
        m_spriteRenderer.material.SetColor("_Color", m_tintColor);
        m_spriteRenderer.color  = Color.white;
        m_spriteRenderer.sprite = null;

        m_animGroup      = animGroup;
        m_animAttackType = animAttackType;
        m_animColor      = color;

        if (m_animGroup != null)
        {
            float   spriteHeight = m_animGroup.GetSpriteHeight();
            Vector3 pos          = transform.localPosition;
            pos.y = -Mathf.Max((spriteHeight - 1.5f) / 2, 0f);
            transform.localPosition = pos;

            animGroup.UpdateAnimator(m_animatorOverrideController, m_animAttackType);
        }
        else
        {
            ClearAnimator(m_animatorOverrideController, m_animAttackType);
        }
    }
示例#4
0
    private void CreateChoices(SceneTransitionRequest str)
    {
        var animGroup = new AnimGroup();
        var curTime   = Time.time;

        if (_choiceButtons != null)
        {
            foreach (var btn in _choiceButtons)
            {
                Destroy(btn);
            }
        }
        _choiceButtons = new Button[str.TransitionChoices.Length];
        for (int i = 0; i < str.TransitionChoices.Length; ++i)
        {
            var choiceButton = Instantiate <Button>(ChoiceButtonPrototype, UIContainer.transform);
            var choice       = str.TransitionChoices[i];
            choiceButton.gameObject.SetActive(true);

            var choiceButtonCG = choiceButton.GetComponent <CanvasGroup>();
            choiceButtonCG.alpha = 0.0f;
            animGroup.AddAnimation(new FadeCGAnimation(choiceButtonCG, curTime + i * FadeInDuration, FadeInDuration, FadeInCurve, 1.0f));

            choiceButton.image.rectTransform.anchoredPosition = ChoiceButtonPrototype.image.rectTransform.anchoredPosition + new Vector2(0.0f, -i * (ChoiceButtonPrototype.image.rectTransform.rect.height + 40));

            choiceButton.onClick.AddListener(delegate { _choiceHandler(choice.ChoiceID); });

            var choiceButtonText = choiceButton.GetComponentInChildren <Text>();
            choiceButtonText.text = choice.ChoiceText;

            _choiceButtons[i] = choiceButton;
        }
        _pendingAnimations.Enqueue(animGroup);
    }
示例#5
0
    private void TransitionMainText(SceneTransitionRequest str, Image anchorTarget)
    {
        var animGroup   = new AnimGroup();
        var textFadeOut = new FadeAnimation(PhraseText, Time.time, FadeOutDuration, FadeOutCurve, 0.0f);

        animGroup.AddAnimation(textFadeOut);

        var lastAnimFinish = textFadeOut.TimeEnd;

        var defaultTextBoxSize = new Vector2(anchorTarget.rectTransform.rect.width - 30,
                                             anchorTarget.rectTransform.rect.height - 35);

        var requiredHeight = GetDesiredTextHeight(PhraseText, str.TransitionPhrase, defaultTextBoxSize);

        if (PhraseBackground.rectTransform.anchoredPosition != anchorTarget.rectTransform.anchoredPosition ||
            !Mathf.Approximately(requiredHeight, PhraseText.rectTransform.rect.height))
        {
            var textBoxResize = new RectAnimation(PhraseBackground.rectTransform, textFadeOut.TimeEnd, TransitionDuration, TransitionCurve, anchorTarget.rectTransform);
            // Fixup for correct size
            textBoxResize.TargetSize.y = requiredHeight + 35;
            animGroup.AddAnimation(textBoxResize);
            lastAnimFinish = textBoxResize.TimeEnd;
        }

        var textChange = new SetTextAnimation(PhraseText, lastAnimFinish, str.TransitionPhrase);

        animGroup.AddAnimation(textChange);
        var textFadeIn = new FadeAnimation(PhraseText, lastAnimFinish, FadeInDuration, FadeInCurve, 1.0f);

        animGroup.AddAnimation(textFadeIn);
        _pendingAnimations.Enqueue(animGroup);
    }
示例#6
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);
        }
示例#7
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);
        }
示例#8
0
        private void ReadMaterialAnimations(Anim animFile, AnimGroup animGroup, SBAnimation animation)
        {
            var decoder = new SsbhAnimTrackDecoder(animFile);

            foreach (AnimNode animNode in animGroup.Nodes)
            {
                foreach (AnimTrack track in animNode.Tracks)
                {
                    SBMaterialAnimation matAnim = new SBMaterialAnimation()
                    {
                        MaterialName  = animNode.Name,
                        AttributeName = track.Name
                    };
                    object[] MaterialAnim = decoder.ReadTrack(track);

                    // only get vectors for now
                    if (MaterialAnim == null || MaterialAnim.Length == 0 || MaterialAnim[0] == null || MaterialAnim[0].GetType() != typeof(AnimTrackCustomVector4))
                    {
                        continue;
                    }
                    animation.MaterialNodes.Add(matAnim);
                    for (int i = 0; i < MaterialAnim.Length; i++)
                    {
                        var vec = (AnimTrackCustomVector4)MaterialAnim[i];
                        matAnim.Keys.AddKey(i, new Vector4(vec.X, vec.Y, vec.Z, vec.W));
                    }
                }
            }
        }
示例#9
0
        private void ReadVisibilityAnimations(Anim animFile, AnimGroup animGroup, SBAnimation animation)
        {
            var decoder = new SsbhAnimTrackDecoder(animFile);

            foreach (AnimNode animNode in animGroup.Nodes)
            {
                SBVisibilityAnimation visAnim = new SBVisibilityAnimation()
                {
                    MeshName = animNode.Name
                };
                foreach (AnimTrack track in animNode.Tracks)
                {
                    if (track.Name.Equals("Visibility"))
                    {
                        object[] Visibility = decoder.ReadTrack(track);

                        for (int i = 0; i < Visibility.Length; i++)
                        {
                            visAnim.Visibility.AddKey(i, (bool)Visibility[i]);
                        }
                    }
                }
                animation.VisibilityNodes.Add(visAnim);
            }
        }
示例#10
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="Type"></param>
        /// <param name="NodeName"></param>
        /// <returns></returns>
        private AnimNode GetNode(ANIM_TYPE type, string nodeName)
        {
            AnimGroup group = GetGroup(type);

            foreach (var node in group.Nodes)
            {
                if (node.Name.Equals(nodeName))
                {
                    return(node);
                }
            }

            var newnode = new AnimNode
            {
                Name   = nodeName,
                Tracks = new AnimTrack[0]
            };

            var nodes = group.Nodes;

            Array.Resize(ref nodes, nodes.Length + 1);
            nodes[nodes.Length - 1] = newnode;
            group.Nodes             = nodes;

            return(newnode);
        }
示例#11
0
 public override void Execute()
 {
     base.Execute();
     AnimGroup.AddAnimation(new Animation(CurrentAnimation.PixelTexture));
     AnimGroup.AddNewTextField(new Vector2(36, 152 + ((AnimGroup.TextFont.LineSpacing + 2) * AnimGroup.Animations.Length)), "animation" + AnimGroup.Animations.Length);
     //animGroupTextFields = AddNewTextField(animGroupTextFields, new Vector2(36, 152 + ((consolas.LineSpacing + 2) * animGroup.Animations.Length)), "animation" + animGroup.Animations.Length);
 }
示例#12
0
 public AnimId(AnimGroup animGroup, AnimIndex animIndex)
 {
     this.animGroup     = animGroup;
     this.animIndex     = animIndex;
     this.fileName      = null;
     this.animName      = null;
     this.usesAnimGroup = true;
 }
示例#13
0
 public AnimId(string fileName, string animName)
 {
     this.animGroup     = AnimGroup.None;
     this.animIndex     = AnimIndex.None;
     this.fileName      = fileName;
     this.animName      = animName;
     this.usesAnimGroup = false;
 }
示例#14
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);
        }
        public override void Save(SaveContext saveContext)
        {
            base.Save(saveContext);

            var utility = saveContext.Utility;

            saveContext.WriteObjectListPointerPlaceholder(Meshes);

            // Materials
            saveContext.WriteDICTPointerPlaceholder(ModelMaterials);

            // Shapes
            saveContext.WriteObjectListPointerPlaceholder(Shapes);

            // Mesh Node Visibilities
            saveContext.WriteObjectListPointerPlaceholder(MeshNodeVisibilities);

            utility.Write(Flags);

            utility.Write((uint)FaceCulling);

            utility.Write(LayerId);

            // Load a Skeleton if this model has one
            if (HasSkeleton)
            {
                saveContext.WritePointerPlaceholder(Skeleton);
            }

            /////////////////////////////
            // Begin saving dependent data

            // Save Lists
            saveContext.SaveAndMarkReference(Meshes);
            saveContext.SaveAndMarkReference(Shapes);
            saveContext.SaveAndMarkReference(MeshNodeVisibilities);      // I'm not SURE this is where this goes (no test data at the moment I'm writing this) but all lists seem to follow here

            // Save DICT headers
            saveContext.SaveAndMarkReference(MetaDatas);
            saveContext.SaveAndMarkReference(AnimGroup);
            saveContext.SaveAndMarkReference(ModelMaterials);

            // Now for other interior data...
            MetaDatas?.SaveEntries(saveContext);
            AnimGroup?.SaveEntries(saveContext);

            Meshes.SaveList(saveContext);
            ModelMaterials?.SaveEntries(saveContext);
            Shapes.SaveList(saveContext);
            MeshNodeVisibilities.SaveList(saveContext);

            if (HasSkeleton)
            {
                saveContext.SaveAndMarkReference(Skeleton);
            }
        }
示例#16
0
    public void SetPlayerHelm(int helmId, Color helmColor)
    {
        AnimGroup  animGroup  = Resources.Load <AnimGroup>("Animations" + SLASH + "Groupings" + SLASH + "Helm" + SLASH + helmId);
        GearSocket gearSocket = GetGearSocketWithName("Helm");

        if (gearSocket != null && ShowPlayerEquipment())
        {
            gearSocket.Equip(animGroup, m_attackType, helmColor);
        }
    }
示例#17
0
    public void SetPlayerWeapon(int weaponId, Color weaponColor)
    {
        AnimGroup  animGroup  = Resources.Load <AnimGroup>("Animations" + SLASH + "Groupings" + SLASH + "Weapon" + SLASH + weaponId);
        GearSocket gearSocket = GetGearSocketWithName("Weapon");

        if (gearSocket != null && ShowPlayerEquipment())
        {
            gearSocket.Equip(animGroup, m_attackType, weaponColor);
        }
    }
示例#18
0
    public void SetPlayerShoes(int shoesId, Color shoesColor)
    {
        AnimGroup  animGroup  = Resources.Load <AnimGroup>("Animations" + SLASH + "Groupings" + SLASH + "Shoes" + SLASH + shoesId);
        GearSocket gearSocket = GetGearSocketWithName("Shoes");

        if (gearSocket != null && ShowPlayerEquipment())
        {
            gearSocket.Equip(animGroup, m_attackType, shoesColor);
        }
    }
示例#19
0
    public void SetPlayerPants(int pantsId, Color pantsColor)
    {
        AnimGroup  animGroup  = Resources.Load <AnimGroup>("Animations" + SLASH + "Groupings" + SLASH + "Bottom" + SLASH + pantsId);
        GearSocket gearSocket = GetGearSocketWithName("Bottom");

        if (gearSocket != null && ShowPlayerEquipment())
        {
            gearSocket.Equip(animGroup, m_attackType, pantsColor);
        }
    }
示例#20
0
    public void SetPlayerChest(int chestId, Color chestColor)
    {
        AnimGroup  animGroup  = Resources.Load <AnimGroup>("Animations" + SLASH + "Groupings" + SLASH + "Top" + SLASH + chestId);
        GearSocket gearSocket = GetGearSocketWithName("Top");

        if (gearSocket != null && ShowPlayerEquipment())
        {
            gearSocket.Equip(animGroup, m_attackType, chestColor);
        }
    }
示例#21
0
    public void SetPlayerFace(int faceId)
    {
        AnimGroup  animGroup  = Resources.Load <AnimGroup>("Animations" + SLASH + "Groupings" + SLASH + "Face" + SLASH + faceId);
        GearSocket gearSocket = GetGearSocketWithName("Face");

        if (gearSocket != null && ShowPlayerEquipment())
        {
            gearSocket.Equip(animGroup, m_attackType);
        }
    }
示例#22
0
    private void TransitionBackground(SceneTransitionRequest str)
    {
        var animGroup = new AnimGroup();

        BackgroundTransition.sprite = _backgroundPool.GetBackgroundSprite(str.TransitionBackground.ToLower());
        animGroup.AddAnimation(new FadeAnimation(BackgroundTransition, Time.time, FadeInDuration, FadeInCurve, 1.0f))
        .AddAnimation(new SetSpriteAnimation(Background, Time.time + FadeInDuration, BackgroundTransition.sprite))
        .AddAnimation(new FadeAnimation(BackgroundTransition, Time.time + FadeInDuration, 0.001f, FadeOutCurve, 0.0f));
        _pendingAnimations.Enqueue(animGroup);
    }
示例#23
0
        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);
        }
示例#24
0
 public override void Execute()
 {
     base.Execute();
     AnimGroup.RemoveAnimation(AnimGroup.Animations[AnimGroup.Animations.Length - 1]);
     AnimGroup.RemoveTextField();
     if (AnimGroup.Animations.Length <= 0)
     {
         AnimGroup.AddAnimation(new Animation(CurrentAnimation.PixelTexture));
         AnimGroup.AddNewTextField(new Vector2(36, 152 + ((AnimGroup.TextFont.LineSpacing + 2) * AnimGroup.Animations.Length)), "animation" + AnimGroup.Animations.Length);
     }
 }
示例#25
0
        public Anim GetAnim(AnimGroup group, AnimIndex anim)
        {
            string animName = GetAnimName(group, anim);

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

            return(GetAnim(animName));
        }
示例#26
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);
        }
示例#27
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);
        }
示例#28
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);
        }
示例#29
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);
        }
示例#30
0
        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);
        }
        private AnimationGroup(Match match, StreamReader reader)
        {
            Name = match.Groups["groupName"].Value;
            FileName = match.Groups["fileName"].Value;
            Type = (AnimGroup) Enum.Parse(typeof(AnimGroup), match.Groups["animType"].Value, true);

            var animCount = int.Parse(match.Groups["animCount"].Value);
            _animations = new String[animCount];

            var i = 0;
            string line;
            while ((line = reader.ReadLine()) != null && !_sEndRegex.IsMatch(line)) {
                line = line.Trim();
                if (line.Length == 0) continue;
                _animations[i++] = line;
            }
        }
 public static AnimationGroup Get(string name, AnimGroup type)
 {
     return GetInternal(name, type) ?? GetInternal("default", type);
 }
        private static AnimationGroup GetInternal(string name, AnimGroup type)
        {
            Dictionary<AnimGroup, AnimationGroup> groupDict;
            if (!_sGroups.TryGetValue(name, out groupDict)) return null;

            AnimationGroup group;
            return groupDict.TryGetValue(type, out group) ? group : null;
        }
示例#34
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;
        }
示例#35
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;
        }
示例#36
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;
        }
示例#37
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);
        }
示例#38
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;
        }