This is a research study for those interested in exploring a technique to improve clothing creations for Sims in The Sims 2 PC game. The method described herein is intended to eliminate the effects of pixel blur due to divisions from clothing’s layering, such as skin texture to clothing texture changes. As well, the method describes how to display your clothing’s texture, created from any pixel dimension/resolution, without having the game try to resize it to a standard 1024 x 1024 pixel texture.

The instructions provided are guidance on how to create potential clothing meshes, and is intended for those comfortable with using SimPE and a mesh editing program, (such as MilkShape 3D). It is a requirement to use SimPE for the method described to work. It is optional to use MilkShape 3D, but is a requirement to use a program capable of editing a mesh. It is optional to use Adobe Photoshop, but is a requirement to use a program capable of creating a square transparent image.

This is a basic overview of the process, and may not include an exhaustive list of all techniques required to successfully produce an elaborate creation, but does provide a springboard in branching to ideas for other better techniques.

In this section, I will describe what do to skip the compression issues that arise from the game stretching, shrinking, & recompressing textures that do not conform to the preferred 1024 x 1024 pixel resolution of wrapping clothing texture around a Sim. To begin, you will need to create a new stand-alone clothing mesh. Then, you will need to associate the recolor to that stand-alone clothing mesh. Do the following:

1. Open your The Sims 2 Body Shop application.
2. Choose a clothing design. As an example, chose this one located in the Adult male, gym clothing section:

8. Click the folder with an arrow pointing to it (“Import to Game”). Your saved recolor of the clothing design will be located in the “My Documents/EA Games/The Sims 2/SavedSims” directory.
9. Close your Body Shop application. Confirm your intent to quit the application by clicking the check-mark.
10. Open your SimPE application. You will need to extract the mesh from the recolor clothing design you saved.
11. In the toolbar above, click “File” --> “New”. You should have a blank template that looks like this:

13. Click “Browse…”
14. Find the “SavedSims” directory.
15. Sort files by “Date Modified”, where the latest file is located on the top:

16. The file name will contain an 8-character combination, an underscore, and the project name ending in “…Tutorial01.package”. Click that file.
17. Click “Open”.

Four resource files will load up for the body mesh. They are, in our example:

This clothing example is for an adult male Body with Hoodie and Vest (amBodyHoodieVest). You will be editing the mesh located in the GMDC file of the resource list later on in this guide. For now, we will be linking your recolor to this new mesh file.

18. In the toolbar above, click “File” --> “Save As…”.
19. Go to the “SavedSims” directory.
20. Type out the file name “Tutorial01_MESH”. Later in the tutorial, you can easily identify it when finding it from that folder.
21. Click “Save”.
22. By this point, you should have all the following resources in the mesh package file:

23. Now in the toolbar above, click “Tools”. Then move your cursor over “Object Tools” --> “Fix Integrity”. Click it. A window will pop up that looks like this:

24. You will give your mesh files a “ModelName” created by you. As an example, use “tutorial01”.
25. Click the blue link “Update”.
26. Click “OK”.
27. In the toolbar above, click “File” --> “Save”.

You should now have a window that looks like this. Notice how each resource in the Resource List contains the model name “tutorial01”, and a hyphen after that:

28. In the toolbar above, click “File” --> “Close”.
29. Afterwards, in the toolbar above, click “File” --> “Open”.
30. Find the “SavedSims” directory.
31. Click the file name with the 8-character combination, an underscore, and the project name ending in “…Tutorial01.package”.
32. Click “Open”.

You will be linking this recolor to the new mesh package file you created. That way, you will not have to touch the official Maxis file in your game’s Program Files directories to produce the outcome of this instruction guide. By this point, you should find seven resource files:

33. Under the Resource List, click the “3D ID Referencing File”. Also insure that you are in “Plugin View” by clicking the tab on the bottom of the application. You should have a view similar to this:

34. In the toolbar above, click “Tools”. Then move your cursor over “PJSE” --> “Body Mesh Tool” --> “Linking stage”. A window will pop up that looks like this:

