Kion
DashGL
- Joined
- Oct 11, 2018
- Location
- dashgl.com
It feels like we've made a little bit of progress but that was the easy part. Using the image above as a reference, we start with Ryo standing. When we push up on the controller, it looks like the game initializes the animation where it reads the instructions and block 2 value. The next part we need to get to is the actual animation where transformation values are read for each node on each frame. And when running the animation the game bounces back and forth between blocks 3 and 4 before magically jumping to a key frame value.
Code:
Reading 1 bytes @ 0x0075 // block 03 0x05
Reading 1 bytes @ 0x0135 // block 04 0x00
Reading 1 bytes @ 0x0135 // block 04 0x00
Reading 1 bytes @ 0x0075 // block 03 0x05
Reading 1 bytes @ 0x0136 // block 04 0xff
Reading 1 bytes @ 0x0136 // block 04 0xff
Reading 1 bytes @ 0x0075 // block 03 0x05
Reading 1 bytes @ 0x0136 // block 04 0xff
Reading 1 bytes @ 0x0076 // block 03 0x07
Reading 1 bytes @ 0x0136 // block 04 0xff
Reading 1 bytes @ 0x0077 // block 03 0x09
Reading 1 bytes @ 0x0137 // block 04 0xff
Reading 1 bytes @ 0x0078 // block 03 0x10
Reading 1 bytes @ 0x0137 // block 04 0xff
Reading 1 bytes @ 0x0079 // block 03 0x11
Reading 1 bytes @ 0x0137 // block 04 0xff
Reading 1 bytes @ 0x007a // block 03 0x13
Reading 1 bytes @ 0x0137 // block 04 0xff
Reading 1 bytes @ 0x007b // block 03 0x18
Reading 1 bytes @ 0x0138 // block 04 0xff
Reading 1 bytes @ 0x007c // block 03 0x1a
Reading 1 bytes @ 0x0138 // block 04 0xff
Reading 1 bytes @ 0x007d // block 03 0x1b
Reading 1 bytes @ 0x0138 // block 04 0xff
Reading 1 bytes @ 0x007e // block 03 0x1e
Reading 2 bytes @ 0x01d6 // block 05 -0.22144
Reading 2 bytes @ 0x01d8 // block 05 -0.22144
Reading 2 bytes @ 0x01da // block 05 1.12891
Reading 2 bytes @ 0x01dc // block 05 -0.14490
Reading 2 bytes @ 0x01de // block 05 -0.14490
Reading 2 bytes @ 0x01e0 // block 05 1.11230
Above is the root bone position. We can see that the game ping-pongs back and forth between block 3 and 4 before knowing where to read values from in block 5. What we can do know is try making a list of possibilities as to how this works. In the initialize state of the animation we read a single value from Block 2, and then we read a few values from Block 4, we still don't exactly know what those do and if they have an impact on anything or not. For Block 3 it looks like we start reading from the start of the block, but it doesn't look like we read in order, as the location being read from Block 3 tends to jump around. And Block 4 actually refers to a look up table, so I should probably try adding the Look up tale values into the log to see if that provides any hits for how far things are moving around.