Home | Download | Discussion | Help | Site Map | New Posts | Sign in
Locked thread | Replies: 8 (Who?), Viewed: 14511 times. | Locked by: Numenor Reason: New tutorial: [url]http://www.modthesims2.com/showthread.php?t=103379[/url]
Test Subject
Original Poster
#1 Old 17th Apr 2005 at 4:02 AM Last edited by 0le4ka : 17th Apr 2005 at 4:05 AM.
Default tutorial: how to add components (Subsets) to an object mesh.
In this tutorial I will describe how to add components (Subsets) to an object mesh. E.g. add glass to an object (Neon flamingo).

I am not going to explain how to work with meshes in 3D programs and how to import - export meshes. I will assume that you have cloned an object already, have extracted a mesh from Geometric Data Container and have edited it. I also assume that you have added a new component and have imported a new mesh back, using MeshTool.
Download files for this lesson (213 KB)
The archive contains: Neon Flamingo.package - Neon flamingo clone, editedpaintingneonflamingo.simpe - edited mesh with new added subset, Material folder – glass files with extensions TXMT and TXTR.
Download the latest version of SimPE

1. Let's replace GMCD:
Start SimPe, open neon flamingo clone package. Select Geometric Data Container and go to Plugin View. Note that List Models contains two components now.
Write down file name from the Filename box (“paintingneonflamingo-[0le4ka-27.03.2005-0369] _tslocator_gmdc” in this case). You will need this file name later. Right-click on Geometric Data Container from the Packed Files list. Select Replace. Open editedpaintingneonflamingo.simpe file, from my archive.
Note that List Models contains new "glass" component now. The file name in the Filename box has changed to "Custom_object". You can leave it as is but we will change it back to the original name (“paintingneonflamingo-[0le4ka-27.03.2005-0369] _tslocator_gmdc” in this case).
Now commit and save a file.
If we load this package into the game now we won’t see any changes in our flamingo clone; because it has no reference to the glass component yet.

2. Editing GMND:
Select Geometric Node and go to Plugin View. Select Edit Blocks tab. In the pull-down menu select (cDataListExtension). Press Add. A new line will appear on the list.
Click commit. SimPE will display an ERROR. Do not worry, press ОК. This error occurs when new block is not ready yet. Switch to Content tab, then to cObjectGraphNode sub-tab.
In Datalist Extension Reference area press Add. Highlight appeared line, change Enabled value to 0х01, and Index value to the count value of the new line (in my example 4). Click commit. SimPE will display an ERROR window. Don’t worry, press ОК.
In the Blocklist pull-down menu select (cDataListExtension). In the Settings area insert a new component name into the Name box (in this case “glass”). Press commit. The ERROR window doesn’t appear any more
In the Items area press Add. Highlight appeared line " = (Array) 0 items ". Insert the following value into Name box: paintingneonflamingo_halo_pink.
As I understand, this is a reference to a material which will be used by our added component. Actually we should be referring to a glass material here, but let's just add flamingo material and make sure that everything works fine. We will re-reference glass material later.
Now click commit, and save file.

3. Editing SHPE:
Now select Shape and go to Plugin View. Select Content tab, and then Parts sub-tab. Select halo: ** 0x1C050000! paintingneonflamingo-[0le4ka-27.03.2005-0369] _halo_pink. Press Add. Change Subset Name of the added line to glass.
Now click commit, and save file.
Now it is a good time to see what we have accomplished. Copy and paste package in Downloads folder and start the game.

