« on: June 26, 2011, 06:48:48 PM »
I've spent a lot of time recently trying to get EVTCHR frames loaded into custom events. Through trial and error, I've put together a map tying EVTCHR frames within a sheet to the hex value you call within the UnitAnim() Event Instruction. Hopefully this will be useful to other event editors who wish to insert custom EVTCHR frames into their events.
A few notes:
RAM Block 1 is x00 using the LoadEVTCHR and SaveEVTCHR Instructions, so
Loads EVTCHR Sheet 66 into RAM Block 1. RAM Block 2 is x01, which for sheet 66 would be:
When you go to use UnitAnim(), remember that the 4th input variable is now x01 for RAM Block 1, and x02 for RAM Block 2 (x00 is the normal sprite sheet animation, not EVTCHR).
There is no way that I know of to call a frame in the 8th column on the EVTCHR sheet. If you look at the EVTCHR sheets in the vanilla game, these all seem to be glitchy images anyway, such as a sprite facing directly at the camera, and are never called in-game.
Curiously, loading the EVTCHR Sheet to RAM Block 2 gives you the option to call all 7 frames on all 5 rows (35 total frames), while loading to RAM Block 1 only gives you access to 23 total frames. You get all of the first row, the first 5 and 7th from the second row, but then only every other frame from there on out. If you look at the event instructions from Vanilla, you'll see the game almost always uses RAM Block 2, and only loads RAM Block 1 when a secondary EVTCHR load is needed.
Also, I don't have complete notes on this, but in my experience loading an EVTCHR sheet in both RAM Blocks precludes certain regular animations from occurring, such as a weapon strike during a cutscene. This is somewhat inconsistent that I've observed, but if all of sudden you add both EVTCHR frames to your custom event and then all of a sudden your characters won't swing their weapon when called, try removing one of the EVTCHR loads.
The attached file tells you which animation frame is called for which hex value. So if you want to load the first frame on the sheet, your event instructions would include either the following using RAM Block 1:
or the following using RAM Block 2:
This example assumes you're trying to load EVTCHR Sheet 66 and replace the Unit x85 sprite.
If you wanted to load the frame at Row 2, Column 6, your only option would be to use RAM Block 2:
Where my map has xXX, that means that that frame can't be called for the RAM Block.
Why do the EVTCHR Frames have such unusual starting values for the hex bytes? I have no idea. It was extremely frustrating at first trying to figure this out, lacking any good explanation that I could find. Having the map though makes it relatively pain-free.
This should help other event editors get EVTCHR frames into their events without having to go through a lot of trial and error.