1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-02-02 03:35:09 +01:00

Fix angle accuracy, add curved lift hill, add variables

Olivier Wervers
2018-06-23 15:26:24 +02:00
parent 7d89eade0d
commit 845dca78c9
2 changed files with 98 additions and 104 deletions

@@ -1,104 +0,0 @@
TODO:
- Add spiral lift hill (As seen on Spiral Roller Coaster), can exist as a replacement for the corkscrew section.
- Add vehicle variables and what sections relate to them.
This page shows the order and angles in which the sprites for the various angles for tracked rides cars are laid out.
Most rides don't use all the sections. A ride which doesn't support corkscrews for example do not include the corkscrew section.
After the car sprites the entire layout is repeated for the different combinations of riders. Cars with 4 seats do not have individual sprites for 1 and 3 riders.
Cars with additional animations, like a swinging inverted coaster, or a spinning coaster, simply have each frame of their movement for every new angle. Meaning that for example, a car with a 5 frame swinging animation will have the following layout: flat-unbanked viewing angle 0: frame 1, frame 2, frame 3, frame 4. flat-unbanked viewing angle 1: etc.
The additional animations do not apply to the the optional lapbar animations which can be found on some rides. This is due to the car always being stationary when loading/unloading.
| Diagonal | Viewing Angles| Incline | Banking | Rotation | Notes/Section |
| :-------: | -----: | -----: | -----: | -----: | :----- |
| | 32 | 0 | | | Flat |
| | 4 | 15 | | | Inclines |
| | 4 | -15 | | | |
| | 32 | 30 | | | |
| | 32 | -30 | | | |
| | 8 | 45 | | | Steep incline |
| | 8 | -45 | | | |
| | 32 | 60 | | | |
| | 32 | -60 | | | |
| | 4 | 75 | | | Vertical incline |
| | 4 | -75 | | | |
| | 32 | 90 | | | |
| | 32 | -90 | | | |
| | 4 | 105 | | | Looping / half loop |
| | 4 | -105 | | | |
| | 4 | 120 | | | |
| | 4 | -120 | | | |
| | 4 | 135 | | | |
| | 4 | -135 | | | |
| | 4 | 150 | | | |
| | 4 | -150 | | | |
| | 4 | 165 | | | |
| | 4 | -165 | | | |
| | 4 | 180 | | | |
| x | 4 | 13 | | | Diagonal inclines |
| x | 4 | -13 | | | |
| x | 4 | 28 | | | |
| x | 4 | -28 | | | |
| x | 4 | 41 | | | Steep diagonal incline |
| x | 4 | -41 | | | |
| | 8 | 0 | -22,5 | | Banking |
| | 8 | 0 | 22,5 | | |
| | 32 | 0 | -45 | | |
| | 32 | 0 | 45 | | |
| | 4 | 0 | -15 | | Heartline |
| | 4 | 0 | 15 | | |
| | 4 | 0 | -30 | | |
| | 4 | 0 | 30 | | |
| | 4 | 0 | -45 | | |
| | 4 | 0 | 45 | | |
| | 4 | 0 | -60 | | |
| | 4 | 0 | 60 | | |
| | 4 | 0 | -75 | | |
| | 4 | 0 | 75 | | |
| | 32 | 15 | -22,5 | | Unknown/unused angles present on rides with banking |
| | 32 | 15 | 22,5 | | |
| | 32 | -15 | -22,5 | | |
| | 32 | -15 | 22,5 | | |
| x | 4 | 13 | -22,5 | | Diag banked flat to hill |
| x | 4 | 13 | 22,5 | | |
| x | 4 | -13 | -22,5 | | |
| x | 4 | -13 | 22,5 | | |
| | 4 | 30 | -22,5 | | Banked flat to banked hill |
| | 4 | 30 | 22,5 | | |
| | 4 | -30 | -22,5 | | |
| | 4 | -30 | 22,5 | | |
| | 32 | 30 | -45 | | |
| | 32 | 30 | 45 | | |
| | 32 | -30 | -45 | | |
| | 32 | -30 | 45 | | |
| | 4 | 15 | -45 | | Banked flat to banked hill |
| | 4 | 15 | 45 | | |
| | 4 | -15 | -45 | | |
| | 4 | -15 | 45 | | |
| | 4 | -16,4 | -15,8 | 2,3 | Right corkscrews |
| | 4 | -43,3 | -34,4 | 14 | |
| | 4 | -90 | -45 | 45 | |
| | 4 | -136,7 | -34,4 | 76 | |
| | 4 | -163,6 | -15,8 | 87,7 | |
| | 4 | 16,4 | 15,8 | 2,3 | Second half(left) straight to upside down |
| | 4 | 43,3 | 34,4 | 14 | |
| | 4 | 90 | 45 | 45 | |
| | 4 | 136,7 | 34,4 | 76 | |
| | 4 | 163,6 | 15,8 | 87,7 | |
| | 4 | -16,4 | 15,8 | -2,3 | Left corkscrews |
| | 4 | -43,3 | 34,4 | -14 | |
| | 4 | -90 | 45 | -45 | |
| | 4 | -136,7 | 34,4 | -76 | |
| | 4 | -163,6 | 15,8 | -87,7 | |
| | 4 | 16,4 | -15,8 | -2,3 | Second half (right) straight to upside down |
| | 4 | 43,3 | -34,4 | -14 | |
| | 4 | 90 | -45 | -45 | |
| | 4 | 136,7 | -34,4 | -76 | |
| | 4 | 163,6 | -15,8 | -87,7 | |
| | 4 | 0 | | | Lapbar animation frame 0 (Up) |
| | 4 | 0 | | | Lapbar animation frame 1 |
| | 4 | 0 | | | Lapbar animation frame 2 (Down) |
The research was done by looking at the individual sprites of a number of rides. Please check the spreadsheet with the raw data used to compose this page:
https://docs.google.com/spreadsheets/d/1xerngIApgMCzmDk7077DANS2-MykLraknePsKN2tDwA/edit?usp=sharing