35. Click “OK”.
36. Find the “SavedSims” directory.
37. Click the file name we saved called “Tutorial01_MESH.package”.
38. Click “Open”. A window will pop up that looks like this:

39. Click “OK”.
40. Then under the Resource List, click any other resource that is not the “3D ID Referencing File” resource. As an example, click the [Text Lists] resource.
41. Now, click back to the “3D ID Referencing File” resource.
42. Click “Commit” in between the two box outlines in the “Plugin View” section.

43. Click “OK” to confirm seeing the message from the pop-up window.
44. In the toolbar above, click “File” --> “Save As…”.
45. Go to the “SavedSims” directory.
46. Type out the file name “Tutorial01_CLOTHING”. Later in the tutorial, you can easily identify it when finding it from that folder.
47. Click “Save”.

You should now have a “3D ID Referencing File” with this look below:

I will now mention briefly how certain lines in the “3D Referencing File Editor” are related to certain resources in either the recolor file or mesh file (SEE APPENDIX "A").

Steps 34 to 43 have automatically changed some values in the list to link to the mesh file, since some resources were not present in the recolor file.

It is required to understand some of how these resources are connected together so that once you see it, it will make sense how the complex part of the tutorial works, where you will have to manually add in new resources to the list. Some of those lines of files in the “3D Referencing File Editor” will be touched on later in the instructions.

In the meantime, we will complete Section 1 of this guide by continuing on.

48. Under the Resource Tree, click on “Material Definition (TMXT)”.
49. Under the Resource List, click on the sole TMXT resource.
50. In Plugin View, insure you are on the “Content” tab.
51. In the “Content” tab, click the sub-tab “cMaterial Definition”.
52. In the “Settings” section, change the data in the “Type” field from "SimSkin" to "SimStandardMaterial". You should now have something similar to this:

53. Click the “Commit” button to the right of the Generic Rcol Editor.
54. Click “OK” to confirm the change.
55. In the toolbar above, click “File” --> “Save”.
56. Close your SimPE application.

You’ve completed Section 1, where you can now have a clothing texture that is higher in pixel resolution, without the game trying to stretch, shrink, & recompress the resulting change to look blurry.

HOWEVER, there is a flaw. You cannot use an alpha channel to define where the clothing texture is invisible in order to show the skin.

The data in the field for “Type” mentioned above was originally SimSkin. That was programmed to mean whatever parts are invisible on the texture, show a skin. SimStandardMaterial is not programmed with that condition. Instead, any invisible parts to the texture will pull the closest pixels from the edge of the visible layer as color filler.

In order to display skin, the proposed method would be to split the body mesh into 2 meshes. One mesh will be dedicated to the clothing texture only. Another mesh will be dedicated to the skin texture only. To find out how that works, read on to Section 2 of this instructional guide.

SECTION TWO
"Splitting the Single Body Mesh into Skin and Body Groups"

In this section, I will describe what is meant to split a body mesh into two parts, with one part referring to a clothing texture only, and the other part referring to the skin texture only.

As you complete the instructional guide, you can potentially use the technique of splitting a body mesh into many smaller sections & create more texture images for each piece by itself. For the purpose of this guide, I will assume that you will only use one texture image to represent all pieces of your clothing mesh.

As well, this section will be explaining how the mesh is manipulated using MilkShape 3D. It is not mandatory to use MilkShape 3D, but the author of this tutorial is not familiar with using other mesh editors:

57. Open your SimPE application.
58. In the toolbar above, click “File” --> “Open”.
59. Go to the “SavedSims” directory.
60. Find the file name “Tutorial01_MESH.package”. Click it.
61. Click “Open”.
62. Under the Resource List, click the resource with the file type GMDC.
63. Right-click the resource, and choose to “Extract…”, as seen below:

You will need to create a new folder in a separate folder, in order to keep your work files away from those files in the “SavedSims” directory. You’ll be a little bit more organized for the later instructions.

Because this is an unedited Maxis mesh, I don’t believe that there should be much issue fixing the weights so that every vertex that joins edges equal 100% weighting. So…

76. If prompted to correct weights to total 100%, click “Yes”.
77. Your body mesh is now loaded for editing, and should look like this:

