OhWee's Guide for making Girl Packs for SU ReImagined:
Added on 03/30/2023
So a few people have been curious about how best to set up girl packs, what pictures are needed, etc.
First off, I would recommend that people that are interested in such things open up the Zatanna folder, and open up Zatanna.rpy to follow along.
Note that the folder names have no spaces in between the first and last names if there is a last name (note WonderWoman.rpy), and that associated sprites also do not have a space (example: WonderWoman_profile0.png). Also note that the names are capitalized for consistency, i.e.
game/girls/Zatanna
For other girls, simply substitute Zatanna with the name of the girl in question (Supergirl, etc.).
So, SU ReImagined looks for a few pictures, that are linked to the current outfit that a girl is wearing. I'll talk more about these in a bit.
Outfit 0 is the 'default' Superheroine outfit, i.e. the outfit that she's wearing when she first shows up at the Glamour Slam.
Outfit 1 is the first outfit that we see when we first visit a girl in the Lexcorp Quarters area, IF it's not her default superheroine costume.
Outfit 2, etc. are subesquent outfits, usually in the order that they first appear in the Lexcorp Quarters scenes.
Outfit 69 is her "Birthday Suit", i.e. completely naked with no clothing items whatsoever. I picked 69 because the odds of a girl having 68 other outfits are extremely low, and 69 invokes visions of nekkid bodies...
So, outfits are tied to two variables:
Zatanna_outfits is the number of outfits (besides her 'default' Superheroine outfit, that she has in her outfit inventory. Not including the 'Birthday Suit' of course!
Zatanna_current_outfit is the current outfit that a Superheroine is wearing.
So if Zatanna is wearing her "Silver Age" outfit, that is indexed as outfit 2 in the Zatanna.rpy folder. Note that the associated body sprite is bodyoutfit2.png
Anyways, so back to what the rest of the framework is looking for.
1) Profile pics for each outfit.
- these are referred to as Zatanna_profile0.png, Zatanna_profile1.png etc.
- Profile pics should be 'different from' the conversational sprite if other sprites are available in that particular outfit, and I usually face those towards the left. Neither of these are requirements, this is simply to make the Profile and Management screens profile pics a little more interesting/not the same as the other pics used on those screens.
- Profile pics are 500 x 510 pixels, and are 'cropped' to conform with this background, with a bit of overlap:
- Simply overlay the pic you want to use for the profile pic on top of this background image (which is sized at 500 x 510). As for cropping, I've been using the bottom angled corners as the 'crop guide'. while having the head and arms extend outside of the box, while having the body cropped just below the breasts. This is a 'use your best judgement' situation. sometimes I'll crop the left side so that it conforms with the box (i.e. the right shoulder is 'behind' the box edge if that makes sense) again, this just comes down to whatever works best for the pic you are working with, AS LONG AS the image isn't wider than 500 pixels when you are done. Remember to 'hide' the crop/background image before you save your pics.
- Again, you will need one profile pic for each outfit. Also a 'birthday suit' variant for 'outfit' 69.
- Note that Zatanna has a 69 and 69n variant. The 69 variant is 'nude with mask/hat' the idea being that a girl will still wear her mask in the Glamour Slam even if she's otherwise completely nude, while 69n is without the mask. As for other nude variations, eventually I had planned to add a switch for these, where a gal is 'mostly nude but still wearing costume accessories'. Batgirl's 'alternate' sprites for the Glamour Slam would be a good example for these, and Zatanna has some 'n' sprites. HOWEVER, I haven't set up the profile pics to check for 'n' variations yet as a bunch of associated sprites and profile pics would need to be created/added.
- Check out some of the other girls for a few references r.e. cropping ideas.
Profileoutfit pics:
- Profileoutfit pics are 460 tall, and about 270 or less pixels wide. The width can vary, the main thing is to center the image, leaving extra pixels to the right as needed to 'center' the image. This pic appears at the left of the Profile screen, and overlaps a bit to the left, as well as at the top. I usually use the 'conversational' sprites for these, which are usually cropped already just above the knees.
- Profile Outfit pics are labeled Zatanna_profileoutfit0.png, etc.
Quartersoutfit pics:
- Quartersoutfit pics are 230 pixels tall, and appear on top of the quarters icon that they are assigned to. I usually crop these just below the cameltoe.
- Quarters Outfit pics are labled Zatanna_slotoutfit0.png etc.
Slotoutfit pics:
- Slot Outfit pics are the sprites that appear when a girl is assigned to a slot at the GS/MB, are 210 pixels tall, and again are based on the conversational sprites for each outfit. The width here is important, so that it doesn't overlap with other slots. Probably no wider than 130ish pixels (note Hawkgirl's sprite).
- Slot Outfit pics are labeled Zatanna_slotouftit0.png, etc.
Mgmtprofile pics:
- Mgmt Profile pics are up to 360 pixels tall, no wider than 260 pixels wide, and usually appear on the Management screen as well as for Mercy's capture screens and the device upgrade screens. Again, I usually try to crop these just below the cameltoe...
- Mgmt Profile pics are labeled Zatanna_mgmtprofilepic0.png, etc.
- I usually try to face these to the left (similar to the profile pics), use your best judgement.
- Mgmt Provile Pics use this background as a 'window guide' for the angled crops at the bottom, and again I often crop out the right shoulder along the left side of the crop guide (again, use your best judgement here). The head, arms, etc. should take maximum advantage of the 360 x 260 image size, and again will extend above the top of the background box. Remember to 'hide' the crop guide before you save the pic.
Outfit Picker icons:
- These are the 'full body' icons used in the Profile and Management picker viewports. They may be slightly shorter than 210 pixels, and no wider than 90 pixels (again, see Hawkgirl). Width is usually a lot less than say 80 pixels... these use the same 'thumbnail' sprites as SU Unity (for now...)
- Outfit picker icons are labeled Zatanna_outfit0.png. Note that there is usually a 'n' variant, i.e. Zatanna_outfit0n.png.
Resizing sprites for SU ReImagined:
SU Unity is designed with a 1024 maximum screen height in mind for a number of the conversational sprites and such. SU ReImagined takes advantage of a 1920 x 1080 window size. This means that a number of the conversational sprites need to be upsized 5% (to 105%), but note that I often double check the 'target height' against the DCAU database and such. SR7 is usually pretty good about referencing these heights already, but double checking can't hurt...
I use the following chart to double check the character heights vs. Lex, who is listed as 6'2" in the DCAU database (remember to maximize the size of the image below before you save it, it should be 1750 pixels tall
(see this post):
In any case, we've been resaving the .pngs anyways as this reduces their size by a lot (say at least 2/3rds) simply by resaving them in Photoshop, and upsizing them as needed while this is being done.
LayeredImage code examples and methodology.
SU Unity often divides the conversational sprites into several body parts, which emote different gestures and expressions as well as change up the outfits for a given pose. We've been able to re-create that functionality in Ren'Py using layered image.
This isn't 100% required, you could just combine the sprites yourself in Photsohop into a single 'full body' sprite and save each pose variations that way, but if you want to check out a few examples of how to work with the separated sprties, check out Zatanna.rpy, Supergirl.rpy, Stargirl.rpy, Mercy.rpy, Harley.rpy, Lex.rpy...
I've been putting all of the associated sprites onto a single canvas in Photoshop using layers, stacking them as appropriate.
I resize the Photoshop canvas to 'fit' all of the parts, say 1080 pixels high and however wide that I need.
I then focus on each body part in turn, lining them up using the associated HQ Assets pack pic as a guide.
Once all of the body part variations for that particular conversational sprite have been added, I rescale the image to 105% or whatever the height chart scale factor was when I double checked the height.
If there are any 'glitches' with the sprites, I'll correct them at this time. Say a stray pixel or whatever...
Then I save the Photoshop document (so that I can revert if needed), hiding all of the other body parts except for the one I'm doing (left arm, etc.) and 'show' all of the variations of that body part to establish my 'crop size'. Then I crop down the image to 'fit' the pose/expression variations for that part, and then show/hide each body part variation in turn, saving it using a suitable name (i.e. left_arm_back, left_arm_gesture, etc) as .pngs of course!
If there are costume variations, I usually use the 'index number' for that boty part (example: Zatanna_bodyouftit0.png), that way I can use the outfit index number later to reference that outfit variation for each body part as needed. Zatanna doesn't really have gesture variations, but see the other examples (say Mercy.rpy) for an example of this.
Once I've saved the variations for that body part separately, I 'uncrop' the image and then move on to the next body part (note that you can 'revert' to the last saved version as well) establish the new 'crop size' that will fit all variations of the new body part, and repeat the process.
Once this is done, since all of the 'body part variations' are the same size, you can more easily work out their positioning for Layered image, instead of having to work out the repositioning of each body part variation separately.
In any case, it just comes down to what works best for you here.
Dialogues, etc.
Thanks to
joepe being able to extract the dialogues from SU Unity (
see this post) adding the SU Unity dialogues to each girl's .rpy files is fairly easy. SR7 did get a bit carried away with styling the text, so if you want to simplify that a bit, that's perfectly fine and is what I've been doing (excessive styling lessens the impact of said styling...).
One text tag that you should be aware of is the bold type font, which I have set up as:
Which is essentially bt inside of 'curly' brackets.
This will be less 'bold' than using the bold or b tag, and will also be italicized. I think it looks better than the bold tag, this comes down to personal preference.
In any case, you may still need to 'run through' the various scenes in SU Unity to figure out the poses/expressions/gestures for each part of the dialogue, but if you've set up the layered image correctly, this should be fairly easy to code:
Example:
show Lex back hip talk
(Lex's layered image code is in guys/Lex/Lex.rpy for reference should you want to see which tags to use).
---
Notes on default variables and such:
So, if you are adding a new girl to SU ReImagined, simply use Zatanna.rpy as your 'baseline', replacing Zatanna with the name of your girl (no spaces between first and last name if there is a last name) for all of the default variables. Then, go back through and edit the various information (costume descriptions, description text and such) to match up with the new girl.
There are a few variables of note as you are coding dialogue. These are usually applied at the end of a conversation.
Zatanna_chat
- This is used to determine which 'talk label' to jump to next when working through the various conversations.
Zatanna_talk_day
- This is used to indicate if you talked to Zatanna today, or in the case of 'recruitment' text, if you talked ABOUT Zatanna that day (before she is finally captured).
Zatanna_max_chat
- This is used to indicated if you've hit an 'end point' in conversations with Zatanna for now, to indicate when you should jump to the 'Nothing further to discuss right now' label. This can be increased at the point when other conditions are met, which would trigger new conversations.
Zatanna_interactions
- This tracks how many times you've interacted with Zatanna today, if more than one interaction is allowed. When this variable is 3 or higher, it 'locks out' further interactions for the reast of that day (if coded properly, look at Zatanna.rpy for examples), and 'turns out the lights' in her cell on the Quarters Screen for that night. This is to allow players to repeat certain interactions on a given day, once the initial conversations are out of the way (which add 3 to interactions instead of 1). Say if you wanted to have Zatanna dance, then strip, before giving you a blowjob...
Zatanna_corruption
- This tracks how far you've progressed with Zatanna (or whomever), which determines which 'sexy fun time' activities may be available, and how 'slutty' she has become overall.
Zatanna_corrruptionlevel
- This sets the 'baseline' for which activities might be available on a given night.
- Example, Zatanna_corruption at the start of a given day is 12, so Stripping has become available as an activity. If she earns more corruption points today, more 'interesting' activities will not become available until the next day (say Blowjobs, etc. as she's still at 'Stripping' level). You might be able to get her to dance for you in the nude though...
Zatanna_outfit0nude (as well as Zatanna_outfit1nude, etc.)
- This indicates if Zatanna has stripped in a specific outfit yet. This is mainly used for later, IF 'mostly naked' variations of an outfit are available, then the 'mostly nude' outfti variant may be chosen. Most girls don't have these, Batgirl for example has 'mostly nude' costumes that she can wear in the GS/MB (once that is set up...). Zatanna has conversational sprites with 'mostly nude' variants, but no other sprites.
There's a few others of course, feel free to ask about them if you don't understand what they are for...
Anyways, that should be a suitable primer for now. Feel free to ask if you have any questions!