PDA

View Full Version : Slave Object Tutorial - Repository Textures From Maxis Objects


IgnorantBliss
22nd Apr 2007, 9:01 PM
SLAVE OBJECT TUTORIAL:
REPOSITORY TEXTURES FROM MAXIS OBJECTS

How to make a custom object use the texture and recolors of an original game object

by IgnorantBliss

This tutorial is also available as a downloadable file in PDF format. Foxit Software PDF Reader (http://www.foxitsoftware.com/pdf/reader_2/down_reader.htm) is a free program you can use to view PDF files.


Needed for this tutorial:

- SimPE version 0.60 or newer
- CEP ( and CEP files also selected in the SimPE File Table)
- A mesh editor and a uv-mapping program if you're going to edit a mesh and/or make a new uv-map for one
- Previous experience on creating new objects and using SimPE in general (the usual steps of creating a new object are not explained in detail in this tutorial)


1. Introduction

This tutorial explains how to make your cloned object borrow its texture and recolors from an original (Maxis) object.

Reasons you might want make your object borrow its textures from an original object:

- You want your new mesh to have matching textures with the in-game object (such as having a curtain borrow its textures from bedding)

- You have only edited the original mesh slightly (made a sofa to match an existing loveseat) or not at all (made a hacked object with new interactions but retained the original object's look)

- You want to keep the file size as small as possible by not having textures included in the package

After you make the object or at least one subset in it borrow its textures from outside of the package, you can not recolor that subset/object the usual way. Instead, you will need to recolor the original game object for the recolors to show up.

You can have a maximum of two recolorable subsets in an object, and this also applies to objects that borrow their textures from elsewhere. You can, for example, have one subset in the object borrow its textures from another object, and a second subset which has its texture in the cloned package as usual. The subset that has its texture, material definition and material override included in the package can be recolored the normal way, while the other subset needs to be recolored by making a recolor of the original game object.

The tutorial assumes you are already familiar with the basics of creating a custom object, and the details of that are not explained here.

The tools needed for this tutorial are the same ones you need for creating a custom object in general, specifically SimPE, a mesh editor such as Milkshape, and possibly a uv-mapping program such as UV-Mapper Classic. A paint program may be needed for viewing a texture for reference, but you won't be doing any texture editing within the tutorial since you will be using the original game textures. Having the CEP installed ensures (with the majority of objects) that the clone is automatically color enabled, and therefore the full process of color-enabling the object is not explained in this tutorial.

As an example in this tutorial I'm going to show how to make a curtain mesh borrow its textures from bedding. You can pick different objects according to your preference, but it might be easier to first get familiar with this method by copying the tutorial exactly.

Important: The object that contains the materials and textures is called the “master” object, and the one that borrows its textures from the master object is called a “slave” object. In my example with the curtain and the bedding, the bed containing the bedding is the master, and the curtain is the slave.

Let's get started.

2. Selecting an object to clone

For the slave object, I suggest cloning an object that is the closest to your desired finished object when it comes to dimensions and function. If you want to make a (3-tile) sofa that borrows its textures from a (2-tile) loveseat, you should clone an existing (3-tile) sofa as your base, slave object. In some cases it's also possible to add new tiles to an object if necessary, but this will not be covered here.

:here: For my example object I'm cloning the 2-tile curtain called “Loft Curtains by Sparse and Fine” from the base game.


http://thumbs2.modthesims2.com/img/4/1/2/7/8/MTS_IgnorantBliss-512303-SlaveTutorialStep2.jpg


3. Cloning and cleaning up the package

a) Clone your object with your usual (preferably the default) cloning options. Give it new GUID(s) as usual.

b) Delete all unnecessary Material Overrides (MMATs), Material Definitions (TXMTs) and Texture Images (TXTRs). You delete files by right-clicking on them in the Resource List and selecting Delete. If there is going to be no subset in the clone that has its textures included in the package, you can delete all of the aforementioned files. If you have one subset that's going to be a slave to another object, and another that has its texture included, then you have to make sure to delete the correct ones. The name of the subset can be seen in the file names of the MMATs and TXMTs that are related to it. The texture file name usually doesn't mention the subset it belongs to, but it should be obvious from looking at the texture image. Often more than one subset uses the same texture.

:here: For my example object, the curtain, I'm deleting the Texture Image, Material Definition and Material Override for the actual curtain texture (subset called “fabric”), but leaving the Texture Image and Material Definition for the shadow into the package since the shadow won't be borrowed from the bed.

http://thumbs2.modthesims2.com/img/4/1/2/7/8/MTS_IgnorantBliss-512304-SlaveTutorialStep3.jpg

4. Making the mesh and the uv-map

a) Make the mesh as usual in your mesh editor. If you want to use the mesh from the master object as a base for your new mesh, also make a separate clone package at this point of the master object (this clone you can delete once you're done with this tutorial) and export the mesh from that one for editing.

:here: In my example curtain, I'm not changing the mesh at all since I want to keep the original shape of the curtain mesh and only change its uv-mapping in the next step.

b) The need for uv-mapping depends on what kind of a mesh you're making. If you're using the master object's mesh as a base and are only making slight (or no) changes to it, there should be no need to adjust the uv-map at all. If you're modying the mesh considerably, or making a completely new mesh, then you probably need to uv-map it, too. For making the uv-map, it is often helpful to extract the texture from the master object to use as a reference for your mapping.

