Minecraft 1.12.2, Minecraft 18w02a, Minecraft 1.13.1, Minecraft 18w50a, Minecraft 1.14.3, 1.14.4, 19w41a, 1.15 Pre-Release 2, 1.15 Pre-release 4, 1.15.1 Pre-release 1, 1.15.2, 1.16 Pre-release 2, 1.16 Pre-release 3, 1.16 Pre-release 6, 1.16.1, 20w28a, 20w29a, 20w30a, 1.16.2 Pre-release 1, 1.16.2 Pre-release 2, 1.16.2 Pre-release 3, 1.16.2 Release Candidate 1, 1.16.2 Release Candidate 2, 1.16.2, 1.16.3, 21w03a, 21w05b, 1.17.1, 1.18.1, 22w06a, 1.19 Pre-release 1, 1.19
Mob behaviour, Player
When swinging with your left hand, the animation is not perfectly mirrored to swinging with your right hand. There is a very slight mismatch.
- /tp @s ~ ~ ~ 0 0
- /effect give @p mining_fatigue 10000 15 true (to slow down the swinging animation)
- Go in third person to look at yourself from the front
- Hit with your right hand, notice that the corner of your hand goes past the center of your body
→ Also notice that your left hand will shake a little
- Hit with your left hand by switching your main hand, notice that the corner of your hand does not go past the center of your body
→ Also notice that your right hand does NOT shake at all
- Summon an enderman
- Either attack it or look at it in the eyes
→ It's swings it's left arm in a weird way
also happens with piglin
The following is based on a decompiled version of Minecraft 1.12 using MCP 9.40
The reason is likely due to an oversight in net.minecraft.client.model.ModelBiped.setRotationAngles(). In the section calculating animations based off swingProgress, the line:
appears to add an offset to the left arm when the right arm is swinging. This line should instead subtract the value from the X angle and switch to modifying the right hand when the main hand is the left hand.
Additionally, in the same section, the line:
does not apply the angle correctly when on the left hand as the Z angle should be mirrored. Instead it should subtract the value from the Z angle.