Closed amalon closed 1 year ago
Wobbles happen when you export the model in a way that the pivot point (0/0/0) isnt in the center. Simply because minecraft interpolates rotation differently than position. All I can suggest is exporting the model differently in blockbench, so that the center is correct.
For armorstands this pivot point is where the base of the arm or head is.
For display entities this is more complicated
If all else fails, modify the model json manually and edit the transform of the model until it is correct
I dont see the transform or parent/child attachments as you didn't post any yaml so I can't give precise suggestions
I should add that server-side or code-wise there is no solution because of the randomness in how packets arrive at the client. In the interpolation client-side it simply desynchronizes because the linear position interpolation isnt compatible with the rotation.
Oh and I would advice against using hybrid mode as I think display entities and armorstands have different pivot points for the head/arms and stuff. Then it would look good on 1.19.4+ and not on <= 1.19.3 or vice-versa. Stick to using armorstand mode if you can
Thanks, I'll have a bit more of a play and see if I can figure it out.
Currently its using a transform of HEAD, and the wheel was positioned in blockbench by experimentation such that it didn't wobble when moved slowly with minecraft/traincarts. However when I change the X rotation in blockbench's "Display" mode, slot=head it wobbles about a slightly higher pivot in the preview, so I'm a bit confused. Shouldn't minecraft/traincarts use the same pivot? Translation in blockbench display mode seems to apply before rotation, so doesn't change pivot.
FYI the source yml is around here for the big wheels: https://github.com/amalon/hoganfam-trains/blob/master/srv/a4/loco.yml.in#L252
Minecrafts display entity in HEAD mode does not use the same transform/rotate pivot as an armorstand head. Unfortunately.
In HYBRID mode I also make some position transforms myself (to make them the same) and that might trip you up
You might need to add an additional attachment with posy=0.25 or -0.25 with the model to correct for that again. But then itll just look just as broken when using armorstands. Thats why I mentioned using only armorstands for wheels if you choose to make it backwards-compatible
Tl;dr; set position transform mode to ARMORSTAND and pick head there
At speed on a diagonal, the big wheels were yawing like crazy but not wobbling, and were all set to armourstand/head mode.
The smaller wheels at speed were wobbling like crazy but not yawing, and were set to hybrid/armourstand-head mode.
At low speed they all behave.
If I offset the model cubes and set to hybrid / display head it mostly behaves, with a little roll on the bends. This looks the most stable of the options I've tried.
If I use display/head it gets scaled up, so not quite sure if thats usable yet
there is also display/none where you can set your own scale value
Thanks for the help, I've just switched to HYBRID_DISPLAY_HEAD for now, as its a clear improvement.
This is worked around sufficiently for me, and it doesn't sound like much more can be done, so I'll close now. Thanks again
Info
Please provide the following information:
/train version
): v1.20.1-v3-SNAPSHOT (build: 1605)/train version
): v1.20.1-v3-SNAPSHOT (build: 1444)/version
): git-Paper-65 (MC: 1.20.1)Bug
Description
I have animated some train wheels to spin (with pitch) when the train moves. They work great when the train moves slowly, however at speed the smaller wheels wobble like crazy (i.e. they look as if they're wobbling off center), and when going diagonally (e.g. with TC-coaster rails) the bigger wheels yaw very fast back and forth about the Y axis.
Expected behaviour
Ideally items with a looped pitch animation should animate the same at high speed as at low speed, just faster.
Actual behaviour
Fast animated items (pitch) rotate off center or with non-animated axes (yaw) not matching that of the train as it goes diagonally.
In the following pic the big wheels can be seen at the wrong yaw, and the small wheels at the front have at that moment sunk into the track:
Here's a stationary pic: https://github.com/amalon/hoganfam-trains/blob/master/docs/a4.jpg
Steps to reproduce
Create a wheel with the following animation:
Or use the "a4" train from the hoganfam_trains.yml saved train module and the corresponding resource pack found here: https://github.com/amalon/hoganfam-trains
Drive the train at speed along diagonal track and observe from 3rd person view.
Perhaps there is a better way to do the animation so this doesn't happen? Or perhaps due to client side interpolation this will never work? It'd be nice if it could work though, as spoked wheels look really odd not rotating!