Since you're borrowing the texture instead of making a new one, you will have to adjust your mesh to the texture and not vice versa. For example, if you're making a curtain borrow its textures from bedding, map the curtain mesh to an area of the bedding texture that you want to use, and note that different bedding textures have various patterns, and mapping that looks good with one texture might not look so with another.

:here: This is what the uv-map looks like for my example curtain after I mapped it to use the parts of the bedding texture I wanted.

http://thumbs2.modthesims2.com/img/4/1/2/7/8/MTS_IgnorantBliss-512305-SlaveTutorialStep4.jpg

c) Import your finished mesh to SimPE as usual.

5. Cloning the master object for reference

a) Since we will be linking the new object to an existing one, we need to take a look at the original object's structure and filenames to be able to do that. Normally, when you clone an object with the default options, the file names in the package are different from the original in order to make sure the clone will not override the original when put into the game. However, now we need to make a clone with the original filenames intact. This clone is only created for reference and does not need to be saved.

b) At this point of the tutorial it's helpful to have two SimPE windows open at the same time, one with your cloned slave object, and one with the (temporarily) cloned master object.

c) For the cloning options, unselect every option but the “Pull only default color” one.

:here: For my example curtain, I'm cloning the Colonial Ironwood Bed since this is the bed that all the other beds in game borrow their bedding textures from.

http://thumbs2.modthesims2.com/img/4/1/2/7/8/MTS_IgnorantBliss-512306-SlaveTutorialStep5.jpg


6. Editing the Geometric Data Container

a) After you have cloned the master object for reference, open the Geometric Data Container (if there are several of them, open the one(s) that contains the subset you want to borrow textures from), and go to the Groups tab under the Content tab. Take a look at the subset names listed.

b) Then open the same tab in your slave object package, copy the subset name(s) from the master package to replace the wanted subset name(s) in the slave package, and Commit and save the slave package. (To edit a subset name, select it from the list by clicking on it and its name will appear in the Name box on the right, where you can edit it.)

:here: For my example object, I'm replacing the curtain's “fabric” subset name with the subset name “bedding” from the master object.

http://thumbs2.modthesims2.com/img/4/1/2/7/8/MTS_IgnorantBliss-512307-SlaveTutorialStep6.jpg

7. Editing the Shape

a) Next, go to Shape and open the Parts tab in both packages. (If there are several Shapes, find the one that contains the subset you're linking. Sometimes you need to edit several Shapes, as is usually the case with objects like windows and doors.)

b) In the master object package, click on the subset you're borrowing the texture from, and copy the text from the box under “Subset name” to replace the Subset Name in the slave package. Then copy the name from the box under “Material Definition File” to the same box of the newly renamed subset in the slave package. Make sure to replace the name completely, don't leave any parts of the old filename there. Commit. If you have two subsets borrowing their textures from elsewhere, repeat these same steps for both of them. Then save the slave package.

:here: For my example object, I'm replacing the “fabric” subset name with “bedding”, and its Material Definition with the bedding's one.

http://thumbs2.modthesims2.com/img/4/1/2/7/8/MTS_IgnorantBliss-512308-SlaveTutorialStep7.jpg


8. Editing the Geometric Node

a) Next, open the Geometric Node in the slave package. Again, there might be more than one Geometric Node to edit, just like with the GMDCs and Shapes. If that's the case, repeat the following for each of them if they contain the subset you're editing.

b) In the Content tab under Geometric Node, there is a drop-down menu called Blocklist. Open that and see if there is an entry called “tsMaterialsMeshName”. If there isn't, you need to add one. (If it's there already, you can jump to step c ). To add it, click on the Edit Blocks tab, select “tsDataListExtension” from the drop-down menu and click Add.

http://thumbs2.modthesims2.com/img/4/1/2/7/8/MTS_IgnorantBliss-512309-SlaveTutorialStep8b1.jpg


Then go back to the Content tab and open the Blocklist again. Your newly added entry will be at the bottom of the list. Select it.

http://thumbs2.modthesims2.com/img/4/1/2/7/8/MTS_IgnorantBliss-512310-SlaveTutorialStep8b2.jpg


In the cExtension tab, type “tsMaterialsMeshName” (without the quotes) into the Name field and click Commit.

http://thumbs2.modthesims2.com/img/4/1/2/7/8/MTS_IgnorantBliss-512311-SlaveTutorialStep8b3.jpg


Then select the very first entry on the Blocklist, and go to the cObjectGraphNode tab. In the section under “Datalist Extension Reference” click the “add” button. A new line will appear in the box.

http://thumbs2.modthesims2.com/img/4/1/2/7/8/MTS_IgnorantBliss-512312-SlaveTutorialStep8b4.jpg


Select the new line, then see which number should come next in row, and add that number into the end of the zeros in the Index box. Then type “1” into the Enabled box, and Commit.

:here: Since for my example object the new entry is 5th on the list, I enter “5” into the Index box.

http://thumbs2.modthesims2.com/img/4/1/2/7/8/MTS_IgnorantBliss-512313-SlaveTutorialStep8b5.jpg


c) After you're done with that (or if the tsMaterialsMeshName block already existed) you can move on. Select the tsMaterialsMeshName entry from the blocklist again (the correct name may not show on the Blocklist until you save, exit and re-open the package, but don't worry). From the drop-down list in the bottom right corner, select String and click add. If you have two subsets borrowing their textures, add two Strings and Commit. Leave this tab open.

