优化动画

This commit is contained in:
Atsuishio 2025-04-11 19:04:49 +08:00 committed by Light_Quanta
parent a13b11e645
commit 02b1230f39
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
11 changed files with 643 additions and 201 deletions

View file

@ -18,6 +18,9 @@ import software.bernie.geckolib.model.GeoModel;
public class Glock17ItemModel extends GeoModel<Glock17Item> {
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<Glock17Item> {
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<Glock17Item> {
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);

View file

@ -18,6 +18,9 @@ import software.bernie.geckolib.model.GeoModel;
public class Glock18ItemModel extends GeoModel<Glock18Item> {
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<Glock18Item> {
@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<Glock18Item> {
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<Glock18Item> {
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);

View file

@ -18,6 +18,9 @@ import software.bernie.geckolib.model.GeoModel;
public class M1911ItemModel extends GeoModel<M1911Item> {
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<M1911Item> {
@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<M1911Item> {
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));

View file

@ -18,6 +18,9 @@ import software.bernie.geckolib.model.GeoModel;
public class Mp443ItemModel extends GeoModel<Mp443Item> {
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<Mp443Item> {
@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<Mp443Item> {
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<Mp443Item> {
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));

View file

@ -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"
},

View file

@ -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"
},

View file

@ -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]
}
}
}
"0.0": {
"post": [
-0.3,
-0.3,
0.3
],
"lerp_mode": "catmullrom"
},
"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]
"0.15": {
"post": [
0.3,
0,
-0.3
],
"lerp_mode": "catmullrom"
},
"position": {
"0.0": [0, 0, 0],
"0.0417": [0, 0, 0]
"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"
}
}
}
}

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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": [