NokiMo
Herokero
Herokero

patreon


Update 9/6/21

Hey there! Lemme set the stage for this update. Might technically contain some incorrect information, but if it is incorrect, well, it's been so for me as well.

In rpgmaker, you have the assets, and the database. The assets are, well, the images, graphics, music, and whatnot; the database is all of the gamey bits. You can assign assets to database content, namely actors and enemies; if you modify the asset as it exists in rpgmaker, said modification is reflected in the database. E.g., if you decide an enemy would look better with an eyepatch, and you alter the asset and save it, the enemy graphic in the database will have said eyepatch.

This does not apply, however, if you rename said asset. The engine will still pull the file it was originally assigned to. If, for whatever reason, you decided to rename an existing file, instead of simply saving a copy with a new name, you... break stuff. This is, I believe, if not a universal fact of coding, a very fundamental one.

This has happened to me, on occasion!

However, that's not the point of today.

Being that FEF is a weight gain game, and one intended to track choices, or at least, make choices kinda matter (lord that's so hard), it stands to reason that the facial portrait of characters should reflect their growing size. Which... I mean, yeah. Of course! I've even shown off fatter faces before.

The thing is... my dumbass also wanted them to emote.

In rpgmaker, face graphics are formatted exclusively, as far as I can tell, in 144x144 pixel squares, in grids 4 long, 2 tall.  The stock assets provide examples, with multiple faces belonging to various assorted characters on the same page. A common thing, instead, is to have a face image instead devoted to multiple expressions of the same character. There is technically no need for this other than convenience, because of an element of the eventing: the message box.

In an rpgmaker message box, you can assign a specific face graphic to the text provided. Using the 'demo' images, one can make series of conversations involving the faces provided. Or... using the 'emotive' page mentioned above, one could select from a series of expressions for one specific speaker.

But what if that speaker's face could be one of several different sizes? (or colors, or whatever, in a game with a character creator) How do you track, or account for that?

As part of the eventing wherein a character's sprite changes to a new, fatter one, their face image can change. However, by default, there's no way to flag, or check for that occurrence, as far as I'm aware. To account for that, I made various attempts at making proxies--switches, class changes, variables, something I could track or check for. Then, when it came to an event with character dialogue, I would run a conditional. "If switch "Character x=fatty" is on, run text with graphic 'A'', else, use graphic 'b'". Etc., etc.

Okay. So, that seems manageable, right? Just run that for... how many face sizes will the Main Character have? Six or seven? Okay. So six or seven conditionals, for her...

Except, it'd have to be that for every character I added. And I, in my infinite wisdom, wanted like 10+. And that's not even counting the work of writing the actual dialogue. Yeah, it's just making conditionals, but more to the point, its remembering to track them all. And, well... I like writing. I like writing dialogue. So... do I write far less? Do I forcibly update sizes to limit what faces I have to account for? Do I make less characters? These were the design decisions I was wresting with, on top of real-life drama that I won't get into.

And then... it happened.  A friend, actually one of the people who inspired me to make the game in the first place, found EXACTLY the solution I was looking for. Turns out a plugin tracking actor face sheets had existed essentially since 2015/6, by the name of "more Escape Codes," or something to that effect.

Previous face plugins I'd seen allowed one to change the supplied face graphic mid-text, which allowed for on-the-fly emoting, but nothing I had seen yet allowed for tracking across multiple face sheets, just intra-sheet.

What "MoreEscapeCodes" allows is the ability to select from the 'currently-employed' face graphic set, any face on that set.  So, as long as the faces are sorted properly... I can use, say, the 'sad' face of a character, no matter their size, as long as the sad face is mapped to a specific index of the pool of faces... no conditional required.

...

Writing all of this out in this way makes me feel, perhaps, that alternate solutions or plugins existed that could have solved my dilemma earlier. So maybe this isn't the miraculous solution that I portray it as. But, well... if you don't know the tool you have is the tool you need, is it REALLY the tool you need?

At any rate, finding this plugin has been a huge boost to my morale. Having implemented it, I now need to go back through my existing game and re-do... well, most of the conditional dialogue, which sucks.  BUT, it's futureproofing, which I feel is at least just as important, if not more.

... God, this is a lot, haha. But progress! Progress continues!


Related Creators