Пример #1
0
        public void SetCurveY(enEditPartsType partsType, enCurve curveY)
        {
            int intCurveY = (int)curveY;

            switch (partsType)
            {
            case enEditPartsType.Body:
                body.curveY = intCurveY;
                break;

            case enEditPartsType.Head:
                head.curveY = intCurveY;
                break;

            // case enPartsType.LeftArm:
            //  leftArm.curveY = intCurveY;
            //  break;
            // case enPartsType.RightArm:
            //  rightArm.curveY = intCurveY;
            //  break;
            case enEditPartsType.LeftHand:
                leftHand.curveY = intCurveY;
                break;

            case enEditPartsType.RightHand:
                rightHand.curveY = intCurveY;
                break;

            // case enPartsType.LeftLeg:
            //  leftLeg.curveY = intCurveY;
            //  break;
            // case enPartsType.RightLeg:
            //  rightLeg.curveY = intCurveY;
            //  break;
            case enEditPartsType.LeftFoot:
                leftFoot.curveY = intCurveY;
                break;

            case enEditPartsType.RightFoot:
                rightFoot.curveY = intCurveY;
                break;

            // case enPartsType.Ant:
            //  ant.curveY = intCurveY;
            //  break;
            case enEditPartsType.Arm:
                arm.curveY = intCurveY;
                break;

            case enEditPartsType.Leg:
                leg.curveY = intCurveY;
                break;
            }
        }
Пример #2
0
        public void SetCurveX(enEditPartsType partsType, enCurve curveX)
        {
            int intCurveX = (int)curveX;

            switch (partsType)
            {
            case enEditPartsType.Body:
                body.curveX = intCurveX;
                break;

            case enEditPartsType.Head:
                head.curveX = intCurveX;
                break;

            case enEditPartsType.LeftHand:
                leftHand.curveX = intCurveX;
                break;

            case enEditPartsType.RightHand:
                rightHand.curveX = intCurveX;
                break;

            case enEditPartsType.LeftFoot:
                leftFoot.curveX = intCurveX;
                break;

            case enEditPartsType.RightFoot:
                rightFoot.curveX = intCurveX;
                break;

            case enEditPartsType.Arm:
                arm.curveX = intCurveX;
                break;

            case enEditPartsType.Leg:
                leg.curveX = intCurveX;
                break;
            }
        }
Пример #3
0
        //カーブの計算
        public static float IntermediateCurve(float frame, enCurve curve, float stPos, float edPos)
        {
            float edPer = 0;

            //速度のカーブなので位置自体はサインコサインが逆になる
            switch (curve)
            {
            case enCurve.Normal:
                //アンテナを浮かせたい時はこっちで
                // if (isAnt)
                // {
                //  edPer = Mathf.Pow(frame, 6);
                // }
                // else
                // {
                //  edPer = frame;
                // }
                edPer = frame;
                break;

            case enCurve.SinCurve:
                edPer = 1 - Mathf.Cos(frame * Mathf.PI / 2);
                break;

            case enCurve.CosCurve:
                edPer = Mathf.Sin(frame * Mathf.PI / 2);
                break;

            case enCurve.Sin180Curve:
                edPer = (1 - Mathf.Cos(frame * Mathf.PI)) / 2;
                break;

            case enCurve.Exp2Curve:
                edPer = Mathf.Pow(frame, 2);
                break;

            case enCurve.Log2Curve:
                edPer = 1 - Mathf.Pow(1 - frame, 2);
                break;

            case enCurve.Exp3Curve:
                edPer = Mathf.Pow(frame, 3);
                break;

            case enCurve.Log3Curve:
                edPer = 1 - Mathf.Pow(1 - frame, 3);
                break;

            case enCurve.Exp4Curve:
                edPer = Mathf.Pow(frame, 4);
                break;

            case enCurve.Log4Curve:
                edPer = 1 - Mathf.Pow(1 - frame, 4);
                break;

            case enCurve.Exp6Curve:
                edPer = Mathf.Pow(frame, 6);
                break;

            case enCurve.Log6Curve:
                edPer = 1 - Mathf.Pow(1 - frame, 6);
                break;
            }
            float stPer = (1 - edPer);

            return((stPos * stPer) + (edPos * edPer));
        }