http://thumbs2.modthesims2.com/img/4/1/2/7/8/MTS_IgnorantBliss-512314-SlaveTutorialStep8c.jpg


(If your object already had the tsMaterialsMeshName block and it contains one or more Strings already, you may have to delete/replace the original ones with the new ones if you don't want to keep the original links for those listed subsets, especially if subsets listed don't exist in the package anymore after you've edited it. To delete a String, just select it, click Delete in the bottom right corner and Commit.)

d) Go back to the master package, open the Resource Node and select the tab called cObjectGraphNode. Copy the name in the Filename box, without the “_cres” extension.

http://thumbs2.modthesims2.com/img/4/1/2/7/8/MTS_IgnorantBliss-512315-SlaveTutorialStep8d.jpg

e) Go back to the slave package and the tsMaterialsMeshName block in Geometric Node we have open. Then click on each added String in the Items box, type the name of the subset into the Name field and then paste the copied name from the master object's Resource Node into the String field for each subset. Then Commit and save the package.

http://thumbs2.modthesims2.com/img/4/1/2/7/8/MTS_IgnorantBliss-512316-SlaveTutorialStep8e.jpg


f) If earlier in the tutorial you had to change the subset name from the original one (since they need to match those of the master object), there is one more step to do. While still in the Geometric Node, select an entry called “tsDesignModeEnabled” from the Blocklist. In the cExtension tab, in the Items box, you will see the subsets that are listed as recolorable. Rename them to match the new subset names from earlier in the tutorial by clicking on each at a time and editing the name in the Name box on the right, and then Committing. Save the package. (Note that you can have no more than 2 subsets listed under tsDesignModeEnabled)

:here: For my example object, I renamed the “fabric” subset to “bedding”.

http://thumbs2.modthesims2.com/img/4/1/2/7/8/MTS_IgnorantBliss-512317-SlaveTutorialStep8f.jpg

g) The master package you can close without saving, it won't be needed anymore.


9. Testing your object

Now you can put the slave object package into your game (the Downloads folder where all other custom items go, as well) and see if it works as intended! If not, double-check that you didn't miss any steps in the tutorial. If you still keep having problems, feel free to post questions at the tutorial thread in the forum.

Troubleshooting Checklist:
1) GameCrashes Error in editing the GMND. See pic Step8b4. Verify that you have added an entry for any blocks you have added, that they are all enabled, and that the number matches the entry you added.

2) Only default texture or No texture Verify that you have added the ##0x1C050000! before the filename in the SHPE and GMND if slaving to a custom object.

khakidoo
22nd Apr 2007, 9:17 PM
oh! you did this just for me didn't you!? ;) I love you :lovestruc

Ailias
25th Apr 2007, 5:22 PM
I will try this one to make downloaded MM set slavable (or fix it in other words) :)

Ailias
28th Apr 2007, 3:43 PM
All my efforts failed i could not find why.

In the cExtension tab, type “tsMaterialMeshName” (without the quotes) into the Name field and click Commit
please correct the quoted sentence - tsMaterialsMeshName
This unfortunate misprint made me mad. Thanks to CTNutmegger she founded a mistake,
http://www.modthesims2.com/member/CTNutmegger

IgnorantBliss
28th Apr 2007, 5:42 PM
Sorry about the typo, I have fixed it. It was wrong in the text and correct on the image. No need to get mad about it, though ;).

khakidoo
11th May 2007, 8:17 PM
I have a question about step 8 - the parts between step 8b and step 8c
in the geometric node... I'm trying to make my (still with glitchy animations ) backwards garage door...
In the geometric node I have 13 items... (13 in shape, 13 in gmdc too of course), but with so many to do, I want to make sure I don't get lost in the process you know...

actual question:
should I go thru each of my 13 items meaning
ok should I take item 1 and go thru all the steps between 8b and 8c then take item 2 and go thru all those steps
or can I take item 1 and do the tsMaterialsMeshName step, take item 2 and do the tsMaterialsMeshName step, take item 3 and repeat just that step the 13 times...

then go back and do the next part -the datalist extension adding part - for item 1 then item 2 and so forth

does it matter either way?
hope that made sense...

IgnorantBliss
11th May 2007, 8:22 PM
It doesn't really matter in which order you do it, as long as you do everything :). With that many files to edit, it may get a bit overwhelming. Just use the order that seems most comfortable :).

khakidoo
11th May 2007, 8:35 PM
Thanks so much for the super-fast answer :)

komasutra
15th May 2007, 4:53 PM
Thank you so very much. You are wonderful.

chat_wizardess
18th May 2007, 9:42 AM
Thanks for the tutorial. I done the steps without a problem when i just removed something from a maxis mesh and was able to slave it to the master without any trouble since it was the same mesh. My trouble started when i tried to link a rug to the bedding, hoping it will allow any bedding to be the same as the rug, i put the rug into game, went to recolor it with the recolor tool thingy and it said that this object isn't recolorable or something along those lines. I do have an up to date version of CEP and the rug, the bathroom rug from Nightlife is already recolorable. I have run through all the steps again and i did do everything right so i'm unsure as to why it won't pick up any other bedding textures apart from the main blue bedding set

IgnorantBliss
20th May 2007, 3:51 PM
It's hard to say for sure what's wrong without looking at the object. Can you please upload your package here as an attachment?

chat_wizardess
23rd May 2007, 7:11 AM
Thanks anyway IgnorantBliss, but somehow after 3 attempts at it again i finally done it