4. Assigning a new material (“glass”):
Let’s take a glass material from a suitable object. I have cloned * Glass Round Table (0х7F04E4F8) and imported Material Definition file with a name ending with _glass_blue_txmt and Texture Image file with a name ending with _reflectionkitchenhighcontrast-envcube_txtr. These files are archived in Material folder provided with this tutorial.
Let's go back to our flamingo. Using SimPE open flamingo package saved in step 3. From the main menu select File-> Add… and select two just imported files (or two files from the Material folder in applied archive).
On the left-side panel choose Texture Image. On the right-side panel you should see two files (one file before). Find a file, with the name ending with _reflectionkitchenhighcontrast-envcube_txtr (mine is tableendloft-[0le4ka-27.03.2005-1627e] _reflectionkitchenhighcontrast-envcube_txtr). Let's change the name to paintingneonflamingo-[0le4ka-27.03.2005-0369] _reflectionkitchenhighcontrast-envcube_txtr in the Filename box and press Commit. Write down values SubType and Instance for this file.
On the left-side panel choose Material Definition. On the right-side panel you should see three files (two files before). Find a file, with the name ending with _glass_blue_txmt (at me it tableendloft-[0le4ka-27.03.2005-1627e] _glass_blue_txmt). Let's change the name to paintingneonflamingo-[0le4ka-27.03.2005-0369] _glass_blue_txmt in the Content tab/Filename box. Press Commit.
Switch to сMaterialDefinition sub-tab. Change Description to paintingneonflamingo-[0le4ka-27.03.2005-0369] _glass_blue. Press Commit.
Switch to File List sub-tab. Change Filename to paintingneonflamingo-[0le4ka-27.03.2005-0369] __ reflectionkitchenhighcontrast-envcube.
Commit and save file.
Select Material Definition again. Select edited file from the list on the right. Go to All References tab and make sure that texture file reference is correct (in this case - paintingneonflamingo-[0le4ka-27.03.2005-0369] __ reflectionkitchenhighcontrast-envcube: Texture Image: 1C4A276C - 0FF6CF56 - 1C050000 - FFFF61B2). 0FF6CF56 this is SubType, and FFFF61B2- texture file instance. Note that they have changed.
Let's go back to a texture file. Select Texture Image from the list on the left. Select Texture Image file with SubType 499B5AC0 and Instance FF3F9C5E. Switch to Packed File. Change SubType to 0FF6CF56, and Instance to FFFF61B2. Press commit, and save a file.

5. Assigning Glass Material to a New Component:
Choose Geometric Node and switch to Plugin View. Select Content tab. Select glass (cDataListExtension) from the Blocklist pull-down menu. Go to cExtension tab. In the Items area select paintingneonflamingo_halo_pink = (Array) 0 items. Insert reference to a glass material: - paintingneonflamingo-[0le4ka-27.03.2005-0369] _glass_blue into the Name box. Press commit, and save a file.
Select Shape and switch to Plugin View. Select Content tab and then Parts sub-tab. Select glass part: ** 0x1C050000! paintingneonflamingo-[0le4ka-27.03.2005-0369] _halo_pink. Change Material Definition File to paintingneonflamingo-[0le4ka-27.03.2005-0369] _glass_blue. Switch to All References tab and write down values SubType and Instance of the ** 0x1C050000! paintingneonflamingo-[0le4ka-27.03.2005-0369] _glass_blue_txmt: Material Definition: 49596978 - 39764850 - 1C050000 - FF66E444 (39764850 and FF66E444) reference.
Let's go back to material file (Material Definition). Select Material Definition from the list on left side. Select Material Definition file with SubType 92D59606 and Instance FF396617. Go to Packed File. Change SubType to 39764850, and Instance to FF66E444. Press commit, and save a file with a new name.
Now let’s check what we’ve done with Scenegrapher. From the main menu select Plugins-> Scenegrapher and check the shape diagram. Make sure that all links from Shape to glass materials are correct. Make sure that value Available in all shapes are equal to "true" or "extern".
Copy this package to Downloads folder and start the game.

Version with picture


Thank Numenor very much, without he's tutorial i maked nothing

Thank Isselda very much for help to finding Numenor's tutorial.

Thank Tristesse for help with translation from Russian into English

Thank Quaxi for SimPE
12 users say thanks for this. (Who?)
Lab Assistant
#2 Old 17th Apr 2005 at 4:10 AM
I always wondered out people do this. Thanks for posting :D
#3 Old 17th Apr 2005 at 4:42 AM
I already knew this, but any new tutorial concerning SimPE is welcome to me.
Administrator of Loverat's Tea and Underpants
#4 Old 17th Apr 2005 at 8:04 AM
Thank you 0le4ka. I am going to move this to the tutorials forum so it will not get lost.
Lab Assistant
#5 Old 28th May 2005 at 5:02 PM
ooooo ooooo thank you soooo mcuh iv been looking and looking and looking just for this. i love you sooooooooo much :D

Andrew Shields My personal portfolio

Andrew Shields Facebook Page <3
Lab Assistant
#6 Old 28th May 2005 at 5:13 PM
I've been wondering how this was done! Thank you so much *off to give it a try*.


Vista is a problem that needs a solution -- preferably one with a pH of 0.
Lab Assistant
#7 Old 13th Oct 2005 at 1:42 AM
the tutorial with the pictures......most of the picture links aren't available now. can you fix this? i'm tryign to figure out how to change the subsets, but i need pictures to see what i'm doing, lol. Thanks in advance.

"Gods are fragile things; they may be killed by a whiff of science or a dose of common sense." - Chapman Cohen
Lab Assistant
#8 Old 21st Oct 2005 at 6:58 PM Last edited by Targa : 23rd Oct 2005 at 1:57 AM.
Default Tutorial: How to add sub-object meshes (subsets)
This is a rewrite of the tutorial written by Ole4ka, which can be found here:

(above actually, since I decided not to bother making a new thread)

All credit for this tutorial goes to Ole4ka. I am simply rewriting it for the latest version of SimPE, and to help make the process a little more user-friendly. The original tutorial required a few guesses on my part, and I've had requests to clarify the process, so here it is.


The purpose of this tutorial:

This tutorial will allow you to add extra object meshes to a GMDC. It will also allow you to add and assign new textures for your new meshes. The added textures will have their own Material Definitions, so you will also be able to control how your new texture is displayed (whether you want alpha blending, glass, or whatever). This tutorial assumes that you have a working knowledge of SimPE. It is to be considered an intermediate or advanced tutorial. If you're careful, even a beginner can accomplish it.


What you'll need for this tutorial:

1. The latest version of SimPE (v 0.48 as of the writing of this tutorial).
2. Your new mesh(es) in Alias Wavefront .obj format.
3. A package file cloned with Object Workshop to serve as your starting point base object.

This tutorial uses the standard GUI SimPE interface, so if you're using the "Classic GUI", you'll need to translate it in your head.

I will be using simple terminology for this tutorial, so when I say...

Left Pane = Resources list
Right Pane = Packed files list
Bottom or Plugin View = Plugin view or whichever I say to use at the time, in the bottom half of SimPE.
Bottom Bar = The toolbar at the very bottom of SimPE's interface.
"Quotes" = When I put something in quotes, it means that this is a relative object, such as a menu option, the name of a tab or function, etc.

Tip: To make sure you do not miss a step, you can do the following: Drag your mouse pointer over a word or two in the tutorial at your current step, highlighting the words or the step number. That way when you switch between this window and SimPE and come back, you will be able to see where you left off. If you miss or skip a step, this will (obviously) not work.


NOTE It's important to note that you need to observe the naming conventions very carefully. Sometimes a name is separated by hyphens, and sometimes it's separated by underscores. Always use the same exact format as the original files. You can easily click on the original Texture or Material Definition file to compare what you've typed to how the originals are written.


Starting off

To start, the first thing you should do is to replace the original object mesh with your own. That should already be done before you try to add more sub-objects. I am going to be doing this tutorial as I'm writing this, so I will know before I post this whether or not it works. If you wish, you can do the same object mod as me for your first time, so that the wording is exact. This is not necessary though, as I will explain in detail what needs to be done. The object I am cloning for this tutorial is the Decorative Sculpture, "Immobile Chimes".

Before you do anything else, get a unique GUID for your object's OBJD (object data file), tick the "update all MMAT's" checkbox and click the "Update MMATs and commit", then save your package.


Step 1

In the left pane, click on "Geometric Data Conatiner (GMDC)". In the right pane, click on "Geometric Data Container". At the bottom bar of SimPE, make sure you have "Plugin" selected. At the bottom of SimPE, in the plugin view, click on the tab labeled "3D Mesh". Click the "Import" button and browse to your new mesh .obj file that you wish to add as a sub-object (subset) of this package. Once the mesh is imported, click on the "Groups" tab in the plugin view. In the "Group Section" box on the left, left-click on your newly imported mesh. Just to the right of that box, in the field labeled "Name", type in a name for your sub-object. It can be anything you want it to be. In my case, I'm naming the mesh "tree", because I imported a mesh of a dead tree I made. Once you have the name typed in and you see the name-change in the "Group Section" box on the left, click the "Commit" button and save your package.


Step 2

In the left pane, click on "Geometric Node (GMND)". In the right pane, click on "Geometric Node:". In the plugin view, click the tab labeled "Edit Blocks". On the right, there is a pull-down menu which defaults to (cAmbientLight). Pull down that box and select (cDataListExtension) and click the "Add" button. On the left, you should now see a new numbered line (0x3 in my case), that says (cDataListExtension). If you added the wrong type by mistake, simply highlight it and click the "Delete" button. Click the "Commit" button.

Select the tab labeled "Content". Select the sub-tab labeled "cObjectGraphNode". Over to the far right, in the "Datalist Extension Reference" area press "Add". A new line will appear: 0: 0x00, 0x00. Click on that new line so it's highlighted, and in the boxes to the right change the "Enabled" value to 0x01 and the "Index" value to the next available number (the numbers are listed numerically), so in my case it's the third object, and I'll change the number to 0x00000003. Do not change the "Dependant" value. Click the "Commit" button.