I will provide an idea on what is expected to happen in the next few steps. I will not be detailing a step-by-step process on how to use the application’s menus and functions, as I am presuming you will be able to work the program.

In the “Groups” tab to the right panel, you will have one item listed called “body <No Material>”. “body” is a model name that is encompassing the entire mesh. What we will be doing is splitting the mesh and having two model names: “body” and “skin”.

78. Under the “Groups” tab on the right-panel, insure that “Auto Smooth” is unchecked, as seen below:

79. Select all of the mesh in any one of the 3 grey windows so that the entire mesh is selected in red:

80. Duplicate the mesh (Ctrl + D).
81. Go to the “Groups” tab on the right panel.
82. Rename “Duplicate01” to “skin”.
83. While “skin” is still selected, click the “Comment” button. A window will open to edit the information for “skin”.

84. Change the data for “ModelName” from “body” to “skin”.

This is important because once the new mesh is uploaded into SimPE, SimPE will read the comment’s ModelName, not the group name we see in the Groups list. Also notice the “NumSkinWgts” data. It’s set at 3 because there are 3 more joints that a vertice can have, rather than just one (e.g. the “skin” model can have a total of 4 joints per vertice, since it’s set at “3”, being 3 + 1 = 4).

85. Click “OK”.
86. Deselect the “skin”.
87. Select the “body”.
88. Click “Hide”. This will be unhidden later on.
89. Using the “skin” model, choose all parts of the mesh that will not have skin from the Sim exposed.
90. Delete them. In our mesh, you might have something like this for the "skin":

91. Select the “skin” model.
92. Hide it.
93. Select the “body” model.
94. Unhide it.
95. Using the “body” model, choose all parts of the mesh that will have skin from the Sim exposed.
96. Delete them. In our mesh, you might have something like this for the "body":

97. Select the “skin” model.
98. Unhide it.
99. At the toolbar above, click “File” --> “Save As…”.
100. Go to the “Desktop/Tutorial01-MeshFiles” directory.
101. Save the work file as “Tutorial01_MESH.ms3d”. This way, you can refer back to the edited work, in case of issues.
102. In the toolbar above, click “File”.
103. Then move your cursor over “Export” --> “Sims 2 UniMesh Exporter V4.09”.
104. Go to the “Desktop/Tutorial01-MeshFiles” directory, if not already there.
105. Save the file as “Tutorial01_ImportMESH.5gd”.
106. Close your MilkShape 3D application.
107. If prompted with a message claiming that the model has been modified, do you want to save, click on “No”.

You now have a clothing mesh where you can wrap the “body” portion in clothes, while the “skin” portion is solely for displaying the standard 1024 x 1024 pixel resolution texture desired by the game’s mechanism.

As well, because the division between clothing and skin is defined be each mesh’s edges, there’s no more blurriness when transitioning to skin. The division between colors and layers of clothing might still appear blurry, but that would be due to the resolution of your texture.

For example, a 512 x 512 pixel resolution texture displayed on a Sim from a given close-up distance would appear blurrier versus a 2048 x 2048 pixel dimension texture given that same distance, and provided the larger texture has more detail and was not enlarged from that smaller texture.

The PROBLEM with this method is that it assumes the body mesh you’d like to edit has clearly defined edges on the mesh, where you can split them, in order to follow the way the clothing ends between skins. Curved lines on clothing dividing the skin from the neck, for example, may be difficult to edit cleanly.

As this instructional guide is still in research, better methods may arise to alleviate this issue. Until then, you’ll have an idea on how the skin mesh will work in the next section. That is where the complex matter will be discussed.

SECTION THREE
"Having the Game Recognize the New Clothing Groups (Model Names)"

In this section, I will describe how to make the game recognize the new model name called “skin” from the splitting of the mesh. You can also use the method below for any additional model names that are added for any new clothing mesh.

108. Open your SimPE application.
109. In the toolbar above, click “File” --> “Open”.
110. Go to the “SavedSims” directory.
111. Find the file name “Tutorial01_MESH.package”. Click it.
112. Click “Open”.
113. Under the Resource List, click the resource with the file type GMDC.
114. In “Plugin View”, choose the “Content” tab, if not already on it. You should see something similar to this below:

115. Highlight the data in the “Filename” field.
116. Copy the data (Ctrl + C).
117. Right-click the resource with the GMDC, under the Resource List.
118. Choose “Replace…”, as seen below:

119. Go to the “Desktop/Tutorial01-MeshFiles” directory.
120. Click the file as “Tutorial01_ImportMESH.5gd”.
121. Click “Open”. You’ll notice that the “Filename” in the Generic Rcol Editor has changed.
122. Highlight the data in the “Filename” field.
123. Paste the data (Ctrl + V).
124. Click the “Commit” button to the top-right, as seen below:

NOW comes the complex parts on what to do. Before delving into the steps, let me briefly explain the resources to touch in order from first to last (SEE APPENDIX "B"). I’ve included the GMDC on the list, even though we just finished touching on that. This is just my recommended procedure on what I find more comfortable doing first to last:

So, after you’ve completed the GMDC portion, you will want the shape of the “skin” to be recognized by the game. This requires editing the Shape (SHPE) resource.

126. Click the resource with SHPE as the type, under the Resource List. You should have a window opened below that looks similar to this:

127. In the list under the “Parts” tab, click “body: ambodyhoodievest_green”.
128. In the “Material Definition File” field, you want to reference the TXMT from your “Tutorial01_CLOTHING.package” file. Open the “Tutorial01_CLOTHING.package” file. Click the TXMT resource under the “Resource List”. Copy its filename.
129. Paste the name into the “Material Definition File” field.
130. Remove the “_txmt” suffix.
131. Add “tutorial01” before the word “body” You should have something similar to what the image looks like below:

132. In the list under the “Parts” tab, click the newly renamed “body: ##0x5fb3f6fc!tutorial01body”.
133. Click the blue link “add”, as seen below:

134. Choose the SECOND “body: ##0x5fb3f6fc!tutorial01body” item on the list.
135. In the “Subset Name” field, remove “body” and type in “skin”.
136. In the “Material Definition File” field, remove the word “body”, and replace it with “skin”.
137. Click the “Commit” button at the top-right.
138. Click “OK” to confirm that changes were made.
139. In the toolbar above, click “File” --> “Save”.

While still in the SHPE resource, click on the tab “All References”. You should see an area like this. Then click on the lines with “body_txmt” or “skin_txmt”:

Notice how both TXMTs are considered [unreferenced], according to the highlighted yellow area. This is because both TXMT’s filenames do not exist right now. You will be making one TXMT later on in the clothing recolor file, and rename one of them. If you wish, take note of the 3 strings of values after “49596978” for both TXMTs. Now we will go to the Geometric Node (GMND) resource.

140. Click on the resource with the GMND type, under the Resource List. You should have a window that looks like this:

141. Under the Content tab, click the drop-down list next to “Blocklist”.
142. Choose “0x4: tsDesignModeEnabled (cDataListExtension)”.
143. In the “cExtension” tab, click in the blank area in the “Items” list.
144. Insure that on the bottom-right, the drop-down menu says “Array”.
145. Click the “add” link on the bottom-right, as seen below.

146. Click the newly added line in the “Items” list.
147. In the “Name” field to the top-left, type in “skin”.
148. Click the “Commit” button.
149. Click “OK” to confirm that changes were made.
150. In the toolbar above, click “File” --> “Save”.
151. In the toolbar above, click “File” --> “Close”.

We will proceed with making a new resource for the Texture Image (TXTR) of the “skin”. Before we do that, you will need a transparent 1024 x 1024 pixel resolution image. You will need a photo editing program to make one.

I’ll be recommending that the file is saved in “.DDS” format, the file extension used by nVidia. I recommend this for textures, as you can simply import it into the editor, and experience less compression loss with the image quality. With this transparency, it’s not going to be the case. If you can’t get a “.DDS” formatted file, saving it as “.PNG” will do for now.

Once you’ve made such a file, follow these steps below to first rename the original TXTR resource, then second to make a new TXTR resource:

156. Click the TXTR resource under the Resource List.
157. In the second field next to “Filename”, replace the word “body” with “tutorial01body”. You should have it look like this:

158. Click the link “fix TGI” in blue.
159. Click the “Commit” button on the top-right of the “TXTR Editor” window.
160. Click “OK” to confirm changes.
161. Next, right-click the TXTR resource under the Resource List.
162. Choose “Clone”. A copy of a TXTR resource with the same name in italics will appear to the bottom of the resource list.
163. Click the new TXTR resource.
164. In the second field next to “Filename”, replace the word “body” with “skin”. You should have it look like this:

Now you need to define how that texture image will be displayed on the “skin” of the model. You will be going for the Material Definiton (TXMT) by first renaming the original TXMT, then creating a second TXMT.

173. Click the TXMT resource under the Resource List.
174. In the field next to “Filename”, replace the word “body” with “tutorial01body”. You should have it look like this:

175. In the list under the “Properties” tab, click the item that begins with “stdMatBaseTextureName”.
176. In the “Property” box to the right, in the field next to “Value”, replace the word “body” with “tutorial01body”. You should have this:

177. Click the tab “cMaterialDefinition”.
178. In the field for “Description”, replace “body” with “tutorial01body”. You should have this result:

179. Click the link for “fix TGI” in blue.
180. Click the “Commit” button.
181. Click “OK” to confirm changes.
182. Next, click the TXMT resource under the Resource List.
183. Choose to “Clone” the resource, as seen below:

184. Click the new TXMT resource seen from the bottom of the Resource List.
185. In the field next to “Filename”, replace the word “body” with “skin”. You should have it look like this:

186. In the list under the “Properties” tab, click the item that begins with “stdMatBaseTextureName”.
187. In the “Property” box to the right, in the field next to “Value”, replace the word “body” with “skin”. You should have this:

188. Click the tab “cMaterialDefinition”.
189. In the field for “Description”, replace “body” with “skin”.
190. In the field for “Type”, replace it with “SimSkin”. You should have this result now:

So you’re now going into the 3D ID Referencing File. At this point, you’ll need to pay special attention because much of the times, this is where things get broken if not followed to the letter.

195. Click the 3IDR resource in the Resource List.
196. Click the line item for “Material Definition” in the list, as seen below:

You will need to replace the 3 values for each Material Definition you noted between Steps 139 to 140. You will need to replace the values under “File Properties”. In case you forgot what each field means under the “File Properties” section, please refer to APPENDIX "A".

As a note, this first Material Definition is referring to the “tutorial01body” while the new Material Definition you’ll be making soon will refer to the “tutorial01skin”.

197. Under the “File Properties” section at the right side, replace the “SubType/Class ID” value with the new one from the old Material Definition resource.
198. Replace the “Group” value with the new one from the old Material Definition resource.
199. Replace the “Instance” value with the new one from the old Material Definition resource. You should have a result like this:

200. Now, click the “add” link in blue. A new Material Definition line item will appear below.

At this point, you could in theory leave it on the bottom of the list, and make references to this line on the bottom. However, I’d prefer to list it to the bottom of the original Material Definition line item. In other words, keep each resource grouped together.

201. Click the new Material Definition line item.
202. Click the “up” button until it reaches the bottom of the original Material Definition line item, as seen below:

203. Under the “File Properties” section at the right side, replace the “SubType/Class ID” value with the new one from the new Material Definition resource created.
204. Replace the “Group” value with the new one from the new Material Definition resource created.
205. Replace the “Instance” value with the new one from the new Material Definition resource created. You should have a result like this:

206. Click the “Commit” button in the middle of the window.
207. Click “OK” to confirm changes.
208. In the toolbar above, click “File” --> “Save”.
209. Take note of which line position this new Material Definition line item is located, remembering that you are counting using the hexadecimal numbering system. In this example, it would be line “3”.

Now you need to go to the Property Set (GZPS) resource to make some changes.

210. Click the GZPS resource in the Resource List.
211. Find the 4 “override” line items on the bottom of the list. They should look like this:

