加入视角抖动(AK,SKS)

This commit is contained in:
Atsuihsio 2024-05-22 22:49:27 +08:00
parent 99269f409a
commit 22714210ca
6 changed files with 229 additions and 10 deletions

View file

@ -1,14 +1,22 @@
package net.mcreator.target.client.model.item; package net.mcreator.target.client.model.item;
import net.mcreator.target.init.TargetModMobEffects;
import net.mcreator.target.item.gun.AK47Item; import net.mcreator.target.item.gun.AK47Item;
import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.network.TargetModVariables;
import net.minecraft.client.CameraType;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.util.RandomSource;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraftforge.client.event.ViewportEvent;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone; import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel; import software.bernie.geckolib.model.GeoModel;
import net.minecraft.network.chat.Component;
public class AK47ItemModel extends GeoModel<AK47Item> { public class AK47ItemModel extends GeoModel<AK47Item> {
@ -136,5 +144,13 @@ public class AK47ItemModel extends GeoModel<AK47Item> {
move.setRotZ(3.7f * (float) yaw + 2.7f * (float) m); move.setRotZ(3.7f * (float) yaw + 2.7f * (float) m);
move.setRotY(1.9f * (float) yaw - (float) m); move.setRotY(1.9f * (float) yaw - (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());
} }
} }

View file

@ -4,6 +4,7 @@ import net.mcreator.target.item.gun.SksItem;
import net.mcreator.target.network.TargetModVariables; import net.mcreator.target.network.TargetModVariables;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone; import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
@ -137,5 +138,13 @@ public class SksItemModel extends GeoModel<SksItem> {
move.setRotZ(3.7f * (float) yaw + 2.7f * (float) m); move.setRotZ(3.7f * (float) yaw + 2.7f * (float) m);
move.setRotY(1.9f * (float) yaw - 1.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());
} }
} }

View file

@ -33,6 +33,7 @@ public class ClientEventHandler {
handleWeaponZoom(living); handleWeaponZoom(living);
handleWeaponFire(event, living); handleWeaponFire(event, living);
handleShockCamera(event, living); handleShockCamera(event, living);
PlayerCameraShake(event, living);
handleBowPullAnimation(living); handleBowPullAnimation(living);
} }
} }
@ -425,6 +426,20 @@ public class ClientEventHandler {
} }
} }
private static void PlayerCameraShake(ViewportEvent.ComputeCameraAngles event, LivingEntity entity) {
var data = entity.getPersistentData();
double yaw = event.getYaw();
double pitch = event.getPitch();
double roll = event.getRoll();
event.setPitch((float) (pitch + data.getDouble("camera_rot_x")));
event.setYaw((float) (yaw + data.getDouble("camera_rot_y")));
event.setRoll((float) (roll + data.getDouble("camera_rot_z")));
}
private static void handleBowPullAnimation(LivingEntity entity) { private static void handleBowPullAnimation(LivingEntity entity) {
float fps = Minecraft.getInstance().getFps(); float fps = Minecraft.getInstance().getFps();
if (fps <= 0) { if (fps <= 0) {

View file

@ -40,6 +40,26 @@
"vector": [0, 0, 0] "vector": [0, 0, 0]
} }
} }
},
"camera": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.2": {
"vector": [0, 0, 0]
},
"0.4": {
"vector": [0, 0, -1],
"easing": "easeInOutSine"
},
"0.5": {
"vector": [1, -1, 1]
},
"0.6": {
"vector": [0, 0, 0]
}
}
} }
} }
}, },
@ -241,6 +261,25 @@
"vector": [2.5, -2, 0] "vector": [2.5, -2, 0]
} }
} }
},
"camera": {
"rotation": {
"0.0": {
"vector": [-0.5, -0.5, 0.5]
},
"0.2": {
"vector": [0.5, 0, -0.5]
},
"0.4": {
"vector": [-0.5, 0.5, 0.5]
},
"0.6": {
"vector": [0.5, 0, -0.5]
},
"0.8": {
"vector": [-0.5, -0.5, 0.5]
}
}
} }
} }
}, },
@ -679,44 +718,44 @@
"vector": [0, 0, 0] "vector": [0, 0, 0]
}, },
"0.4": { "0.4": {
"vector": [1, 0, 2], "vector": [1, 0, 1],
"easing": "easeInElastic" "easing": "easeInElastic"
}, },
"0.5": { "0.5": {
"vector": [-1, 0, -2], "vector": [-0.5, 0, -1],
"easing": "easeInElastic" "easing": "easeInElastic"
}, },
"0.7": { "0.7": {
"vector": [0, 0, 0], "vector": [0, 0, 0],
"easing": "easeOutBack" "easing": "easeOutBack"
}, },
"1.1": { "1.0": {
"vector": [0, 0, 0] "vector": [0, 0, 0]
}, },
"1.3": { "1.2": {
"vector": [0, 0, 1], "vector": [0, 0, 1],
"easing": "easeInElastic" "easing": "easeInElastic"
}, },
"1.4": { "1.3": {
"vector": [-1, 0, -2], "vector": [-1, 0, -2],
"easing": "easeInElastic" "easing": "easeInElastic"
}, },
"1.6": { "1.5": {
"vector": [0, 0, 0], "vector": [0, 0, 0],
"easing": "easeOutBack" "easing": "easeOutBack"
}, },
"1.9": { "1.8": {
"vector": [0, 0, 0] "vector": [0, 0, 0]
}, },
"2.0": { "1.9": {
"vector": [0, 2, 1], "vector": [0, 2, 1],
"easing": "easeInElastic" "easing": "easeInElastic"
}, },
"2.1": { "2.0": {
"vector": [-1, -1, -2], "vector": [-1, -1, -2],
"easing": "easeInElastic" "easing": "easeInElastic"
}, },
"2.3": { "2.2": {
"vector": [0, 0, 0], "vector": [0, 0, 0],
"easing": "easeOutBack" "easing": "easeOutBack"
} }
@ -927,6 +966,40 @@
"vector": [0, 0, 0] "vector": [0, 0, 0]
} }
} }
},
"camera": {
"rotation": {
"0.3": {
"vector": [0, 0, 0]
},
"0.4": {
"vector": [1, 0, 1],
"easing": "easeInElastic"
},
"0.5": {
"vector": [-0.5, 0, -1],
"easing": "easeInElastic"
},
"0.7": {
"vector": [0, 0, 0],
"easing": "easeOutBack"
},
"1.0": {
"vector": [0, 0, 0]
},
"1.2": {
"vector": [0, 0, 1],
"easing": "easeInElastic"
},
"1.3": {
"vector": [-1, 0, -2],
"easing": "easeInElastic"
},
"1.5": {
"vector": [0, 0, 0],
"easing": "easeOutBack"
}
}
} }
} }
} }

