|Search this Thread|
|26th Dec 2009, 11:46 AM||TUTORIAL: Non-Default Skin Colors and More (a.k.a. TONE Files) #1|
Much of the information in this fist post has been outmoded by advances in the knowledge in the functions of tone file. For the most updated please refer to the tutorial by Missy Harries.
First let me tell a little story about how this discovery was made:
Twas the night before Christmas, and out on the web,
Rez was still browsing, just before bed;
He was composing replys, trying not to tl;dr
When all of a sudden, a new post did appear
A question of UI, a subject he knew;
New skintones it asked, not replacing core's blue,
Replys were at first of skeptical nature;
UI was one thing, the core a new creature.
But when Rez got bored (its a mental disorder)
He knew a trip to Reflector was in order.
An what to his wandering eyes did appear,
a little reference to a file so queer.
He flew to the editor, taxing his cache
Tore open the package, and looked up the hash.
And there he beheld a file so awesome
it made CASP files look like trash blossoms.
Without delay he took it to hex,
non-default skins could be produced next!
Ok, silliness aside:
What this Tutorial Will Do
The objective of this tutorial is to teach modders how to retrieve and edit the TONE files with the intent to make non-replacement skin colors. Additional objectives may be added in subsequent updates, as more research is done.
What the Tutorial Will NOT Do
This will not teach you how to make new skin color gradient files.
This will not teach you how to make new skin tone files, for those look to this tutorial by Aikea Guinea here.
This will not teach you how to mod the UI.
This will not teach you how to operate your programs.
This will not teach you advanced hex editing.
This will not teach you how to install mods or framework.
What You Need
Part One: Non-Default Skin Color Gradients
1) Open your copy of FullBuild0.package, making sure that tags and names are turned on. Sort either by Tag or type, we are looking for TONE 0x0354796A files. Seven of these files will appear there, six are the default skin colors and one is an 'unused' tone called mannequin. Pick one of the default TONEs (this example will be using 'Alien Skin') and extract the file to a working directory.
*NOTE* There is also another TONE file with the type 0x03555BA8 for the default hair tone; we will not be concerned with it here in the tutorial.
2) Give your extracted file a new name and Instance ID. For the Instance ID, its usually best to use an FNV64 hash of the name. My new name will be 'Alien Skin Custom' which hashes out to 0x62C7BCE9DD24BDEA
3) If you have a Skin Gradient, skip this step. If you don't have a Skin gradient, then you need to extract the two files. The first is in FullBuild0 and is a IMAG 0x2F7D0004 file and has a similar name as the TONE file you previously extracted. The second file is in FullBuild2.package. It has the same name (with the addition of the Instance) as the first file in this step, but is a _IMG 0x00B2D882 file. These are the Tone Ramp Files; they are what the game looks at when you move the sliders. It is important to note that both of these file have the same Instance ID. So, in this example the two file are AlienSkinToneRamp (IMAG) and AlienSkinToneRamp_0x20ee0a9e9a7186fd (_IMG). Screenshot 1 shows the files needed in 3a)It will be helpful now to write down some of the instance numbers from the ToneRamp files, you don't need to write the whole thing, but just enough to recognize the number when we go to hex edit, the first four and the last four should be enough. So for the example, we should remember 20EE........86FD
4) The tone ramp files now need new names and instances; again, use FNV64 hash, keeping both of the files the same instance number. My new tone ramps I'm gonna call CustomToneRamp1 which hashes to 0x1C670D4285A0CC7D
5) Now, its the time to do the somewhat intimidating hex changes. Lucky for this part, we are only going to be changing one reference to an Instance ID. Now for hex editing, the TGI information is not straightforward, hex will list the information in reversed pairs.
For Example: if the Instance number on our resource was 0x0123456789ABCDEF
then converting that to hex would be EF CD AB 89 67 45 23 01
Open the TONE file in your Hex Editor. We need to look for the TGI entry for the original ToneRamp, and update that with the new TGI; but we only changed the instance numbers, so we are only concerned with changing the instance, the rest stay the same. Recalling the numbers (you wrote it down right?) we need to look for the last two numbers first, etc. So, in the example, we are looking for FD 86 .. .. .. .. EE 20 So, you are telling me you forgot to write down your Instance, or the instance of your ToneRamp is not from the the same set as the TONE file you extracted? Well, not to worry, because the TGI we are looking for (unlike droids on Tatooine) is the first TGI set we come across; and is about a third of the way down.
In screenshot 2, the highlighted portion is our TGI value, and it is also the beginning of the TGI list. The red is the Type, the blue is the Group, and the yellow is the Instance (we are only concerned about this highlighted string). Now as you can tell from the image, it is not the very first thing in the file, but is the first entry in the TGI list (note how everything beginning with that entry is a set of 32 characters, each with the same Type and Group), and anything before that is file data. It is very important nothing but the TGI entries change.
DO NOT EDIT ANYTHING ABOVE THE TGI LIST. YOU WILL BREAK YOUR FILE.
Reversing our pairs of numbers in the new instance of the ToneRamp from step 4 (1C670D4285A0CC7D :: 7D CC A0 85 42 0D 67 1C), change the instance in the hex editor. Make sure you put the Instance of the ToneRamp (step 4), NOT the instance of the TONE file(step 2), and NOT the old instance of the ToneRamp. Double-check for errors, then save and exit.
6) Package your newly hex-edited TONE file, and the two ToneRamp files.
7) Download the UI mod package (beta) in the attachments of this post, and install to your mods. I will remove the beta version after more testing and upload to the moderator queue. Afterward, you should be able to find it in the downloads section.
8) Put your packaged TONE/ToneRamps in your mods; test.
Didn't have any problems? Great! Congratulations, you just made a non-default replacement skin color.
Now some of you may be going "Wait just a sec... a new skin color is not as awesome as advertised in the peom" and the more experienced modders who know that the TGI lists appear last in Hex may be going "hey, wait, whats in that bottom two-thirds?"--well, that is part 2.
Part 2 is short in description, but exceptionally large in implications and possibilities.
That last two-thirds of the hex has in the TGI list, a reference to every Skin texture, every facial texture, and every scalp texture.
I will let you ponder that for a moment... no, go ahead, I'll wait.
... If the TONE Files control both the color and the skin texture...
... and the TONE buttons are saved per sim...
And you should have came to the conclusion that we can now assign Body/Face/Scalp texture INDIVIDUALLY, without overriding the global textures. Proof is in screens 3&4.
The tutorial for that is as follows:
Step 1: make new skin details
Step 2: assign them unique Instances
Step 3: edit the TONE file
Step 4: Prosper
Ok, so thats simplified, and a lot of work (there are somewhere around 100 skin detail files referenced in the TONE file), but it is possible, and I'm sure some ambitious modder will make everyone very happy.
That thread mentioned in the peom
Duo Tones Default replacements by Missy Harries -- a big help figuring out what was needed as far as the ToneRamp files, thanks for the lovely examples.
A Note About the Included UI Mod
This mod is in beta--however, UI (LAYO) mods are exceptionally stable and will not cause crashing.
It is a default replacement of the CASBasics.LAYO found in the UI.package file; it is not a core mod and has been tested for compatibility with both Inteen3 and Awesome. The UI has been expanded to enable additional TONE files to appear. Previously, the TONE picker (the pop-out box) was limited to 6 TONE selections, in a 2x3 grid; I have expanded the grid to 25 TONE selections in a 5x5. Screenshots 3&4 both show the the expanded region. Only the six core selection icons (the colored circles) will appear unless additional TONE files have been added.
16 users say thanks for this.
[ Click here to view a longer list ]
|27th Dec 2009, 07:47 PM||#2|
Join Date: Oct 2008
|28th Dec 2009, 12:40 AM||#3|
Quick question: Is the mod a core mod?
|28th Dec 2009, 04:56 AM||#4|
Nope, not a core mod. As long as you give the indicated files a unique Instance ID, nothing will be replaced.
If you are asking about the UI mod, its not core either; it is a default replacement of one of the LAYO files found in the UI.package file.
|28th Dec 2009, 08:06 AM||#5|
It is definatly a nice find but isn't it easier to use a bodyoverlay?
Or is it possible to eliminate the colors and use the particular tone only for hair/freckles/scars or any other body addon?
|28th Dec 2009, 09:33 AM||#6|
Overlays are easy since they are assigned as part of a CASP, and we have excellent tools that produce CASP files easily.
Please correct me if anything of the following is incorrect, I don't use overlays frequently, and I've never made one; so I'm going off of what I remember from reading threads a while back.
But there are significant disadvantages to using overlays, versus the TONE. The first is that the overlays are assigned per outfit, either as part of the clothes or by accessory as a tattoo layer--this puts constraints on your options for layering clothes. Second, is that the overlay is not shower-proof without the aid of either a copy outfit utility, or using NeverNude with a nude swimsuit. The third issue is that the overlays for body, face, and scalp are separate, and each assigned to different CAS Parts (body overlays are clothing, face overlays are makeup, and scalp overlays are hair). The fourth, is that overlays are not inheritable.
The disadvantages to TONE files, are that they would be way less customizable for individual details--since the body tones are tied deep into the TGI list--like body hair, scars, tattoos, freckles. It would also be harder to mix-and-match body and face replacements. As we do now, we can pick a different face/body for male/female, child/teen/adult/elder as defulat replacements, and just take the best of each. With the TONE file (until a utility is made) you would have to hex edit the TONE file for each change, or change the the file the TONE is looking for (which this second method is not so different than default-replacement, but becomes much more complex with the addition of more and more TONE files). In an ideal world, I would have just made a utility for TONE editing, instead of making a tutorial, but I'm no programmer--so until someone becomes interested in making a utility (or until I learn programming--its a race to see which takes longer), we can only rely on hex editing the TONE files.
While my example in the screenshots showed the addition of body hair and airbrushed abs, this is definitely not the best use of the find--I just used an extra set of Male default replacements with high contrast to the base. Better uses of the find would be, if some artists/creators be willing, would be to make entire new sets of scalp, face and body to create radically different breed of sims--robots, werewolves, vampires, plant-people, zombies, (and my favorite possibility: a color slider that goes from bronze-tan to paint green, with way too much muscle tone; I call it Lou Ferrigno) all of which would be inheritable.
On a related note, I believe that the TONE file may have a tunable that would allow random generated sims to spawn with non-default colors; so far in base-game it only allows npc sims to spawn with two of the six possible colors.
As you mentioned freckles and scars, I think its important to note that facial freckles, beauty marks and moles, have also received a UI update to allow more of them (see the link to the thread in the first post). As far as scars go, it may be possible to make them using the same concept as beauty marks--old scars would be easy as they tend to be flesh-tone with with some highlight; fresh scars are more difficult, but may be possible. I tried doing colorized moles awhile back (with the UI update, it may be a good time to revisit it... putting it on the to-do list), and some colors did appear, although adjusted 40-60degrees in hue, and desaturated. For body details, after I finish work on some body sliders (14-18 sliders, far more advanced than some bone-morphs, and might be found on the adult site in early January), I will look at the methods in the core for freckles/moles, and see if I can't replicate them for the whole body.
|28th Dec 2009, 11:04 AM||#7|
It would be cool to use the green for like more hair and the blue for freckles.
I now use the scalp(moved to the beard category) to make these overlays, wich are showerproof btw
|28th Dec 2009, 01:28 PM||#8|
OMG, I wish I knew this when I was doing my replacements.......... I have no idea about hex though but I'm definatly going to give this a go. Thanks.
|28th Dec 2009, 01:40 PM||#9|
Actually after a proper read through you've just made my day.
|28th Dec 2009, 03:36 PM||#10|
Wow! The possibilities are endless....I'll have to reread this many more times before I can digest enough to try it. With missy harries tones, I have almost every color I need, but it would be great to have further variations.
ETA: I'd also like to know how missy harries was able to get two tones on one slider.
And now these three remain: faith, hope and love. But the greatest of these is love.
|28th Dec 2009, 07:23 PM||#11|
LOl, Its only the same slider, I just got the dead centre of EA's ramp and poped a gradient on each half, then there was a lot of tweaking to get the colours look how wanted.
|28th Dec 2009, 08:10 PM||#12|
Thats Ok sweetie. Is that a new site you've put up? I love fantasy too.
But a note to the thread.
Do you think it's possible to get the colour wheel to work for the TONE file????
I'm trying that now but I'm not litirate in ANY kind of coding I'm learning as I go along so any heads up would be great.
|28th Dec 2009, 08:15 PM||#13|
It's just where I plunk things I don't want to lose. I'm too lazy to jump through hoops to post things and too cheap to set up a proper site.
I agree about the color wheel. It would solve everything. I can't imagine why they didn't do things that way from the start. Sadly, I haven't the vaguest idea how to make it happen either.
And now these three remain: faith, hope and love. But the greatest of these is love.
|29th Dec 2009, 03:00 AM||#14|
This does not seem to be working for me at all, it just seems to swap my colours around on the UI....... I've been though it a couple of times now and there's nothing I seem to be doing wrong (at least I don't think so).
Your UI mod doesn't seem to be showing up either. Is your game patched to date?
|29th Dec 2009, 05:15 AM||#15|
Admittedly, my game is not patched to 1.8/2.3 due to the issues of that known to break CC downloaded in Sims3Pack format, so I was waiting until EA issued a fix, or at least admitted that they broke something (my guess is that the will come long before EA admits to any wrong-doing).
However, I don't think the most recent would have broken UI mods like it did to core mods and Sims3Pack CC. But just to be sure, could someone please check the 'Date Modified' column on Sims3/Game/bin/UI/UI.package. The date of the UI.Package file I used to make the mod is Nov-17-2009, so if there is anything newer than that, then I will need to grab the update and remake the mod.
This appears to be a problem with the package uploaded above. I tried downloading that one, removed all my other mods, cleared my caches, then tried loading CAS, and the mod didn't appear.
So, lets try again with this one. Anyone that grabbed the above one should re-download.
|30th Dec 2009, 03:01 PM||#16|
Cecked the date for ya and it's 15/12/09.
Your new package doesn't want to work for me either........
I de-patched my game (reinstall) to see if that would work but there's still no joy, it's just the same thing. Either it just doesn't like me or I'm doing something wrong.
Anyone else having problems????
I've been going over it so many times and I'm starting to lose heart.......
Could you upload the skintone you got working here please? At least then I can check for sure.
|31st Dec 2009, 12:15 AM||#17|
I was afraid of that... so my mod will only be good for 1.7/2.2 installations.
I will up (or force my brother to up, since he uses less CC than I do...) and work out a new LAYO mod before this weekend.
Also, you mentioned that when you followed the tutorial, all it did was move the colors around. That means you probably did it right, since adding new TONE files will place the color-pick circle in a different order (i.e. adding new TONEs won't add to the end of the list, it sometimes puts them in the middle, etc.)
|31st Dec 2009, 12:43 AM||#18|
Thanks babe, you've given me some hope.
|31st Dec 2009, 02:55 PM||#19|
I have to hone some basic skills before I can tackle making skintones, but I would be more than willing to test the mod and any skintones. My game is patched through 1.8/2.3 though.
And now these three remain: faith, hope and love. But the greatest of these is love.
|5th Jan 2010, 05:54 PM||#20|
Join Date: Oct 2007
Okay I have the altered thing that shows the skin tones - they're currently showing as black - I used the blue skin tone as a base
So I was wondering if anyone could explain it in 'newb talk' as I'm new at this, how I could then add in a custom skin tone 'images' as it were?
Also is it meant to show up as black? O_o?
|5th Jan 2010, 10:52 PM||#21|
It's showing up as black probally because it was saved wrongly.
Heres a check list
- Uncheack load mipmaps upon loading image
- make sure image is flattened before saving
- make sure image size is 64 x 64
- make sure it's saved in DXT5 format with Genarate mipmaps checked
Import and save
Hope that helped. Just retrace your steps.
|6th Jan 2010, 06:43 AM||#22|
Join Date: Oct 2007
no I mean it was showing black before I thought of adding in the skin files to create the Na'vi markings.
But let me get this straight
Load the DDS files that I've recoloured saved as DXT3 making sure I uncheck the mipmaps
Make sure image is flattened
Adjust image size for the image files to 64 x 64
Save as a DXT5 with mipmaps checked
then Import and Save?
What about the hex editing still to do to the TONE file so it registers these?
|6th Jan 2010, 09:32 AM||#23|
You should only need to do the hex editing once (asuming you 've done it corectly). In my experience I've gotten the black skin because I forgot something while saving (usually flatten......). Its a good idea to do the hex editing first that way once you know the hex change has worked and is looking good in game, go back to your package to change the ramp files. I sugest that order because the hex is the more complicated.
You can also save as DXT3 (I only say 5 because it's what I tend to stick to).
|6th Jan 2010, 02:30 PM||#24|
I'm having trouble understanding some parts. So please forgive me if I ask stupid questions.
So this I assume you mean to open it with s3pe?
How do you do this? Can you do this inside of s3pe, or do you need to do it within the hex editor program?
I'm confused by when you say "keeping both of the files..." and then changing it. Does it have to be changed in the hex program, and are we changing the instance ID?
|6th Jan 2010, 03:26 PM||#25|
All of that is done using 1 - Fire up S3PE, File - Open - navigate to whereever your game files are located and open up FullBuild0. Once you've located the file you want right click it and then click on Export to package. Save it to a folder location thats easy to find for yourself.
2 - When you save your exported package name it whatever suits you and open it up in S3PE.
On the tab bar at the top click on Tools - FNV Hash. This'll bring up a dialogue box, type in the name of your package where it says Text to hash and click calculate then just copy the FNV64 hash string it genarates for you.
3 - Double click your package file which will bring up another dialogue box and just paste your copied Instance where it says.... well.... instance. Hit OK and then save. Don't worry if your instance doesn't change right away, mine tend not to change till I save.
Rinse and repeat for the ramp files once you've added them to your package.
BTW I'm using the latest S3PE. If yours is an older one then it may differ a little so make sure you've got the latest.