MaKiPL / OpenVIII-monogame

Open source Final Fantasy VIII engine implementation in C# working on Windows and Linux (Android and iOS planned too!) [Monogame]
MIT License
641 stars 59 forks source link

Battle module camera progress #92

Closed MaKiPL closed 4 years ago

MaKiPL commented 5 years ago

This issue is made to track progress and TODOs- also as note holder so I won't forget where I left stuff

Mode 0: Camera animation set 0, animation 0. a0stg006.x - sceneID 0000 Description: The camera drops from the sky, visible roofing- camera moves forward, right and down up to 'character' eye level- could be easy to find Y up/down axis NOTE- it looks like the lookat and world should drop synchronically, but it's not true looking at the values

lookat
frame0  frame1  CHANGE (rise+ drop-)
-6396   -1118   5278 +
-1384   130 1514 +
-3008   -530    2478 +

world
-5091   -846    4245 +
13674   6205    7469 -
4245    2157    2088 -

V=100

n/V = realN

MaKiPL commented 5 years ago

simulation a0stg006.x:set0:anim0


piątek, 7 czerwca 2019: TARGET= {X:77,62666 Y:80,24156 Z:-54,61815}; WORLD= {X:82,16656 Y:82,19357 Z:-63,52822}
piątek, 7 czerwca 2019: TARGET= {X:43,04429 Y:48,33279 Z:-22,70892}; WORLD= {X:46,9516 Y:51,30879 Z:-31,91397}
MaKiPL commented 5 years ago

Axis is now correct on mode 0. Mode 1 untested. Added another check- there's no next shot jump implemented at all

MaKiPL commented 5 years ago

a0stg002.x:0:1 - time warp issue cam.startingFOV = 352 cam.endingFOV = 352 Not FOV issue is_FrameDurationsShot = {byte[32]} - fixed 241 (default) unkword024 - word[3] 0 1104 <-may be warp, but distance is 16 which is one frame 1120 <- duration

I don't understand that one^

testing on a0stg002.x:0:7 shows that there's something unreversed about another shots. It ends with 0xFFFF so usually as it should, but it still goes into another shot which is not read. Also looks like unkword024 is the index(absTime) of shots

MaKiPL commented 5 years ago

found the next shot formula- it should end with DWORD 0xFFFFFFFF not short -1. Therefore every animation that ends on frame 1 has 0xFFFF and the next control word is 0xFFFF. If there are multiple shots, then the animation ends with 0xFFFF, but the next word is control_word instead, therefore the parsing should be ongoing till the first control_word in while loop returns -1

MaKiPL commented 5 years ago

right now mode 1 camera falls back to mode 0- I've not seen so far any issue. Let me know when someone encounters something weird like animation that lasts very long or when camera movement is really bad- like digging underground or moving outside the battle the FOV is so far the major issue

MaKiPL commented 4 years ago

FOV is now correct- let me know if you encounter something weird

MaKiPL commented 4 years ago

so far closing this one- it's more or less complete