VN What are some methods of creating different poses/expressions for character sprites?

JWGameDev

Newbie
Jul 3, 2019
26
6
Hi all,

I'm working on a VN project and I'm reaching the point where I have to start thinking seriously about some of the art-based aspects of the game. What I'm trying to figure out now is what the best method of creating varying expressions/poses for the characters, while minimizing the amount of labor.

The naive solution sounds like it would be to just draw a whole different body for every new expression I need, but that seems like it would be a lot of work for the artist. The method I have in mind now is to start with a body pose that signifies some expression, such as anger or excitement, and then create a couple different matching facial expressions to vary the pose up a bit. Obviously, then I'd just kinda stick them together in Photoshop or whatnot.

What do you experienced developers think? Are there other methods with their own pros and cons? Thanks in advance for your assistance!
 

nillamello

Member
Game Developer
Oct 11, 2018
198
592
Are you using Renpy? The newest iteration has a good layered images system (especially if you're going the hand-drawn route). You start with a base pose, then add elements on top using transparencies. That can include literally anything, and the system allows for a ton of layers. Obviously, facial expressions, but also clothes, arm positions, glasses, hair styles... the limit is your own process, I think.

The documentation is good, but (renpy developer) on how to convert existing images into the new layered images format is the best thing I found to help understand how to name characters and image files to get the system to work properly. There are also some good forum discussions that pop up when you do a google search for 'renpy layered images'.

On a side note, I also had a similar problem about a month ago. And while the naming of the files for this system is really specific and a little unintuitive, the end result once everything is in place is really easy to work with in the code (once an element is called, it remains active until another element in that group is called, so if you have glasses on, it will keep the glasses layer active without mentioning it again in the code (until you remove them explicitly). So you can change expressions with a simple "show character happy" instead of "show character croptop shortskirt arms_up glasses_on hair_red happy".
 

JWGameDev

Newbie
Jul 3, 2019
26
6
Hi, thanks for the responses! I probably should have clarified that I am going for a drawn, non-3D game haha.

Unfortunately, I'm not using Renpy, rather Unity with the Naninovel engine asset. I decided to go that route because I want to incorporate mini-games into the game at some point and in general I have a game idea or two that would be better suited for Unity.

Even so, I'll look into the layering system Renpy uses, it seems interesting. I'm pretty sure Naninovel does just go by individual character sprites, but perhaps I could incorporate some kind of layering system into my art workflow.
 

polywog

Forum Fanatic
May 19, 2017
4,062
6,272
Are you using Renpy? The newest iteration has a good layered images system (especially if you're going the hand-drawn route). You start with a base pose, then add elements on top using transparencies. That can include literally anything, and the system allows for a ton of layers. Obviously, facial expressions, but also clothes, arm positions, glasses, hair styles... the limit is your own process, I think.

The documentation is good, but (renpy developer) on how to convert existing images into the new layered images format is the best thing I found to help understand how to name characters and image files to get the system to work properly. There are also some good forum discussions that pop up when you do a google search for 'renpy layered images'.

On a side note, I also had a similar problem about a month ago. And while the naming of the files for this system is really specific and a little unintuitive, the end result once everything is in place is really easy to work with in the code (once an element is called, it remains active until another element in that group is called, so if you have glasses on, it will keep the glasses layer active without mentioning it again in the code (until you remove them explicitly). So you can change expressions with a simple "show character happy" instead of "show character croptop shortskirt arms_up glasses_on hair_red happy".
I've posted links and info about "layered images" twice, and both times some noob dev has replied to my post saying don't do that, or that's wrong. With layered images, you can make a character sprite, complete with all their facial expressions, and 5 changes of clothing. Then move the sprite around in the scene all you want, and change their mood, clothing etc, with script or variables. So much easier than the old way.
 

polywog

Forum Fanatic
May 19, 2017
4,062
6,272
Hi, thanks for the responses! I probably should have clarified that I am going for a drawn, non-3D game haha.

Unfortunately, I'm not using Renpy, rather Unity with the Naninovel engine asset. I decided to go that route because I want to incorporate mini-games into the game at some point and in general I have a game idea or two that would be better suited for Unity.

Even so, I'll look into the layering system Renpy uses, it seems interesting. I'm pretty sure Naninovel does just go by individual character sprites, but perhaps I could incorporate some kind of layering system into my art workflow.


9d0ab664-4229-4c44-ae35-fe6d5d10095d.jpg GAF_vs_Sprite_Sheets_big.png