corvidophile2
6th Jun 2007, 4:04 AM
Thank you for this great tutorial IngorantBliss :-)
I have a question: i have a mesh ( which unfortunately isn't recolorable but i don't feel like redoing it now), so is it a way to make the recolors work? It doesn't have subsets. Basically it's a tad larger version of this tree here and i didn't upload it because the recolors didn't work.I was wondering if this can become a slave of the smaller one and its recolors which i uploaded here? >>http://www.modthesims2.com/member/showthread.php?t=234731

IgnorantBliss
6th Jun 2007, 6:47 AM
It should be possible to make it a slave to the other tree, I don't see why not :). Just make sure the subset names match and such.

corvidophile2
6th Jun 2007, 12:34 PM
So the fact that the one tree is not recolorable at the moment doesn't matter? I will try then.

Thanks

corvidophile2
6th Jun 2007, 11:47 PM
Hi IB :-)

I tried 2 times following the tutorial but there where missing parts , didn't know what to do and proceeded on my own and it didn't work (i didn't expect it to work anyway as it had no subsets and it wasn't recolorable at the first place as i said ).

But before i try one hundred times again to make it work can you please tell me if it's possible to do it with this particular mesh by taking a look at it?


Thanks in advance :-)

IgnorantBliss
7th Jun 2007, 6:21 AM
I'm not sure what you mean by "it has no subsets". Both trees have one subset that is called treepine_tree. The difference is that the other one is missing the tsDesignModeEnabled block from the Geometric Node. It can be added in the same manner as how adding tsMaterialsMeshName is explained in the tutorial. After adding the missing block, you can add subsets to the list by adding an Array (instead of a String that's added in the tutorial). And array only needs a subset name, nothing else. Also, with the tsMaterialsMeshName that you do have in one of the objects, the String is missing the subset name in the beginning. It lists the CRES name for the other object correctly but the package doesn't know which subset it belongs to :). I recommend you go through the tutorial again and make sure you add that part correctly :).

corvidophile2
7th Jun 2007, 10:24 AM
Thanks so much , i saw the tsdesigneModeEnabled missing and i just didnt know how to add it.

I will do it again and let you know! thanks xoxo

corvidophile2
9th Jun 2007, 1:12 AM
IB in my slave package in GeometricNode in the edit blocks i can't find a tsdesignemodeEnabled block to add . :-(

Stormwench
9th Jun 2007, 2:07 AM
here you go

WesHowe
9th Jun 2007, 2:10 AM
This is something you can add to the GMND in SimPE, it just isn't obvious how.
Frist, look at the GMND that has a tsDesignModeEnabled block. If you have never seen it, the main tab of the plugin is a drop down box... as you select different edit blocks, the editable fields change to match the type.
So, you use the one with a tsDesignModeEnabled as a refernece. But you go to the GMND that is missing the block, in the plugin pick the edit blocks tab, in the dropdown find "CDataListExtension" and click Add, and a new unnamed block will appear at the end of the list (if the last was 0x03 before this will be 0x04).
Now, go back to the first tab and then drop down the list above it and pick your new block 0x04 (or whatever). The plugin will be on a tab called CExtension, on the left side out tsDesignModeEnable in the block marked name on the left side (you can see this on your reference GMND).
Now, on the right side is a drop dowm that says array. This just happens to be what we want to add to out new tsDesignModeEnabled block. Click on add, and an unnamed array will be added. Then for the forst elements, put in the name of your recolor.

This is difficult to explain without adding pictures like a tutorial, but you can make this from scratch.

<* Wes *>

I see stormwench beat me to the punch.

corvidophile2
9th Jun 2007, 2:18 AM
Thank you so much Stormy and wes_h! I'm grateful!

Stormy beat you because you are not in the create chat hehe :-P



update:It still won't work.I noticed when i was editing them that both meshes have the same subset name which is treepine_tree so there was nothing to replace there. I guess that is causing it not to work.

I will clone a different tree and remake it. :-P


pdate2:ok i quit.It appears the new clone doesn't have a TsdesigneModeEnabled block too.But now i know why because both the pine tree and mesculito tree i cloned are objects that are not designable in game in first place. All these tries for nothing. Haha i now learnt the repository technique by heart if only i could get it to work also.

:-(

IgnorantBliss
9th Jun 2007, 7:31 AM
I wasn't specific enough about my explanation. When you add a new block to the Geometric Node, you also need to edit the Datalist Extension Reference to match the number of blocks. When adding the tsDesignModeEnabled block this part works exactly the same way as adding the tsMaterialsMeshName block (as shown in the tutorial).

The subset names of the objects have to be the same, otherwise the master/slave thing won't work properly. So, having the same subset name should not be a problem, but rather a requirement :).

corvidophile2
29th Jul 2007, 11:08 AM
Is there anyway to link a slave to a dirty stage as well ( like in pet beds) and how can it be done ? because i fail to see the dirty parameter in the master.

Thanks

Numenor
29th Jul 2007, 2:56 PM
Sure, it can be done, and it's easy, too :)

Your slave object must be a multi-state (clean/dirty) object, just like the chosen repository one.

Create the slave object as usual, fixing the GMND and the SHPE as explained in the tutorial; then you have to edit the Text List 0x88 (Materials): replace the references to the clean and dirty textures with the corresponding references found in the Master object's text list. If the Master is a Maxis object, be sure to avoid any ##0x1c050000! prefix.

This procedure apply to any multi-state object (including lit/unlit); only, be sure that the master is of the same type of the slave (this shouldn't be a problem, since usually the MAster is the same object you have cloned your slave from).

(NOTE: when dealing with multi-state objects enslaved to a Maxis master, the Fix Integrity might add the prefix in the Text List: double check the TL frequently...)

corvidophile2
29th Jul 2007, 4:18 PM
Thanks so much for explaining that to me and for fixing them Numenor, it is so great to know for the next time.

:-))

