优化动画

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 class Glock17ItemModel extends GeoModel<Glock17Item> {
public static float fireRotY = 0f;
public static float fireRotZ = 0f;
@Override @Override
public ResourceLocation getAnimationResource(Glock17Item animatable) { public ResourceLocation getAnimationResource(Glock17Item animatable) {
return Mod.loc("animations/glock17.animation.json"); return Mod.loc("animations/glock17.animation.json");
@ -59,7 +62,7 @@ public class Glock17ItemModel extends GeoModel<Glock17Item> {
double turnRotX = ClientEventHandler.turnRot[0]; double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1]; double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2]; double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ * 20 * times; double fpz = ClientEventHandler.firePosZ * 13 * times;
double fp = ClientEventHandler.firePos; double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot; double fr = ClientEventHandler.fireRot;
@ -71,21 +74,26 @@ public class Glock17ItemModel extends GeoModel<Glock17Item> {
gun.setScaleZ(1f - (0.55f * (float) zp)); gun.setScaleZ(1f - (0.55f * (float) zp));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); GeoBone body = getAnimationProcessor().getBone("gun");
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));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt))); fireRotY = (float) Mth.lerp(0.3f * times, fireRotY, 0.6f * ClientEventHandler.recoilHorizon * fpz);
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt))); fireRotZ = (float) Mth.lerp(2f * times, fireRotZ, (0.4f + 0.5 * fpz) * ClientEventHandler.recoilHorizon);
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)));
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); 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 class Glock18ItemModel extends GeoModel<Glock18Item> {
public static float fireRotY = 0f;
public static float fireRotZ = 0f;
@Override @Override
public ResourceLocation getAnimationResource(Glock18Item animatable) { public ResourceLocation getAnimationResource(Glock18Item animatable) {
return Mod.loc("animations/glock17.animation.json"); return Mod.loc("animations/glock17.animation.json");
@ -36,7 +39,6 @@ public class Glock18ItemModel extends GeoModel<Glock18Item> {
@Override @Override
public void setCustomAnimations(Glock18Item animatable, long instanceId, AnimationState animationState) { public void setCustomAnimations(Glock18Item animatable, long instanceId, AnimationState animationState) {
GeoBone gun = getAnimationProcessor().getBone("bone"); GeoBone gun = getAnimationProcessor().getBone("bone");
GeoBone shen = getAnimationProcessor().getBone("shen");
GeoBone slide = getAnimationProcessor().getBone("huatao"); GeoBone slide = getAnimationProcessor().getBone("huatao");
GeoBone bullet = getAnimationProcessor().getBone("bullet"); GeoBone bullet = getAnimationProcessor().getBone("bullet");
GeoBone switch_ = getAnimationProcessor().getBone("kuaimanji"); GeoBone switch_ = getAnimationProcessor().getBone("kuaimanji");
@ -69,7 +71,7 @@ public class Glock18ItemModel extends GeoModel<Glock18Item> {
double turnRotX = ClientEventHandler.turnRot[0]; double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1]; double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2]; double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ * 20 * times; double fpz = ClientEventHandler.firePosZ * 13 * times;
double fp = ClientEventHandler.firePos; double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot; double fr = ClientEventHandler.fireRot;
@ -81,21 +83,26 @@ public class Glock18ItemModel extends GeoModel<Glock18Item> {
gun.setScaleZ(1f - (0.55f * (float) zp)); gun.setScaleZ(1f - (0.55f * (float) zp));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); GeoBone body = getAnimationProcessor().getBone("gun");
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));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt))); fireRotY = (float) Mth.lerp(0.5f * times, fireRotY, 0.3f * ClientEventHandler.recoilHorizon * fpz);
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt))); fireRotZ = (float) Mth.lerp(2f * times, fireRotZ, (0.4f + 0.5 * fpz) * ClientEventHandler.recoilHorizon);
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)));
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); 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 class M1911ItemModel extends GeoModel<M1911Item> {
public static float fireRotY = 0f;
public static float fireRotZ = 0f;
@Override @Override
public ResourceLocation getAnimationResource(M1911Item animatable) { public ResourceLocation getAnimationResource(M1911Item animatable) {
return Mod.loc("animations/glock17.animation.json"); return Mod.loc("animations/glock17.animation.json");
@ -36,7 +39,6 @@ public class M1911ItemModel extends GeoModel<M1911Item> {
@Override @Override
public void setCustomAnimations(M1911Item animatable, long instanceId, AnimationState animationState) { public void setCustomAnimations(M1911Item animatable, long instanceId, AnimationState animationState) {
GeoBone gun = getAnimationProcessor().getBone("bone"); GeoBone gun = getAnimationProcessor().getBone("bone");
GeoBone shen = getAnimationProcessor().getBone("shen");
GeoBone slide = getAnimationProcessor().getBone("huatao"); GeoBone slide = getAnimationProcessor().getBone("huatao");
GeoBone bullet = getAnimationProcessor().getBone("bullet"); GeoBone bullet = getAnimationProcessor().getBone("bullet");
GeoBone hammer = getAnimationProcessor().getBone("hammer"); GeoBone hammer = getAnimationProcessor().getBone("hammer");
@ -72,21 +74,26 @@ public class M1911ItemModel extends GeoModel<M1911Item> {
gun.setScaleZ(1f - (0.55f * (float) zp)); gun.setScaleZ(1f - (0.55f * (float) zp));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); GeoBone body = getAnimationProcessor().getBone("gun");
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));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt))); fireRotY = (float) Mth.lerp(0.3f * times, fireRotY, 0.6f * ClientEventHandler.recoilHorizon * fpz);
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt))); fireRotZ = (float) Mth.lerp(2f * times, fireRotZ, (0.8f + 1 * fpz) * ClientEventHandler.recoilHorizon);
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)));
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); slide.setPosZ(2.75f * (float) fp);
hammer.setRotX(60 * Mth.DEG_TO_RAD + (120 * Mth.DEG_TO_RAD * (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 class Mp443ItemModel extends GeoModel<Mp443Item> {
public static float fireRotY = 0f;
public static float fireRotZ = 0f;
@Override @Override
public ResourceLocation getAnimationResource(Mp443Item animatable) { public ResourceLocation getAnimationResource(Mp443Item animatable) {
return Mod.loc("animations/glock17.animation.json"); return Mod.loc("animations/glock17.animation.json");
@ -36,7 +39,6 @@ public class Mp443ItemModel extends GeoModel<Mp443Item> {
@Override @Override
public void setCustomAnimations(Mp443Item animatable, long instanceId, AnimationState animationState) { public void setCustomAnimations(Mp443Item animatable, long instanceId, AnimationState animationState) {
GeoBone gun = getAnimationProcessor().getBone("bone"); GeoBone gun = getAnimationProcessor().getBone("bone");
GeoBone shen = getAnimationProcessor().getBone("shen");
GeoBone slide = getAnimationProcessor().getBone("huatao"); GeoBone slide = getAnimationProcessor().getBone("huatao");
GeoBone bullet = getAnimationProcessor().getBone("bullet"); GeoBone bullet = getAnimationProcessor().getBone("bullet");
GeoBone hammer = getAnimationProcessor().getBone("trigger"); GeoBone hammer = getAnimationProcessor().getBone("trigger");
@ -60,7 +62,7 @@ public class Mp443ItemModel extends GeoModel<Mp443Item> {
double turnRotX = ClientEventHandler.turnRot[0]; double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1]; double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2]; double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ * 20 * times; double fpz = ClientEventHandler.firePosZ * 13 * times;
double fp = ClientEventHandler.firePos; double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot; double fr = ClientEventHandler.fireRot;
@ -69,21 +71,26 @@ public class Mp443ItemModel extends GeoModel<Mp443Item> {
gun.setPosZ(7f * (float) zp + (float) (0.3f * zpz)); gun.setPosZ(7f * (float) zp + (float) (0.3f * zpz));
gun.setScaleZ(1f - (0.55f * (float) zp)); gun.setScaleZ(1f - (0.55f * (float) zp));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); GeoBone body = getAnimationProcessor().getBone("gun");
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));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt))); fireRotY = (float) Mth.lerp(0.3f * times, fireRotY, 0.6f * ClientEventHandler.recoilHorizon * fpz);
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt))); fireRotZ = (float) Mth.lerp(2f * times, fireRotZ, (0.4f + 0.5 * fpz) * ClientEventHandler.recoilHorizon);
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)));
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); slide.setPosZ(1.5f * (float) fp);
hammer.setRotX((120 * Mth.DEG_TO_RAD * (float) fp)); hammer.setRotX((120 * Mth.DEG_TO_RAD * (float) fp));