98
Vehicle-Sprite-Layout.md Normal file

@@ -0,0 +1,98 @@
This page shows the order and angles in which the sprites for the various angles for tracked ride vehicles are laid out.
After the vehicle sprites, the entire layout is repeated for the different combinations of riders. Cars with 4 seats do not have individual sprites for 1 and 3 riders.
Cars with additional animations, like a swinging inverted coaster, have their number of sprites multiplied by the number of frames in their animation.
| Diagonal | Viewing Angles | Incline | Banking | Rotation | Variable |
| :---: | ----: | ----: | ----:| ----: | :---- |
| FALSE | 32 | 0 | 0 | 0 | VEHICLE_SPRITE_FLAG_FLAT |
| FALSE | 4 | 11.1026 | 0 | 0 | VEHICLE_SPRITE_FLAG_GENTLE_SLOPES |
| FALSE | 4 | -11.1026 | 0 | 0 | VEHICLE_SPRITE_FLAG_GENTLE_SLOPES |
| FALSE | 32 | 22.2052 | 0 | 0 | VEHICLE_SPRITE_FLAG_GENTLE_SLOPES |
| FALSE | 32 | -22.2052 | 0 | 0 | VEHICLE_SPRITE_FLAG_GENTLE_SLOPES |
| FALSE | 8 | 40.36 | 0 | 0 | VEHICLE_SPRITE_FLAG_STEEP_SLOPES |
| FALSE | 8 | -40.36 | 0 | 0 | VEHICLE_SPRITE_FLAG_STEEP_SLOPES |
| FALSE | 32 | 58.5148 | 0 | 0 | VEHICLE_SPRITE_FLAG_STEEP_SLOPES |
| FALSE | 32 | -58.5148 | 0 | 0 | VEHICLE_SPRITE_FLAG_STEEP_SLOPES |
| FALSE | 4 | 75 | 0 | 0 | VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES |
| FALSE | 4 | -75 | 0 | 0 | VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES |
| FALSE | 32 | 90 | 0 | 0 | VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES |
| FALSE | 32 | -90 | 0 | 0 | VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES |
| FALSE | 4 | 105 | 0 | 0 | VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES |
| FALSE | 4 | -105 | 0 | 0 | VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES |
| FALSE | 4 | 120 | 0 | 0 | VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES |
| FALSE | 4 | -120 | 0 | 0 | VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES |
| FALSE | 4 | 135 | 0 | 0 | VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES |
| FALSE | 4 | -135 | 0 | 0 | VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES |
| FALSE | 4 | 150 | 0 | 0 | VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES |
| FALSE | 4 | -150 | 0 | 0 | VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES |
| FALSE | 4 | 165 | 0 | 0 | VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES |
| FALSE | 4 | -165 | 0 | 0 | VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES |
| FALSE | 4 | 180 | 0 | 0 | VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES |
| TRUE | 4 | 8.0503 | 0 | 0 | VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES |
| TRUE | 4 | -8.0503 | 0 | 0 | VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES |
| TRUE | 4 | 16.1005 | 0 | 0 | VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES |
| TRUE | 4 | -16.1005 | 0 | 0 | VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES |
| TRUE | 4 | 49.1035 | 0 | 0 | VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES |
| TRUE | 4 | -49.1035 | 0 | 0 | VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES |
| FALSE | 8 | 0 | -22.5 | 0 | VEHICLE_SPRITE_FLAG_FLAT_BANKED |
| FALSE | 8 | 0 | 22.5 | 0 | VEHICLE_SPRITE_FLAG_FLAT_BANKED |
| FALSE | 32 | 0 | -45 | 0 | VEHICLE_SPRITE_FLAG_FLAT_BANKED |
| FALSE | 32 | 0 | 45 | 0 | VEHICLE_SPRITE_FLAG_FLAT_BANKED |
| FALSE | 4 | 0 | -15 | 0 | VEHICLE_SPRITE_FLAG_INLINE_TWISTS |
| FALSE | 4 | 0 | 15 | 0 | VEHICLE_SPRITE_FLAG_INLINE_TWISTS |
| FALSE | 4 | 0 | -30 | 0 | VEHICLE_SPRITE_FLAG_INLINE_TWISTS |
| FALSE | 4 | 0 | 30 | 0 | VEHICLE_SPRITE_FLAG_INLINE_TWISTS |
| FALSE | 4 | 0 | -45 | 0 | VEHICLE_SPRITE_FLAG_INLINE_TWISTS |
| FALSE | 4 | 0 | 45 | 0 | VEHICLE_SPRITE_FLAG_INLINE_TWISTS |
| FALSE | 4 | 0 | -60 | 0 | VEHICLE_SPRITE_FLAG_INLINE_TWISTS |
| FALSE | 4 | 0 | 60 | 0 | VEHICLE_SPRITE_FLAG_INLINE_TWISTS |
| FALSE | 4 | 0 | -75 | 0 | VEHICLE_SPRITE_FLAG_INLINE_TWISTS |
| FALSE | 4 | 0 | 75 | 0 | VEHICLE_SPRITE_FLAG_INLINE_TWISTS |
| FALSE | 32 | 11.1026 | -22.5 | 0 | VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_BANKED_TRANSITIONS |
| FALSE | 32 | 11.1026 | 22.5 | 0 | VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_BANKED_TRANSITIONS |
| FALSE | 32 | -11.1026 | -22.5 | 0 | VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_BANKED_TRANSITIONS |
| FALSE | 32 | -11.1026 | 22.5 | 0 | VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_BANKED_TRANSITIONS |
| TRUE | 4 | 8.0503 | -22.5 | 0 | VEHICLE_SPRITE_FLAG_DIAGONAL_GENTLE_SLOPE_BANKED_TRANSITIONS |
| TRUE | 4 | 8.0503 | 22.5 | 0 | VEHICLE_SPRITE_FLAG_DIAGONAL_GENTLE_SLOPE_BANKED_TRANSITIONS |
| TRUE | 4 | -8.0503 | -22.5 | 0 | VEHICLE_SPRITE_FLAG_DIAGONAL_GENTLE_SLOPE_BANKED_TRANSITIONS |
| TRUE | 4 | -8.0503 | 22.5 | 0 | VEHICLE_SPRITE_FLAG_DIAGONAL_GENTLE_SLOPE_BANKED_TRANSITIONS |
| FALSE | 4 | 22.2052 | -22.5 | 0 | VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TRANSITIONS |
| FALSE | 4 | 22.2052 | 22.5 | 0 | VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TRANSITIONS |
| FALSE | 4 | -22.2052 | -22.5 | 0 | VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TRANSITIONS |
| FALSE | 4 | -22.2052 | 22.5 | 0 | VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TRANSITIONS |
| FALSE | 32 | 22.2052 | -45 | 0 | VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TURNS |
| FALSE | 32 | 22.2052 | 45 | 0 | VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TURNS |
| FALSE | 32 | -22.2052 | -45 | 0 | VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TURNS |
| FALSE | 32 | -22.2052 | 45 | 0 | VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TURNS |
| FALSE | 4 | 11.1026 | -45 | 0 | VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_WHILE_BANKED_TRANSITIONS |
| FALSE | 4 | 11.1026 | 45 | 0 | VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_WHILE_BANKED_TRANSITIONS |
| FALSE | 4 | -11.1026 | -45 | 0 | VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_WHILE_BANKED_TRANSITIONS |
| FALSE | 4 | -11.1026 | 45 | 0 | VEHICLE_SPRITE_FLAG_FLAT_TO_GENTLE_SLOPE_WHILE_BANKED_TRANSITIONS |
| FALSE | 4 | -16.4 | -15.8 | 2.3 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | -43.3 | -34.4 | 14 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | -90 | -45 | 45 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | -136.7 | -34.4 | 76 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | -163.6 | -15.8 | 87.7 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | 16.4 | 15.8 | 2.3 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | 43.3 | 34.4 | 14 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | 90 | 45 | 45 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | 136.7 | 34.4 | 76 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | 163.6 | 15.8 | 87.7 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | -16.4 | 15.8 | -2.3 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | -43.3 | 34.4 | -14 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | -90 | 45 | -45 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | -136.7 | 34.4 | -76 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | -163.6 | 15.8 | -87.7 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | 16.4 | -15.8 | -2.3 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | 43.3 | -34.4 | -14 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | 90 | -45 | -45 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | 136.7 | -34.4 | -76 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | 163.6 | -15.8 | -87.7 | VEHICLE_SPRITE_FLAG_CORKSCREWS |
| FALSE | 4 | 0 | 0 | 0 | VEHICLE_SPRITE_FLAG_RESTRAINT_ANIMATION |
| FALSE | 4 | 0 | 0 | 0 | VEHICLE_SPRITE_FLAG_RESTRAINT_ANIMATION |
| FALSE | 4 | 0 | 0 | 0 | VEHICLE_SPRITE_FLAG_RESTRAINT_ANIMATION |
| FALSE | 32 | 98.287 | 0 | 0 | VEHICLE_SPRITE_FLAG_CURVED_LIFT_HILL |
The angles were calculated with data from: https://github.com/OpenRCT2/OpenRCT2/wiki/Sizes-and-angles-in-the-game-world