gwillewyn
30th Jul 2007, 8:40 PM
Sorry about the typo, I have fixed it. It was wrong in the text and correct on the image. No need to get mad about it, though ;).

The typo is still in the PDF file. I noticed that the hard way. :P
I got it working after a lot banging my head against the wall and wondering what I was doing wrong (especially since I almost got it right yesterday). Turns out I didn't pick the best object to start with: two subsets and a dirty state to deal with.

HystericalParoxysm
14th Sep 2007, 9:02 AM
Many thanks to you for this, IgnorantBliss. I finally got around to doing something with this technique and after a couple false starts, I got it working perfectly. Your efforts to put this together are greatly appreciated. :)

corvidophile2
28th Sep 2007, 6:02 PM
Hi IB :-)

How does the repository technique work with beds? Cause my bed frame works in the slave but the beddings options don't appear at all.Do they need linking to the colonial bed maybe?
Thanks in advance

Numenor
28th Sep 2007, 6:47 PM
Yes, the bedding must always be linked to the colonial double bed.
The game handles perfectly TWO different links in the tsMaterialsMeshName block.

SimPE might have some problems when creating recolours for such objects (usually it works fine, anyway); but in any case, users never create a recolour package for the frame AND the bedding at the same time. So, the solution is to recolour the master bed for the frame OR the colonial bed for the beddings.

corvidophile2
28th Sep 2007, 6:50 PM
Great Numenor ,this is what i was trying right now, thanks!

(and it worked ;-) )

Mira04
21st Jan 2008, 11:13 AM
I tried this and OMG a new world is opening to me !! Thanks so much for this tutorial! It's really easy to follow and very well explained ;)

This is such a great tutorial! Thanks bunches for taking the time to make it, it is of such great use in the battle against bursting download folders ;)


edit: in my enthousiasm I didn't noticed I had posted once allready ;)

szielins
4th Apr 2008, 3:33 AM
I tried this with a door, and am now under the impression that when cleaning out the unused MMAT, TXMT, and TXTR resources, one should be careful to leave the relevant "wallmask" ones in place, lest one end up with a door that does not correctly create a hole in the wall when placed. :) (Just out of curiosity: presumably, somewhere in the cloned door lurks the actual pointers to the wall masks needed for things to work as expected. The wallmask TXMT resources point to the TXTR resources they need-- but what is pointing to the TXMT resources?)

Rain
16th Apr 2008, 11:07 PM
I hope someone can help me... I am getting nothing under the "Content" tab other than "blocklist", "filename" and "fix TGI". There are no tabs at all under "Content", which contradicts the two tutorials I know of on doing this. I am using the most recent SimPE, which I believe is 0.66 so perhaps things are set up differently now. So I'm stuck on the part just after I have re-imported my edited mesh back into the object file.

Would anyone be able to advise me, please, where else I might find the list of components for the Geometric Data Container? Thank you.

IgnorantBliss
18th Apr 2008, 7:05 PM
Ambeon, which object are you trying to clone, and with what kind of cloning settings?

Rain
19th Apr 2008, 1:00 AM
Oh, thank you for your reply. I was stuck on a part in yours and another tutorial on the subject but the problem was on my end. It was pointed out to me in another thread that it was because I didn't have Managed DirectX updated. I was getting the prompt constantly reminding me whenever I made objects, but it had never stopped me from accomplishing it successfully in the past, so I guess I didn't realize it was actually a problem now. Thank you for your time, not to mention the tutorial. Now maybe I can actually finish it.

Rain
19th Apr 2008, 7:16 PM
Well, poop. I guess I am still having issues. I followed the rest of the tutorial (thank you again) to the best of my ability and, actually, it worked but, in fact, it seems to have worked a little too well. I seem to have entirely replaced/overridden the original Maxis object. It's the Pleasant Daydreams ceiling lamp. I can tell by the name and the mesh and the fact that the original is no longer anywhere in my catalogue that this must be the case. It does, however, now possess the same recolor options the original had, including a custom one I made for it, myself, before I decided to remake the mesh in a new object. Can anyone suggest where I might have gone wrong, please? Thanks again.

Rain
30th Apr 2008, 11:28 PM
I'm sure there must be someone who knows what to do about the problem I mentioned above. Could someone take a look and help me with it, please? Thanks.

Echo
1st May 2008, 12:33 AM
Ambeon - If you've followed the tutorial and your object isn't working the way you'd expect, you really need to post the package so we can take a look at it. :)

mcrudd
7th Jul 2008, 1:44 AM
this is an excellent tutorial, thank you very much :D

mcrudd
7th Jul 2008, 7:15 AM
Could someone please tell me if it is 100% neccessary to do the bumpmapping part of the tutorial. I skipped that part and all my recolours were invisible. i will try and do it over again and see what happens this time round. but if someone could answer this I would be very thankful :)

19SIM96
7th Jul 2008, 10:07 PM
I dont know how to get the SimPE thing. and I dont think i have enough space on my computer. Just if anyone knows how just come to http://www.youtube.com/iSim96. Leave a comment on where to go and what to do. Anyways, PLZ help, I BEG OF YOU!