View file

@ -201,15 +201,27 @@
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.95": { "1.95": {
"post": [4.15, 1.63, 5.18], "post": [
-1,
1.63,
5.18
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.0333": { "2.0333": {
"post": [0.59, 0.41, -1.1425], "post": [
0.59,
-0.99,
-1.1425
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.1167": { "2.1167": {
"post": [-0.62, -0.09, 1.21625], "post": [
-0.62,
0.86,
1.21625
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.25": { "2.25": {
@ -299,18 +311,26 @@
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.9": { "1.9": {
"post": [0, -0.32, 0.7], "post": [
0,
-0.07,
-0.35
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.95": { "2.0": {
"post": [0, -0.21, 0.2], "post": [
0,
0.04,
0.9
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.0333": { "2.0667": {
"post": [0, 0.04, -0.15], "post": [0, 0.04, -0.15],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.1167": { "2.1667": {
"post": [0, 0, 0.2], "post": [0, 0, 0.2],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
@ -619,15 +639,27 @@
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.95": { "1.95": {
"post": [4.15, 1.63, 5.18], "post": [
-1,
1.63,
5.18
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.0333": { "2.0333": {
"post": [0.59, 0.41, -1.1425], "post": [
0.59,
-0.99,
-1.1425
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.1167": { "2.1167": {
"post": [-0.62, -0.09, 1.21625], "post": [
-0.62,
0.86,
1.21625
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.25": { "2.25": {
@ -717,18 +749,26 @@
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.9": { "1.9": {
"post": [0, -0.32, 0.7], "post": [
0,
-0.07,
-0.35
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.95": { "2.0": {
"post": [0, -0.21, 0.2], "post": [
0,
0.04,
0.9
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.0333": { "2.0667": {
"post": [0, 0.04, -0.15], "post": [0, 0.04, -0.15],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.1167": { "2.1667": {
"post": [0, 0, 0.2], "post": [0, 0, 0.2],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
@ -2038,15 +2078,27 @@
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.95": { "1.95": {
"post": [4.15, 1.63, 5.18], "post": [
-1,
1.63,
5.18
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.0333": { "2.0333": {
"post": [0.59, 0.41, -1.1425], "post": [
0.59,
-0.99,
-1.1425
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.1167": { "2.1167": {
"post": [-0.62, -0.09, 1.21625], "post": [
-0.62,
0.86,
1.21625
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.25": { "2.25": {
@ -2136,18 +2188,26 @@
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.9": { "1.9": {
"post": [0, -0.32, 0.7], "post": [
0,
-0.07,
-0.35
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.95": { "2.0": {
"post": [0, -0.21, 0.2], "post": [
0,
0.04,
0.9
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.0333": { "2.0667": {
"post": [0, 0.04, -0.15], "post": [0, 0.04, -0.15],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.1167": { "2.1667": {
"post": [0, 0, 0.2], "post": [0, 0, 0.2],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
@ -2456,15 +2516,27 @@
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.95": { "1.95": {
"post": [4.15, 1.63, 5.18], "post": [
-1,
1.63,
5.18
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.0333": { "2.0333": {
"post": [0.59, 0.41, -1.1425], "post": [
0.59,
-0.99,
-1.1425
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.1167": { "2.1167": {
"post": [-0.62, -0.09, 1.21625], "post": [
-0.62,
0.86,
1.21625
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.25": { "2.25": {
@ -2554,18 +2626,26 @@
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.9": { "1.9": {
"post": [0, -0.32, 0.7], "post": [
0,
-0.07,
-0.35
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.95": { "2.0": {
"post": [0, -0.21, 0.2], "post": [
0,
0.04,
0.9
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.0333": { "2.0667": {
"post": [0, 0.04, -0.15], "post": [0, 0.04, -0.15],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.1167": { "2.1667": {
"post": [0, 0, 0.2], "post": [0, 0, 0.2],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },

View file

@ -201,15 +201,27 @@
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.95": { "1.95": {
"post": [4.15, 1.63, 5.18], "post": [
-1,
1.63,
5.18
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.0333": { "2.0333": {
"post": [0.59, 0.41, -1.1425], "post": [
0.59,
-0.99,
-1.1425
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.1167": { "2.1167": {
"post": [-0.62, -0.09, 1.21625], "post": [
-0.62,
0.86,
1.21625
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.25": { "2.25": {
@ -299,18 +311,26 @@
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.9": { "1.9": {
"post": [0, -0.32, 0.7], "post": [
0,
-0.07,
-0.35
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.95": { "2.0": {
"post": [0, -0.21, 0.2], "post": [
0,
0.04,
0.9
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.0333": { "2.0667": {
"post": [0, 0.04, -0.15], "post": [0, 0.04, -0.15],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.1167": { "2.1667": {
"post": [0, 0, 0.2], "post": [0, 0, 0.2],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
@ -619,15 +639,27 @@
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.95": { "1.95": {
"post": [4.15, 1.63, 5.18], "post": [
-1,
1.63,
5.18
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.0333": { "2.0333": {
"post": [0.59, 0.41, -1.1425], "post": [
0.59,
-0.99,
-1.1425
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.1167": { "2.1167": {
"post": [-0.62, -0.09, 1.21625], "post": [
-0.62,
0.86,
1.21625
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.25": { "2.25": {
@ -717,18 +749,26 @@
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.9": { "1.9": {
"post": [0, -0.32, 0.7], "post": [
0,
-0.07,
-0.35
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.95": { "2.0": {
"post": [0, -0.21, 0.2], "post": [
0,
0.04,
0.9
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.0333": { "2.0667": {
"post": [0, 0.04, -0.15], "post": [0, 0.04, -0.15],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.1167": { "2.1667": {
"post": [0, 0, 0.2], "post": [0, 0, 0.2],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
@ -1426,15 +1466,27 @@
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.95": { "1.95": {
"post": [4.15, 1.63, 5.18], "post": [
-1,
1.63,
5.18
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.0333": { "2.0333": {
"post": [0.59, 0.41, -1.1425], "post": [
0.59,
-0.99,
-1.1425
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.1167": { "2.1167": {
"post": [-0.62, -0.09, 1.21625], "post": [
-0.62,
0.86,
1.21625
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.25": { "2.25": {
@ -1524,18 +1576,26 @@
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.9": { "1.9": {
"post": [0, -0.32, 0.7], "post": [
0,
-0.07,
-0.35
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.95": { "2.0": {
"post": [0, -0.21, 0.2], "post": [
0,
0.04,
0.9
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.0333": { "2.0667": {
"post": [0, 0.04, -0.15], "post": [0, 0.04, -0.15],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.1167": { "2.1667": {
"post": [0, 0, 0.2], "post": [0, 0, 0.2],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
@ -1844,15 +1904,27 @@
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.95": { "1.95": {
"post": [4.15, 1.63, 5.18], "post": [
-1,
1.63,
5.18
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.0333": { "2.0333": {
"post": [0.59, 0.41, -1.1425], "post": [
0.59,
-0.99,
-1.1425
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.1167": { "2.1167": {
"post": [-0.62, -0.09, 1.21625], "post": [
-0.62,
0.86,
1.21625
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.25": { "2.25": {
@ -1942,18 +2014,26 @@
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.9": { "1.9": {
"post": [0, -0.32, 0.7], "post": [
0,
-0.07,
-0.35
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"1.95": { "2.0": {
"post": [0, -0.21, 0.2], "post": [
0,
0.04,
0.9
],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.0333": { "2.0667": {
"post": [0, 0.04, -0.15], "post": [0, 0.04, -0.15],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },
"2.1167": { "2.1667": {
"post": [0, 0, 0.2], "post": [0, 0, 0.2],
"lerp_mode": "catmullrom" "lerp_mode": "catmullrom"
}, },

View file

@ -7,53 +7,292 @@
}, },
"animation.glock.run": { "animation.glock.run": {
"loop": true, "loop": true,
"animation_length": 0.8, "animation_length": 0.6,
"bones": { "bones": {
"0": { "0": {
"rotation": { "rotation": {
"0.0": [4.74287, -58.94632, 9.89514], "0.0": {
"0.2": [-8.55104, -59.60571, 19.61648], "post": [
"0.4": [-8.58141, -58.99717, 19.60323], -30.75713,
"0.6": [-0.82277, -58.8651, 9.93666], -24.19632,
"0.8": [4.74287, -58.94632, 9.89514] 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": { "position": {
"0.0": [5.5, -3, 0], "0.0": {
"0.2": [3.75, -2.5, 0], "post": [
"0.4": [2.5, -3, 0], 4,
"0.6": [4.25, -2.5, 0], -1.5,
"0.8": [5.5, -3, 0] 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": { "camera": {
"rotation": { "rotation": {
"0.0": [-0.3, -0.3, 0.3], "0.0": {
"0.2": [0.3, 0, -0.3], "post": [
"0.4": [-0.3, 0.3, 0.3], -0.3,
"0.6": [0.3, 0, -0.3], -0.3,
"0.8": [-0.3, -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": { "animation.glock.run_fast": {
"loop": true, "loop": true,
"animation_length": 0.7, "animation_length": 0.6,
"bones": { "bones": {
"0": { "0": {
"rotation": { "rotation": {
"0.0": [-64.40359, 6.54216, -8.29677], "0.0": {
"0.175": [-63.64549, 6.90094, -2.09726], "post": [
"0.35": [-64.40359, 6.54216, -8.29677], -64.40359,
"0.525": [-65.4022, 6.21514, -14.3956], 7.54216,
"0.7": [-64.40359, 6.54216, -8.29677] -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": { "position": {
"0.0": [-8.5, 4, 2], "0.0": {
"0.175": [-8.5, 6, 3], "post": [
"0.35": [-10.5, 4, 2], -6.25,
"0.525": [-9.5, 6, 2], 1.75,
"0.7": [-8.5, 4, 2] 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": { "Lefthand": {
@ -62,28 +301,46 @@
}, },
"camera": { "camera": {
"rotation": { "rotation": {
"0.0": [-0.3, -0.3, 0.3], "0.0": {
"0.175": [0.3, 0, -0.3], "post": [
"0.35": [-0.3, 0.3, 0.3], -0.3,
"0.525": [0.3, 0, -0.3], -0.3,
"0.7": [-0.3, -0.3, 0.3] 0.3
} ],
} "lerp_mode": "catmullrom"
}
}, },
"animation.glock.fire": { "0.15": {
"loop": "hold_on_last_frame", "post": [
"animation_length": 0.0833, 0.3,
"override_previous_animation": true, 0,
"bones": { -0.3
"lun": { ],
"rotation": { "lerp_mode": "catmullrom"
"0.0": [0, 0, 0],
"0.0417": [0, 0, -22.5]
}, },
"position": { "0.3": {
"0.0": [0, 0, 0], "post": [
"0.0417": [0, 0, 0] -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", "parent": "root",
"pivot": [8, 10, -8] "pivot": [8, 10, -8]
}, },
{
"name": "shen",
"parent": "bone",
"pivot": [0, 0, 0]
},
{ {
"name": "0", "name": "0",
"parent": "shen", "parent": "bone",
"pivot": [0, 0, 0] "pivot": [0, 0, 0]
}, },
{ {
"name": "gun", "name": "gun",
"parent": "0", "parent": "0",
"pivot": [0, 0.46563, 1.72795] "pivot": [
0,
1.71563,
3.72795
]
}, },
{ {
"name": "flare", "name": "flare",

View file

@ -24,20 +24,19 @@
"parent": "root", "parent": "root",
"pivot": [8, 10, -8] "pivot": [8, 10, -8]
}, },
{
"name": "shen",
"parent": "bone",
"pivot": [0, 0, 0]
},
{ {
"name": "0", "name": "0",
"parent": "shen", "parent": "bone",
"pivot": [0, 0, 0] "pivot": [0, 0, 0]
}, },
{ {
"name": "gun", "name": "gun",
"parent": "0", "parent": "0",
"pivot": [0, 0.46563, 1.72795] "pivot": [
0,
1.71563,
3.72795
]
}, },
{ {
"name": "flare", "name": "flare",

View file

@ -24,20 +24,19 @@
"parent": "root", "parent": "root",
"pivot": [8, 10, -8] "pivot": [8, 10, -8]
}, },
{
"name": "shen",
"parent": "bone",
"pivot": [0, 0, 0]
},
{ {
"name": "0", "name": "0",
"parent": "shen", "parent": "bone",
"pivot": [0, 0, 0] "pivot": [0, 0, 0]
}, },
{ {
"name": "gun", "name": "gun",
"parent": "0", "parent": "0",
"pivot": [0, 0.46563, 1.72795] "pivot": [
0,
1.26563,
3.37795
]
}, },
{ {
"name": "flare", "name": "flare",

View file

@ -24,20 +24,19 @@
"parent": "root", "parent": "root",
"pivot": [8, 9.5, -8.5] "pivot": [8, 9.5, -8.5]
}, },
{
"name": "shen",
"parent": "bone",
"pivot": [0, -0.5, -0.5]
},
{ {
"name": "0", "name": "0",
"parent": "shen", "parent": "bone",
"pivot": [0, 0, -1.5] "pivot": [0, 0, -1.5]
}, },
{ {
"name": "gun", "name": "gun",
"parent": "0", "parent": "0",
"pivot": [0, 0.25, 2] "pivot": [
0,
1,
4
]
}, },
{ {
"name": "huatao", "name": "huatao",
@ -2788,7 +2787,7 @@
}, },
{ {
"name": "magazine", "name": "magazine",
"parent": "0", "parent": "gun",
"pivot": [0, -1, 2.75] "pivot": [0, -1, 2.75]
}, },
{ {
@ -3110,7 +3109,7 @@
}, },
{ {
"name": "Righthand", "name": "Righthand",
"parent": "0", "parent": "gun",
"pivot": [-0.60468, -1.58634, 0.54587], "pivot": [-0.60468, -1.58634, 0.54587],
"rotation": [-76.32882, 10.3564, 179.6036], "rotation": [-76.32882, 10.3564, 179.6036],
"cubes": [ "cubes": [