From 48cf5f5e7c77db9494b398d16654f012ecc78080 Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Fri, 24 May 2024 01:40:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A8=E7=94=BB=E6=9B=B4=E6=96=B0(HK416,M4)?= =?UTF-8?q?=EF=BC=8C=E5=87=8F=E5=BC=B1=E5=A5=94=E8=B7=91=E8=A7=86=E8=A7=92?= =?UTF-8?q?=E6=91=87=E6=99=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/model/item/Hk416ItemModel.java | 9 + .../target/client/model/item/M4ItemModel.java | 9 + .../client/renderer/item/M4ItemRenderer.java | 98 -- .../target/event/ClientEventHandler.java | 4 +- .../mcreator/target/item/gun/Hk416Item.java | 8 +- .../net/mcreator/target/item/gun/M4Item.java | 8 +- .../procedures/PlayerReloadProcedure.java | 4 +- .../target/animations/ak.animation.json | 10 +- .../target/animations/hk416.animation.json | 1028 +++++++++++------ .../target/animations/m4.animation.json | 1008 ++++++++++------ .../target/animations/m79.animation.json | 10 +- .../target/animations/rpg.animation.json | 10 +- .../target/animations/rpk.animation.json | 10 +- .../target/animations/sks.animation.json | 10 +- .../target/animations/svd.animation.json | 10 +- .../assets/target/geo/hk416.geo.json | 4 + .../resources/assets/target/geo/m4.geo.json | 6 + .../sounds/hk_416/hk_416_reload_empty.ogg | Bin 34458 -> 35429 bytes .../sounds/hk_416/hk_416_reload_normal.ogg | Bin 29282 -> 29857 bytes .../target/sounds/m_4/m_4_reload_empty.ogg | Bin 34458 -> 35429 bytes .../target/sounds/m_4/m_4_reload_normal.ogg | Bin 29282 -> 29857 bytes 21 files changed, 1357 insertions(+), 889 deletions(-) diff --git a/src/main/java/net/mcreator/target/client/model/item/Hk416ItemModel.java b/src/main/java/net/mcreator/target/client/model/item/Hk416ItemModel.java index 852c10f87..29febad35 100644 --- a/src/main/java/net/mcreator/target/client/model/item/Hk416ItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/Hk416ItemModel.java @@ -4,6 +4,7 @@ import net.mcreator.target.item.gun.Hk416Item; import net.mcreator.target.network.TargetModVariables; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import software.bernie.geckolib.core.animatable.model.CoreGeoBone; @@ -130,5 +131,13 @@ public class Hk416ItemModel extends GeoModel { move.setRotZ(3.7f * (float) yaw + 2.7f * (float) m); move.setRotY(1.9f * (float) yaw - 1.7f * (float) m); + + CoreGeoBone camera = getAnimationProcessor().getBone("camera"); + + player.getPersistentData().putDouble("camera_rot_x", Mth.RAD_TO_DEG * camera.getRotX()); + + player.getPersistentData().putDouble("camera_rot_y", Mth.RAD_TO_DEG * camera.getRotY()); + + player.getPersistentData().putDouble("camera_rot_z", Mth.RAD_TO_DEG * camera.getRotZ()); } } diff --git a/src/main/java/net/mcreator/target/client/model/item/M4ItemModel.java b/src/main/java/net/mcreator/target/client/model/item/M4ItemModel.java index d1492d0ca..7a8908eee 100644 --- a/src/main/java/net/mcreator/target/client/model/item/M4ItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/M4ItemModel.java @@ -4,6 +4,7 @@ import net.mcreator.target.item.gun.M4Item; import net.mcreator.target.network.TargetModVariables; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import software.bernie.geckolib.core.animatable.model.CoreGeoBone; @@ -120,5 +121,13 @@ public class M4ItemModel extends GeoModel { move.setRotZ(3.7f * (float) yaw + 2.7f * (float) m); move.setRotY(1.9f * (float) yaw - 1.7f * (float) m); + + CoreGeoBone camera = getAnimationProcessor().getBone("camera"); + + player.getPersistentData().putDouble("camera_rot_x", Mth.RAD_TO_DEG * camera.getRotX()); + + player.getPersistentData().putDouble("camera_rot_y", Mth.RAD_TO_DEG * camera.getRotY()); + + player.getPersistentData().putDouble("camera_rot_z", Mth.RAD_TO_DEG * camera.getRotZ()); } } diff --git a/src/main/java/net/mcreator/target/client/renderer/item/M4ItemRenderer.java b/src/main/java/net/mcreator/target/client/renderer/item/M4ItemRenderer.java index 1d3037a7e..d8dd7e7be 100644 --- a/src/main/java/net/mcreator/target/client/renderer/item/M4ItemRenderer.java +++ b/src/main/java/net/mcreator/target/client/renderer/item/M4ItemRenderer.java @@ -1,29 +1,7 @@ package net.mcreator.target.client.renderer.item; -import software.bernie.geckolib.util.RenderUtils; import software.bernie.geckolib.renderer.GeoItemRenderer; -import software.bernie.geckolib.cache.object.GeoBone; -import software.bernie.geckolib.cache.object.BakedGeoModel; - -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.resources.ResourceLocation; -import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.client.renderer.entity.player.PlayerRenderer; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.player.AbstractClientPlayer; -import net.minecraft.client.model.PlayerModel; -import net.minecraft.client.Minecraft; - -import net.mcreator.target.tools.AnimUtils; - -import java.util.Set; -import java.util.HashSet; - -import com.mojang.blaze3d.vertex.VertexConsumer; -import com.mojang.blaze3d.vertex.PoseStack; - import net.mcreator.target.item.gun.M4Item; import net.mcreator.target.client.layer.M4Layer; @@ -35,82 +13,6 @@ public class M4ItemRenderer extends GeoItemRenderer { this.addRenderLayer(new M4Layer(this)); } - @Override - public RenderType getRenderType(M4Item animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { - return RenderType.entityTranslucent(getTextureLocation(animatable)); - } - - private static final float SCALE_RECIPROCAL = 1.0f / 16.0f; - protected boolean renderArms = false; - protected MultiBufferSource currentBuffer; - protected RenderType renderType; - public ItemDisplayContext transformType; - protected M4Item animatable; - private final Set hiddenBones = new HashSet<>(); - private final Set suppressedBones = new HashSet<>(); - - @Override - public void renderByItem(ItemStack stack, ItemDisplayContext transformType, PoseStack matrixStack, MultiBufferSource bufferIn, int combinedLightIn, int p_239207_6_) { - this.transformType = transformType; - if (this.animatable != null) - this.animatable.getTransformType(transformType); - super.renderByItem(stack, transformType, matrixStack, bufferIn, combinedLightIn, p_239207_6_); - } - - @Override - public void actuallyRender(PoseStack matrixStackIn, M4Item animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn, - int packedOverlayIn, float red, float green, float blue, float alpha) { - this.currentBuffer = renderTypeBuffer; - this.renderType = type; - this.animatable = animatable; - super.actuallyRender(matrixStackIn, animatable, model, type, renderTypeBuffer, vertexBuilder, isRenderer, partialTicks, packedLightIn, packedOverlayIn, red, green, blue, alpha); - if (this.renderArms) { - this.renderArms = false; - } - } - - @Override - public void renderRecursively(PoseStack stack, M4Item animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red, - float green, float blue, float alpha) { - Minecraft mc = Minecraft.getInstance(); - String name = bone.getName(); - boolean renderingArms = false; - if (name.equals("Lefthand") || name.equals("Righthand")) { - bone.setHidden(true); - renderingArms = true; - } else { - bone.setHidden(this.hiddenBones.contains(name)); - } - if (this.transformType.firstPerson() && renderingArms) { - AbstractClientPlayer player = mc.player; - float armsAlpha = player.isInvisible() ? 0.15f : 1.0f; - PlayerRenderer playerRenderer = (PlayerRenderer) mc.getEntityRenderDispatcher().getRenderer(player); - PlayerModel model = playerRenderer.getModel(); - stack.pushPose(); - RenderUtils.translateMatrixToBone(stack, bone); - RenderUtils.translateToPivotPoint(stack, bone); - RenderUtils.rotateMatrixAroundBone(stack, bone); - RenderUtils.scaleMatrixForBone(stack, bone); - RenderUtils.translateAwayFromPivotPoint(stack, bone); - ResourceLocation loc = player.getSkinTextureLocation(); - VertexConsumer armBuilder = this.currentBuffer.getBuffer(RenderType.entitySolid(loc)); - VertexConsumer sleeveBuilder = this.currentBuffer.getBuffer(RenderType.entityTranslucent(loc)); - if (name.equals("Lefthand")) { - stack.translate(-1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); - AnimUtils.renderPartOverBone(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, armsAlpha); - AnimUtils.renderPartOverBone(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, armsAlpha); - } else if (name.equals("Righthand")) { - stack.translate(1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); - AnimUtils.renderPartOverBone(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, armsAlpha); - AnimUtils.renderPartOverBone(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, armsAlpha); - } - this.currentBuffer.getBuffer(RenderType.entityTranslucent(getTextureLocation(this.animatable))); - stack.popPose(); - } - super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, red, green, blue, alpha); - } - - @Override public ResourceLocation getTextureLocation(M4Item instance) { return super.getTextureLocation(instance); diff --git a/src/main/java/net/mcreator/target/event/ClientEventHandler.java b/src/main/java/net/mcreator/target/event/ClientEventHandler.java index 0398c9d27..5fcaf1579 100644 --- a/src/main/java/net/mcreator/target/event/ClientEventHandler.java +++ b/src/main/java/net/mcreator/target/event/ClientEventHandler.java @@ -79,9 +79,9 @@ public class ClientEventHandler { double on_ground; if (entity.onGround()) { if (entity.isSprinting()) { - on_ground = 1.2; + on_ground = 1.0; } else { - on_ground = 2.4; + on_ground = 2.0; } } else { on_ground = 0.001; diff --git a/src/main/java/net/mcreator/target/item/gun/Hk416Item.java b/src/main/java/net/mcreator/target/item/gun/Hk416Item.java index fcc3babd8..4184893ce 100644 --- a/src/main/java/net/mcreator/target/item/gun/Hk416Item.java +++ b/src/main/java/net/mcreator/target/item/gun/Hk416Item.java @@ -87,11 +87,11 @@ public class Hk416Item extends GunItem implements GeoItem, AnimatedItem { } if (stack.getOrCreateTag().getBoolean("reloading") && stack.getOrCreateTag().getBoolean("empty_reload")) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m4.reload")); + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m4.reload_empty")); } if (stack.getOrCreateTag().getBoolean("reloading") && !stack.getOrCreateTag().getBoolean("empty_reload")) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m4.reload2")); + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m4.reload_normal")); } if (stack.getOrCreateTag().getInt("fire_mode") == 0 && stack.getOrCreateTag().getDouble("cg") > 0) { @@ -180,7 +180,7 @@ public class Hk416Item extends GunItem implements GeoItem, AnimatedItem { tag.putDouble("reload_time", 0); } if (tag.getBoolean("reloading") && tag.getInt("ammo") == 0) { - if (tag.getDouble("reload_time") == 55) { + if (tag.getDouble("reload_time") == 61) { entity.getPersistentData().putDouble("id", id); if (entity instanceof ServerPlayer serverPlayer) { SoundTool.playLocalSound(serverPlayer, TargetModSounds.HK_416_RELOAD_EMPTY.get(), 100, 1); @@ -200,7 +200,7 @@ public class Hk416Item extends GunItem implements GeoItem, AnimatedItem { GunReload.reload(entity, GunInfo.Type.RIFLE); } } else if (tag.getBoolean("reloading") && tag.getInt("ammo") > 0) { - if (tag.getDouble("reload_time") == 41) { + if (tag.getDouble("reload_time") == 53) { entity.getPersistentData().putDouble("id", id); { if (entity instanceof ServerPlayer serverPlayer) { diff --git a/src/main/java/net/mcreator/target/item/gun/M4Item.java b/src/main/java/net/mcreator/target/item/gun/M4Item.java index fe7700621..a9e356c21 100644 --- a/src/main/java/net/mcreator/target/item/gun/M4Item.java +++ b/src/main/java/net/mcreator/target/item/gun/M4Item.java @@ -87,11 +87,11 @@ public class M4Item extends GunItem implements GeoItem, AnimatedItem { } if (stack.getOrCreateTag().getBoolean("reloading") && stack.getOrCreateTag().getBoolean("empty_reload")) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m4.reload")); + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m4.reload_empty")); } if (stack.getOrCreateTag().getBoolean("reloading") && !stack.getOrCreateTag().getBoolean("empty_reload")) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m4.reload2")); + return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m4.reload_normal")); } if (stack.getOrCreateTag().getInt("fire_mode") == 0 && stack.getOrCreateTag().getDouble("cg") > 0) { @@ -179,7 +179,7 @@ public class M4Item extends GunItem implements GeoItem, AnimatedItem { tag.putDouble("reload_time", 0); } if (tag.getBoolean("reloading") && tag.getInt("ammo") == 0) { - if (tag.getDouble("reload_time") == 55) { + if (tag.getDouble("reload_time") == 61) { if (entity instanceof ServerPlayer serverPlayer) { SoundTool.playLocalSound(serverPlayer, TargetModSounds.M_4_RELOAD_EMPTY.get(), 100, 1); } @@ -199,7 +199,7 @@ public class M4Item extends GunItem implements GeoItem, AnimatedItem { GunReload.reload(entity, GunInfo.Type.RIFLE); } } else if (tag.getBoolean("reloading") && tag.getInt("ammo") > 0) { - if (tag.getDouble("reload_time") == 41) { + if (tag.getDouble("reload_time") == 53) { if (entity instanceof ServerPlayer serverPlayer) { SoundTool.playLocalSound(serverPlayer, TargetModSounds.M_4_RELOAD_NORMAL.get(), 100, 1); } diff --git a/src/main/java/net/mcreator/target/procedures/PlayerReloadProcedure.java b/src/main/java/net/mcreator/target/procedures/PlayerReloadProcedure.java index 9940ee983..cc17df3d1 100644 --- a/src/main/java/net/mcreator/target/procedures/PlayerReloadProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/PlayerReloadProcedure.java @@ -196,12 +196,12 @@ public class PlayerReloadProcedure { tag.putBoolean("reloading", true); tag.putBoolean("empty_reload", false); tag.putDouble("id", (Mth.nextDouble(RandomSource.create(), 1, 1919810))); - tag.putDouble("reload_time", 41); + tag.putDouble("reload_time", 53); } else if (tag.getInt("ammo") == 0) { tag.putBoolean("reloading", true); tag.putDouble("empty_reload", 1); tag.putDouble("id", (Mth.nextDouble(RandomSource.create(), 1, 1919810))); - tag.putDouble("reload_time", 55); + tag.putDouble("reload_time", 61); } } if (player.getMainHandItem().getItem() == TargetModItems.AA_12.get() diff --git a/src/main/resources/assets/target/animations/ak.animation.json b/src/main/resources/assets/target/animations/ak.animation.json index 08f8af0bc..1b438aa63 100644 --- a/src/main/resources/assets/target/animations/ak.animation.json +++ b/src/main/resources/assets/target/animations/ak.animation.json @@ -263,19 +263,19 @@ "camera": { "rotation": { "0.0": { - "vector": [-0.5, -0.5, 0.5] + "vector": [-0.3, -0.3, 0.3] }, "0.2": { - "vector": [0.5, 0, -0.5] + "vector": [0.3, 0, -0.3] }, "0.4": { - "vector": [-0.5, 0.5, 0.5] + "vector": [-0.3, 0.3, 0.3] }, "0.6": { - "vector": [0.5, 0, -0.5] + "vector": [0.3, 0, -0.3] }, "0.8": { - "vector": [-0.5, -0.5, 0.5] + "vector": [-0.3, -0.3, 0.3] } } } diff --git a/src/main/resources/assets/target/animations/hk416.animation.json b/src/main/resources/assets/target/animations/hk416.animation.json index 740c0ed08..ea00081da 100644 --- a/src/main/resources/assets/target/animations/hk416.animation.json +++ b/src/main/resources/assets/target/animations/hk416.animation.json @@ -6,7 +6,7 @@ "animation_length": 1 }, "animation.m4.draw": { - "animation_length": 0.9, + "animation_length": 1, "bones": { "0": { "rotation": { @@ -40,6 +40,24 @@ "vector": [0, 0, 0] } } + }, + "camera": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.4167": { + "vector": [0, 0, 0] + }, + "0.5": { + "vector": [0.25, -0.5, 0.5], + "easing": "easeInSine" + }, + "0.5833": { + "vector": [0, 0, 0], + "easing": "easeOutSine" + } + } } } }, @@ -172,107 +190,23 @@ "easing": "easeOutSine" } } - } - } - }, - "animation.m4.hit": { - "animation_length": 0.6, - "bones": { - "0": { + }, + "camera": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "vector": [-0.3, -0.3, 0.3] }, "0.2": { - "vector": [-147.50541, 34.52809, 101.28078], - "easing": "easeOutSine" + "vector": [0.3, 0, -0.3] }, "0.4": { - "vector": [-13.26827, 5.92455, 35.88217], - "easing": "easeInSine" + "vector": [-0.3, 0.3, 0.3] }, "0.6": { - "vector": [0, 0, 0], - "easing": "easeOutSine" - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] + "vector": [0.3, 0, -0.3] }, - "0.1": { - "vector": [3.36, -2.44, -4.42] - }, - "0.2": { - "vector": [8.55, -0.7, -9.85], - "easing": "easeOutSine" - }, - "0.4": { - "vector": [0.97, 0.75, -3.12], - "easing": "easeInSine" - }, - "0.6": { - "vector": [0, 0, 0], - "easing": "easeOutSine" - } - } - }, - "Righthand": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.3": { - "vector": [112.5, 0, 0], - "easing": "easeOutSine" - }, - "0.6": { - "vector": [0, 0, 0], - "easing": "easeOutSine" - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.3": { - "vector": [0, 15, -10], - "easing": "easeOutSine" - }, - "0.6": { - "vector": [0, 0, 0], - "easing": "easeOutSine" - } - } - }, - "Lefthand": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.3": { - "vector": [135, 0, 0], - "easing": "easeOutSine" - }, - "0.6": { - "vector": [0, 0, 0], - "easing": "easeOutSine" - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.2": { - "vector": [-4.29, 19.16875, -9.15] - }, - "0.3": { - "vector": [-6, 16, -10], - "easing": "easeOutSine" - }, - "0.6": { - "vector": [0, 0, 0], - "easing": "easeOutSine" + "0.8": { + "vector": [-0.3, -0.3, 0.3] } } } @@ -282,16 +216,6 @@ "animation_length": 0.04, "override_previous_animation": true, "bones": { - "0": { - "rotation": { - "0.0": { - "vector": [-0.5, 0, -0.75] - }, - "0.04": { - "vector": [0, 0, 0] - } - } - }, "bolt": { "position": { "0.0": { @@ -306,62 +230,203 @@ } } }, - "animation.m4.reload": { - "animation_length": 2.7, - "override_previous_animation": true, + "animation.m4.reload_empty": { + "loop": "hold_on_last_frame", + "animation_length": 3.125, "bones": { "0": { + "rotation": { + "0.0417": { + "vector": [0, 0, 0] + }, + "0.125": { + "vector": [1.18324, 1.40448, 3.98547] + }, + "0.3333": { + "vector": [-14.01, 2.98, -9.37] + }, + "0.4167": { + "vector": [-12.25012, 1.71575, -15.23679] + }, + "0.5": { + "vector": [-13.67625, 0.53753, -20.43357] + }, + "0.5417": { + "vector": [-14.36146, -0.34228, -23.99804] + }, + "0.625": { + "vector": [-15.36586, -0.75486, -21.85957] + }, + "0.7083": { + "vector": [-3.42984, -0.39385, -15.87027] + }, + "0.875": { + "vector": [-12.35117, -0.9689, -22.83651] + }, + "1.0417": { + "vector": [-16.3817, -0.19101, -19.94063] + }, + "1.2083": { + "vector": [-11.33329, -1.14849, -23.82073] + }, + "1.4167": { + "vector": [-10.66408, -4.02619, -38.55877], + "easing": "easeInSine" + }, + "1.5": { + "vector": [-13.44223, -4.57576, -41.51634] + }, + "1.5833": { + "vector": [-10.27854, -4.93547, -43.49053] + }, + "1.6667": { + "vector": [-9.91402, -5.63696, -47.44539] + }, + "1.7917": { + "vector": [-11.91402, -5.63696, -47.44539] + }, + "1.875": { + "vector": [-17.49684, -6.85391, -51.27861] + }, + "2.25": { + "vector": [-13.3424, -0.71426, -23.88584], + "easing": "easeInElastic" + }, + "2.3333": { + "vector": [-13.9971, 5.8821, -30.62885], + "easing": "easeInElastic" + }, + "2.4583": { + "vector": [-13.35402, 0.44077, -19.02098], + "easing": "easeInElastic" + }, + "2.5417": { + "vector": [-9.53304, 1.46221, -17.39249] + }, + "2.6667": { + "vector": [-3.8135, -0.9118, -6.85724] + }, + "2.8333": { + "vector": [0, 0, -2] + }, + "2.9583": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0417": { + "vector": [0, 0, 0] + }, + "0.2917": { + "vector": [-1.1, 0.3, 1.9], + "easing": "easeInQuad" + }, + "0.4167": { + "vector": [-1.1, 0, 1.2], + "easing": "easeOutSine" + }, + "0.5417": { + "vector": [-1.1, 0, 1.4] + }, + "0.625": { + "vector": [-1.1, 0, 1.3] + }, + "0.7083": { + "vector": [-0.75494, -0.64671, 0.87721] + }, + "0.7917": { + "vector": [-1.1, 0, 1.3] + }, + "0.9583": { + "vector": [-0.95347, -0.36221, 1.21435] + }, + "1.125": { + "vector": [-0.84854, -0.60732, 1.04107] + }, + "1.2917": { + "vector": [-0.88449, -0.56099, 1.25543] + }, + "1.4167": { + "vector": [-0.89507, -0.06932, 1.3549] + }, + "1.5": { + "vector": [-1.16342, 0.21638, 1.44269] + }, + "1.5833": { + "vector": [-1.03823, 0.0689, 1.38061] + }, + "1.6667": { + "vector": [-0.91462, 0.05514, 1.36807] + }, + "1.7917": { + "vector": [-0.68888, -0.13612, 1.3186] + }, + "1.875": { + "vector": [-1.65765, 0.66955, 1.6243], + "easing": "easeInSine" + }, + "2.0": { + "vector": [-0.8044, 0.0239, 1.36148], + "easing": "easeOutSine" + }, + "2.125": { + "vector": [-0.55391, 0.01857, 1.28596], + "easing": "easeInSine" + }, + "2.25": { + "vector": [-0.62538, 0.12257, 1.2652] + }, + "2.3333": { + "vector": [-1.17857, -0.12293, 1.26252], + "easing": "easeInElastic" + }, + "2.375": { + "vector": [-1.14634, -0.11121, 1.26544] + }, + "2.4583": { + "vector": [-0.62538, 0.12257, 1.2652] + }, + "2.5833": { + "vector": [-0.47388, 0.04235, 0.71917] + }, + "2.75": { + "vector": [0, 0, 0.93] + }, + "2.875": { + "vector": [0, 0, -0.3] + }, + "2.9583": { + "vector": [0, 0, 0] + } + } + }, + "magazine": { "rotation": { "0.0": { "vector": [0, 0, 0] }, - "0.3": { - "vector": [-7.36643, -0.63834, -10.92412], - "easing": "easeInOutBack" + "0.6667": { + "vector": [0, 0, 0] }, - "0.4": { - "vector": [-7.36643, -0.63834, -10.92412], - "easing": "easeInOutBack" + "0.9167": { + "vector": [0, 0, 0], + "easing": "easeInElastic" }, - "0.5": { - "vector": [-5.73105, 0.56832, -2.74459] + "1.1667": { + "vector": [0, 0, 0], + "easing": "easeInElastic" }, - "0.6": { - "vector": [-5.74094, 1.82028, -2.37506] + "1.4167": { + "vector": [-21, 0, -11] }, - "0.8": { - "vector": [-8.80119, -0.6625, -13.87839] - }, - "0.9": { - "vector": [-9.99781, -1.28863, -15.42107] - }, - "1.2": { - "vector": [-8.05387, -0.21402, -9.97165] - }, - "1.4": { - "vector": [-7.36061, -1.11472, -16.0572] - }, - "1.5": { - "vector": [-8.61369, -0.04771, -16.4108] - }, - "1.7": { - "vector": [-3.15746, 3.15575, -8.04933] - }, - "1.8": { - "vector": [-3.45287, 3.53372, -17.77362], + "1.5833": { + "vector": [-14, 0, -5.83], "easing": "easeInSine" }, - "2.2": { - "vector": [0, 0, 0], - "easing": "easeOutSine" + "1.7917": { + "vector": [0, 0, 0] }, - "2.3": { - "vector": [0.58201, -1.04064, 2.6563] - }, - "2.4": { - "vector": [0.32388, 0.39763, -2.15014] - }, - "2.5": { + "1.9167": { "vector": [0, 0, 0] } }, @@ -369,53 +434,33 @@ "0.0": { "vector": [0, 0, 0] }, - "0.1": { - "vector": [-0.06, 0.49, -1.47] + "0.6667": { + "vector": [0, 0, 0] }, - "0.3": { - "vector": [-0.07, 0.48547, -0.71] + "0.9167": { + "vector": [0, -15, 0], + "easing": "easeInElastic" }, - "0.4": { - "vector": [-0.1, 0.9, -0.98] + "1.1667": { + "vector": [0, -15, 0], + "easing": "easeInElastic" }, - "0.5": { - "vector": [-0.11, 0, -1.03] - }, - "0.6": { - "vector": [-0.12, 0.84, -1.09] - }, - "0.8": { - "vector": [-0.15, 1.31, -0.2] - }, - "1.1": { - "vector": [-0.2, 1.53, -0.11] - }, - "1.2": { - "vector": [-0.18, 1.49, -0.11] - }, - "1.4": { - "vector": [-0.16, 1.44, -0.12] - }, - "1.5": { - "vector": [-0.63, 1.98, -0.12] - }, - "1.6": { - "vector": [-0.11, 1.29, -0.12] - }, - "1.7": { - "vector": [0.34, 1.21, -0.13] - }, - "1.8": { - "vector": [-0.45, 0.83, -0.11], + "1.4167": { + "vector": [0.21094, -3.16719, -0.98516], "easing": "easeInSine" }, - "2.2": { - "vector": [0.4, 0, -0.6] + "1.5833": { + "vector": [0.14, -2.94422, -0.47], + "easing": "easeInSine" }, - "2.4": { - "vector": [0.16, -0.15, 0.275] + "1.7083": { + "vector": [0.07, -3.12625, -0.09719], + "easing": "easeInSine" }, - "2.5": { + "1.7917": { + "vector": [0, 0, 0] + }, + "1.9167": { "vector": [0, 0, 0] } } @@ -425,33 +470,56 @@ "0.0": { "vector": [0, 0, 0] }, - "0.1": { - "vector": [0, 0, 22.5] + "0.375": { + "vector": [0, 0, 0] }, - "0.2": { - "vector": [0, 0, 15] + "0.4583": { + "vector": [-3.81928, -8.59364, -9.17363] }, - "1.6": { - "vector": [0, 0, 15] + "0.5417": { + "vector": [0, 1.5, 1] }, - "1.7": { - "vector": [-17.62507, -32.8034, 18.28494] + "0.625": { + "vector": [0, 1.5, 1] }, - "1.8": { - "vector": [-15.46722, -16.63005, 1.48245] + "0.9167": { + "vector": [0, 1.5, 1] }, - "1.9": { + "1.0": { + "vector": [-1.80149, -4.34261, -11.56806] + }, + "1.9167": { + "vector": [-1.80149, -4.34261, -11.56806] + }, + "2.0417": { + "vector": [8.98588, -28.60432, 4.50464] + }, + "2.1667": { + "vector": [-22.62507, -32.8034, 18.28494] + }, + "2.2083": { + "vector": [-22.62507, -32.8034, 18.28494] + }, + "2.2917": { + "vector": [-15.46722, -16.63005, 1.48245], + "easing": "easeInElastic" + }, + "2.375": { + "vector": [-15.46722, -16.63005, 1.48245], + "easing": "easeInElastic" + }, + "2.4583": { "vector": [-15.14496, -21.26229, 5.31052], "easing": "easeOutSine" }, - "2.0": { + "2.5417": { "vector": [3.06668, -17.33275, 4.18047], "easing": "easeInOutSine" }, - "2.1": { - "vector": [0, 0, 22.5] + "2.6667": { + "vector": [-8.03996, -14.46909, -5.02907] }, - "2.2": { + "2.75": { "vector": [0, 0, 0] } }, @@ -459,30 +527,270 @@ "0.0": { "vector": [0, 0, 0] }, - "0.2": { + "0.375": { + "vector": [0, 0, 0] + }, + "0.4583": { + "vector": [1.89205, -2.68839, 4.36626] + }, + "0.5417": { "vector": [0, -4, 5] }, - "1.6": { + "0.625": { "vector": [0, -4, 5] }, - "1.7": { + "0.9167": { + "vector": [0, -4, 5] + }, + "1.0": { + "vector": [-0.3, -3.7, 5.6] + }, + "1.9167": { + "vector": [-0.3, -3.7, 5.6] + }, + "2.1667": { "vector": [-1, -2, 7] }, - "1.8": { - "vector": [-0.51, -1.43, 7.2] + "2.2083": { + "vector": [-1, -2, 7] }, - "1.9": { + "2.2917": { + "vector": [-0.51, -1.43, 7.2], + "easing": "easeInElastic" + }, + "2.375": { + "vector": [-0.51, -1.43, 7.2], + "easing": "easeInElastic" + }, + "2.4583": { "vector": [-0.51, -1.43, 7.2], "easing": "easeOutSine" }, - "2.0": { + "2.5417": { "vector": [0.29, -0.14, 6.76], "easing": "easeInOutSine" }, - "2.1": { + "2.6667": { "vector": [0.14, -2.57, 2.38] }, - "2.2": { + "2.75": { + "vector": [0, 0, 0] + } + } + }, + "camera": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2917": { + "vector": [0, 0, 1.5], + "easing": "easeInElastic" + }, + "0.4167": { + "vector": [0, 0, 1] + }, + "0.625": { + "vector": [0, 0, 1.5], + "easing": "easeInElastic" + }, + "0.7083": { + "vector": [1, 1, -1.5], + "easing": "easeInSine" + }, + "0.7917": { + "vector": [-0.5, -0.5, 1.5] + }, + "1.0": { + "vector": [0.5, 0, 1.2], + "easing": "easeOutSine" + }, + "1.25": { + "vector": [-0.1, 0, 2] + }, + "1.5": { + "vector": [0.5, 0, 2], + "easing": "easeInElastic" + }, + "1.6667": { + "vector": [-0.5, 0, 2.2], + "easing": "linear" + }, + "1.75": { + "vector": [1.5, -0.7, 1.2], + "easing": "easeInSine" + }, + "1.9583": { + "vector": [-0.4, 0.4, -0.2], + "easing": "easeOutSine" + }, + "2.125": { + "vector": [0.2, 0, 2] + }, + "2.25": { + "vector": [1, 2, 1.8] + }, + "2.3333": { + "vector": [-1.5, -3, -1.5] + }, + "2.5417": { + "vector": [0.2, 1.5, 1.5] + }, + "2.75": { + "vector": [0, 0, -0.5], + "easing": "easeInElastic" + }, + "2.9167": { + "vector": [0, 0, 0], + "easing": "easeInElastic" + } + } + } + }, + "sound_effects": { + "0.0": { + "effect": "m_4_reload_empty" + } + } + }, + "animation.m4.reload_normal": { + "loop": "hold_on_last_frame", + "animation_length": 2.75, + "bones": { + "0": { + "rotation": { + "0.0417": { + "vector": [0, 0, 0] + }, + "0.125": { + "vector": [1.18324, 1.40448, 3.98547] + }, + "0.3333": { + "vector": [-14.01, 2.98, -9.37] + }, + "0.4167": { + "vector": [-12.25012, 1.71575, -15.23679] + }, + "0.5": { + "vector": [-13.67625, 0.53753, -20.43357] + }, + "0.5417": { + "vector": [-14.36146, -0.34228, -23.99804] + }, + "0.625": { + "vector": [-15.36586, -0.75486, -21.85957] + }, + "0.7083": { + "vector": [-3.42984, -0.39385, -15.87027] + }, + "0.875": { + "vector": [-12.35117, -0.9689, -22.83651] + }, + "1.0417": { + "vector": [-16.3817, -0.19101, -19.94063] + }, + "1.2083": { + "vector": [-11.33329, -1.14849, -23.82073] + }, + "1.4167": { + "vector": [-10.66408, -4.02619, -38.55877], + "easing": "easeInSine" + }, + "1.5": { + "vector": [-13.44223, -4.57576, -41.51634] + }, + "1.5833": { + "vector": [-10.27854, -4.93547, -43.49053] + }, + "1.6667": { + "vector": [-9.91402, -5.63696, -47.44539] + }, + "1.7917": { + "vector": [-11.91402, -5.63696, -47.44539] + }, + "1.875": { + "vector": [-17.49684, -6.85391, -51.27861] + }, + "2.125": { + "vector": [-9.53304, 1.46221, -17.39249], + "easing": "easeInSine" + }, + "2.25": { + "vector": [-3.8135, -0.9118, -6.85724] + }, + "2.4167": { + "vector": [0, 0, -2] + }, + "2.5417": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0417": { + "vector": [0, 0, 0] + }, + "0.2917": { + "vector": [-1.1, 0.3, 1.9], + "easing": "easeInQuad" + }, + "0.4167": { + "vector": [-1.1, 0, 1.2], + "easing": "easeOutSine" + }, + "0.5417": { + "vector": [-1.1, 0, 1.4] + }, + "0.625": { + "vector": [-1.1, 0, 1.3] + }, + "0.7083": { + "vector": [-0.75494, -0.64671, 0.87721] + }, + "0.7917": { + "vector": [-1.1, 0, 1.3] + }, + "0.9583": { + "vector": [-0.95347, -0.36221, 1.21435] + }, + "1.125": { + "vector": [-0.84854, -0.60732, 1.04107] + }, + "1.2917": { + "vector": [-0.88449, -0.56099, 1.25543] + }, + "1.4167": { + "vector": [-0.89507, -0.06932, 1.3549] + }, + "1.5": { + "vector": [-1.16342, 0.21638, 1.44269] + }, + "1.5833": { + "vector": [-1.03823, 0.0689, 1.38061] + }, + "1.6667": { + "vector": [-0.91462, 0.05514, 1.36807] + }, + "1.7917": { + "vector": [-0.68888, -0.13612, 1.3186] + }, + "1.875": { + "vector": [-1.65765, 0.66955, 1.6243], + "easing": "easeInSine" + }, + "2.0417": { + "vector": [-0.74327, -0.11758, 1.00447], + "easing": "easeInSine" + }, + "2.1667": { + "vector": [-0.47388, 0.04235, 0.71917] + }, + "2.3333": { + "vector": [0, 0, 0.93] + }, + "2.4583": { + "vector": [0, 0, -0.3] + }, + "2.5417": { "vector": [0, 0, 0] } } @@ -492,100 +800,28 @@ "0.0": { "vector": [0, 0, 0] }, - "0.4": { + "0.6667": { "vector": [0, 0, 0] }, - "1.4": { - "vector": [0, 0, 0] + "0.9167": { + "vector": [0, 0, 0], + "easing": "easeInElastic" }, - "1.5": { - "vector": [0, 0, 0] - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] + "1.1667": { + "vector": [0, 0, 0], + "easing": "easeInElastic" }, - "0.4": { - "vector": [0, 0, 0] + "1.4167": { + "vector": [-21, 0, -11] }, - "0.7": { - "vector": [0, -13, 0] - }, - "1.2": { - "vector": [0, -13, 0], + "1.5833": { + "vector": [-14, 0, -5.83], "easing": "easeInSine" }, - "1.4": { + "1.7917": { "vector": [0, 0, 0] }, - "1.5": { - "vector": [0, 0, 0] - } - } - }, - "gun": { - "position": { - "vector": [0, 0, 0] - } - }, - "bolt": { - "position": { - "vector": [0, 0, 0] - } - } - }, - "sound_effects": { - "0.0": { - "effect": "m4reload" - } - } - }, - "animation.m4.reload2": { - "animation_length": 2, - "override_previous_animation": true, - "bones": { - "0": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.3": { - "vector": [-7.36643, -0.63834, -10.92412], - "easing": "easeInOutBack" - }, - "0.4": { - "vector": [-7.36643, -0.63834, -10.92412], - "easing": "easeInOutBack" - }, - "0.5": { - "vector": [-5.73105, 0.56832, -2.74459] - }, - "0.6": { - "vector": [-5.74094, 1.82028, -2.37506] - }, - "0.8": { - "vector": [-8.80119, -0.6625, -13.87839] - }, - "0.9": { - "vector": [-9.99781, -1.28863, -15.42107] - }, - "1.2": { - "vector": [-8.05387, -0.21402, -9.97165] - }, - "1.4": { - "vector": [-7.36061, -1.11472, -16.0572] - }, - "1.5": { - "vector": [-8.61369, -0.04771, -16.4108] - }, - "1.7": { - "vector": [-3.15746, 3.15575, -8.04933] - }, - "1.9": { - "vector": [0.32388, 0.39763, -2.15014] - }, - "2.0": { + "1.9167": { "vector": [0, 0, 0] } }, @@ -593,46 +829,33 @@ "0.0": { "vector": [0, 0, 0] }, - "0.1": { - "vector": [-0.06, 0.49, -1.47] + "0.6667": { + "vector": [0, 0, 0] }, - "0.3": { - "vector": [-0.07, 0.48547, -0.71] + "0.9167": { + "vector": [0, -15, 0], + "easing": "easeInElastic" }, - "0.4": { - "vector": [-0.1, 0.9, -0.98] + "1.1667": { + "vector": [0, -15, 0], + "easing": "easeInElastic" }, - "0.5": { - "vector": [-0.11, 0, -1.03] + "1.4167": { + "vector": [0.21094, -3.16719, -0.98516], + "easing": "easeInSine" }, - "0.6": { - "vector": [-0.12, 0.84, -1.09] + "1.5833": { + "vector": [0.14, -2.94422, -0.47], + "easing": "easeInSine" }, - "0.8": { - "vector": [-0.15, 1.31, -0.2] + "1.7083": { + "vector": [0.07, -3.12625, -0.09719], + "easing": "easeInSine" }, - "1.1": { - "vector": [-0.2, 1.53, -0.11] + "1.7917": { + "vector": [0, 0, 0] }, - "1.2": { - "vector": [-0.18, 1.49, -0.11] - }, - "1.4": { - "vector": [-0.16, 1.44, -0.12] - }, - "1.5": { - "vector": [-0.63, 1.98, -0.12] - }, - "1.6": { - "vector": [-0.11, 1.29, -0.12] - }, - "1.7": { - "vector": [0.34, 1.21, -0.13] - }, - "1.9": { - "vector": [0.16, -0.15, 0.275] - }, - "2.0": { + "1.9167": { "vector": [0, 0, 0] } } @@ -642,88 +865,129 @@ "0.0": { "vector": [0, 0, 0] }, - "0.1": { - "vector": [0, 0, 22.5] - }, - "0.2": { - "vector": [0, 0, 15] - }, - "1.6": { - "vector": [0, 0, 15] - }, - "1.8": { - "vector": [0, 0, 22.5] - }, - "1.9": { + "0.375": { "vector": [0, 0, 0] + }, + "0.4583": { + "vector": [-3.81928, -8.59364, -9.17363] + }, + "0.5417": { + "vector": [0, 1.5, 1] + }, + "0.625": { + "vector": [0, 1.5, 1] + }, + "0.9167": { + "vector": [0, 1.5, 1] + }, + "1.0": { + "vector": [-1.80149, -4.34261, -11.56806] + }, + "1.9167": { + "vector": [-1.80149, -4.34261, -11.56806] + }, + "2.0417": { + "vector": [-3.81928, -8.59364, -9.17363] + }, + "2.2917": { + "vector": [0, 0, 0], + "easing": "easeInElastic" } }, "position": { "0.0": { "vector": [0, 0, 0] }, - "0.2": { - "vector": [0, -4, 5] - }, - "1.6": { - "vector": [0, -4, 5] - }, - "1.9": { + "0.375": { "vector": [0, 0, 0] + }, + "0.4583": { + "vector": [1.89205, -2.68839, 4.36626] + }, + "0.5417": { + "vector": [0, -4, 5] + }, + "0.625": { + "vector": [0, -4, 5] + }, + "0.9167": { + "vector": [0, -4, 5] + }, + "1.0": { + "vector": [-0.3, -3.7, 5.6] + }, + "1.9167": { + "vector": [-0.3, -3.7, 5.6] + }, + "2.0417": { + "vector": [1.89205, -2.68839, 4.36626] + }, + "2.2917": { + "vector": [0, 0, 0], + "easing": "easeInElastic" } } }, - "magazine": { + "camera": { "rotation": { "0.0": { "vector": [0, 0, 0] }, - "0.4": { - "vector": [0, 0, 0] + "0.2917": { + "vector": [0, 0, 1.5], + "easing": "easeInElastic" }, - "1.4": { - "vector": [0, 0, 0] + "0.4167": { + "vector": [0, 0, 1] }, - "1.5": { - "vector": [0, 0, 0] - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] + "0.625": { + "vector": [0, 0, 1.5], + "easing": "easeInElastic" }, - "0.4": { - "vector": [0, 0, 0] - }, - "0.7": { - "vector": [0, -13, 0] - }, - "1.2": { - "vector": [0, -13, 0], + "0.7083": { + "vector": [1, 1, -1.5], "easing": "easeInSine" }, - "1.4": { - "vector": [0, 0, 0] + "0.7917": { + "vector": [-0.5, -0.5, 1.5] + }, + "1.0": { + "vector": [0.5, 0, 1.2], + "easing": "easeOutSine" + }, + "1.25": { + "vector": [-0.1, 0, 2] }, "1.5": { - "vector": [0, 0, 0] + "vector": [0.5, 0, 2], + "easing": "easeInElastic" + }, + "1.6667": { + "vector": [-0.5, 0, 2.2], + "easing": "linear" + }, + "1.75": { + "vector": [1.5, -0.7, 1.2], + "easing": "easeInSine" + }, + "2.0417": { + "vector": [0, 0, 1.5], + "easing": "linear" + }, + "2.25": { + "vector": [0, 0, -0.75], + "easing": "linear" + }, + "2.4167": { + "vector": [0, 0, 0], + "easing": "linear" } } - }, - "gun": { - "position": { - "vector": [0, 0, 0] - } - }, - "bolt": { - "position": { - "vector": [0, 0, 0] - } } }, "sound_effects": { "0.0": { - "effect": "m4reload2" + "effect": "m_4_reload_normal" } } } diff --git a/src/main/resources/assets/target/animations/m4.animation.json b/src/main/resources/assets/target/animations/m4.animation.json index 3ec38b421..ea00081da 100644 --- a/src/main/resources/assets/target/animations/m4.animation.json +++ b/src/main/resources/assets/target/animations/m4.animation.json @@ -40,6 +40,24 @@ "vector": [0, 0, 0] } } + }, + "camera": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.4167": { + "vector": [0, 0, 0] + }, + "0.5": { + "vector": [0.25, -0.5, 0.5], + "easing": "easeInSine" + }, + "0.5833": { + "vector": [0, 0, 0], + "easing": "easeOutSine" + } + } } } }, @@ -172,107 +190,23 @@ "easing": "easeOutSine" } } - } - } - }, - "animation.m4.hit": { - "animation_length": 0.6, - "bones": { - "0": { + }, + "camera": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "vector": [-0.3, -0.3, 0.3] }, "0.2": { - "vector": [-147.50541, 34.52809, 101.28078], - "easing": "easeOutSine" + "vector": [0.3, 0, -0.3] }, "0.4": { - "vector": [-13.26827, 5.92455, 35.88217], - "easing": "easeInSine" + "vector": [-0.3, 0.3, 0.3] }, "0.6": { - "vector": [0, 0, 0], - "easing": "easeOutSine" - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] + "vector": [0.3, 0, -0.3] }, - "0.1": { - "vector": [3.36, -2.44, -4.42] - }, - "0.2": { - "vector": [8.55, -0.7, -9.85], - "easing": "easeOutSine" - }, - "0.4": { - "vector": [0.97, 0.75, -3.12], - "easing": "easeInSine" - }, - "0.6": { - "vector": [0, 0, 0], - "easing": "easeOutSine" - } - } - }, - "Righthand": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.3": { - "vector": [112.5, 0, 0], - "easing": "easeOutSine" - }, - "0.6": { - "vector": [0, 0, 0], - "easing": "easeOutSine" - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.3": { - "vector": [0, 15, -10], - "easing": "easeOutSine" - }, - "0.6": { - "vector": [0, 0, 0], - "easing": "easeOutSine" - } - } - }, - "Lefthand": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.3": { - "vector": [135, 0, 0], - "easing": "easeOutSine" - }, - "0.6": { - "vector": [0, 0, 0], - "easing": "easeOutSine" - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.2": { - "vector": [-4.29, 19.16875, -9.15] - }, - "0.3": { - "vector": [-6, 16, -10], - "easing": "easeOutSine" - }, - "0.6": { - "vector": [0, 0, 0], - "easing": "easeOutSine" + "0.8": { + "vector": [-0.3, -0.3, 0.3] } } } @@ -296,62 +230,203 @@ } } }, - "animation.m4.reload": { - "animation_length": 2.7, - "override_previous_animation": true, + "animation.m4.reload_empty": { + "loop": "hold_on_last_frame", + "animation_length": 3.125, "bones": { "0": { + "rotation": { + "0.0417": { + "vector": [0, 0, 0] + }, + "0.125": { + "vector": [1.18324, 1.40448, 3.98547] + }, + "0.3333": { + "vector": [-14.01, 2.98, -9.37] + }, + "0.4167": { + "vector": [-12.25012, 1.71575, -15.23679] + }, + "0.5": { + "vector": [-13.67625, 0.53753, -20.43357] + }, + "0.5417": { + "vector": [-14.36146, -0.34228, -23.99804] + }, + "0.625": { + "vector": [-15.36586, -0.75486, -21.85957] + }, + "0.7083": { + "vector": [-3.42984, -0.39385, -15.87027] + }, + "0.875": { + "vector": [-12.35117, -0.9689, -22.83651] + }, + "1.0417": { + "vector": [-16.3817, -0.19101, -19.94063] + }, + "1.2083": { + "vector": [-11.33329, -1.14849, -23.82073] + }, + "1.4167": { + "vector": [-10.66408, -4.02619, -38.55877], + "easing": "easeInSine" + }, + "1.5": { + "vector": [-13.44223, -4.57576, -41.51634] + }, + "1.5833": { + "vector": [-10.27854, -4.93547, -43.49053] + }, + "1.6667": { + "vector": [-9.91402, -5.63696, -47.44539] + }, + "1.7917": { + "vector": [-11.91402, -5.63696, -47.44539] + }, + "1.875": { + "vector": [-17.49684, -6.85391, -51.27861] + }, + "2.25": { + "vector": [-13.3424, -0.71426, -23.88584], + "easing": "easeInElastic" + }, + "2.3333": { + "vector": [-13.9971, 5.8821, -30.62885], + "easing": "easeInElastic" + }, + "2.4583": { + "vector": [-13.35402, 0.44077, -19.02098], + "easing": "easeInElastic" + }, + "2.5417": { + "vector": [-9.53304, 1.46221, -17.39249] + }, + "2.6667": { + "vector": [-3.8135, -0.9118, -6.85724] + }, + "2.8333": { + "vector": [0, 0, -2] + }, + "2.9583": { + "vector": [0, 0, 0] + } + }, + "position": { + "0.0417": { + "vector": [0, 0, 0] + }, + "0.2917": { + "vector": [-1.1, 0.3, 1.9], + "easing": "easeInQuad" + }, + "0.4167": { + "vector": [-1.1, 0, 1.2], + "easing": "easeOutSine" + }, + "0.5417": { + "vector": [-1.1, 0, 1.4] + }, + "0.625": { + "vector": [-1.1, 0, 1.3] + }, + "0.7083": { + "vector": [-0.75494, -0.64671, 0.87721] + }, + "0.7917": { + "vector": [-1.1, 0, 1.3] + }, + "0.9583": { + "vector": [-0.95347, -0.36221, 1.21435] + }, + "1.125": { + "vector": [-0.84854, -0.60732, 1.04107] + }, + "1.2917": { + "vector": [-0.88449, -0.56099, 1.25543] + }, + "1.4167": { + "vector": [-0.89507, -0.06932, 1.3549] + }, + "1.5": { + "vector": [-1.16342, 0.21638, 1.44269] + }, + "1.5833": { + "vector": [-1.03823, 0.0689, 1.38061] + }, + "1.6667": { + "vector": [-0.91462, 0.05514, 1.36807] + }, + "1.7917": { + "vector": [-0.68888, -0.13612, 1.3186] + }, + "1.875": { + "vector": [-1.65765, 0.66955, 1.6243], + "easing": "easeInSine" + }, + "2.0": { + "vector": [-0.8044, 0.0239, 1.36148], + "easing": "easeOutSine" + }, + "2.125": { + "vector": [-0.55391, 0.01857, 1.28596], + "easing": "easeInSine" + }, + "2.25": { + "vector": [-0.62538, 0.12257, 1.2652] + }, + "2.3333": { + "vector": [-1.17857, -0.12293, 1.26252], + "easing": "easeInElastic" + }, + "2.375": { + "vector": [-1.14634, -0.11121, 1.26544] + }, + "2.4583": { + "vector": [-0.62538, 0.12257, 1.2652] + }, + "2.5833": { + "vector": [-0.47388, 0.04235, 0.71917] + }, + "2.75": { + "vector": [0, 0, 0.93] + }, + "2.875": { + "vector": [0, 0, -0.3] + }, + "2.9583": { + "vector": [0, 0, 0] + } + } + }, + "magazine": { "rotation": { "0.0": { "vector": [0, 0, 0] }, - "0.3": { - "vector": [-7.36643, -0.63834, -10.92412], - "easing": "easeInOutBack" + "0.6667": { + "vector": [0, 0, 0] }, - "0.4": { - "vector": [-7.36643, -0.63834, -10.92412], - "easing": "easeInOutBack" + "0.9167": { + "vector": [0, 0, 0], + "easing": "easeInElastic" }, - "0.5": { - "vector": [-5.73105, 0.56832, -2.74459] + "1.1667": { + "vector": [0, 0, 0], + "easing": "easeInElastic" }, - "0.6": { - "vector": [-5.74094, 1.82028, -2.37506] + "1.4167": { + "vector": [-21, 0, -11] }, - "0.8": { - "vector": [-8.80119, -0.6625, -13.87839] - }, - "0.9": { - "vector": [-9.99781, -1.28863, -15.42107] - }, - "1.2": { - "vector": [-8.05387, -0.21402, -9.97165] - }, - "1.4": { - "vector": [-7.36061, -1.11472, -16.0572] - }, - "1.5": { - "vector": [-8.61369, -0.04771, -16.4108] - }, - "1.7": { - "vector": [-3.15746, 3.15575, -8.04933] - }, - "1.8": { - "vector": [-3.45287, 3.53372, -17.77362], + "1.5833": { + "vector": [-14, 0, -5.83], "easing": "easeInSine" }, - "2.2": { - "vector": [0, 0, 0], - "easing": "easeOutSine" + "1.7917": { + "vector": [0, 0, 0] }, - "2.3": { - "vector": [0.58201, -1.04064, 2.6563] - }, - "2.4": { - "vector": [0.32388, 0.39763, -2.15014] - }, - "2.5": { + "1.9167": { "vector": [0, 0, 0] } }, @@ -359,53 +434,33 @@ "0.0": { "vector": [0, 0, 0] }, - "0.1": { - "vector": [-0.06, 0.49, -1.47] + "0.6667": { + "vector": [0, 0, 0] }, - "0.3": { - "vector": [-0.07, 0.48547, -0.71] + "0.9167": { + "vector": [0, -15, 0], + "easing": "easeInElastic" }, - "0.4": { - "vector": [-0.1, 0.9, -0.98] + "1.1667": { + "vector": [0, -15, 0], + "easing": "easeInElastic" }, - "0.5": { - "vector": [-0.11, 0, -1.03] - }, - "0.6": { - "vector": [-0.12, 0.84, -1.09] - }, - "0.8": { - "vector": [-0.15, 1.31, -0.2] - }, - "1.1": { - "vector": [-0.2, 1.53, -0.11] - }, - "1.2": { - "vector": [-0.18, 1.49, -0.11] - }, - "1.4": { - "vector": [-0.16, 1.44, -0.12] - }, - "1.5": { - "vector": [-0.63, 1.98, -0.12] - }, - "1.6": { - "vector": [-0.11, 1.29, -0.12] - }, - "1.7": { - "vector": [0.34, 1.21, -0.13] - }, - "1.8": { - "vector": [-0.45, 0.83, -0.11], + "1.4167": { + "vector": [0.21094, -3.16719, -0.98516], "easing": "easeInSine" }, - "2.2": { - "vector": [0.4, 0, -0.6] + "1.5833": { + "vector": [0.14, -2.94422, -0.47], + "easing": "easeInSine" }, - "2.4": { - "vector": [0.16, -0.15, 0.275] + "1.7083": { + "vector": [0.07, -3.12625, -0.09719], + "easing": "easeInSine" }, - "2.5": { + "1.7917": { + "vector": [0, 0, 0] + }, + "1.9167": { "vector": [0, 0, 0] } } @@ -415,33 +470,56 @@ "0.0": { "vector": [0, 0, 0] }, - "0.1": { - "vector": [0, 0, 22.5] + "0.375": { + "vector": [0, 0, 0] }, - "0.2": { - "vector": [0, 0, 15] + "0.4583": { + "vector": [-3.81928, -8.59364, -9.17363] }, - "1.6": { - "vector": [0, 0, 15] + "0.5417": { + "vector": [0, 1.5, 1] }, - "1.7": { - "vector": [-17.62507, -32.8034, 18.28494] + "0.625": { + "vector": [0, 1.5, 1] }, - "1.8": { - "vector": [-15.46722, -16.63005, 1.48245] + "0.9167": { + "vector": [0, 1.5, 1] }, - "1.9": { + "1.0": { + "vector": [-1.80149, -4.34261, -11.56806] + }, + "1.9167": { + "vector": [-1.80149, -4.34261, -11.56806] + }, + "2.0417": { + "vector": [8.98588, -28.60432, 4.50464] + }, + "2.1667": { + "vector": [-22.62507, -32.8034, 18.28494] + }, + "2.2083": { + "vector": [-22.62507, -32.8034, 18.28494] + }, + "2.2917": { + "vector": [-15.46722, -16.63005, 1.48245], + "easing": "easeInElastic" + }, + "2.375": { + "vector": [-15.46722, -16.63005, 1.48245], + "easing": "easeInElastic" + }, + "2.4583": { "vector": [-15.14496, -21.26229, 5.31052], "easing": "easeOutSine" }, - "2.0": { + "2.5417": { "vector": [3.06668, -17.33275, 4.18047], "easing": "easeInOutSine" }, - "2.1": { - "vector": [0, 0, 22.5] + "2.6667": { + "vector": [-8.03996, -14.46909, -5.02907] }, - "2.2": { + "2.75": { "vector": [0, 0, 0] } }, @@ -449,42 +527,272 @@ "0.0": { "vector": [0, 0, 0] }, - "0.2": { + "0.375": { + "vector": [0, 0, 0] + }, + "0.4583": { + "vector": [1.89205, -2.68839, 4.36626] + }, + "0.5417": { "vector": [0, -4, 5] }, - "1.6": { + "0.625": { "vector": [0, -4, 5] }, - "1.7": { + "0.9167": { + "vector": [0, -4, 5] + }, + "1.0": { + "vector": [-0.3, -3.7, 5.6] + }, + "1.9167": { + "vector": [-0.3, -3.7, 5.6] + }, + "2.1667": { "vector": [-1, -2, 7] }, - "1.8": { - "vector": [-0.51, -1.43, 7.2] + "2.2083": { + "vector": [-1, -2, 7] }, - "1.9": { + "2.2917": { + "vector": [-0.51, -1.43, 7.2], + "easing": "easeInElastic" + }, + "2.375": { + "vector": [-0.51, -1.43, 7.2], + "easing": "easeInElastic" + }, + "2.4583": { "vector": [-0.51, -1.43, 7.2], "easing": "easeOutSine" }, - "2.0": { + "2.5417": { "vector": [0.29, -0.14, 6.76], "easing": "easeInOutSine" }, - "2.1": { + "2.6667": { "vector": [0.14, -2.57, 2.38] }, - "2.2": { + "2.75": { "vector": [0, 0, 0] } } }, - "gun": { - "position": { - "vector": [0, 0, 0] + "camera": { + "rotation": { + "0.0": { + "vector": [0, 0, 0] + }, + "0.2917": { + "vector": [0, 0, 1.5], + "easing": "easeInElastic" + }, + "0.4167": { + "vector": [0, 0, 1] + }, + "0.625": { + "vector": [0, 0, 1.5], + "easing": "easeInElastic" + }, + "0.7083": { + "vector": [1, 1, -1.5], + "easing": "easeInSine" + }, + "0.7917": { + "vector": [-0.5, -0.5, 1.5] + }, + "1.0": { + "vector": [0.5, 0, 1.2], + "easing": "easeOutSine" + }, + "1.25": { + "vector": [-0.1, 0, 2] + }, + "1.5": { + "vector": [0.5, 0, 2], + "easing": "easeInElastic" + }, + "1.6667": { + "vector": [-0.5, 0, 2.2], + "easing": "linear" + }, + "1.75": { + "vector": [1.5, -0.7, 1.2], + "easing": "easeInSine" + }, + "1.9583": { + "vector": [-0.4, 0.4, -0.2], + "easing": "easeOutSine" + }, + "2.125": { + "vector": [0.2, 0, 2] + }, + "2.25": { + "vector": [1, 2, 1.8] + }, + "2.3333": { + "vector": [-1.5, -3, -1.5] + }, + "2.5417": { + "vector": [0.2, 1.5, 1.5] + }, + "2.75": { + "vector": [0, 0, -0.5], + "easing": "easeInElastic" + }, + "2.9167": { + "vector": [0, 0, 0], + "easing": "easeInElastic" + } } - }, - "bolt": { + } + }, + "sound_effects": { + "0.0": { + "effect": "m_4_reload_empty" + } + } + }, + "animation.m4.reload_normal": { + "loop": "hold_on_last_frame", + "animation_length": 2.75, + "bones": { + "0": { + "rotation": { + "0.0417": { + "vector": [0, 0, 0] + }, + "0.125": { + "vector": [1.18324, 1.40448, 3.98547] + }, + "0.3333": { + "vector": [-14.01, 2.98, -9.37] + }, + "0.4167": { + "vector": [-12.25012, 1.71575, -15.23679] + }, + "0.5": { + "vector": [-13.67625, 0.53753, -20.43357] + }, + "0.5417": { + "vector": [-14.36146, -0.34228, -23.99804] + }, + "0.625": { + "vector": [-15.36586, -0.75486, -21.85957] + }, + "0.7083": { + "vector": [-3.42984, -0.39385, -15.87027] + }, + "0.875": { + "vector": [-12.35117, -0.9689, -22.83651] + }, + "1.0417": { + "vector": [-16.3817, -0.19101, -19.94063] + }, + "1.2083": { + "vector": [-11.33329, -1.14849, -23.82073] + }, + "1.4167": { + "vector": [-10.66408, -4.02619, -38.55877], + "easing": "easeInSine" + }, + "1.5": { + "vector": [-13.44223, -4.57576, -41.51634] + }, + "1.5833": { + "vector": [-10.27854, -4.93547, -43.49053] + }, + "1.6667": { + "vector": [-9.91402, -5.63696, -47.44539] + }, + "1.7917": { + "vector": [-11.91402, -5.63696, -47.44539] + }, + "1.875": { + "vector": [-17.49684, -6.85391, -51.27861] + }, + "2.125": { + "vector": [-9.53304, 1.46221, -17.39249], + "easing": "easeInSine" + }, + "2.25": { + "vector": [-3.8135, -0.9118, -6.85724] + }, + "2.4167": { + "vector": [0, 0, -2] + }, + "2.5417": { + "vector": [0, 0, 0] + } + }, "position": { - "vector": [0, 0, 0] + "0.0417": { + "vector": [0, 0, 0] + }, + "0.2917": { + "vector": [-1.1, 0.3, 1.9], + "easing": "easeInQuad" + }, + "0.4167": { + "vector": [-1.1, 0, 1.2], + "easing": "easeOutSine" + }, + "0.5417": { + "vector": [-1.1, 0, 1.4] + }, + "0.625": { + "vector": [-1.1, 0, 1.3] + }, + "0.7083": { + "vector": [-0.75494, -0.64671, 0.87721] + }, + "0.7917": { + "vector": [-1.1, 0, 1.3] + }, + "0.9583": { + "vector": [-0.95347, -0.36221, 1.21435] + }, + "1.125": { + "vector": [-0.84854, -0.60732, 1.04107] + }, + "1.2917": { + "vector": [-0.88449, -0.56099, 1.25543] + }, + "1.4167": { + "vector": [-0.89507, -0.06932, 1.3549] + }, + "1.5": { + "vector": [-1.16342, 0.21638, 1.44269] + }, + "1.5833": { + "vector": [-1.03823, 0.0689, 1.38061] + }, + "1.6667": { + "vector": [-0.91462, 0.05514, 1.36807] + }, + "1.7917": { + "vector": [-0.68888, -0.13612, 1.3186] + }, + "1.875": { + "vector": [-1.65765, 0.66955, 1.6243], + "easing": "easeInSine" + }, + "2.0417": { + "vector": [-0.74327, -0.11758, 1.00447], + "easing": "easeInSine" + }, + "2.1667": { + "vector": [-0.47388, 0.04235, 0.71917] + }, + "2.3333": { + "vector": [0, 0, 0.93] + }, + "2.4583": { + "vector": [0, 0, -0.3] + }, + "2.5417": { + "vector": [0, 0, 0] + } } }, "magazine": { @@ -492,90 +800,28 @@ "0.0": { "vector": [0, 0, 0] }, - "0.4": { + "0.6667": { "vector": [0, 0, 0] }, - "1.4": { - "vector": [0, 0, 0] + "0.9167": { + "vector": [0, 0, 0], + "easing": "easeInElastic" }, - "1.5": { - "vector": [0, 0, 0] - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] + "1.1667": { + "vector": [0, 0, 0], + "easing": "easeInElastic" }, - "0.4": { - "vector": [0, 0, 0] + "1.4167": { + "vector": [-21, 0, -11] }, - "0.7": { - "vector": [0, -13, 0] - }, - "1.2": { - "vector": [0, -13, 0], + "1.5833": { + "vector": [-14, 0, -5.83], "easing": "easeInSine" }, - "1.4": { + "1.7917": { "vector": [0, 0, 0] }, - "1.5": { - "vector": [0, 0, 0] - } - } - } - }, - "sound_effects": { - "0.0": { - "effect": "m4reload" - } - } - }, - "animation.m4.reload2": { - "animation_length": 2, - "override_previous_animation": true, - "bones": { - "0": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.3": { - "vector": [-7.36643, -0.63834, -10.92412], - "easing": "easeInOutBack" - }, - "0.4": { - "vector": [-7.36643, -0.63834, -10.92412], - "easing": "easeInOutBack" - }, - "0.5": { - "vector": [-5.73105, 0.56832, -2.74459] - }, - "0.6": { - "vector": [-5.74094, 1.82028, -2.37506] - }, - "0.8": { - "vector": [-8.80119, -0.6625, -13.87839] - }, - "0.9": { - "vector": [-9.99781, -1.28863, -15.42107] - }, - "1.2": { - "vector": [-8.05387, -0.21402, -9.97165] - }, - "1.4": { - "vector": [-7.36061, -1.11472, -16.0572] - }, - "1.5": { - "vector": [-8.61369, -0.04771, -16.4108] - }, - "1.7": { - "vector": [-3.15746, 3.15575, -8.04933] - }, - "1.9": { - "vector": [0.32388, 0.39763, -2.15014] - }, - "2.0": { + "1.9167": { "vector": [0, 0, 0] } }, @@ -583,46 +829,33 @@ "0.0": { "vector": [0, 0, 0] }, - "0.1": { - "vector": [-0.06, 0.49, -1.47] + "0.6667": { + "vector": [0, 0, 0] }, - "0.3": { - "vector": [-0.07, 0.48547, -0.71] + "0.9167": { + "vector": [0, -15, 0], + "easing": "easeInElastic" }, - "0.4": { - "vector": [-0.1, 0.9, -0.98] + "1.1667": { + "vector": [0, -15, 0], + "easing": "easeInElastic" }, - "0.5": { - "vector": [-0.11, 0, -1.03] + "1.4167": { + "vector": [0.21094, -3.16719, -0.98516], + "easing": "easeInSine" }, - "0.6": { - "vector": [-0.12, 0.84, -1.09] + "1.5833": { + "vector": [0.14, -2.94422, -0.47], + "easing": "easeInSine" }, - "0.8": { - "vector": [-0.15, 1.31, -0.2] + "1.7083": { + "vector": [0.07, -3.12625, -0.09719], + "easing": "easeInSine" }, - "1.1": { - "vector": [-0.2, 1.53, -0.11] + "1.7917": { + "vector": [0, 0, 0] }, - "1.2": { - "vector": [-0.18, 1.49, -0.11] - }, - "1.4": { - "vector": [-0.16, 1.44, -0.12] - }, - "1.5": { - "vector": [-0.63, 1.98, -0.12] - }, - "1.6": { - "vector": [-0.11, 1.29, -0.12] - }, - "1.7": { - "vector": [0.34, 1.21, -0.13] - }, - "1.9": { - "vector": [0.16, -0.15, 0.275] - }, - "2.0": { + "1.9167": { "vector": [0, 0, 0] } } @@ -632,88 +865,129 @@ "0.0": { "vector": [0, 0, 0] }, - "0.1": { - "vector": [0, 0, 22.5] - }, - "0.2": { - "vector": [0, 0, 15] - }, - "1.6": { - "vector": [0, 0, 15] - }, - "1.8": { - "vector": [0, 0, 22.5] - }, - "1.9": { + "0.375": { "vector": [0, 0, 0] + }, + "0.4583": { + "vector": [-3.81928, -8.59364, -9.17363] + }, + "0.5417": { + "vector": [0, 1.5, 1] + }, + "0.625": { + "vector": [0, 1.5, 1] + }, + "0.9167": { + "vector": [0, 1.5, 1] + }, + "1.0": { + "vector": [-1.80149, -4.34261, -11.56806] + }, + "1.9167": { + "vector": [-1.80149, -4.34261, -11.56806] + }, + "2.0417": { + "vector": [-3.81928, -8.59364, -9.17363] + }, + "2.2917": { + "vector": [0, 0, 0], + "easing": "easeInElastic" } }, "position": { "0.0": { "vector": [0, 0, 0] }, - "0.2": { - "vector": [0, -4, 5] - }, - "1.6": { - "vector": [0, -4, 5] - }, - "1.9": { + "0.375": { "vector": [0, 0, 0] + }, + "0.4583": { + "vector": [1.89205, -2.68839, 4.36626] + }, + "0.5417": { + "vector": [0, -4, 5] + }, + "0.625": { + "vector": [0, -4, 5] + }, + "0.9167": { + "vector": [0, -4, 5] + }, + "1.0": { + "vector": [-0.3, -3.7, 5.6] + }, + "1.9167": { + "vector": [-0.3, -3.7, 5.6] + }, + "2.0417": { + "vector": [1.89205, -2.68839, 4.36626] + }, + "2.2917": { + "vector": [0, 0, 0], + "easing": "easeInElastic" } } }, - "gun": { - "position": { - "vector": [0, 0, 0] - } - }, - "bolt": { - "position": { - "vector": [0, 0, 0] - } - }, - "magazine": { + "camera": { "rotation": { "0.0": { "vector": [0, 0, 0] }, - "0.4": { - "vector": [0, 0, 0] + "0.2917": { + "vector": [0, 0, 1.5], + "easing": "easeInElastic" }, - "1.4": { - "vector": [0, 0, 0] + "0.4167": { + "vector": [0, 0, 1] }, - "1.5": { - "vector": [0, 0, 0] - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] + "0.625": { + "vector": [0, 0, 1.5], + "easing": "easeInElastic" }, - "0.4": { - "vector": [0, 0, 0] - }, - "0.7": { - "vector": [0, -13, 0] - }, - "1.2": { - "vector": [0, -13, 0], + "0.7083": { + "vector": [1, 1, -1.5], "easing": "easeInSine" }, - "1.4": { - "vector": [0, 0, 0] + "0.7917": { + "vector": [-0.5, -0.5, 1.5] + }, + "1.0": { + "vector": [0.5, 0, 1.2], + "easing": "easeOutSine" + }, + "1.25": { + "vector": [-0.1, 0, 2] }, "1.5": { - "vector": [0, 0, 0] + "vector": [0.5, 0, 2], + "easing": "easeInElastic" + }, + "1.6667": { + "vector": [-0.5, 0, 2.2], + "easing": "linear" + }, + "1.75": { + "vector": [1.5, -0.7, 1.2], + "easing": "easeInSine" + }, + "2.0417": { + "vector": [0, 0, 1.5], + "easing": "linear" + }, + "2.25": { + "vector": [0, 0, -0.75], + "easing": "linear" + }, + "2.4167": { + "vector": [0, 0, 0], + "easing": "linear" } } } }, "sound_effects": { "0.0": { - "effect": "m4reload2" + "effect": "m_4_reload_normal" } } } diff --git a/src/main/resources/assets/target/animations/m79.animation.json b/src/main/resources/assets/target/animations/m79.animation.json index 29de73e27..ceb517e47 100644 --- a/src/main/resources/assets/target/animations/m79.animation.json +++ b/src/main/resources/assets/target/animations/m79.animation.json @@ -112,19 +112,19 @@ "camera": { "rotation": { "0.0": { - "vector": [-0.5, -0.5, 0.5] + "vector": [-0.3, -0.3, 0.3] }, "0.2": { - "vector": [0.5, 0, -0.5] + "vector": [0.3, 0, -0.3] }, "0.4": { - "vector": [-0.5, 0.5, 0.5] + "vector": [-0.3, 0.3, 0.3] }, "0.6": { - "vector": [0.5, 0, -0.5] + "vector": [0.3, 0, -0.3] }, "0.8": { - "vector": [-0.5, -0.5, 0.5] + "vector": [-0.3, -0.3, 0.3] } } } diff --git a/src/main/resources/assets/target/animations/rpg.animation.json b/src/main/resources/assets/target/animations/rpg.animation.json index e246dee25..d2302d986 100644 --- a/src/main/resources/assets/target/animations/rpg.animation.json +++ b/src/main/resources/assets/target/animations/rpg.animation.json @@ -138,19 +138,19 @@ "camera": { "rotation": { "0.0": { - "vector": [-0.5, -0.5, 0.5] + "vector": [-0.3, -0.3, 0.3] }, "0.2": { - "vector": [0.5, 0, -0.5] + "vector": [0.3, 0, -0.3] }, "0.4": { - "vector": [-0.5, 0.5, 0.5] + "vector": [-0.3, 0.3, 0.3] }, "0.6": { - "vector": [0.5, 0, -0.5] + "vector": [0.3, 0, -0.3] }, "0.8": { - "vector": [-0.5, -0.5, 0.5] + "vector": [-0.3, -0.3, 0.3] } } } diff --git a/src/main/resources/assets/target/animations/rpk.animation.json b/src/main/resources/assets/target/animations/rpk.animation.json index ffad76a92..527185881 100644 --- a/src/main/resources/assets/target/animations/rpk.animation.json +++ b/src/main/resources/assets/target/animations/rpk.animation.json @@ -259,19 +259,19 @@ "camera": { "rotation": { "0.0": { - "vector": [-0.5, -0.5, 0.5] + "vector": [-0.3, -0.3, 0.3] }, "0.2": { - "vector": [0.5, 0, -0.5] + "vector": [0.3, 0, -0.3] }, "0.4": { - "vector": [-0.5, 0.5, 0.5] + "vector": [-0.3, 0.3, 0.3] }, "0.6": { - "vector": [0.5, 0, -0.5] + "vector": [0.3, 0, -0.3] }, "0.8": { - "vector": [-0.5, -0.5, 0.5] + "vector": [-0.3, -0.3, 0.3] } } } diff --git a/src/main/resources/assets/target/animations/sks.animation.json b/src/main/resources/assets/target/animations/sks.animation.json index dadc01ba3..a6b37fefa 100644 --- a/src/main/resources/assets/target/animations/sks.animation.json +++ b/src/main/resources/assets/target/animations/sks.animation.json @@ -104,19 +104,19 @@ "camera": { "rotation": { "0.0": { - "vector": [-0.5, -0.5, 0.5] + "vector": [-0.3, -0.3, 0.3] }, "0.2": { - "vector": [0.5, 0, -0.5] + "vector": [0.3, 0, -0.3] }, "0.4": { - "vector": [-0.5, 0.5, 0.5] + "vector": [-0.3, 0.3, 0.3] }, "0.6": { - "vector": [0.5, 0, -0.5] + "vector": [0.3, 0, -0.3] }, "0.8": { - "vector": [-0.5, -0.5, 0.5] + "vector": [-0.3, -0.3, 0.3] } } } diff --git a/src/main/resources/assets/target/animations/svd.animation.json b/src/main/resources/assets/target/animations/svd.animation.json index 3c64fed12..87c155316 100644 --- a/src/main/resources/assets/target/animations/svd.animation.json +++ b/src/main/resources/assets/target/animations/svd.animation.json @@ -110,19 +110,19 @@ "camera": { "rotation": { "0.0": { - "vector": [-0.5, -0.5, 0.5] + "vector": [-0.3, -0.3, 0.3] }, "0.2": { - "vector": [0.5, 0, -0.5] + "vector": [0.3, 0, -0.3] }, "0.4": { - "vector": [-0.5, 0.5, 0.5] + "vector": [-0.3, 0.3, 0.3] }, "0.6": { - "vector": [0.5, 0, -0.5] + "vector": [0.3, 0, -0.3] }, "0.8": { - "vector": [-0.5, -0.5, 0.5] + "vector": [-0.3, -0.3, 0.3] } } } diff --git a/src/main/resources/assets/target/geo/hk416.geo.json b/src/main/resources/assets/target/geo/hk416.geo.json index b6ddfa793..e2fd0da8c 100644 --- a/src/main/resources/assets/target/geo/hk416.geo.json +++ b/src/main/resources/assets/target/geo/hk416.geo.json @@ -9517,6 +9517,10 @@ } } ] + }, + { + "name": "camera", + "pivot": [3.17141, 5.16276, 9.77702] } ] } diff --git a/src/main/resources/assets/target/geo/m4.geo.json b/src/main/resources/assets/target/geo/m4.geo.json index d9db28895..7721cabbc 100644 --- a/src/main/resources/assets/target/geo/m4.geo.json +++ b/src/main/resources/assets/target/geo/m4.geo.json @@ -10973,6 +10973,8 @@ { "origin": [-0.11171, 2.19333, -22.59329], "size": [0.21733, 0.12256, 1.49725], + "pivot": [-0.00305, 1.76437, -18.31002], + "rotation": [0, 0, 0], "uv": { "north": {"uv": [79, 27], "uv_size": [0.25, 0.25]}, "east": {"uv": [63, 19], "uv_size": [1.5, 0.25]}, @@ -11894,6 +11896,10 @@ } } ] + }, + { + "name": "camera", + "pivot": [3.17141, 5.16276, 9.77702] } ] } diff --git a/src/main/resources/assets/target/sounds/hk_416/hk_416_reload_empty.ogg b/src/main/resources/assets/target/sounds/hk_416/hk_416_reload_empty.ogg index 843325b53352514762356ed2c36a4b0ed60be8f9..60d6e8a8f54a3fd79d10e37b9e9a0aef2e888ffb 100644 GIT binary patch delta 31508 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 Z5`g7XfdD*=nc4x-v;Y|4>;MzT{{!41G>iZM delta 30547 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