At the top of plugin view, just below the main tabs, you'll see "Blocklist" and "Filename" areas. From the "Blocklist" pull-down menu, select your new (cDataListExtension) that has no name (it should be the last entry). From the sub-tabs, select the "cExtension" tab if it's not automatically selected, and type in the same name you used in Step 1 (in my case, "tree"). Click the "Commit" button. Over to the bottom-right you'll see a pull-down box that says "Array". Just below that, click "Add". You should now see "= (Array) 0 items" appear in the "Items" box. Click the "Commit" button.

From the "Blocklist" pull-down menu, select your main object (should be the first listed). In my case it's "0x0 sculpturechimes-[Targa-22.10.2005-c3a33]_tslocator_gmnd (cGeometryNode)". You now have your filename listed just below "Blocklist" in the "Filename" box. Click-drag your mouse to highlight the filename and copy the entire name (in my case, "sculpturechimes-[Targa-22.10.2005-c3a33]_tslocator_gmnd").

From the "Blocklist" pull-down menu, again select your new (cDataListExtension). Make sure you are on the "cExtension" sub-tab. To the far right, you'll see a blank box labeled "Name:". Click in that box and paste the name you copied. Your cursor should now be at the end of the name you just pasted in. On your keyboard, hit backspace enough times to erase everything up to the underscore after the last bracket containing your name/date info. In my case, the filename now looks like this: sculpturechimes-[Targa-22.10.2005-c3a33]_

Do not delete the underscore after the bracket. This name is a reference to the material (texture) used by the new mesh, so technically it doesn't have to be the same exact name as your new object, but to avoid confusion and for simplicity, type in the same name you used previously (in my case, "tree"). So now your name should look similar in structure to this: sculpturechimes-[Targa-22.10.2005-c3a33]_tree

Click "Commit" and save.


Step 3

In the left pane, select "Shape (SHPE)" and click on it in the right pane. In the plugin view, select the "Content" tab (it should already be selected), and the "Parts" sub-tab. Click on the name of your original object in the display box (in my case, "##0x1C050000!sculpturechimes-[Targa-22.10.2005-c3a33]_steel) so it's highlighted, and click the "Add" function over on the far right. This should give you a duplicate of your base object's name. Click on the new (bottom) entry that was added and below that in the "Subset Name" box, change the name to the name of your new mesh (in my case, "tree").

Directly below the "Subset Name" box is the "Material Definition File" name. Change the end of that to your new objects name. In my case, the name ends in "_steel", which I'll change to "_tree".

Click the "Commit" button and save.

NOTE Only follow Step 3a if the following applies: You are planning on using a "glass" Material Definition file that you have Extracted from a different package, and it does not rely on a texture. Otherwise jump to the next NOTE from here.


Glass: Step 3a In the Right pane, right-click and select "Add" from the popup menu, and open your saved glass Material Definition file. Jump to Step 5 from here.


NOTE If you are planning on using a custom Material Definition that's not glass, (for example, you extracted one from a different package that has the reflectivity or other attributes that you want for your new sub-object's texture), or a custom texture file you have already extracted, where Step 4 says "right-click and select Clone", you'll need to right-click in the right pane and select "Add", and add your custom files.


Step 4

In the left pane select "Texture Image (TXTR)" and in the right pane click on the main texture file (not the groundshadow, alpha, or whatever other might be there). In the plugin view, you should now see your object's main texture image. In the right pane, right-click on the main texture file and select "Clone" from the popup menu. SimPE will reset your view to "All Resources". In the left pane, select "Material Definition (TXMT)", and in the right pane, again select the file that shares the name of your main object (not the groundshadow/alpha/etc), right-click and again select "Clone" from the popup menu. Do not save yet! It's much easier to see which files have been added before you save, because their names are italicized.

In the left pane, select "Textue Image (TXTR)" and in the right pane, click on the italicized entry (should be listed last). In the plugin view, you'll now see the main texture for your original object. Over on the left you'll see a box labeled "Filename", and the filename is repeated in the box just below that. In that box below the "Filename" box, change the name of the texture to your new object's name. In my case, my texture ends with "-chimes_txtr", which I'm changing to "-tree_txtr". Click "Commit".


Step 5

In the left pane, select "Material Definition (TXMT)" and in the right pane, click on the italicized entry (should be listed last). In the plugin view you'll see a list of material attributes (be sure you're on the "Properties" sub-tab). At the top of the plugin view, just below "Blocklist" you'll see a box labeled "Filename" which contains the name of the file. Change the name in that box to the name of your new object. In my case, my material definition filename ends in "_steel_txmt", which I'm changing to end with "_tree_txmt".

