コード例 #1
0
        /* ----------------------------------------------- Functions */
        #region Functions
        public void CleanUp()
        {
#if STORE_ANIMATIONSETUP_FULL
            int     valueInitialInt     = int.MinValue;
            float   valueInitialFloat   = float.NaN;
            Vector2 valueInitialVector2 = new Vector2(float.NaN, float.NaN);
            Vector3 valueInitialVector3 = new Vector3(float.NaN, float.NaN, float.NaN);

            Status = Library_SpriteStudio6.Data.Animation.Attribute.DefaultStatus;

            Position     = valueInitialVector3;
            Rotation     = valueInitialVector3;
            Scaling      = valueInitialVector2;
            ScalingLocal = valueInitialVector2;

            RateOpacity      = valueInitialFloat;
            RateOpacityLocal = valueInitialFloat;
            PowerMask        = valueInitialInt;
            Priority         = valueInitialInt;
            PartsColor.CleanUp();               /* = Library_SpriteStudio6.Data.Animation.Attribute.DefaultPartsColor; */
            VertexCorrection.CleanUp();

            OffsetPivot     = valueInitialVector2;
            PositionAnchor  = valueInitialVector2;
            SizeForce       = valueInitialVector2;
            PositionTexture = valueInitialVector2;
            RotationTexture = valueInitialFloat;
            ScalingTexture  = valueInitialVector2;

            RadiusCollision = valueInitialFloat;

            Instance = Library_SpriteStudio6.Data.Animation.Attribute.DefaultInstance;
            Effect   = Library_SpriteStudio6.Data.Animation.Attribute.DefaultEffect;
            Deform   = DefaultDeform;
#endif
            UserData = Library_SpriteStudio6.Data.Animation.Attribute.DefaultUseData;
        }
コード例 #2
0
    private bool AnimationChangeInstanceMain(ref Library_SpriteStudio6.Control.Animation.Parts controlParts,
                                             Script_SpriteStudio6_Root scriptRootInstance,
                                             int indexAnimation,
                                             Library_SpriteStudio6.KindIgnoreAttribute ignoreAttribute,
                                             bool flagStartImmediate,
                                             int timesPlay,
                                             float rateTime,
                                             Library_SpriteStudio6.KindStylePlay style,
                                             string labelRangeStart,
                                             int frameRangeOffsetStart,
                                             string labelRangeEnd,
                                             int frameRangeOffsetEnd
                                             )
    {
        if (null == TableControlTrack)
        {
            return(false);
        }
        if (0 > timesPlay)
        {
            return(false);
        }
        if (true == float.IsNaN(rateTime))
        {
            return(false);
        }

        Library_SpriteStudio6.Data.Animation.Attribute.Instance dataInstance = new Library_SpriteStudio6.Data.Animation.Attribute.Instance();
        dataInstance.Flags = Library_SpriteStudio6.Data.Animation.Attribute.Instance.FlagBit.CLEAR;
        switch (style)
        {
        case Library_SpriteStudio6.KindStylePlay.NO_CHANGE:
            return(false);

        case Library_SpriteStudio6.KindStylePlay.NORMAL:
            break;

        case Library_SpriteStudio6.KindStylePlay.PINGPONG:
            dataInstance.Flags |= Library_SpriteStudio6.Data.Animation.Attribute.Instance.FlagBit.PINGPONG;
            break;
        }

        controlParts.Status &= ~Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_EXCEPT_NEXTDATA;
        switch (ignoreAttribute)
        {
        case Library_SpriteStudio6.KindIgnoreAttribute.NON:
            controlParts.Status &= ~Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_ATTRIBUTE;
            controlParts.Status &= ~Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_NEWANIMATION;

            dataInstance.Flags &= ~Library_SpriteStudio6.Data.Animation.Attribute.Instance.FlagBit.INDEPENDENT;
            break;

        case Library_SpriteStudio6.KindIgnoreAttribute.NOW_ANIMATION:
            controlParts.Status |= Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_ATTRIBUTE;
            controlParts.Status &= ~Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_NEWANIMATION;

            dataInstance.Flags |= Library_SpriteStudio6.Data.Animation.Attribute.Instance.FlagBit.INDEPENDENT;
            break;

        case Library_SpriteStudio6.KindIgnoreAttribute.PERMANENT:
            controlParts.Status |= Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_ATTRIBUTE;
            controlParts.Status |= Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_NEWANIMATION;

            dataInstance.Flags |= Library_SpriteStudio6.Data.Animation.Attribute.Instance.FlagBit.INDEPENDENT;
            break;
        }

        dataInstance.PlayCount   = timesPlay;
        dataInstance.RateTime    = rateTime;
        dataInstance.LabelStart  = labelRangeStart;
        dataInstance.OffsetStart = frameRangeOffsetStart;
        dataInstance.LabelEnd    = labelRangeEnd;
        dataInstance.OffsetEnd   = frameRangeOffsetEnd;

        if (false == flagStartImmediate)
        {
            controlParts.Status &= ~Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_EXCEPT_NEXTDATA;
        }
        else
        {
            controlParts.Status |= Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_IGNORE_EXCEPT_NEXTDATA;

            /* MEMO: When does not start immediately, necessary to always decode next data, so turn off "Independent time" status. */
            controlParts.Status &= ~Library_SpriteStudio6.Control.Animation.Parts.FlagBitStatus.INSTANCE_PLAY_INDEPENDENT;

            controlParts.IndexAnimationUnderControl = indexAnimation;
            controlParts.DataInstance = dataInstance;

            int indexTrack = controlParts.IndexControlTrack;
            if (0 <= indexTrack)
            {
                float rateTimeControlTrack = TableControlTrack[indexTrack].RateTime * ((true == TableControlTrack[indexTrack].StatusIsPlayingReverse) ? -1.0f : 1.0f);
                return(controlParts.InstancePlayStart(this, rateTimeControlTrack));
            }
        }

        return(true);
    }