Sometimes I forget how much work went into this and then I look at old comparisons like this.
I really like this side by side because it shows the amount of mesh modding and texture editing that went into cleaning up the base model's defective right eye. This was not a quick fix. It took a lot of trial, error, and patience.
For clarity, the image on the left is Stefano Valentini, the original base model. The image on the right is Sunder, an OC I created using that model as a starting point.
Just like some roleplayers use celebrity face claims or AI these days, I chose to work with existing video game models and transform them through mesh mods and texture edits to build original characters.
I do not own the models, as these are purely transformative and recreational works, but I do own the stories, and over time Sunder and others have developed deep backstories and a lot of personal meaning for me.
If you saw the OC post I shared back in October on @sadisticlens, that shows the current version of him. This image is a bit outdated, but it still highlights the contrast and all the work that went into transforming the base model.
it can be nothing special BUT now i have a better understanding in how to change the textures in sfm. I STILL DON'T UNDERSTAND SOME THINGS BUT IT'S A GOOD START!!! now Jan has his facial features even when his face is stretching
Why is it that custom clothes are often just a bit... off? Like they fit just a little big on the character, or don't quite fold or (procedurally) animate well, or they look too simply textured compared to their own game. Where's this uncanniness come from?
Humans are really intimately familiar with clothing because we've been wearing clothes our entire lives. We understand subconsciously how the different parts of clothes are supposed to fold, deform, and fall - so much so that when clothing doesn't do that, it sticks out to us as uncanny. These kind of expectations are similar to other things we're extremely familiar with - food, human movement, human anatomy (especially faces), and so on. We're basically hardwired to notice these kind of differences and flag them as weird.
Clothing in video games is nothing like clothing in reality. The attributes of real clothes are determined by things like the strength and flexibility of the materials, the skill and style of construction, and the physical attributes of the person wearing the clothing. Video games don't have those kind of constraints - most of the time, clothing is either a texture painted onto a 3D model or it's a completely separate model with a separate set of textures that is swapped with the old parts of the body. As such, there's going to be seams and edges where things don't match up perfectly. Player-selected clothes tend to exacerbate these differences because they weren't assembled by professional artists who use a bunch of design tricks to make things look better together.
[Join us on Discord] and/or [Support us on Patreon]
So first, we'll start with the texture changes, since they're an easy thing to get the hang of.
First, the programs you'll need:
Epic Games Launcher [to download Unreal Engine 4.26.2]: Link
UModel [Psychonauts 2 version, this specific version makes it so you can export the models]: Link
Unrealpak [to repack everything into a pak file for the game to read]: Link
Paint.NET [just the tool I use to change the textures]: Link
Once you have all the programs needed, open up UModel and set the input to where your game pak is located. [Which is typically in 'C:\Program Files (x86)\Steam\steamapps\common\Psychonauts 2\Psychonauts2\Content\Paks'].
You don't need to worry too much about anything else in that menu, just click OK. Now, it'll open another window showing various files. For this tutorial, I'm going to change Raz's P1 Body texture, which is located in Game/Characters/Raz/Outfit_P1.
Note: The textures you're most likely wanting to change are the ones that end in BC. Don't worry about the other ones. Also, if you export the models, that'll also extract the textures as well.
Make sure to save the texture as TGA (which you can change in the Tools/Settings menu.
Once you have the texture extracted, use any photo editing program that can use TGA files [such as Paint.NET] and edit however you like.
When you've done your changes, now open Unreal Engine 4.26.2. (Which you typically do by opening the Epic Games Launcher, but you can pin the Unreal Engine application to your toolbar to ease of access.)
It'll open up to something like the images below, so just choose Game, Blank and name the project however you like and then Create Project.
Once it has opened, drag and drop your edited texture into the bottom grey area and click 'Save All' in the File menu. Now, to cook the texture by clicking 'Cook Content for Windows' in the File menu.
When it is done cooking, left click the texture and use 'Open Cooked File in Explorer', it'll open to the window that's shown in the image below, but DO NOT USE that asset. It is NOT what we want.
Instead, click on your project's name in the address bar (in my case, I would click on Tut that is before Content).
Then go into 'Saved', 'Cooked', 'WindowsNoEditor', 'Tut' and 'Content' and there are the assets we need until the Shadow info.
Make a new folder somewhere else and name it 'Psychonauts2', then another folder in it named 'Content', the next folders depend one where you got your texture from, since I got mine from Raz, I'd need to make a folder in Content called 'Characters', one in that called 'Raz' and then another in that called 'Outfit_P1'. [Such as the image below, showing the folder structure in the address bar.]
Now to pack this all up into a pak file. Go into the folder does has your UnrealPak bats and create a folder with whatever you want to name your mod. (For this one I named it Tut_P, I'm not entirely sure you need the '_P', but I do it just in-case, so I advise you do too.) Then put the Psychonauts2 folder you created with your cooked edited texture into it that folder. Once you've done that, drag and drop your 'modname_P' folder over any of the UnrealPak bats (that isn't the unpack one). It doesn't really matter if you use it with or without compression, I just usually use 'without' compression.
Once it's all paked and ready to go, just head on over to C:\Program Files (x86)\Steam\steamapps\common\Psychonauts 2\Psychonauts2\Content\Paks and create a folder (if it's not already there) called ~mods.
Drag and drop your cooked pak into the ~mods folder and viola. You're done. Open up and the game and you should see whatever you changed in the game.
Some custom Witch textures I made for Fire Emblem Fates, following mathcat7′s and grimnaga ‘s tutorials on how to make texture edits for FE: Fates. I really like how they turned out.
Mitama is based on this cipher here minus the paintbushes (They didn’t want to work on my game), the rest are based on their color palletes.
Getting Started with Fire Emblem Fates Texture Editing (Tutorial 3.0)
This version of the tutorial addressed new advancements in texture editing for Fates, while still keeping things simple for people looking to get started. Credits to DeathChaos, Moonling, thane98, AmbigiousPresence, and others for tools, and to YiannisG for helping me when I first started out.
What you will need:
Peridan's Texture Remix. There are alternatives to using this tool, and it's not the best thing out there, but it's quick and requires little setup
Moonling's branch of Fire Emblem Archive Tool.
Image manipulation software, preferably one that can interperet alpha/opacity, but it must be able to save images as “.tga” files. I use Paint.net personally, but other people suggest GIMP or Photoshop.
A dumped romfs of Fire Emblem Fates (any version will work). There are multiple ways to get this, but the way I did it is by dumping my copy of Conquest via GodMode9 and extracting it with HackingToolkit3DS.
ID Editor. I still use AmbigiousPresence's version of this tool, but it has since been integrated into thane98's Paragon, if you do other forms of Fates modding.
This toolpack from DeathChaos25, which contains a few file converters we will need.
Acquiring what you want to edit:
So, we'll start by looking into the dumped romfs. Within the directory there should be folders titled "bx","bu","bp", etc. we're stating simple, so stick to the "bu" folder, where most character body models are stored. Inside that you'll see a bunch of .bch.lz files whose names won't make sense at first. You can look at this cheat sheet to see what each file name corresponds to. I learned a lot from just extracting folders at random. You might also notice a few files denoted like "ch_###", which usually means a specialized texture and/or model for a given character. You can look at this post to understand what those correspond to, as well.
Let's use a female Basara texture for an example. It comes in two parts "uBody_F_nagi_2_cl0n_P.bch.lz", and "uDres_F_nagi_upp2_0_cl0n_P.bch.lz", but we'll be talking about the former primarily. Open FEAT and drag the files into the corresponding window. This should spit out a .bch file and a folder of the same name, and within the latter you should see two .pngs. One will look like a very dirty version of how Basara looks in game, as if from taking severe damage multiple times, while the other looks nearly transparent. (Seen below)
Alpha Removal with Texture Remix, and Editing:
Open Texure Remix, and drag the second of those .pngs into the upper tray. You’ll want to match the red, blue, and green leads from the Image 1 tray into the leads at the bottom by clicking. (You may need to try a few times, this program is finicky about click detection). Do not touch the grey lead, for now. It should look like this:
Select an output folder, click “Save Images”, and the resulting .png should show up in said output folder. If done correctly, it should look something like this:
Now from here, you can make whatever edits you choose. I won’t tell you how you should make your edits, but keep in mind that you do not need to adjust the parts that correspond to skin if you are making a darker skinned character. There are ways to mess with that I’ll touch on later. Also, it may help to separate your edits into layers. Once you’re done, save the file as a .png somewhere else. You should also save this a .tga, which for our example should correspond to “uBody_F_nagi_2_cl0d_P.tga“ This naming should match up with the damaged texture from before, because this file will serve in its place. (You could edit the “cl0d” .png from before instead and have that serve for this .tga, but again keeping things simple)
Reapplying Alpha with Texture Remix, and Recompressing
You'll want the new .png we just saved, and the transparent .png we started with, and drag them both into a new instance of Texture Remix. The new file should have its red, blue, and green leads attached to the bottom like last time, but this time we're gonna match the grey lead from the original .png into the grey lead on the bottom. Assuming you dragged these files in the same order as I mentioned, it should look like this:
Set the output and save, and the resulting image should look transparent like the .png we started with (if not, either you used a .tga or set the leads wrong). Save this one as a .tga, matching the name of the .png we started with, e.g. "uBody_F_nagi_2_cl0n_P.tga"
With this and the other .tga file in tow, we can use them in DC's conversion pack. Drag them both into the folder named "Texture Stuff". From there, drag each of them into the ".tga to .ctex" batch file, which should convert these into .ctex files. Now select both of those .ctex files and drag them both into ".ctex to .bch textures" (you MUST do both at the same time).. This should give you a singular "output.bch", which you can then rename to whatever you want. Keep it recognizeable, I'd recommend keeping the same naming scheme as the actual .bch.lz files and titling it to match the name of whatever character you're making it for. My example might use Mozu, for example, so I'd name it like "uBody_F_nagi_2_cl0n_M.bch" or "uBody_F_nagi_2_ch121_cl0n_P.bch". That being said, if you're only replacing a texture and not adding a new one entirely, you could just name it to match the filename of the original file (and skip the final section of this tutorial). Once you've named the file, you can recompress it with FEAT by holding CTRL while drag-dropping the .bch file into it. This will give you a .bch.lz file which you can now either replace in your dumped romfs (in case you're planning to recompile the game), or in the luma directory of your Fates game, aka "luma/[titleID# of your copy of Fates]/romfs/bu" (if you do a lot of plug-and-play modding).
Using ID Editor
I'm writing this step as if you're using AP's version of the tool, and not the Paragon version, though the two should be mostly interchangeable. In the dumped romfs, the re should be a folder titled "asset" which contains 7 files titled "ROM#.lz", where # is 0 to 6. Open ID Editor and, assuming you're editing a playable character, have it open ROM3.lz (the other files correspond to generics, enemies, weapons, etc. That's out of scope of this tutorial, though). You're gonna see a lot of entries titled AID, followed by Japanese. Things get a little touch-and-go here.
You might want google translate (and the cheat sheet from before) open for this, at least for translating AIDs, which correspond to character names. You could also look for AIDs without a corresponding JID, as those usually denote denote the character voice they’re attached to in the data. Once you find the AID of a character you’re creating a new texture entry for, hit CTRL+SHIFT+I to duplicate the AID Entry. From there, you’ll want to put in the box labeled condition 1 with the JID matching the class of the texture you made. My example of Basara Mozu would have these entries:
Next, we’ll want to set all the other entries. Leave any entry I don’t mention blank. Body Model entry will match the filename of the uBody texture we started with, minus the extension and the “cl0n_P” stuff., Body Texture will be the exact same name as the filename we ended with, minus extensions. Same goes for Outer Clothing Model/Texture, but uDres instead of uBody (assuming you modified those as well). The end goal to our example should look something like this:
(Sidenote: ID Editor is where we can edit skin tones, like I mentioned before. Can set to whatever hex color you please!)
Once you’ve made all your changes, either save here (for recompile purposes), or hit Save As (to place it in your luma directory, aka “luma/[TitleID# of your copy of Fates]/romfs/asset“).
And you're done!!!
Do whatever else setup you need and test out the textures in Fates! For character textures, I recommend checking the accessory shop to get a good look in-game.
If you run into any problems, feel free to ask around in the 3DSFE Romhacking Discord Server!
This wasn't low effort at all...nope...The letters kinda got munched up by the bump-maps, but I honestly can't be bothered fidgeting around and getting the text perfect just for a shit post, I actually just wanted to find out how Gladio's casual outfit textures worked and I also saw that it was his birthday today...so two birds with one stone??