[1.1] Hair Modding Plus

Started by Butterfish, May 31, 2020, 01:09:17 PM

Previous topic - Next topic

Butterfish


Hair Modding Plus
by Butterfish

For those of us that play RimWorld like The Sims, but with more equal amounts of murder.


Download
GitHub: https://github.com/TheButterfish/HairModdingPlus/releases/latest
Steam: https://steamcommunity.com/sharedfiles/filedetails/?id=2114832515
Nexus: https://www.nexusmods.com/rimworld/mods/339
ModDB: https://www.moddb.com/mods/hair-modding-plus/


Description
TLDR: This mod gives modders the ability to have a hair texture render behind a pawn, as well as use alpha masks on hair, without additional fiddling with XML.

If you've made/tried to make a hair mod, you'll likely realize that RimWorld just slaps the texture on top of the pawn, colors the entire thing, and calls it a day.
This mod gives modders an additional hair layer to work with that renders behind the pawn. So you'll be able to make, for example, long hair that flows down the back, without having to tailor-make it for one/each body type or make design compromises.
In addition, this mod also enables the use of alpha masks on hair, so you can make hair with decorations/accessories that won't be recolored along with the rest of the hair.
What's more, you don't even have to add more information to your HairDef XML, just provide the textures and you're done.



Note: This mod will not magically convert existing hair to work as above. You'll have to get hair from other mods made with this mod in mind. I myself am in the process of making one, releasing SoonTM.


Dependencies
You'll need Harmony to use this mod. Get it at GitHub or Steam.


Compatibility
Should be compatible with most mods, unless they skip RenderPawnInternal or ResolveAllGraphics.

Patched to be compatible with Facial Stuff.

Safe to add or remove from existing saves.


How to Use
Note: The instructions below assume you already know how to make a regular hair mod.
If you're interested in making a hair mod and don't know where to start, check this guide out for more information.



Back Hair Layer
To have a texture render behind the pawn, simply add "_back" to the end of your texture's file name.


"demo_south.png" is your regular texture displayed when the pawn faces south, and "demo_south_back.png" is the texture that will be behind the pawn when the pawn faces south. This works the same for the other orientations, e.g. "demo_east.png" and "demo_east_back.png". Back textures are optional, textures without a corresponding "_back.png" will display as they usually would.

West or east back textures will NOT be automatically flipped if only one is provided. This is intentional, to allow modders to make asymmetrical hairs if they wish. To have a back texture be used for both east and west sides, just make a copy of it and rename the copy accordingly i.e "name_east_back.png" and "name_west_back.png".


Alpha Masks
For more information on alpha masks, check this guide out.

To apply an alpha mask to a hair texture, simply add "m" to the end of your mask's file name. This works for both front textures and back textures.


"demo_southm.png" is the mask that will be applied to "demo_south.png", and "demo_south_backm.png" will be applied to "demo_south_back.png". Masks are optional, textures without a corresponding "m.png" will display as they usually would.

West or east masks will NOT be automatically flipped if only one is provided. This is intentional, to allow modders to make asymmetrical hairs if they wish. To have a mask be used for both east and west sides, just make a copy of it and rename the copy accordingly i.e "name_eastm.png" and "name_westm.png".


Examples
Download HairSamples.zip from this repo to see working examples (includes the hair shown above).


Licensing
If you wish to improve, fork, add patches, borrow code snippets, include in a modpack, or take over if I go on hiatus, go ahead. Just mention me in the credits and you're good to go.


Credits
Andreas Pardeike, for creating Harmony
Killface, for a code snippet I borrowed from his Facial Stuff mod
The various contributors to the RimWorld modding wiki
Tynan Sylvester, for stealing my time and money creating RimWorld