mcrudd
9th Jul 2008, 2:41 AM
I tried again, and it is still invisible. I think I will wait until someone replies to my question ;)

mcrudd
13th Jul 2008, 1:51 AM
since nobody answered this, I tried making it again. But it was a big mess again, this time round I had only the blue bedding showing and not all the beddings in my game. And the blue bedding was cut in half. Could somebody please advice me what to do.

mcrudd
17th Jul 2008, 1:53 AM
could someone please help me :cry:

mcrudd
21st Jul 2008, 11:35 PM
This is redicilous :( Where is the so called help?

groovilicious
2nd Aug 2008, 9:25 PM
Could someone please tell me if it is 100% neccessary to do the bumpmapping part of the tutorial. I skipped that part and all my recolours were invisible. i will try and do it over again and see what happens this time round. but if someone could answer this I would be very thankful :)

If you're speaking about the UV mapping portion of the tutorial, and you've created a new mesh - then yes, the UV mapping is essential. If you're UV coordinates are somewhere off the map of the Maxis master object texture, then you're recolors are going to show that 'off the map' portion. I'm guessing that's why in your later post you have only half a bedding. I'm brand new to linking objects to the bedding myself, but if you're careful and follow the instructions completely, including the detailed UV mapping instructions in the Start to Finish tutorial here:
http://www.modthesims2.com/showthread.php?t=104795

You should have a better outcome. I personally have had many complete start-overs before I got the hang of all of it.

Hope this helped a little! Please don't cry! :luff:

GeneralOperationsDirector
29th Dec 2008, 9:07 PM
This is a bit much to take in all at once. Can anyone simplify it for the process of removing as much as possible from a clone with no changes to either the mesh or texture? If possible, I`d like to "borrow" the original mesh as well as the texture, and as much else as I can "borrow" successfully. If I remember correctly, I had to "Create Stand-Alone Object" in order to get it to clone successfully at all, and I`d like to delete as much as possible from the package. My object was last posted in Tutorial: Making Your First Custom BHAV.

tunaisafish
30th Dec 2008, 12:27 AM
You only need the STR# file 'Model names'. Change the string on line 1 to the orig EA mesh name.
And an MMAT. Change the cloned references back to the orig EA ones, update the GUID, and default to true.

Numenor
30th Dec 2008, 12:48 AM
..and after you've done what Tunaisafish suggested, you can safely delete all the resources in group 0x1C050000, because they are now useless.

GeneralOperationsDirector
30th Dec 2008, 2:34 AM
My object has been reposted in a new thread here, where leesester has kindly converted it to a repository object for me.

Now I need to learn what was done to it, and how to do it for myself. :)

Thank you both for your help. I will try to learn from it.

Edit: I`ve found the STR resource that tunaisafish mentioned. This is the current value:

##0x1C050000!rugstoneinlayround-[GeneralOperationsDirector-2008.12.11-1627a]

Would the original value that needs to be restored perchance be

rugstoneinlayround

...? Also, when leesester repositorified my object for me, the MMAT resource is one of the resources that got deleted. Will I need to restore it?

tunaisafish
30th Dec 2008, 3:39 AM
Yep, rugstoneinlayround sounds about right.
If you see more model names with the extra stuff, edit those too.
If you restore an MMAT from the cloned object, then you'll have to remove the similarly named bits. They're the bits that the Object Workshop creates to make the clone separate from the orig.

Or you could just grab the MMAT's from the orig object yourself. Change the GUID's.
You only need one, but if there are others then you'll have some standard EA recolours.

This of course will destroy the stuff that leesester has done for you. So recolours that you may have for the EA rug, will not be applied to your rug.

GeneralOperationsDirector
30th Dec 2008, 3:50 AM
I don`t have any recolors for the round tile [it isn`t really a rug; it`s a tile inlay. Of course, the game treats it as a rug, because it doesn`t have, or need, a seperate type for "hard" "rugs" vs. soft ones. :)] that didn`t come with the game itself, but I`d like my object to pull as much information as possible from the original, including all alternate textures. Would it be possible to have my object use the MMAT from the original, too? Have you checked out the object itself? The thread the current version is in is linked to in Post #51 above.

Edit: Before leesester repositorified it for me, it didn`t use the alternate texture[s] that the original object already had, and now, I`m told, it does. [I haven`t been in-game to see it for myself yet, though.]

GeneralOperationsDirector
30th Dec 2008, 5:41 AM
I`ve been in-game now, and leesester`s fix not only shrinks the package considerably, it does indeed pick up all of the original object`s four textures. Am I to take it that you are now recommending that I *not* follow your original suggestion, that I`d be better off taking what leesester did for me, and running with it? [You should see how much smaller the compressed archive is for that version than for mine, AND I pick up the alternate colors, too!]

bienchen83
9th Feb 2009, 9:36 AM
Hi, I have a problem with a slave object I created. It simply doesn´t work and I don´t find the mistake.
I´ve already done a couple of slave objects, but still...
Perhaps, another pair of eyes might be helpful.

Thanks in advance.

Numenor
9th Feb 2009, 7:34 PM
You forgot to add 1 to the Datalist Extension Reference (in the GMND); as a consequence, the game reads only the first 4 blocks of the GMND, ignoring the tsMaterialsMeshName one.