NOTE If you imported a Material Definition instead of cloning, select the object's original Material Defintion, and in the plugin view, copy the filename from the "Filename" box. Select your new Material Defintion and paste the copied name in the "Filename" box.

In either case, the "Filename" entry should look similar to this: sculpturechimes-[Targa-22.10.2005-f212e]_tree_txmt

Note The following 2 paragraphs do not apply to glass users.

Approximately 10-12 lines down from the top you'll see "stdMatBaseTextureName:" and the name of your original texture with "##0x1C050000!" appended to the front of it. Click on that name in the Properties List and the name will appear over to the far right in the box labeled "Property". You should see "Name: stdMatBaseTextureName" and "Value:" will be the name of your texture. Left-click with your mouse in the "Value" box and scroll right until you reach the end of the texture name. Delete the ending name and replace it with the name you've been using all along so far. In my case, the texture name ends in "-chimes", and I'm changing it to "-tree". Click "Commit".

Now switch from the "Properties" sub-tab to the "File List" sub-tab. In the box on the left you'll see the name of the original texture. Click on it and the name will appear in the "Filename" box. Change the end of the name to your new name. In my case, it ended with "-chimes", which I'm changing to "-tree". Click "Commit".


Click on the "cMaterialDefinition" sub-tab. In the "Description" field, change the end of the name to your new object. In my case, I'm changing "_steel" to "_tree". (Glass users will need to again Paste the copied name and make the change)

Click "Commit" and save.

From SimPE's main manu bar, select File > Recent Files > and open the file we're working on. You need to re-open the file because for some reason SimPE's "memory" doesn't update information when you simply save.

In the left pane, select "Material Defintion" and click on the last one (the one with the new name) in the right pane. In the plugin view, select the tab "All References". Click the + signs next to TXTR and "stdMatBaseTextureName" to expand the list, and make sure that the filename is the new name (in my case, ending with "-tree_txtr"). If they're not both correct, you messed something up or missed a step. (Glass users will see something ending in "-envcube", which is fine).

Note that up to this point we are using Clones of the texture and material definition, and as such, they won't work because they share the same instance numbers as their original counterparts. So, from SimPE's main menu, select Tools > Object Tools > Fix Integrity (everyone do this). The Scenegraph rename wizard will come up. Just check off the "University Ready" box and click the OK button. Save when done.

From SimPE's main menu, select Tools > Object Tools > Scenegrapher. Look for red boxes or boxes labeled "orphan". You should see a nice clean display with arrows connecting everything properly. That is: CRES pointing to SHPE, SHPE pointing to all your TXMT's and your GMND, your GMND pointing to your GMDC, and your TXMT's pointing to your TXTR's. If anything is not connected, you missed a step or otherwise left something out.


Step 6

Give your object a Catalog Description if it doesn't already have one and Commit. Go to your main Object Data and make any changes you want to make in the "Raw Data" tab (price, etc). And if you didn't do it before starting this tutorial, get a unique GUID, update MMATs, commit and save. If your object has more than one Object Data file, be sure to get new GUID's for all of them. Put the package in your Downloads folder and go in-game to see if your added mesh is showing up. It should be showing up just fine, except the texture is still the original object's texture. There was no point in going further if the new mesh wasn't going to show up anyway. If your new mesh is there, then the hard part is done. Exit the game without saving.


Step 7

Glass users should be finished at this point.

There are a couple of different options at this point, depending on what you're trying to achieve. If you simply have a mesh that needs a normal texture, you can either import the texture manually in the texture plugin view, or if you have the NVidia plugins you can use the "Build DXT" right-click function to change the size and/or dimensions of the image. In either case, you're going to want to go to your new Material Definition and from the "Properties" tab, look for "stdMatAlphaBlendMode". See whether the alpha blend mode is "none" or "blend". If your texture has any transparency, you'll want to highlight "stdMatAlphaBlendMode" and change the "Value" over on the right to "blend" (if it's not already set to blend). If it's a normal texture, the alpha blend mode should be changed to "none" (if it's not already set at none).

That's all there is to it!

I hope this helps clarify the process and makes it simpler to accomplish.

Test Subject
#9 Old 6th Mar 2006 at 1:45 PM
Hi, Everyone!

I have by the time all EP's for the Sims 2 game. And I wanted to have
some new clothes, hairs and designs for my game.

But at the installing I haven't got it.
I have the CleanInstaller and the SimPE, so almost everything.

Please, I would be very grateful for the help. What should I do with
these files? How can I install them?!

Thanks for the help,

Locked thread | Locked by: Numenor Reason: New tutorial: [url]http://www.modthesims2.com/showthread.php?t=103379[/url]
Back to top