212. Click the “numoverrides” line item.
213. In the “Value” section to the right, increase the amount by 1 to make it “0x00000002”.
214. Click the “override0shape” line item.
215. Click the link “add” in blue to the bottom-right side.
216. In the “Name” field on the top-right, increase the number in the name by 1. It should appear as “override1shape”.
217. Click the “override1subset” line item.
218. Click the link “add” in blue to the bottom-right side.
219. In the “Name” field, increase the number in the name by 1. It should appear as “override1subset”.
220. In the “Value” field, change the name from “body” to “skin”.
221. Click the “override0resourcekeyidx” line item.
222. Click the link “add” in blue to the bottom-right side.
223. In the “Name” field on the top-right, increase the number in the name by 1. It should appear as “override1resourcekeyidx”.
224. In the “Value” field, change the value to the line position of the new Material Definition line item you noted in Step 190. Your results should look like this:

225. Click the “Commit” button on the bottom-right corner on the window.
226. In the toolbar above, click “File” --> “Save”.

Now you need to go to the Binary Index (BINX) resource to make some changes.

227. Click the BINX resource in the Resource List. You should see a list that looks like this below. You’ll be making changes to these line items:

228. Click the “iconidx” line item in the list under the CPF Editor.
229. On the right side, increase the value by the number of every new model name you added. Likewise, subtract by 1 for every model name you remove. In this case, increase by 1 using the hexadecimal numbering system. You should now have “0x00000004”.
230. Click the “stringsetidx” line item.
231. Increase the value by 1 to make it “0x00000005”.
232. Click the “binidx” line item.
233. Increase the value by 1 to make it “0x00000006”.
234. Click the “objectidx” line item.
235. Increase the value by 1 to make it “0x00000007”.
236. Click the “Commit” button on the bottom-right side of the window.
237. In the toolbar above, click “File” --> “Save”.
238. Close your SimPE application.

You’ve completed the editing of resource lines for the game to recognize the file, except for the following steps:

239. Find for the mesh file & recolor file of Tutorial01’s clothing from the “SavedSims” directory.
240. Move them to the “Downloads” directory.

NOW it’s recognized by the game. Open up BodyShop & see the clothing on your Sim:

This is the end of the research paper. Hope more folks can provide feedback to these instructions. Thanks.

All previous (old) values to the left were based on what is used in the game for the official Maxis file. All current (new) values to the right are based on what you’re using in this new clothing mesh.

We begin by reading the list from top to bottom. You count the rows starting with the first line representing “0”, and adding 1 more for each line. You add numbers using the hexadecimal numbering system (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F).

For example, 9 + 1 = A, not 10. Or, F + 1 = 10. Or 89 + 3 = 8C. Etc.

___________________________________________________________________

a. The Resource Node (OLD vs. NEW) = Line “0”

The Group is connected to the mesh using the value “0x1C050000”. The mesh file’s header is “Group”.

The SubType/ClassID is connected to the mesh using the value “0xD4E079C7”. The mesh file’s header is “Instance (high)”.

The Instance is connected to the mesh using the value “0xFFC59EF6”. The mesh file’s header is “Instance”.

The File Type does not need changing in this case, because the value “0xE519C933” is universal to refer to a Resource Node. The mesh file’s header is “Type”, except not in value format.

i. Geometric Data Container (GMDC)
This holds the model names and skeletal container (the mesh) that provides the foundation of how to arrange the textures.

ii. Shape (SHPE)
This lists the model names from the GMDC’s mesh, and tells the game which material definitions to reference when displaying each model name’s mesh.

iii. Geometric Node (GMND)
This is used to list the model names from the GMDC and sends it to the SHPE resource? (Can’t really explain this resource, maybe someone with better knowledge can add to this section)?

iv. Texture Image (TXTR)
This gives the skeletal mesh an image to display when wrapped around via a UV mapping of the mesh.

v. Material Definition (TMXT)
This provides a list of conditions on how to display the TXTR in different lighting & other visual situations.

vi. 3D ID Referencing File (3IDR)
This lists some resources the game will want to call on when displaying the clothing on the Sims?

vii. Property Set (GZPS)
This lists property information about the Sim clothing, such as what gender is it for, which age groups, etc.