bienchen83
9th Feb 2009, 10:22 PM
Oh, thanks for the quick reply. I actually added one, but it was the one for the copyright line...silly me.

knightguy82
20th Apr 2009, 8:01 PM
is there a trick when the master is a Custom Object instead of a ingame object?

i got it working but it only pulls the objects default color no recolors :help:

plasticbox
20th Apr 2009, 8:45 PM
knightguy -- no trick really, you just need to use the custom object as a "master" instead of the Maxis one.

You write in your other post about this (please stick to one post in the future =):

is there a trick to getting your recolors to show when using your object as a master?

there 2 story version of this window at tsr an while it works it only pulls the default white one but no recolors

Honestly, if someone at tsr makes (sells?) an edit of my object and fails to get it to work, they should either look at tsr for assistance or at least post *themselves* .. I might be getting this wrong, but I would find it kind of laughable if their users would need to post here in order to get broken stuff repaired.

knightguy82
21st Apr 2009, 1:25 AM
tsr creator isnt doing this i am

i just happen to like your window an wanted to apply it to other windows if i could lol

plasticbox
21st Apr 2009, 1:41 AM
Yeah, um. You might want to try and look into writing complete sentences next time you post, that tends to avoid a lot of misunderstandings =). "there version of this window at tsr" is kind of .. ambiguous.

So what are you doing exactly – you have taken a window that can use the same texture and redid the subsets, yes? And linked the "interior" one to my window instead of the Maxis one?

Did you remove the glass subset (not sure what it's called, "glass"? "windowglass"?) from the recolourable subsets list and add the interior instead?

bluetexasbonnie
21st Apr 2009, 2:03 AM
Do your mesh names & texture names in shape & GMND start with ##0x1C050000!? I'm certain I made that error, and I think I had the result you describe. (Note: I make enough errors that they all tend to run together as to what caused what.)

knightguy82
21st Apr 2009, 2:32 AM
nevermind :faceslap:

i figured it out there was another tsDesignModeEnabled in one of the GMND's i thought i checked that pointed to the glass i deleted that reference an the 2 sides are working

thanks for helping you 2 :beer:

Yeah, um. You might want to try and look into writing complete sentences next time you post, that tends to avoid a lot of misunderstandings =). "there version of this window at tsr" is kind of .. ambiguous.

So what are you doing exactly – you have taken a window that can use the same texture and redid the subsets, yes? And linked the "interior" one to my window instead of the Maxis one?

