From 02b1230f3932a82f1955796d0873cdd8129573d4 Mon Sep 17 00:00:00 2001 From: Atsuishio <842960157@qq.com> Date: Fri, 11 Apr 2025 19:04:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8A=A8=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/model/item/Glock17ItemModel.java | 36 +- .../client/model/item/Glock18ItemModel.java | 37 +- .../client/model/item/M1911ItemModel.java | 35 +- .../client/model/item/Mp443ItemModel.java | 37 +- .../animations/ak.animation.json | 144 +++++-- .../animations/ak12.animation.json | 144 +++++-- .../animations/glock17.animation.json | 355 +++++++++++++++--- .../assets/superbwarfare/geo/glock17.geo.json | 13 +- .../assets/superbwarfare/geo/glock18.geo.json | 13 +- .../assets/superbwarfare/geo/m1911.geo.json | 13 +- .../assets/superbwarfare/geo/mp443.geo.json | 17 +- 11 files changed, 643 insertions(+), 201 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock17ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock17ItemModel.java index d56c9455e..346911e2b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock17ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock17ItemModel.java @@ -18,6 +18,9 @@ import software.bernie.geckolib.model.GeoModel; public class Glock17ItemModel extends GeoModel { + public static float fireRotY = 0f; + public static float fireRotZ = 0f; + @Override public ResourceLocation getAnimationResource(Glock17Item animatable) { return Mod.loc("animations/glock17.animation.json"); @@ -59,7 +62,7 @@ public class Glock17ItemModel extends GeoModel { double turnRotX = ClientEventHandler.turnRot[0]; double turnRotY = ClientEventHandler.turnRot[1]; double turnRotZ = ClientEventHandler.turnRot[2]; - double fpz = ClientEventHandler.firePosZ * 20 * times; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -71,21 +74,26 @@ public class Glock17ItemModel extends GeoModel { gun.setScaleZ(1f - (0.55f * (float) zp)); - shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); - shen.setPosY((float) (0.25f * fp + 0.28f * fr)); - shen.setPosZ((float) (2.375 * fp + 0.44f * fr + 0.75 * fpz)); - shen.setRotX((float) (0.1f * fp + 0.15f * fr + 0.15f * fpz)); - shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz)); - shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon)); + GeoBone body = getAnimationProcessor().getBone("gun"); - shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt))); - shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt))); - shen.setPosZ((float) (shen.getPosZ() * (1 - 0.3 * zt))); - shen.setRotX((float) (shen.getRotX() * (1 - 0.8 * zt))); - shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt))); - shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt))); + fireRotY = (float) Mth.lerp(0.3f * times, fireRotY, 0.6f * ClientEventHandler.recoilHorizon * fpz); + fireRotZ = (float) Mth.lerp(2f * times, fireRotZ, (0.4f + 0.5 * fpz) * ClientEventHandler.recoilHorizon); - CrossHairOverlay.gunRot = shen.getRotZ(); + body.setPosX(-0.4f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread))); + body.setPosY((float) (0.15f * fp + 0.18f * fr)); + body.setPosZ((float) (1.935 * fp + 0.16f * fr + 0.925 * fpz)); + body.setRotX((float) (0.08f * fp + 0.1f * fr + 0.35f * fpz)); + body.setRotY(fireRotY); + body.setRotZ(fireRotZ); + + body.setPosX((float) (body.getPosX() * (1 - 0.4 * zt))); + body.setPosY((float) (body.getPosY() * (-1 + 0.5 * zt))); + body.setPosZ((float) (body.getPosZ() * (1 - 0.3 * zt))); + body.setRotX((float) (body.getRotX() * (1 - 0.8 * zt))); + body.setRotY((float) (body.getRotY() * (1 - 0.7 * zt))); + body.setRotZ((float) (body.getRotZ() * (1 - 0.65 * zt))); + + CrossHairOverlay.gunRot = body.getRotZ(); slide.setPosZ(1.5f * (float) fp); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock18ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock18ItemModel.java index 102f9d882..c5c83fb30 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock18ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Glock18ItemModel.java @@ -18,6 +18,9 @@ import software.bernie.geckolib.model.GeoModel; public class Glock18ItemModel extends GeoModel { + public static float fireRotY = 0f; + public static float fireRotZ = 0f; + @Override public ResourceLocation getAnimationResource(Glock18Item animatable) { return Mod.loc("animations/glock17.animation.json"); @@ -36,7 +39,6 @@ public class Glock18ItemModel extends GeoModel { @Override public void setCustomAnimations(Glock18Item animatable, long instanceId, AnimationState animationState) { GeoBone gun = getAnimationProcessor().getBone("bone"); - GeoBone shen = getAnimationProcessor().getBone("shen"); GeoBone slide = getAnimationProcessor().getBone("huatao"); GeoBone bullet = getAnimationProcessor().getBone("bullet"); GeoBone switch_ = getAnimationProcessor().getBone("kuaimanji"); @@ -69,7 +71,7 @@ public class Glock18ItemModel extends GeoModel { double turnRotX = ClientEventHandler.turnRot[0]; double turnRotY = ClientEventHandler.turnRot[1]; double turnRotZ = ClientEventHandler.turnRot[2]; - double fpz = ClientEventHandler.firePosZ * 20 * times; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -81,21 +83,26 @@ public class Glock18ItemModel extends GeoModel { gun.setScaleZ(1f - (0.55f * (float) zp)); - shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); - shen.setPosY((float) (0.25f * fp + 0.28f * fr)); - shen.setPosZ((float) (2.375 * fp + 0.44f * fr + 0.75 * fpz)); - shen.setRotX((float) (0.1f * fp + 0.15f * fr + 0.15f * fpz)); - shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz)); - shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon)); + GeoBone body = getAnimationProcessor().getBone("gun"); - shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt))); - shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt))); - shen.setPosZ((float) (shen.getPosZ() * (1 - 0.3 * zt))); - shen.setRotX((float) (shen.getRotX() * (1 - 0.8 * zt))); - shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt))); - shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt))); + fireRotY = (float) Mth.lerp(0.5f * times, fireRotY, 0.3f * ClientEventHandler.recoilHorizon * fpz); + fireRotZ = (float) Mth.lerp(2f * times, fireRotZ, (0.4f + 0.5 * fpz) * ClientEventHandler.recoilHorizon); - CrossHairOverlay.gunRot = shen.getRotZ(); + body.setPosX(-0.4f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread))); + body.setPosY((float) (0.15f * fp + 0.18f * fr)); + body.setPosZ((float) (1.935 * fp + 0.16f * fr + 0.925 * fpz)); + body.setRotX((float) (0.08f * fp + 0.1f * fr + 0.35f * fpz)); + body.setRotY(fireRotY); + body.setRotZ(fireRotZ); + + body.setPosX((float) (body.getPosX() * (1 - 0.4 * zt))); + body.setPosY((float) (body.getPosY() * (-1 + 0.5 * zt))); + body.setPosZ((float) (body.getPosZ() * (1 - 0.3 * zt))); + body.setRotX((float) (body.getRotX() * (1 - 0.8 * zt))); + body.setRotY((float) (body.getRotY() * (1 - 0.7 * zt))); + body.setRotZ((float) (body.getRotZ() * (1 - 0.65 * zt))); + + CrossHairOverlay.gunRot = body.getRotZ(); slide.setPosZ(1.5f * (float) fp); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M1911ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M1911ItemModel.java index 01b86addf..a674c3676 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/M1911ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/M1911ItemModel.java @@ -18,6 +18,9 @@ import software.bernie.geckolib.model.GeoModel; public class M1911ItemModel extends GeoModel { + public static float fireRotY = 0f; + public static float fireRotZ = 0f; + @Override public ResourceLocation getAnimationResource(M1911Item animatable) { return Mod.loc("animations/glock17.animation.json"); @@ -36,7 +39,6 @@ public class M1911ItemModel extends GeoModel { @Override public void setCustomAnimations(M1911Item animatable, long instanceId, AnimationState animationState) { GeoBone gun = getAnimationProcessor().getBone("bone"); - GeoBone shen = getAnimationProcessor().getBone("shen"); GeoBone slide = getAnimationProcessor().getBone("huatao"); GeoBone bullet = getAnimationProcessor().getBone("bullet"); GeoBone hammer = getAnimationProcessor().getBone("hammer"); @@ -72,21 +74,26 @@ public class M1911ItemModel extends GeoModel { gun.setScaleZ(1f - (0.55f * (float) zp)); - shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); - shen.setPosY((float) (0.25f * fp + 0.28f * fr)); - shen.setPosZ((float) (2.375 * fp + 0.44f * fr + 0.75 * fpz)); - shen.setRotX((float) (0.15f * fp + 0.3f * fr + 0.3f * fpz)); - shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz)); - shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon)); + GeoBone body = getAnimationProcessor().getBone("gun"); - shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt))); - shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt))); - shen.setPosZ((float) (shen.getPosZ() * (1 - 0.3 * zt))); - shen.setRotX((float) (shen.getRotX() * (1 - 0.5 * zt))); - shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt))); - shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt))); + fireRotY = (float) Mth.lerp(0.3f * times, fireRotY, 0.6f * ClientEventHandler.recoilHorizon * fpz); + fireRotZ = (float) Mth.lerp(2f * times, fireRotZ, (0.8f + 1 * fpz) * ClientEventHandler.recoilHorizon); - CrossHairOverlay.gunRot = shen.getRotZ(); + body.setPosX(-0.4f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread))); + body.setPosY((float) (0.15f * fp + 0.18f * fr)); + body.setPosZ((float) (2.935 * fp + 0.23f * fr + 1.325 * fpz)); + body.setRotX((float) (0.08f * fp + 0.1f * fr + 0.45f * fpz)); + body.setRotY(fireRotY); + body.setRotZ(fireRotZ); + + body.setPosX((float) (body.getPosX() * (1 - 0.4 * zt))); + body.setPosY((float) (body.getPosY() * (-1 + 0.5 * zt))); + body.setPosZ((float) (body.getPosZ() * (1 - 0.3 * zt))); + body.setRotX((float) (body.getRotX() * (1 - 0.4 * zt))); + body.setRotY((float) (body.getRotY() * (1 - 0.7 * zt))); + body.setRotZ((float) (body.getRotZ() * (1 - 0.65 * zt))); + + CrossHairOverlay.gunRot = body.getRotZ(); slide.setPosZ(2.75f * (float) fp); hammer.setRotX(60 * Mth.DEG_TO_RAD + (120 * Mth.DEG_TO_RAD * (float) fp)); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mp443ItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mp443ItemModel.java index bc4eeeb9f..61941f262 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mp443ItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/Mp443ItemModel.java @@ -18,6 +18,9 @@ import software.bernie.geckolib.model.GeoModel; public class Mp443ItemModel extends GeoModel { + public static float fireRotY = 0f; + public static float fireRotZ = 0f; + @Override public ResourceLocation getAnimationResource(Mp443Item animatable) { return Mod.loc("animations/glock17.animation.json"); @@ -36,7 +39,6 @@ public class Mp443ItemModel extends GeoModel { @Override public void setCustomAnimations(Mp443Item animatable, long instanceId, AnimationState animationState) { GeoBone gun = getAnimationProcessor().getBone("bone"); - GeoBone shen = getAnimationProcessor().getBone("shen"); GeoBone slide = getAnimationProcessor().getBone("huatao"); GeoBone bullet = getAnimationProcessor().getBone("bullet"); GeoBone hammer = getAnimationProcessor().getBone("trigger"); @@ -60,7 +62,7 @@ public class Mp443ItemModel extends GeoModel { double turnRotX = ClientEventHandler.turnRot[0]; double turnRotY = ClientEventHandler.turnRot[1]; double turnRotZ = ClientEventHandler.turnRot[2]; - double fpz = ClientEventHandler.firePosZ * 20 * times; + double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; @@ -69,21 +71,26 @@ public class Mp443ItemModel extends GeoModel { gun.setPosZ(7f * (float) zp + (float) (0.3f * zpz)); gun.setScaleZ(1f - (0.55f * (float) zp)); - shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); - shen.setPosY((float) (0.25f * fp + 0.28f * fr)); - shen.setPosZ((float) (2.375 * fp + 0.44f * fr + 0.75 * fpz)); - shen.setRotX((float) (0.15f * fp + 0.3f * fr + 0.3f * fpz)); - shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz)); - shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon)); + GeoBone body = getAnimationProcessor().getBone("gun"); - shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt))); - shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt))); - shen.setPosZ((float) (shen.getPosZ() * (1 - 0.3 * zt))); - shen.setRotX((float) (shen.getRotX() * (1 - 0.8 * zt))); - shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt))); - shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt))); + fireRotY = (float) Mth.lerp(0.3f * times, fireRotY, 0.6f * ClientEventHandler.recoilHorizon * fpz); + fireRotZ = (float) Mth.lerp(2f * times, fireRotZ, (0.4f + 0.5 * fpz) * ClientEventHandler.recoilHorizon); - CrossHairOverlay.gunRot = shen.getRotZ(); + body.setPosX(-0.4f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread))); + body.setPosY((float) (0.15f * fp + 0.18f * fr)); + body.setPosZ((float) (1.935 * fp + 0.16f * fr + 0.925 * fpz)); + body.setRotX((float) (0.08f * fp + 0.1f * fr + 0.35f * fpz)); + body.setRotY(fireRotY); + body.setRotZ(fireRotZ); + + body.setPosX((float) (body.getPosX() * (1 - 0.4 * zt))); + body.setPosY((float) (body.getPosY() * (-1 + 0.5 * zt))); + body.setPosZ((float) (body.getPosZ() * (1 - 0.3 * zt))); + body.setRotX((float) (body.getRotX() * (1 - 0.8 * zt))); + body.setRotY((float) (body.getRotY() * (1 - 0.7 * zt))); + body.setRotZ((float) (body.getRotZ() * (1 - 0.65 * zt))); + + CrossHairOverlay.gunRot = body.getRotZ(); slide.setPosZ(1.5f * (float) fp); hammer.setRotX((120 * Mth.DEG_TO_RAD * (float) fp)); diff --git a/src/main/resources/assets/superbwarfare/animations/ak.animation.json b/src/main/resources/assets/superbwarfare/animations/ak.animation.json index d00f4dac5..e697564f9 100644 --- a/src/main/resources/assets/superbwarfare/animations/ak.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/ak.animation.json @@ -201,15 +201,27 @@ "lerp_mode": "catmullrom" }, "1.95": { - "post": [4.15, 1.63, 5.18], + "post": [ + -1, + 1.63, + 5.18 + ], "lerp_mode": "catmullrom" }, "2.0333": { - "post": [0.59, 0.41, -1.1425], + "post": [ + 0.59, + -0.99, + -1.1425 + ], "lerp_mode": "catmullrom" }, "2.1167": { - "post": [-0.62, -0.09, 1.21625], + "post": [ + -0.62, + 0.86, + 1.21625 + ], "lerp_mode": "catmullrom" }, "2.25": { @@ -299,18 +311,26 @@ "lerp_mode": "catmullrom" }, "1.9": { - "post": [0, -0.32, 0.7], + "post": [ + 0, + -0.07, + -0.35 + ], "lerp_mode": "catmullrom" }, - "1.95": { - "post": [0, -0.21, 0.2], + "2.0": { + "post": [ + 0, + 0.04, + 0.9 + ], "lerp_mode": "catmullrom" }, - "2.0333": { + "2.0667": { "post": [0, 0.04, -0.15], "lerp_mode": "catmullrom" }, - "2.1167": { + "2.1667": { "post": [0, 0, 0.2], "lerp_mode": "catmullrom" }, @@ -619,15 +639,27 @@ "lerp_mode": "catmullrom" }, "1.95": { - "post": [4.15, 1.63, 5.18], + "post": [ + -1, + 1.63, + 5.18 + ], "lerp_mode": "catmullrom" }, "2.0333": { - "post": [0.59, 0.41, -1.1425], + "post": [ + 0.59, + -0.99, + -1.1425 + ], "lerp_mode": "catmullrom" }, "2.1167": { - "post": [-0.62, -0.09, 1.21625], + "post": [ + -0.62, + 0.86, + 1.21625 + ], "lerp_mode": "catmullrom" }, "2.25": { @@ -717,18 +749,26 @@ "lerp_mode": "catmullrom" }, "1.9": { - "post": [0, -0.32, 0.7], + "post": [ + 0, + -0.07, + -0.35 + ], "lerp_mode": "catmullrom" }, - "1.95": { - "post": [0, -0.21, 0.2], + "2.0": { + "post": [ + 0, + 0.04, + 0.9 + ], "lerp_mode": "catmullrom" }, - "2.0333": { + "2.0667": { "post": [0, 0.04, -0.15], "lerp_mode": "catmullrom" }, - "2.1167": { + "2.1667": { "post": [0, 0, 0.2], "lerp_mode": "catmullrom" }, @@ -2038,15 +2078,27 @@ "lerp_mode": "catmullrom" }, "1.95": { - "post": [4.15, 1.63, 5.18], + "post": [ + -1, + 1.63, + 5.18 + ], "lerp_mode": "catmullrom" }, "2.0333": { - "post": [0.59, 0.41, -1.1425], + "post": [ + 0.59, + -0.99, + -1.1425 + ], "lerp_mode": "catmullrom" }, "2.1167": { - "post": [-0.62, -0.09, 1.21625], + "post": [ + -0.62, + 0.86, + 1.21625 + ], "lerp_mode": "catmullrom" }, "2.25": { @@ -2136,18 +2188,26 @@ "lerp_mode": "catmullrom" }, "1.9": { - "post": [0, -0.32, 0.7], + "post": [ + 0, + -0.07, + -0.35 + ], "lerp_mode": "catmullrom" }, - "1.95": { - "post": [0, -0.21, 0.2], + "2.0": { + "post": [ + 0, + 0.04, + 0.9 + ], "lerp_mode": "catmullrom" }, - "2.0333": { + "2.0667": { "post": [0, 0.04, -0.15], "lerp_mode": "catmullrom" }, - "2.1167": { + "2.1667": { "post": [0, 0, 0.2], "lerp_mode": "catmullrom" }, @@ -2456,15 +2516,27 @@ "lerp_mode": "catmullrom" }, "1.95": { - "post": [4.15, 1.63, 5.18], + "post": [ + -1, + 1.63, + 5.18 + ], "lerp_mode": "catmullrom" }, "2.0333": { - "post": [0.59, 0.41, -1.1425], + "post": [ + 0.59, + -0.99, + -1.1425 + ], "lerp_mode": "catmullrom" }, "2.1167": { - "post": [-0.62, -0.09, 1.21625], + "post": [ + -0.62, + 0.86, + 1.21625 + ], "lerp_mode": "catmullrom" }, "2.25": { @@ -2554,18 +2626,26 @@ "lerp_mode": "catmullrom" }, "1.9": { - "post": [0, -0.32, 0.7], + "post": [ + 0, + -0.07, + -0.35 + ], "lerp_mode": "catmullrom" }, - "1.95": { - "post": [0, -0.21, 0.2], + "2.0": { + "post": [ + 0, + 0.04, + 0.9 + ], "lerp_mode": "catmullrom" }, - "2.0333": { + "2.0667": { "post": [0, 0.04, -0.15], "lerp_mode": "catmullrom" }, - "2.1167": { + "2.1667": { "post": [0, 0, 0.2], "lerp_mode": "catmullrom" }, diff --git a/src/main/resources/assets/superbwarfare/animations/ak12.animation.json b/src/main/resources/assets/superbwarfare/animations/ak12.animation.json index 2407c793b..955f2990e 100644 --- a/src/main/resources/assets/superbwarfare/animations/ak12.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/ak12.animation.json @@ -201,15 +201,27 @@ "lerp_mode": "catmullrom" }, "1.95": { - "post": [4.15, 1.63, 5.18], + "post": [ + -1, + 1.63, + 5.18 + ], "lerp_mode": "catmullrom" }, "2.0333": { - "post": [0.59, 0.41, -1.1425], + "post": [ + 0.59, + -0.99, + -1.1425 + ], "lerp_mode": "catmullrom" }, "2.1167": { - "post": [-0.62, -0.09, 1.21625], + "post": [ + -0.62, + 0.86, + 1.21625 + ], "lerp_mode": "catmullrom" }, "2.25": { @@ -299,18 +311,26 @@ "lerp_mode": "catmullrom" }, "1.9": { - "post": [0, -0.32, 0.7], + "post": [ + 0, + -0.07, + -0.35 + ], "lerp_mode": "catmullrom" }, - "1.95": { - "post": [0, -0.21, 0.2], + "2.0": { + "post": [ + 0, + 0.04, + 0.9 + ], "lerp_mode": "catmullrom" }, - "2.0333": { + "2.0667": { "post": [0, 0.04, -0.15], "lerp_mode": "catmullrom" }, - "2.1167": { + "2.1667": { "post": [0, 0, 0.2], "lerp_mode": "catmullrom" }, @@ -619,15 +639,27 @@ "lerp_mode": "catmullrom" }, "1.95": { - "post": [4.15, 1.63, 5.18], + "post": [ + -1, + 1.63, + 5.18 + ], "lerp_mode": "catmullrom" }, "2.0333": { - "post": [0.59, 0.41, -1.1425], + "post": [ + 0.59, + -0.99, + -1.1425 + ], "lerp_mode": "catmullrom" }, "2.1167": { - "post": [-0.62, -0.09, 1.21625], + "post": [ + -0.62, + 0.86, + 1.21625 + ], "lerp_mode": "catmullrom" }, "2.25": { @@ -717,18 +749,26 @@ "lerp_mode": "catmullrom" }, "1.9": { - "post": [0, -0.32, 0.7], + "post": [ + 0, + -0.07, + -0.35 + ], "lerp_mode": "catmullrom" }, - "1.95": { - "post": [0, -0.21, 0.2], + "2.0": { + "post": [ + 0, + 0.04, + 0.9 + ], "lerp_mode": "catmullrom" }, - "2.0333": { + "2.0667": { "post": [0, 0.04, -0.15], "lerp_mode": "catmullrom" }, - "2.1167": { + "2.1667": { "post": [0, 0, 0.2], "lerp_mode": "catmullrom" }, @@ -1426,15 +1466,27 @@ "lerp_mode": "catmullrom" }, "1.95": { - "post": [4.15, 1.63, 5.18], + "post": [ + -1, + 1.63, + 5.18 + ], "lerp_mode": "catmullrom" }, "2.0333": { - "post": [0.59, 0.41, -1.1425], + "post": [ + 0.59, + -0.99, + -1.1425 + ], "lerp_mode": "catmullrom" }, "2.1167": { - "post": [-0.62, -0.09, 1.21625], + "post": [ + -0.62, + 0.86, + 1.21625 + ], "lerp_mode": "catmullrom" }, "2.25": { @@ -1524,18 +1576,26 @@ "lerp_mode": "catmullrom" }, "1.9": { - "post": [0, -0.32, 0.7], + "post": [ + 0, + -0.07, + -0.35 + ], "lerp_mode": "catmullrom" }, - "1.95": { - "post": [0, -0.21, 0.2], + "2.0": { + "post": [ + 0, + 0.04, + 0.9 + ], "lerp_mode": "catmullrom" }, - "2.0333": { + "2.0667": { "post": [0, 0.04, -0.15], "lerp_mode": "catmullrom" }, - "2.1167": { + "2.1667": { "post": [0, 0, 0.2], "lerp_mode": "catmullrom" }, @@ -1844,15 +1904,27 @@ "lerp_mode": "catmullrom" }, "1.95": { - "post": [4.15, 1.63, 5.18], + "post": [ + -1, + 1.63, + 5.18 + ], "lerp_mode": "catmullrom" }, "2.0333": { - "post": [0.59, 0.41, -1.1425], + "post": [ + 0.59, + -0.99, + -1.1425 + ], "lerp_mode": "catmullrom" }, "2.1167": { - "post": [-0.62, -0.09, 1.21625], + "post": [ + -0.62, + 0.86, + 1.21625 + ], "lerp_mode": "catmullrom" }, "2.25": { @@ -1942,18 +2014,26 @@ "lerp_mode": "catmullrom" }, "1.9": { - "post": [0, -0.32, 0.7], + "post": [ + 0, + -0.07, + -0.35 + ], "lerp_mode": "catmullrom" }, - "1.95": { - "post": [0, -0.21, 0.2], + "2.0": { + "post": [ + 0, + 0.04, + 0.9 + ], "lerp_mode": "catmullrom" }, - "2.0333": { + "2.0667": { "post": [0, 0.04, -0.15], "lerp_mode": "catmullrom" }, - "2.1167": { + "2.1667": { "post": [0, 0, 0.2], "lerp_mode": "catmullrom" }, diff --git a/src/main/resources/assets/superbwarfare/animations/glock17.animation.json b/src/main/resources/assets/superbwarfare/animations/glock17.animation.json index 2b21c97fc..d7bfd4097 100644 --- a/src/main/resources/assets/superbwarfare/animations/glock17.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/glock17.animation.json @@ -7,53 +7,292 @@ }, "animation.glock.run": { "loop": true, - "animation_length": 0.8, + "animation_length": 0.6, "bones": { "0": { "rotation": { - "0.0": [4.74287, -58.94632, 9.89514], - "0.2": [-8.55104, -59.60571, 19.61648], - "0.4": [-8.58141, -58.99717, 19.60323], - "0.6": [-0.82277, -58.8651, 9.93666], - "0.8": [4.74287, -58.94632, 9.89514] + "0.0": { + "post": [ + -30.75713, + -24.19632, + 17.64514 + ], + "lerp_mode": "catmullrom" + }, + "0.15": { + "post": [ + -32.50513, + -20.30305, + 24.23867 + ], + "lerp_mode": "catmullrom" + }, + "0.3": { + "post": [ + -30.96, + -24.1963, + 16.9 + ], + "lerp_mode": "catmullrom" + }, + "0.45": { + "post": [ + -30.7364, + -31.02547, + 12.28916 + ], + "lerp_mode": "catmullrom" + }, + "0.6": { + "post": [ + -30.75713, + -24.19632, + 17.64514 + ], + "lerp_mode": "catmullrom" + } }, "position": { - "0.0": [5.5, -3, 0], - "0.2": [3.75, -2.5, 0], - "0.4": [2.5, -3, 0], - "0.6": [4.25, -2.5, 0], - "0.8": [5.5, -3, 0] + "0.0": { + "post": [ + 4, + -1.5, + 0.75 + ], + "lerp_mode": "catmullrom" + }, + "0.075": { + "post": [ + 3.5, + -0.75, + 0.75 + ], + "lerp_mode": "catmullrom" + }, + "0.15": { + "post": [ + 2.5, + -1.5, + 0.75 + ], + "lerp_mode": "catmullrom" + }, + "0.225": { + "post": [ + 1.5, + -2.25, + 0.75 + ], + "lerp_mode": "catmullrom" + }, + "0.3": { + "post": [ + 1, + -1.5, + 0.75 + ], + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": [ + 1.5, + -0.75, + 0.75 + ], + "lerp_mode": "catmullrom" + }, + "0.45": { + "post": [ + 2.5, + -1.5, + 0.7 + ], + "lerp_mode": "catmullrom" + }, + "0.525": { + "post": [ + 3.5, + -2.25, + 0.75 + ], + "lerp_mode": "catmullrom" + }, + "0.6": { + "post": [ + 4, + -1.5, + 0.75 + ], + "lerp_mode": "catmullrom" + } } }, "camera": { "rotation": { - "0.0": [-0.3, -0.3, 0.3], - "0.2": [0.3, 0, -0.3], - "0.4": [-0.3, 0.3, 0.3], - "0.6": [0.3, 0, -0.3], - "0.8": [-0.3, -0.3, 0.3] + "0.0": { + "post": [ + -0.3, + -0.3, + 0.3 + ], + "lerp_mode": "catmullrom" + }, + "0.15": { + "post": [ + 0.3, + 0, + -0.3 + ], + "lerp_mode": "catmullrom" + }, + "0.3": { + "post": [ + -0.3, + 0.3, + 0.3 + ], + "lerp_mode": "catmullrom" + }, + "0.45": { + "post": [ + 0.3, + 0, + -0.3 + ], + "lerp_mode": "catmullrom" + }, + "0.6": { + "post": [ + -0.3, + -0.3, + 0.3 + ], + "lerp_mode": "catmullrom" + } } } } }, "animation.glock.run_fast": { "loop": true, - "animation_length": 0.7, + "animation_length": 0.6, "bones": { "0": { "rotation": { - "0.0": [-64.40359, 6.54216, -8.29677], - "0.175": [-63.64549, 6.90094, -2.09726], - "0.35": [-64.40359, 6.54216, -8.29677], - "0.525": [-65.4022, 6.21514, -14.3956], - "0.7": [-64.40359, 6.54216, -8.29677] + "0.0": { + "post": [ + -64.40359, + 7.54216, + -8.29677 + ], + "lerp_mode": "catmullrom" + }, + "0.15": { + "post": [ + -57.49549, + 2.15094, + -2.09726 + ], + "lerp_mode": "catmullrom" + }, + "0.3": { + "post": [ + -64.40359, + 7.54216, + -8.29677 + ], + "lerp_mode": "catmullrom" + }, + "0.45": { + "post": [ + -61.1522, + 13.31514, + -14.3956 + ], + "lerp_mode": "catmullrom" + }, + "0.6": { + "post": [ + -64.40359, + 7.54216, + -8.29677 + ], + "lerp_mode": "catmullrom" + } }, "position": { - "0.0": [-8.5, 4, 2], - "0.175": [-8.5, 6, 3], - "0.35": [-10.5, 4, 2], - "0.525": [-9.5, 6, 2], - "0.7": [-8.5, 4, 2] + "0.0": { + "post": [ + -6.25, + 1.75, + 2.75 + ], + "lerp_mode": "catmullrom" + }, + "0.075": { + "post": [ + -6.75, + 2.5, + 2.75 + ], + "lerp_mode": "catmullrom" + }, + "0.15": { + "post": [ + -7.75, + 1.75, + 2.75 + ], + "lerp_mode": "catmullrom" + }, + "0.225": { + "post": [ + -8.75, + 1, + 2.75 + ], + "lerp_mode": "catmullrom" + }, + "0.3": { + "post": [ + -9.25, + 1.75, + 2.75 + ], + "lerp_mode": "catmullrom" + }, + "0.375": { + "post": [ + -8.75, + 2.5, + 2.75 + ], + "lerp_mode": "catmullrom" + }, + "0.45": { + "post": [ + -7.75, + 1.75, + 2.7 + ], + "lerp_mode": "catmullrom" + }, + "0.525": { + "post": [ + -6.75, + 1, + 2.75 + ], + "lerp_mode": "catmullrom" + }, + "0.6": { + "post": [ + -6.25, + 1.75, + 2.75 + ], + "lerp_mode": "catmullrom" + } } }, "Lefthand": { @@ -62,28 +301,46 @@ }, "camera": { "rotation": { - "0.0": [-0.3, -0.3, 0.3], - "0.175": [0.3, 0, -0.3], - "0.35": [-0.3, 0.3, 0.3], - "0.525": [0.3, 0, -0.3], - "0.7": [-0.3, -0.3, 0.3] - } - } - } - }, - "animation.glock.fire": { - "loop": "hold_on_last_frame", - "animation_length": 0.0833, - "override_previous_animation": true, - "bones": { - "lun": { - "rotation": { - "0.0": [0, 0, 0], - "0.0417": [0, 0, -22.5] - }, - "position": { - "0.0": [0, 0, 0], - "0.0417": [0, 0, 0] + "0.0": { + "post": [ + -0.3, + -0.3, + 0.3 + ], + "lerp_mode": "catmullrom" + }, + "0.15": { + "post": [ + 0.3, + 0, + -0.3 + ], + "lerp_mode": "catmullrom" + }, + "0.3": { + "post": [ + -0.3, + 0.3, + 0.3 + ], + "lerp_mode": "catmullrom" + }, + "0.45": { + "post": [ + 0.3, + 0, + -0.3 + ], + "lerp_mode": "catmullrom" + }, + "0.6": { + "post": [ + -0.3, + -0.3, + 0.3 + ], + "lerp_mode": "catmullrom" + } } } } diff --git a/src/main/resources/assets/superbwarfare/geo/glock17.geo.json b/src/main/resources/assets/superbwarfare/geo/glock17.geo.json index bbc2b446b..195dc965f 100644 --- a/src/main/resources/assets/superbwarfare/geo/glock17.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/glock17.geo.json @@ -24,20 +24,19 @@ "parent": "root", "pivot": [8, 10, -8] }, - { - "name": "shen", - "parent": "bone", - "pivot": [0, 0, 0] - }, { "name": "0", - "parent": "shen", + "parent": "bone", "pivot": [0, 0, 0] }, { "name": "gun", "parent": "0", - "pivot": [0, 0.46563, 1.72795] + "pivot": [ + 0, + 1.71563, + 3.72795 + ] }, { "name": "flare", diff --git a/src/main/resources/assets/superbwarfare/geo/glock18.geo.json b/src/main/resources/assets/superbwarfare/geo/glock18.geo.json index 9d53ba394..caa766b5c 100644 --- a/src/main/resources/assets/superbwarfare/geo/glock18.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/glock18.geo.json @@ -24,20 +24,19 @@ "parent": "root", "pivot": [8, 10, -8] }, - { - "name": "shen", - "parent": "bone", - "pivot": [0, 0, 0] - }, { "name": "0", - "parent": "shen", + "parent": "bone", "pivot": [0, 0, 0] }, { "name": "gun", "parent": "0", - "pivot": [0, 0.46563, 1.72795] + "pivot": [ + 0, + 1.71563, + 3.72795 + ] }, { "name": "flare", diff --git a/src/main/resources/assets/superbwarfare/geo/m1911.geo.json b/src/main/resources/assets/superbwarfare/geo/m1911.geo.json index e4b427e9d..165d9e8aa 100644 --- a/src/main/resources/assets/superbwarfare/geo/m1911.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/m1911.geo.json @@ -24,20 +24,19 @@ "parent": "root", "pivot": [8, 10, -8] }, - { - "name": "shen", - "parent": "bone", - "pivot": [0, 0, 0] - }, { "name": "0", - "parent": "shen", + "parent": "bone", "pivot": [0, 0, 0] }, { "name": "gun", "parent": "0", - "pivot": [0, 0.46563, 1.72795] + "pivot": [ + 0, + 1.26563, + 3.37795 + ] }, { "name": "flare", diff --git a/src/main/resources/assets/superbwarfare/geo/mp443.geo.json b/src/main/resources/assets/superbwarfare/geo/mp443.geo.json index 42d5b12a6..47513e0ca 100644 --- a/src/main/resources/assets/superbwarfare/geo/mp443.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/mp443.geo.json @@ -24,20 +24,19 @@ "parent": "root", "pivot": [8, 9.5, -8.5] }, - { - "name": "shen", - "parent": "bone", - "pivot": [0, -0.5, -0.5] - }, { "name": "0", - "parent": "shen", + "parent": "bone", "pivot": [0, 0, -1.5] }, { "name": "gun", "parent": "0", - "pivot": [0, 0.25, 2] + "pivot": [ + 0, + 1, + 4 + ] }, { "name": "huatao", @@ -2788,7 +2787,7 @@ }, { "name": "magazine", - "parent": "0", + "parent": "gun", "pivot": [0, -1, 2.75] }, { @@ -3110,7 +3109,7 @@ }, { "name": "Righthand", - "parent": "0", + "parent": "gun", "pivot": [-0.60468, -1.58634, 0.54587], "rotation": [-76.32882, 10.3564, 179.6036], "cubes": [