Hello!
If you're here, I assume you weren't able to convince your portrait artist to adapt their sheet or simply want to throw together something while you wait! If you already roughly know what you are doing, please skip this article and go to the compatibility section of the mod description for a break down of my portrait set and sprite set. I updated and numbered the sheets to mark out what is new.
This guide assumes you understand the basics of image editing, but I will try to be as beginner friendly as possible.
Please always make sure you have permission to post edited sprites/portraits if you are not making one from scratch if you are intending to publish your version as a standalone mod.
Portrait Adaption
Example from Gigi's original wizard portrait sheet:
In this case, calling for portrait $0 will call his neutral-positive expression and calling for portrait $1 will call his happy expression.
For the game to cut up the sheet properly, the dimensions of the sprite sheet are very important. The game will just assume the sheet is always 2 portraits wide so it calculates how many portraits there are by the length. The default max width without the use of a mod such as portraiture or HD portraits is 64 pixels wide, so the portrait sheet should be double that. For vanilla sheets, that means 128px. For Gigi's sheets, that means 512 (because 1 portrait is 256px wide).
Portraits that are not 64x64 px must be loaded in a different method than the default one such as HD Portraits, Portraiture or via pytk.
Now, let's take a look at SVE's standard 7 expression sheet:
Each portrait is 64x64 in size. There are a total of 4 rows, which means the sheet's total size is 128x256. My sheet features a total of 16 rows of expressions. If I were to scale them according to the vanilla portrait size, the size of my file would be 128x1024. Since my portraits are 256x256, the size of my sheet for the full 32 expressions expands out to 512x4096. Yes, it is that big!
Please check the size your portrait mod and calculate the total length accordingly and expand your image to that size.
Tip: If you are using photoshop or a similar more advanced image editor, you can set a grid with guide lines to help you place the portraits in the correct position.
Why it's Important to Adapt Your Portrait Mod
As explained above, stardew will attempt to call for the correct expression via the slot number. If that expression does not exist, it will call a blank instead. Not all portrait mods have the same expressions in similar positions either. This difference results in very unexpected expressions being called rather than the best one for the occasion. This can completely ruin the feeling of events and dialogue so I highly recommend you attempt to adapt your portrait mod if you insist on using it before compatibility is added.
The location of the file largely depends on how your mod author in question decided to pack their portraits. Most of the time, it will either:
1. Included as a separate mod. -> In this case it will probably just be in the mod folder. This type usually has a content file that tells the game to overwrite the existing portrait with the file they are calling.
If it is in .xnb format instead of an image format like .png, you will have to use an xnb unpacker to open it. Since you will likely not want to repack it as an xnb, you will have to open the content.json and edit the file name to be .[image format] instead of .xnb. Most of the time to a .png.
You shouldn't need to do this for most newer mods since most authors use .pngs these days.
My portraits use Portraiture so there is no native overwriting. As long as you didn't install portraiture, it should display the correct portrait.
2. Some sort of Portraiture content pack or loose image. -> In this case, open your portraiture folder or the content pack folder and look for the correct image. Just edit it and save it as normal.
My original sheet evolved out of the 12 expression sheet used for a large number of Wizard portraits. I've also imported the special "pink wizard" featured in the 4 heart event from SVE's shrine of illusions scene, but moved to a different position.
To make this easier to digest and parse, I will slice the sheet into chunks and compare them to an existing 12 expression sheet.
Important: All portraits have expressions that are slightly different. This is due to the personal interpretation of each artist and what pack they designed their portraits for so sometimes there aren't comparable expressions.
Note: Magnus in RRRR canonically wears earrings as personal artifacts. If your portrait does not feature earrings, it may be a bit confusing so you will have to imagine them or add them in yourself.
Below is an example of how I would adapt the first 12 expressions from another pack to RRRR.
Blue is fine. Purple is move portrait as is. Pink is move/duplicate and then edit.
Explanation:
Portraits 2, 5, 8, 10 are fine as is (even if not perfect).
I would move 3 to 7's position and swap 9 and 1 with each other.
I would move 6 to 4 and slightly adjust the position to be slightly more "sultry", move 7 to 6 and give him a blush, Duplicate 0 to 3 and give him a bit more of a serious look. I would duplicate 5 and move it into 11 and give him the "dark circles" from 10.
If you do not have the art ability to edit portraits (or even splice them), you would have to approach this slightly differently. In that case you would just have to find the most comparable expression and then substitute them in. There is nothing wrong with having duplicate expressions. Sometimes there just isn't a better fit and it's better to have an expression pull double duty than accidentally end up with something strange.
If you have trouble reading the expressions, here is roughly how I would describe the 12 expressions above and their usage:
A few base guidelines first:
- The more gold in his eyes, the most intense the positive emotion.
- The opposite of the above is also true
- $3 and $0 are most commonly used before he gets to know the farmer properly. His expressions are a lot more expressive after he feels more secure with them.
The expressions:
0. Neutral - lean positive
1. Pleased/happy
2. Sad/Apologetic
3. Pensive/ serious
4. Blush, leaning a bit more flirty. He uses this face a lot when propositioning you to "things"
5. Angry, leaning more annoyed or forceful with a touch of confused. Imagine kind of a Why?????? >:( kind of vibe.
6. Blushing happy/pleased
7. Somewhat surprised
8. Surprised in a happy way
9. Knowledgeable smile, almost slightly cheeky in a way. Mostly used when he's sharing knowledge.
10. Sleep deprived - Not happy
11. Sleep deprived - Fuming over something
If you are working with a 7 expression sheet, you have a lot less to pick from. Good luck to you!
New Block 1 and SVE pink
The next is a very small chunk. It basically features SVE's pink Wizard for the 4 heart event and an extra very shocked expression. You could easily replace the shocked expression with just a normal surprised expression since it is more or less almost exclusively used for the pregnancy event. As for SVE's pink, this is up to you. If your sprite doesn't account for the "pink" then I would just suggest replacing this with whatever you have in slot $0 since your sprite likely doesn't account for the "pink" demonstration either. This will obviously make the scene a little odd since he says he's giving a demo but doesn't do anything. Hahaha.
Pink being used in the event:
Beach Block
This block is fairly self-explanatory. It basically shows the original 12 expressions but with Magnus disrobed. Normally, you would split this off into an extra _beach portrait sheet and call for that change of portrait sheet in game, but from my experience with Portraiture, this is often a bit buggy and sometimes doesn't work properly. To make sure it will work 100% of the time, I baked the beach portraits into the main sheet.
This section is most often featured when the "spicier content" toggle is on (intimate things) and in two Y3 fall+ dates (who the heck gets in a hotspring with all their clothes on?).
If you are alright with this oddness, feel free to just simply duplicate portraits $0 to $11 into slots $14 to $25
Note: Magnus in RRRR canonically is covered in scars that he largely hides under his robes. If your mod does not feature them, you will have to imagine it or add them in yourself.
Completely New (Problematic) Block SPOILERS!
This section is the one that actually causes the most issues. These expressions were created for some very spoiler heavy events in Y4 spring. They are very "end game" so you may never even trigger them. To give a very vague summary, it's basically Magnus spiralling into paranoia for a brief period of time so the expressions are altered to show him at his darkest. It's very important that you substitute these expressions with something as similar as possible or the whole roughly three week affair will not hit the same.
The ideal candidates for adaption are $10 and $11 from the 12 expression set since they are already made with the intention of showing him sleep deprived and stressed.
Note: $29 is also occasionally used outside of Y4 for when he is recalling some of his darker moments.
I've put this behind a spoiler tag for the people who are just considering editing the portraits, but if you are committed, proceed ahead. I've also listed detailed explanation/ intention description in the case someone wants to tackle a full redraw without having to interpret what I was trying to do.
Expression break down:
$26: "Dead eye look" -> Magnus put at high stress. He is struggling but suppressing how much of it comes to the surface.
$27: "Shocked Despair" -> Should give the impression that the world is crumbling around him. Basically his full paranoia and despair peeking through.
$28: "Tearful acceptance" -> An end to the breakdown. He's accepted the circumstances for what they are, but reluctantly.
$29: "Pensive Lament" -> Imagining or remembering dark futures and pasts. Occasionally used in normal conversation and events.
$30: "Breakdown" -> He has no idea what to do anymore and is breaking down in tears because of it.
$31: "Absolute Despair" -> Alternate version of $27. His nerves finally snapped. He can't pretend it's alright anymore.
Here RRRR's entire portrait sheet stitched back together and labeled.
Sprite Adaption
Locating your Sprite Sheet
1. If you use some sort of seasonal sprite pack, you will have to change ALL versions of the sprite. This means you will have to edit the spring version, summer version, fall version, etc etc.
2. There are no mods that I know of that let you easily switch between multiple sprites like portraiture does for portraits, so that means sprites are individually overwritten by the mod they are from. If you change the file format, you will have to open the content.json and fix that yourself.
Here is a direct comparison:
Purple for altered. Pink for New.
Here are the same frames magnified and labelled:
Kiss frame: I moved his arm up and adjusted the head position versus how it was originally. The placeholder frames are all the original kissing sprite.
Sleeping frame: I flipped this. It's just personal preference since spouses sleep on the right side of beds. I may eventually include a sleeping gown like the SVE edition.
32: This frame is used for "holding hands". There is a lot of this all over the mod. This one is important to adapt.
33 - 36: Adapted from the mid-stand up sprite in position 21. This may or may not be possible for your sprite set. This is used when he is sitting down and sharing a book with the farmer and the slight changes to fit those events.
37 - 38: Used for a the birthday event where he gifts the farmer the earrings included in the fashion sense pack.
39: Kneeling while facing up. This may or may not be easy to adapt since the cloak blocks a lot of the work involved.
40: Another version of 33-36 where he turns his head to look right.
Update: I've decided to add a beach sprite toggle just to make sure people aren't calling errors when they don't have one.
If you aren't able to or don't have the ability to, I suggest toggling beach sprites off in the new config option.
If you are looking to add beach sprites into your existing mod, adding the following code into your sprite replacement mod content.json somewhere beside the base sprite load. The below code assumes that you have the image file in the base folder where the content.json is.
{
"Action": "Load",
"Target": "Characters/Wizard_Beach",
"FromFile": "Wizard_Beach.png",
},
If your mod uses nested folders, please format it like this instead with whatever folder location it is in:
{
"Action": "Load",
"Target": "Characters/Wizard_Beach",
"FromFile": "assets/Characters/Wizard_Beach.png",
},
Making Sure it Displays In Game
RRRR inherited the sprite toggle from Parrot's RomRas SVE so this step is very easy assuming you have the mod config interact mod installed (which you should from SVE). Simply locate RRRR's mod config in that list under its full name "Romanceable Rasmodius Redux Revamp", and switch the "Sprite" setting from "Use Included" to "Use Custom". This will prevent RRRR from overwriting your sprite mod. If you are using my Vanilla-ish Portrait and sprite mod, you do not need to do this. The mod will automatically display the correct sprite.
If you are not replacing the beach sprites and don't plan to use them, switch the "Use Beach Sprites" setting from "true" to "false". This will prevent RRRR from attempting to call an asset that doesn't exist and causing an error.
...And that's it!
I hope this guide helps you in your quest to make your personal portraits and sprites work properly!
18 comments
I want to mod my portraits to appear sort of above the dialogue box in the spirit of Rube Factory 4. This means no portrait box and they'd need to be more than 64x64. I'd also probably have to change the height of the dialogue box. But before I do it, I want to know if it's possible at all.
Which frames do the $s, $h and $b represent?
image here→https://ibb.co/0rGxJnp
Is it weird that I'm commenting for a portrait set that isn't mine? ...maybe.
But either way you can find their mod here!
Thanks for commenting about it.