Did you remove the glass subset (not sure what it's called, "glass"? "windowglass"?) from the recolourable subsets list and add the interior instead?

the window uses the same texture as the maxis one

well first i changed GMDC windowframe_s_gmdc window to interior

then i made sure the shape showed the change from window / windowcraftsman_window_sapele to interior / ##0x1C050000!pbox-windowcraftsman-twobit-onetile-straight_interior_white

then i went to the GMND an made changes to windowframe_s_gmnd

tsDesignModeEnabled changed window to interior
tsMaterialsMeshName changed window / windowCraftsman to interior / ##0x1C050000!pbox-windowcraftsman-twobit-onetile-straight

an as i said the object pulls your default white texture but none of your recolors :help:

Do your mesh names & texture names in shape & GMND start with ##0x1C050000!? I'm certain I made that error, and I think I had the result you describe. (Note: I make enough errors that they all tend to run together as to what caused what.)

only times ##0x1C050000! comes up is

shape ##0x1C050000!pbox-windowcraftsman-twobit-onetile-straight_interior_white

GMND tsMaterialsMeshName ##0x1C050000!pbox-windowcraftsman-twobit-onetile-straight

plasticbox
21st Apr 2009, 3:49 PM
i figured it out there was another tsDesignModeEnabled in one of the GMND's i thought i checked that pointed to the glass
That's why I was asking above whether you had removed the glass. Objects can only have two recolourable subsets. But I'm glad you found the problem.

SimSamBol
21st Apr 2009, 7:44 PM
Hi, all, thanks for this tutorial, IgnorantBliss, it's great! I'm not really old in doing objects, but I can do it well, of course, I always come to ask you something and my angels always answers me perfectly... I am making a collection of doors and windows and I want that all the 15 doors and windows (that includes one and two-tile doors and windows) get theire texture from just one of them (a one-tile window), but I don't know how to do it. A two-tile door has 6 GMDC with subsets in which one, for example, and a one-tile window (the one I want to be the master object) has 2 GMDC, and I want that "totally" all the doors and windows get theire textures from it, it's not just one subset, but the entire object. How can I do it, please? Which GMDC and subset must I copy?

Thanks!

Elizabella
27th Oct 2009, 9:47 PM
Wow this was an awesome tutorial! I managed to repository my new bed mesh (ok it was easy because I hadn't really done much to the bed anyway)

My question is in two parts though, can I tell it to look at two different beds for possible textures for the frame and what exactly are subsets. I don't really understand it since I think mine had 5 subsets.

I've attached it just in case anybody wants to have a look :)

HugeLunatic
28th Oct 2009, 1:16 AM
I'll start with subsets, those are each of your mesh parts. You can only have two that are individually recolorable in game, but you can have more than two mesh parts that use other textures. Your bed technically has two recolorable subsets, bedding and frame, but bedding has three mesh parts that all use the same texture so are grouped together as one subset for recoloring. If your feeling brave, look at the AL Bohemian bed (or my singles) they get more complicated with slavesubsets. :)

You can repository your mesh to as many (I think) other objects as you want, but you will still have only two recolorable subsets. I've done a slave to three other objects in one package. They were all to base game items so I knew everyone would have the original objects. But you cannot slave one subset to more than one other one. Your directly linking your mesh part (subset) to another mesh (cres and txmt).

I didn't check your bed in game, but did it show the right colors? Because you slaved it to the colonial bed instead of the cheap ez bed. This is the same as the one from CF?

Elizabella
28th Oct 2009, 6:07 AM
Yes it's the same as the CFF one. The colors showed up fine because all the beds are basically the same shape. I just want some basic colors of the bed though so I may just do a couple recolors of the colonial bed so it will work for them and for my bed.

How would I say look to the colonial bed and the cheap ez bed for instance for frame colors. Could that be done? - Sorry for so many questions

HugeLunatic
28th Oct 2009, 3:13 PM
Questions are good, it's how you learn. :)

You can't tell the frame to look at both the colonial and the cheap for frame colors, you have to choose one. Since you used the cheap frame to modify you should be pointing your package to that one, yours is actually telling the game to look at the colonial bed for colors. The texture maps are vastly different for those two beds. (Texture map is the 3d unfolded flat) The cheap one is 256x512 and the colonial is 1024x512, for this reason I would definitely recommend slaving to the cheap one.

When you look at the SHPE, this lists each of your mesh parts(subset name). This is where you tell the game what texture, the GMND is where you tell it the mesh. So the frame one will point to the cheap-ez bed and the bedding will point to the colonial. Bedding always points to bedDoubleColonial because it is the ultimate master for beddings.

So for yours:
bedding:beddoublecolonial_bedding_squares
frame:beddoublebasic_frame_woodhoneyoak

*bolded part is the mesh name that goes in the GMND.

Elizabella
28th Oct 2009, 7:27 PM
Ok that's changed. Do I leave the Include CEP checked though to make it base game compatible?

HugeLunatic
29th Oct 2009, 2:45 AM
Yep leave the CEP checked as well, otherwise game items that were made recolorable with won't be recolorable in object workshop.

Elizabella
29th Oct 2009, 7:26 AM
Sorry me again. I've done something wrong and I'm not sure what it is. I "reslaved" it but I'm getting the same result. I have the colonial bed frames (I know since I have 4 of them) and not the cheap ezee ones. Can you have a look please.

Thanks

HugeLunatic
29th Oct 2009, 3:14 PM
I looked at the bed and it is slaved correctly to the cheap bed, showed up fine in game with those colors. It looks like you've done it correctly.

What issue do you think you are having? Are you expecting the bed colors from the colonial bed? The cheap ez bed has just three colors. I would say make sure you have just one in your downloads folder. If you have two with the same GUIDs you get mixed results as to which one loads. (usually the one loaded last).

I've attached the bed since the one you attached still required Pets, I've removed those requirements. Should require only base game.

Elizabella
29th Oct 2009, 4:51 PM
Thanks for doing that. Hmm I don't know how it requires pets since I dont even have that EP! Your file worked perfectly so I have no idea what was wrong...I think my system may have just gotten confused. You're a saint :) :king:

What's the easiest way to find out the vertex count...I think I need that for my upload right?

HugeLunatic
29th Oct 2009, 8:37 PM
Your welcome. The Pets EP requirement tags onto later EPs too since it was added for compatibility.

Inside your package in the GMDC it shows next to the subset name in parenthesis.

Elizabella
1st Nov 2009, 5:34 AM
So when I unchecked all the EPs, at the bottom of the screen there were more checkboxes that said missing or unused, should I have unchecked those also?

Also in a repost from CFF:

Ok this is what it says in SimPE...which one do I use

Models: (Faces=1692, Vertices=1273)
(checked)bedding (Faces=812 Vertices=490)
(checked)bedding (Faces=176, Vertices=109)
(unchecked)beddoublecolonial_opacityplane (Faces=136, Vertices=114)
(checked)bedding (Faces=384, Vertices=196)
(checked)frame (Faces=184, Vertices=364)

*Also post in Repository Tutorial

Mira04
2nd Jan 2010, 10:55 AM
Hi guys,

I'm trying to make a new kitchen. I made several counters and I don't feel like recoloring them all ceperately as they are all made with the same texture. But I don't know why, but the master-slave versions I try to make won't work... they are flashing blue.
Does any of you know how to make counters repository?

Any help is welcome :)

HugeLunatic
2nd Jan 2010, 3:08 PM
Multi-state objects like counters and lights also have to be linked via the Text Lists(STR) as well.

Not a full tutorial, but it shows pics of the Text Lists, this is for a light but the same applies to counters.

http://www.hugelunatic.com/Home/multi-state-object-checklist

Mira04
2nd Jan 2010, 5:49 PM
onna try this! Thanks for your precious help!

Mira04
2nd Jan 2010, 6:43 PM
It worked!! Thanks bunches for your help :)

Phaenoh
17th Dec 2011, 3:34 AM
Ok, I've done plenty of repository previously, but this one is just messing with me. I've gone through this 4 or 5 times and restarted over twice now. For some hair-brained reason when I try to link the slave to the master it makes my slave no longer recolorable. What have I messed up?

Edit: Thanks for fixing it Lee!

leesester
17th Dec 2011, 6:48 PM
Hi Phae - you were missing the CC prefix

##0x1C050000! in front of cres name in tsMaterialsMeshName in the slave should fix it