Vanilla Eating Animation
StunfMC opened this issue ยท 20 comments
Currently with this mod enabled, the third person eating animation is inconsistent with the vanilla first person animation. The third person eating animation is too fast, rough, and not as smooth as the first person counterpart. I've been looking for a mod that adds the same feeling of the first person eating animation to third person, and hopefully you could change it (or add a option for the almost exact animation as the first person animation in third person) to be like the first person animation.
Weird, it seems to be faster on my screen. I guess I could be an idiot. Sorry for the trouble.
I mean the actual first-person one doesn't really work since there is no hand involved(the item can't just move straight up and down in front of the mouth). The animation should also play not rough and really smooth.
I see that, but the third person is just too fast in my opinion. Maybe you could slow it down slightly? And the Animation Smoothing makes everything feel sluggish for me, maybe just my opinion. Either way, everything else is quite nice.
Sorry for the trouble, I just get really picky with how my game looks sometimes, and I really like your mod and want to add it.
https://github.com/tr7zw/NotEnoughAnimations/blob/1.19/Shared/src/main/java/dev/tr7zw/notenoughanimations/animations/hands/EatDrinkAnimation.java#L74 currently it uses the System clock in a sinus wave with some modifications. I am aware that for some people the animation smoothing just doesn't work correctly, and perhaps that could be linked too(assuming the system time for some jvm/operating system combinations is just behaving oddly). Is there anything unusual about your setup that I could look into? (M1 mac, Linux, some weird jvm?)
Note: I don't yet know why it doesn't work correctly for some.
Right now I am on a Windows PC. I don't think anything is off about the JVM modification. I might just not be used to the animation being different. Is there a way to maybe make a option so the third person animation syncs with the rhythm of the first person one? That might seem stupid but just a genuine question. Maybe it is but my eyes are just not making it look that way.
Uhhh not sure. I'd have to look into how the vanilla-eating animation is working, and then check how close that can be applied here.
vvWJjouuc2.mp4
This is now technically 1:1 the first-person animation in 3rd person. But looks kinda bad, I'd make it a few times more extreme.
private void applyEatTransform(PoseStack poseStack, float f, HumanoidArm humanoidArm, ItemStack itemStack) {
float g = this.minecraft.player.getUseItemRemainingTicks() - f + 1.0F;
float h = g / itemStack.getUseDuration();
if (h < 0.8F) {
float f1 = Mth.abs(Mth.cos(g / 4.0F * 3.1415927F) * 0.1F);
poseStack.translate(0.0D, f1, 0.0D);
}
float i = 1.0F - (float) Math.pow(h, 27.0D);
int j = (humanoidArm == HumanoidArm.RIGHT) ? 1 : -1;
poseStack.translate((i * 0.6F * j), (i * -0.5F), (i * 0.0F));
poseStack.mulPose(Vector3f.YP.rotationDegrees(j * i * 90.0F));
poseStack.mulPose(Vector3f.XP.rotationDegrees(i * 10.0F));
poseStack.mulPose(Vector3f.ZP.rotationDegrees(j * i * 30.0F));
}
This is the vanilla logic, it uses cos instead of sin, so that might be why it appears out of phase. Let me try a bit.
I like that! Looks really good. (Again, sorry if this is too much trouble, I get really picky sometimes and I know that coding a mod takes a lot of work and patience) :)
4uOc2DlBEL.mp4
How about this? 1:1 the exact values as the first-person animation, but * 0.3 instead of * 0.1? (So just more movement, but at the same speed/interval)
Eh, I had worse requests. This mod mainly aims to add missing/broken 3rd person animations, but some people want custom walking/sneaking and whatever animations, which is not really the point. Let me push it, then you can give it a try.