Today I’ll show you a way to show a player character or event using custom poses. If you haven’t already done something like this, it’s great for showing characters who are…
- casting a spell
- hair blowing in the wind dramatically
- any other pose that will fit on your sprite sheet.
Sadly, RPG Maker doesn’t really have an intuitive way to add on additional poses for a character, even when it’s really logical that you might need it. Because of this, I’ve seen a few games where the game had to basically tell me in dialogue what a character was doing because the developer had no good way of showing it in sprite form.
Fortunately, it’s easier than it looks.
There are two ways of going about it, one method that requires a script, and one that doesn’t. If you don’t anticipate needing many additional poses, I’m definitely going to recommend the scriptless version.
Scriptless Custom Poses
The typical character sheet looks something like this:
Just plain ol’ walking sprites…down, left, right and up. Now, let’s move over to the next slot (you can use a new sheet, too, if you want) and make one direction into a pose instead. Fill all three slots in the row and use only one pose.
Why do it this way? Remember that each direction calls a new part of the character sheet. So now, when the player faces down while using that slot, it will still call the “down-facing” portion of the character sheet, but instead of south-facing sprites, it will now find a sleeping sprite instead!
RPG Maker doesn’t know or care what the pose actually is. It will show whatever is in that slot. So now, it’s just a matter of turning the player in the right direction!
In the event that controls the scene, choose “set move route,” target the player or whatever event should change, then “change graphic.” (“change image” in MV.) Select the “sleep” slot, and then turn the player to face down. You should now be using the “sleep” pose.
When you do this in a cutscene…
Your player character now appears to be sleeping! Easy, right? There’s only one problem…if you use this method on an event you can talk to, the event’s graphic will change if you interact with it. So one more bit is necessary to make this work –
Just add Direction Fix, and the character won’t move from the pose unless you tell them to. Just don’t forget to change it back when you’re done.
This is a simple and effective way to change the character’s graphic if you don’t need to do it very often. But what if you’re like me, and want to show different emotions, poses and whatnot in, well, basically every cutscene in the game?
Scripted Custom Poses
If you want to use tons of custom poses, you may want to go with this version so you don’t end up with tons of sheets of actions that just waste space. Let’s make a new sprite sheet, but this time, let’s make it look like this.
Unlike the unscripted version, you can use one pose in every single slot, saving a lot of room and making your game much smaller.
Are you already using Galv’s Move Route Extras? It’s available for both Ace and MV and adds a ton of great functionality to your cutscenes. If you don’t have it, take a moment to go get it and install it; it’ll probably be worth your while.
Ready? Okay! Here’s how you use it.
Each sheet is divided like this.
RPG Maker uses this system to figure out what sprites to use at any given time. So our sleeping sprite is in the first slot (index), in the third block (pattern), on the #2 row (direction). creating a coordinate of 1,3,2.
ACE: set_char("our_sleepy_hero_actions.png",index,pattern,direction) MV: this.set_frame("our_sleepy_hero_actions",index,pattern,direction)
(NOTE, NO PNG EXTENSION for the MV version.)
So for Ace, we’d use the code: set_char(“our_sleepy_hero_actions.png”,1,3,2)
and MV would use: this.set_frame(“our_sleepy_hero_actions”,1,3,2)
Now all that’s left to do is drop it in a move route and see what happens! Use the script command within the move route. Don’t forget to set Direction Fix if you want the custom pose to remain for a bit.
I’m going to embellish here.
Let’s try it and see what happens.
With MV, use this.restore_frame() to set the graphics back to normal, and for Ace, use restore_char.
Hope this helps all of you clear up any problems you may have with custom poses!