Specular images in The Sims 4 (TS4) are quite different from what we’re used to with The Sims 3 (TS3), so it may take a bit of work to fully understand. I’ll do my best to explain.
Also note that there are different types of specular images. In this tutorial, I am only going over speculars for objects, and speculars for walls/floors – this does not cover creating speculars for Create-A-Sim content.
The first thing to note is that there are two images that go into the specular. The first, the actual “Specular Map” which defines the specular properties (more on those in a minute,) and then there is a “Cube Map” image as well.
Specular in TS4 does not actually reflect the environment like TS3 did. Instead, it projects the cube map (in early versions of workshop, somemap3) onto the object as a pre-calculated reflection. EA has used a fairly generic one on almost everything, it looks something like this:
The black doesn’t show up, and it appears that the brighter, slightly colored square represents a room and a window. Hardly realistic, but so far it seems to work quite well. I would suggest leaving this alone for now. As we never know where someone is going to place our content, the fact that this is so simple and generic is a benefit.
Moving on to the actual specular image, “somemap1” in early versions of Workshop, you will quite literally have no idea what to expect when looking at one. Specular images for different objects will look completely different, depending on the object. There is no “standard” specular.
Our example specular will be the following image, cloned from the decorative clutter backpack. In Workshop, this is what it looks like:
Kind of a confusing mess of nothing, right? There is actually quite a bit of logic behind it. Let’s get started!
Please note that for TS4 speculars make use of all four channels that an image can have.
For creating your own specular images
For ease of use, having the ability to work with DDS files is recommended so that you can keep it all together in one file. PNG will still work, however, but you’ll need two images, as you have to import the alpha channel separately.
For opening existing speculars exported from Workshop
You’ll NEED DDS. PNG embeds the alpha channel into the actual image itself, which will lose the alpha channel and make things a pain to work with.
The latest DDS plug-in for Photoshop can be found here: https://developer.nvidia.com/nvidia-texture-tools-adobe-photoshop. This Photoshop plug-in can also be used with Paint Shop Pro, as per these instructions: http://http.download.nvidia.com/developer/NVTextureSuite/Paint_Shop_Pro_Steps.pdf.
The latest DDS plug-in for The GIMP can be found here: https://code.google.com/p/gimp-dds/.
Paint.NET apparently has built-in support for DDS files, although I have no experience with that.
Examining The Image
For this guide, I’ll be using Photoshop. Upon opening a DDS specular image, this is what I see:
That’s, uh, an interesting looking image! First things first: Don’t pay any attention at all to the way the specular image looks to you. It’s compiled visual appearance (the combination of all of the channels we see here) means absolutely nothing. One specular may be dark black and cyan like this, another may be bright yellow and pink. It all depends on the individual channels of the image, which we are getting to next.
How TS4 reads Channels
A proper specular image for TS4 contains 4 channels: Red, Green, Blue, and Alpha. Each channel has a very unique function that will affect the final appearance of the object in different ways.
Here is what each channel actually does. I suggest writing this down and/or printing it out for future reference.
The Red channel: The red channel controls the amount of blur that gets applied to the cube map. If you want something shiny yet matte, a high blur value can help create that. If you want something really glossy with sharp reflections, you want the blur value to be lower.
The Green channel: The green channel simply controls the strength of the cube map. If you want something really shiny with a strong reflection, this value should be set high. If you want something not very shiny at all, set this to a low value.
The Blue channel: The blue channel controls what is known as the “specular falloff,” or the “tightness” of the reflection, if that makes any sense. This works along with the cube map blur to define if something is a hard, glossy surface, or a soft, matte surface. A high falloff value will create a tighter reflection, and a lower falloff value will create a softer reflection.
Here is an example from Blender of a high specular fall-off, where the reflection “falls off” quickly into nothing:
Opposite of that, here is a low specular fall-off, where the specular doesn’t fall off at all, just spreads until it fades out:
The alpha is quite simple by comparison – it controls the overall effect of the specular. If the alpha channel has a really low value (black) then that part of the specular won’t show up on the object. If the alpha channel has a high value (white) then the specular will be applied 100%. Shades of gray will result in varying levels of intensity.
Each of the channels listed above will have a different value, depending on the object, and that is why every object will appear to have a completely different specular image. (While we may see no visual relationship, the computer will know exactly how to read the image.)
When I refer to a channel’s value, I am simply referring to how bright or dark that channel is. If the data on a channel is bright and closer to white, it has a high value. If that channel is darker and closer to black, it has a lower value. (Black value = 0, White value = 255)
Creating a Specular Image
Now that we have covered the basic of how the speculars are compiled, let’s actually make one.
I’ll be using this ottoman as my example:
To start off, as you see, I’ve already created my diffuse map texture. I’m going to take the multiplier I baked for that (Yes, we are still using multipliers! We just have to multiply them against the diffuse texture ourselves in our graphics editor.) and use that as a starting point.
I am first going to think about my object, and mentally plan out how I want to appear in terms of specularity and shine. I would like the wooden legs to be shiny and polished, while the actual ottoman material is going to be a matte cloth with no reflection.
So first, let’s make the red channel – the cube map blur. As I don’t want any blur on the legs (since I want them be glossy) I am going to select them, and darken their area of the multiplier, but only on the red channel. This will have the effect of making that area on the RGB layer a cyan-ish color, since we have taken the red out.
Because I don’t want the fabric to be shiny, I’m going to give it a lot of blur, and increase the red channel’s value to near white.
This has had the side effect of now making that part of the RGB image pink, since we’ve increased the red channel.
Moving on to the Green channel, the cube map strength. For the legs, I am going to do the opposite of what I did for the red channel. I want a strong cube map value for the legs, as they are supposed to be polished wood. I then want a low cube map strength for the fabric, as it’s supposed to be matte.
Notice the RGB image has now turned pink and green. It will continuously change colors as you get through the three channels, and as I said, the final color you see doesn’t mean anything to us.
Moving on, now to the Blue channel, which is the specular fall off. I want a high fall off value for glossy reflections on the legs of my ottoman, and a very low fall off value on the fabric, since it’s matte.
If you look at the RGB image, now you’ll see its final colors are red and cyan. The cyan is coming from the high valued blue and green channel (high cube map strength, high specular fall off, no cube map blur), and the red is coming from the high blur value on the fabric, and no blue or green from the cube map strength or specular fall off.
If you are going to be saving this as a PNG image rather than a DDS, go ahead and save the full colored version now, and skip this next paragraph.
The final channel we need is an alpha channel – which I do not have one currently, so I’m going to make a new one, and Photoshop will automatically makes any new channels “alpha” channels. I will keep the alpha channel black over the fabric, because I don’t want any specular effects on it, and will give a light grey/almost white value to the area of the legs, as I want the specular to be very strong there.
If you’re using PNG, you’ll have to create a separate image – make sure it’s the same size as your specular image – and simply make it white where you want parts to be solid (or have the full effect of the specular channels applied) or black where you want the specular to not be applied – or shades of gray for any varying level in-between. Once you open your full color specular in Workshop, you’ll have to check the box for “Enable Specular” and then “Set to image” and load in that grayscale image you just made.
Now, you may be wonder why I went through the effort of turning up the blur and cube map strength etc on the fabric, when I was just going to disable it on the alpha channel. Aside from learning purposes in this guide, we’re still in very early stages with Workshop and the game. We never know when something is going to hiccup and not quite work right – and thus, disabling the effects on each channel ensures that, in the event that the alpha channel stops getting read properly for whatever reason, the other three channels are still working to ensure the effect I want stays in place. Probably not likely, but just a little extra security to ensure that our creations continue to look the way we intend them to!
I am then going to save it as a DXT5 DDS image. (DXT3 should also work, just note that you cannot use DXT1, since it doesn’t support alpha.
Upon importing my specular image into Workshop, this is how it looks:
If we take a look at the object in game, perfect!
The legs have a bright shine to them, and the fabric is perfectly matte for cloth!
Specular images for walls and floors are generally much easier to create, in that they are simply a plain grayscale image – no fancy channel mixing or adjustments.
For example, here is an EA specular of a wooden floor:
This image operates on a much simpler scale of where brighter areas will be glossy, and darker areas will be matte.
Unlike the object speculars above, the Red, Green, and Blue channels of these speculars are all the same, resulting in a grayscale image.
They do, however, make use of the alpha channel as a separate control. Note that the game can separate channels and process each channel as an individual image – so while something may be invisible to you, and thus you think it’s “blank,” the game doesn’t understand the concept of “blank” and your texture will be wrong.
The alpha channel controls how strongly the specular will appear – but it’s kind of inverted. A value of 0 (which will be black on the alpha channel, and the image will be fully transparent) actually means the specular will be applied at full value. A value of 255 (white, fully visible) will mean that the specular is barely applied at all.
Think of the alpha channel as a “roughness” value – a roughness value of 0 would mean a very smooth, shiny surface. A roughness value of 255 would be a really rough texture that wouldn’t really be reflective at all – this is exactly what the alpha channel of a wall/floor does.
For example, here is how a lot of EA’s tile speculars will appear:
The solid black grout means it has a high roughness value, so it won’t be shiny. The transparent tiles mean they have a low roughness value, and thus the invisible areas will be shiny.
When creating walls and floors, keep in mind the material the item is made out of, and the pattern that it’s in.
If you create a wooden floor, but rotate the direction of the wooden planks 90 degrees so they are now horizontal, then the original specular no longer works for your new pattern. You’ll have to create a new specular image that matches your new texture. (This applies to ANYTHING on which you change the pattern size/scale/layout/etc.)