View file

@ -88,6 +88,25 @@
"vector": [2.5, -3, 0] "vector": [2.5, -3, 0]
} }
} }
},
"camera": {
"rotation": {
"0.0": {
"vector": [-0.5, -0.5, 0.5]
},
"0.2": {
"vector": [0.5, 0, -0.5]
},
"0.4": {
"vector": [-0.5, 0.5, 0.5]
},
"0.6": {
"vector": [0.5, 0, -0.5]
},
"0.8": {
"vector": [-0.5, -0.5, 0.5]
}
}
} }
} }
}, },
@ -411,6 +430,55 @@
"vector": [0, 0, 0] "vector": [0, 0, 0]
} }
} }
},
"camera": {
"rotation": {
"0.3": {
"vector": [0, 0, 0]
},
"0.4": {
"vector": [1, 0, 1],
"easing": "easeInElastic"
},
"0.5": {
"vector": [-0.5, 0, -1],
"easing": "easeInElastic"
},
"0.7": {
"vector": [0, 0, 0],
"easing": "easeOutBack"
},
"1.0": {
"vector": [0, 0, 0]
},
"1.2": {
"vector": [0, 0, 1],
"easing": "easeInElastic"
},
"1.3": {
"vector": [-1, 0, -2],
"easing": "easeInElastic"
},
"1.5": {
"vector": [0, 0, 0],
"easing": "easeOutBack"
},
"1.8": {
"vector": [0, 0, 0]
},
"1.9": {
"vector": [0, 2, 1],
"easing": "easeInElastic"
},
"2.0": {
"vector": [-1, -1, -2],
"easing": "easeInElastic"
},
"2.2": {
"vector": [0, 0, 0],
"easing": "easeOutBack"
}
}
} }
} }
}, },
@ -594,6 +662,40 @@
"vector": [0, 0, 0] "vector": [0, 0, 0]
} }
} }
},
"camera": {
"rotation": {
"0.3": {
"vector": [0, 0, 0]
},
"0.4": {
"vector": [1, 0, 1],
"easing": "easeInElastic"
},
"0.5": {
"vector": [-0.5, 0, -1],
"easing": "easeInElastic"
},
"0.7": {
"vector": [0, 0, 0],
"easing": "easeOutBack"
},
"1.0": {
"vector": [0, 0, 0]
},
"1.2": {
"vector": [0, 0, 1],
"easing": "easeInElastic"
},
"1.3": {
"vector": [-1, 0, -2],
"easing": "easeInElastic"
},
"1.5": {
"vector": [0, 0, 0],
"easing": "easeOutBack"
}
}
} }
} }
} }

View file

@ -11,6 +11,10 @@
"visible_bounds_offset": [0, 0, 0] "visible_bounds_offset": [0, 0, 0]
}, },
"bones": [ "bones": [
{
"name": "camera",
"pivot": [0, 0, 0]
},
{ {
"name": "root", "name": "root",
"pivot": [0, 0, 0] "pivot": [0, 0, 0]