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; } }
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; } }
//カーブの計算 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)); }