SMD Tool Tutorial
SMD Tool Tutorial
Tools by Son of Persia
Tools by Son of Persia
Tutorial by Mr.Curious 2018
Tutorial by Mr.Curious 2018
SMD tool video tutorial by Mr.Curious is avialble here
SMD tool video tutorial by Mr.Curious is avialble here https://youtu.be/6x6P0!rl2"
https://youtu.be/6x6P0!rl2"
#$%&' D&SC$%PT%() (' T((*
#$%&' D&SC$%PT%() (' T((* '+)CT%()S
'+)CT%()S
The function of the SMD tool is simple. It allows us to to edit, replace, create or remove models that we The function of the SMD tool is simple. It allows us to to edit, replace, create or remove models that we see in the game. Also, some of these models can be edited to rotate on an ais, li!e a windmill model see in the game. Also, some of these models can be edited to rotate on an ais, li!e a windmill model for eample. "hile some modders may be simply interested in adding a few new models to eisting for eample. "hile some modders may be simply interested in adding a few new models to eisting rooms, there are also those who may be ambitious enough to create entirely new rooms. All of this is rooms, there are also those who may be ambitious enough to create entirely new rooms. All of this is now possible than!s to the good wor! of Son of #ersia when he developed this tool.
now possible than!s to the good wor! of Son of #ersia when he developed this tool.
C$&T%), C+ST(M $((MS
C$&T%), C+ST(M $((MS
Choosin- a roo to o
Choosin- a roo to o
"hen we are interested in creating new custom room it is important to understand beforehand that we "hen we are interested in creating new custom room it is important to understand beforehand that we are dealing with a limited set of rooms to choose from. There $ stages and within these stages there are dealing with a limited set of rooms to choose from. There $ stages and within these stages there are numerous rooms. %ere is a list of the stages in &'()%D the files of which are located in the main are numerous rooms. %ere is a list of the stages in &'()%D the files of which are located in the main *I+( folder
*I+( folder St0
St0 - unused rooms- unused rooms St1 St1 - illage - illage St2 St2 - Castle - Castle St St - Island - Island St
St - Mercenaries /Assigment Ada- Mercenaries /Assigment Ada St 3
St 3 Separate "ays Separate "ays St6
St4
St4 - unused rooms - unused rooms
It is worth noting that some rooms will not load enemy data properly if we have them loading in strange It is worth noting that some rooms will not load enemy data properly if we have them loading in strange order. +ther rooms have no corresponding enemy data file and will not load enemy data at all
order. +ther rooms have no corresponding enemy data file and will not load enemy data at all 0St1,St2,St34.
0St1,St2,St34.
Depending on what !ind of scenarios we are interested in creating we will have to choose which rooms Depending on what !ind of scenarios we are interested in creating we will have to choose which rooms to mod carefully. There are several things to consider before choosing a room
to mod carefully. There are several things to consider before choosing a room
5 - are we simply adding/removing models from eisting rooms without affecting the loading order 6 5 - are we simply adding/removing models from eisting rooms without affecting the loading order 6 7 - what !ind of enemy interactions do we wish to have in these newly modded rooms6
7 - what !ind of enemy interactions do we wish to have in these newly modded rooms6
8 - what !ind of effects, events, weather do we wish to have in any custom rooms we create6 8 - what !ind of effects, events, weather do we wish to have in any custom rooms we create6
(ther thin-s to 5onsier hen 5hoosin- a roo
(ther thin-s to 5onsier hen 5hoosin- a roo
Also it is
Also it is important important to underto understand thstand that there aat there are certre certain functain functions that ions that are 9tiedare 9tied9 to many 9 to many of the eof the eistingisting rooms. "e may wish to consider which !ind of events eist in a room before we choose to use it for our rooms. "e may wish to consider which !ind of events eist in a room before we choose to use it for our new custom room. The reason for this because we may wish to use some of these events for our new new custom room. The reason for this because we may wish to use some of these events for our new room. :or eample, if we wanted to create a custom room with a collapsing ceiling trap we would need room. :or eample, if we wanted to create a custom room with a collapsing ceiling trap we would need to use a room that already had this event present and build our new custom room inside this room. to use a room that already had this event present and build our new custom room inside this room. Another
Another eample eample is if we wis if we wanted liganted lightning to htning to be presbe present in ouent in our new ror new room we wom we would need ould need to mod ato mod a room that already has lightning.
room that already has lightning.
To elaborate on this concept we need to understand that each room has a certain set of events that To elaborate on this concept we need to understand that each room has a certain set of events that are particular to that one room. Sometimes we can replicate these events but most times we are not are particular to that one room. Sometimes we can replicate these events but most times we are not able to because these events are hardcoded into the rooms by scripts or call functions inside the game able to because these events are hardcoded into the rooms by scripts or call functions inside the game ee.
ee. An eam
An eample of a fple of a function tunction that is tiehat is tied to a rod to a room is the om is the Camp roCamp room with thom with the *ella se *ella sisters. Tisters. There is anhere is an A' eve
A' event in thint in this room ths room that triggerat triggers severs several thingsal things 1 3
1 3 the spawning of the *ella sisters once the player enters a certain areathe spawning of the *ella sisters once the player enters a certain area 2 3
2 3 a live cutscene that shows the sisters emerging 0one ;umping down and the other brea!ing througha live cutscene that shows the sisters emerging 0one ;umping down and the other brea!ing through the wall with the chainsaw4.
the wall with the chainsaw4. 3
3 a bloc!ing event that prevents us from entering the hole in the wall where the sister with thea bloc!ing event that prevents us from entering the hole in the wall where the sister with the chainsaw bro!e through.
chainsaw bro!e through.
If we wanted to, we could use and incorporate these pre-eisting events inside our new room. 0:or If we wanted to, we could use and incorporate these pre-eisting events inside our new room. 0:or eample I used the wall brea!ing event in a modded version of this room to recreate an enemy eample I used the wall brea!ing event in a modded version of this room to recreate an enemy brea!ing through a wall4. In this scenario we are able to use the A' trigger to down these enemies brea!ing through a wall4. In this scenario we are able to use the A' trigger to down these enemies and a start a cutscene that is controlled by the CAM file. If we wanted to, we could also ma!e use of and a start a cutscene that is controlled by the CAM file. If we wanted to, we could also ma!e use of the door loc!ing event which re<uires the camp !ey.
the door loc!ing event which re<uires the camp !ey.
"e are not always able to insert these types of events into rooms without editing the game scripts "e are not always able to insert these types of events into rooms without editing the game scripts 0which re<uires !nowledge of coding4. )ntil this type of editing becomes easier 0&a=1r is currently 0which re<uires !nowledge of coding4. )ntil this type of editing becomes easier 0&a=1r is currently wor!ing on some configs we will be able to use with his D>> companion but there are still many wor!ing on some configs we will be able to use with his D>> companion but there are still many limitations4 we need to simply use pre-eisting events for some types of events.
limitations4 we need to simply use pre-eisting events for some types of events.
There are also other things that are 9tied9 to a room such as certain effects. An eample of this is the There are also other things that are 9tied9 to a room such as certain effects. An eample of this is the fountain effect that is present in r71b 0garden ma=e4. The tric!ling water that comes down from the fountain effect that is present in r71b 0garden ma=e4. The tric!ling water that comes down from the fountain is uni<ue to this room. )sually effect configs are located the ':: files but sometimes they are fountain is uni<ue to this room. )sually effect configs are located the ':: files but sometimes they are hardcoded in to the game ee, so in this instance we would not be able to replicate this effect outside hardcoded in to the game ee, so in this instance we would not be able to replicate this effect outside of this room.
+ther effects 0li!e some lightning and some rain effects for eample4 are triggered by entries in the +ther effects 0li!e some lightning and some rain effects for eample4 are triggered by entries in the ':: file but can9t be ported from room to room. Again, these are events that are specific for certain ':: file but can9t be ported from room to room. Again, these are events that are specific for certain rooms so sometimes we need to consider what !ind of weather we want our new room to have when rooms so sometimes we need to consider what !ind of weather we want our new room to have when we are choosing a room to mod.
we are choosing a room to mod.
It all comes down to this this game was never meant to be modded, therefore the programmers did not It all comes down to this this game was never meant to be modded, therefore the programmers did not write the code so that every room was created e<ual. 'ssentially what they did was to have the
write the code so that every room was created e<ual. 'ssentially what they did was to have the producers and artists tell them what they needed on a room-per-room basis ma!ing it so that each producers and artists tell them what they needed on a room-per-room basis ma!ing it so that each room had a uni<ue set of scripts. "ith this being understood we can9t ma!e each room do eactly what room had a uni<ue set of scripts. "ith this being understood we can9t ma!e each room do eactly what we want. "e have to chose the room we want to mod based on the functions and features of the room. we want. "e have to chose the room we want to mod based on the functions and features of the room. In the future with the help of talented programmers li!e &a=1r we may be able to insert new scripts into In the future with the help of talented programmers li!e &a=1r we may be able to insert new scripts into game memory but presently we are fairly limited in porting certain events from room to room.
game memory but presently we are fairly limited in porting certain events from room to room.
7o soe oels are tie to
7o soe oels are tie to eents an/or other +DS files
eents an/or other +DS files
*efore we start removing/adding/replacing models we should !now something about model tetures. If *efore we start removing/adding/replacing models we should !now something about model tetures. If we are to replace eisitng models with custom ones we must understand that there might be
we are to replace eisitng models with custom ones we must understand that there might be pre-eisting relationships to other files that these models might have had, and how they might affect how eisting relationships to other files that these models might have had, and how they might affect how our new models behave/loo!.
our new models behave/loo!.
:or eample, if we are to simply empty out the pac! file for a room and fill it with all custom tetures, :or eample, if we are to simply empty out the pac! file for a room and fill it with all custom tetures, and repac! our SMD with all new models, some of the tetures may come out loo!ing odd despite that and repac! our SMD with all new models, some of the tetures may come out loo!ing odd despite that they are mapped correclty in the 8D application.
they are mapped correclty in the 8D application.
The reason for this is that there often effects in the ':: file that call on tetures that are located in the The reason for this is that there often effects in the ':: file that call on tetures that are located in the room.pac! file, and these effects have their own TetureData file that controls how the teture is room.pac! file, and these effects have their own TetureData file that controls how the teture is
applied. If we have a custom model that uses a custom teture that has the same teture number that applied. If we have a custom model that uses a custom teture that has the same teture number that one of these effects is calling, the results can often be undesirable. To avoid this we have several one of these effects is calling, the results can often be undesirable. To avoid this we have several options
options 1 3
1 3 remove the effect that is calling on the teture 0see ':: file tutorial for this4.remove the effect that is calling on the teture 0see ':: file tutorial for this4. 2 3
2 3 leave effect tetures in place in the room pac! file and place all models before and after them to leave effect tetures in place in the room pac! file and place all models before and after them to avoid conflicts.
avoid conflicts.
There are more eamples of how models can be tied to events and /or )DAS files, particualrly that of There are more eamples of how models can be tied to events and /or )DAS files, particualrly that of the SM? file. These relationships to other files are what ma!e may cool things happen, li!e being able the SM? file. These relationships to other files are what ma!e may cool things happen, li!e being able to use moving models. #lease ma!e sure to read the
to use moving models. #lease ma!e sure to read the 9Soe notes about SM;&ntry;%D alues99Soe notes about SM;&ntry;%D alues9
section below for more information on th;is special realtionship with the SM? file. section below for more information on th;is special realtionship with the SM? file.
'+)CT%()S (' T7& SMD T((*
'+)CT%()S (' T7& SMD T((*
0and associated files40and associated files4*efore we get started using the SMD tool let9s first observe the files we are dealing with *efore we get started using the SMD tool let9s first observe the files we are dealing with
This tool wor!s by unpac!ing the SMD file that is located inside the )DAS archive. This SMD file is not This tool wor!s by unpac!ing the SMD file that is located inside the )DAS archive. This SMD file is not to be confused with the normal type of
to be confused with the normal type of .s .s model file we are accustomed to dealing with in modding.model file we are accustomed to dealing with in modding. This SMD is actually another archive that contains all the *I@ models for the room and one T#> file This SMD is actually another archive that contains all the *I@ models for the room and one T#> file that serves as an inde for all the room materials/tetures.
that serves as an inde for all the room materials/tetures.
There are a few files that are generated when using the SMD tool There are a few files that are generated when using the SMD tool MoelData.txt
placed in the game. placed in the game. .t5s
.t5s file that is generated that shows us if the teture mapping for the T#> has been done properly.file that is generated that shows us if the teture mapping for the T#> has been done properly. .ix
.ix file which serves as an inde of all the *I@ files and the teture number count.file which serves as an inde of all the *I@ files and the teture number count. ..(#<(#< files that are generated for us to edit the models and/or their positions if we wish. files that are generated for us to edit the models and/or their positions if we wish. .MT*
.MT* file that is generated which serves as an inde of tetures/materials used by the .ob; files.file that is generated which serves as an inde of tetures/materials used by the .ob; files.
'%*& &T$CT%()
'%*& &T$CT%()
To unpac! the SMD simply place the SMD file along with the
To unpac! the SMD simply place the SMD file along with the $&+7D;SMD;Tool.exe$&+7D;SMD;Tool.exe andand .bat .bat files.files. Double clic! the
Double clic! the SMD;&xtra5t.batSMD;&xtra5t.bat file and the tool will automatically generate file and the tool will automatically generate - a new folder with all the *I@ models and one T#> file.
- a new folder with all the *I@ models and one T#> file. -- MoelData.txtMoelData.txt file.file.
-- (#< files(#< files for all etracted models that we can edit in 8D program along with a masterfor all etracted models that we can edit in 8D program along with a master oel.ob=oel.ob= filefile which contains all the room models placed in their proper position/scale/roation as seen in the game. which contains all the room models placed in their proper position/scale/roation as seen in the game. 0"e use this for reference only4.
0"e use this for reference only4.
-- MT* filesMT* files that list all of the materials tetures used by their corresponding +*B file.that list all of the materials tetures used by their corresponding +*B file. - an
- an .ix.ix file in the main directoryfile in the main directory
+nce all the files have been etracted we can observe the file naming structure of the models with the +nce all the files have been etracted we can observe the file naming structure of the models with the first model starting at
first model starting at 0000.ob= 0000.ob= thenthen 0001.ob= 0001.ob=,, 0002.ob=0002.ob= and so on. The T#> should always be namedand so on. The T#> should always be named 5 integer higher than
5 integer higher than the last model the last model . So for eample if the last model number is. So for eample if the last model number is 0048.ob= 0048.ob= then thethen the T#> will be numbered
T#> will be numbered 004>.TP*004>.TP*..
@ow that we have unpac!ed the SMD and have an understanding of how the files are numbered we @ow that we have unpac!ed the SMD and have an understanding of how the files are numbered we can do several things
can do several things
- edit eisting ob; model file0s4 save, then repac! the SMD - edit eisting ob; model file0s4 save, then repac! the SMD - remove certain models from the SMD and repac!.
- remove certain models from the SMD and repac!. - add new models and then repac! the SMD
- add new models and then repac! the SMD
"e can actually do all of the above if we wish but for beginners I suggest doing one thing at a time until "e can actually do all of the above if we wish but for beginners I suggest doing one thing at a time until you get the feel of how it wor!s. This process can get '& tric!y because if the T#> file which is <uite you get the feel of how it wor!s. This process can get '& tric!y because if the T#> file which is <uite volatile.
volatile.
?($@%), ?%T7 T7& TP* '%*&
?($@%), ?%T7 T7& TP* '%*&
As noted
As noted above thabove the T#> fe T#> file can bile can be very trie very tric!y to wc!y to wor! with if or! with if we are nwe are not carefuot careful. "e must l. "e must pay strictpay strict attention to detail when wor!ing with our teture numbers, and the .id file. To prepare you for this part attention to detail when wor!ing with our teture numbers, and the .id file. To prepare you for this part of the process I will eplain how the T#> wor!s.
of the process I will eplain how the T#> wor!s.
"hen models are initially etracted a T#> is generated which contains all the tetures which are "hen models are initially etracted a T#> is generated which contains all the tetures which are numbered in ascending se<uential order at the bottom of the T#> file 0you will not need to loo! at the numbered in ascending se<uential order at the bottom of the T#> file 0you will not need to loo! at the T#> file in he if you do things right4.
T#> file in he if you do things right4.
"hen we add new tetures it is very important to first ma!e a bac!up of our eisting T#> and to do so "hen we add new tetures it is very important to first ma!e a bac!up of our eisting T#> and to do so eery tie e a ne oels or ne textures
eery tie e a ne oels or ne textures. The reason for this is that if we do something. The reason for this is that if we do something incorrectly the changes to T#> file can not be undone. This is what ma!es the T#> so important in this incorrectly the changes to T#> file can not be undone. This is what ma!es the T#> so important in this process. "e must be very careful to write to it correctly or all of our tetures w
process. "e must be very careful to write to it correctly or all of our tetures will not load properly. ill not load properly. I willI will epalin more below of two separate methods on how to ta!e good care of our T#> when addding new epalin more below of two separate methods on how to ta!e good care of our T#> when addding new tetures.
tetures.
&D%T%), M(D&*S
&D%T%), M(D&*S
A few imp
A few important tortant things to hings to !now ab!now about editiout editing modelsng models. There a. There are some re some polygopolygon restriction restrictions to thns to the toolse tools 0I9m not sure what this is but you can try for yourself4. In my eperience I have noticed that the tools 0I9m not sure what this is but you can try for yourself4. In my eperience I have noticed that the tools wor! better 0and faster4 with models that are separated and less than 8111 polygons. I dont mean to wor! better 0and faster4 with models that are separated and less than 8111 polygons. I dont mean to say that if for eample we have a chair model that has 8 parts that each part needs to be eported as a say that if for eample we have a chair model that has 8 parts that each part needs to be eported as a saprate model, but in the case of an entire room it is best to separate the parts to relatively smaller saprate model, but in the case of an entire room it is best to separate the parts to relatively smaller parts so that the eported models aren9t huge file si=es that bog down the SMD tool. It is also worth parts so that the eported models aren9t huge file si=es that bog down the SMD tool. It is also worth mentioning that we have more fleibility with lighting when we have models separated into various mentioning that we have more fleibility with lighting when we have models separated into various parts via the SM? file 0more on this later4.
parts via the SM? file 0more on this later4. Also w
Also worth noting orth noting is that this that the tools we tools wor! withor! with triangles and not quadstriangles and not quads so ma!e sure your 8Dso ma!e sure your 8D application is set to triangles.
application is set to triangles.
To edit a model simply import it into 8dsMa or another 8D application 0:or this tutorial I will be To edit a model simply import it into 8dsMa or another 8D application 0:or this tutorial I will be eplaining the wor! flow of 8DSMA? but the principles should be universal4.
eplaining the wor! flow of 8DSMA? but the principles should be universal4.
&itin- Moels 3 ?orAin- ith textures B the MT* file
&itin- Moels 3 ?orAin- ith textures B the MT* file
As mentio
As mentioned earned earlier its vlier its very importery important that want that we get all oe get all our tetuur teture IDs sore IDs sorted out rted out for the Tfor the T#>. If w#>. If we aree are not adding any new tetures to the models that are being eported we really have nothing to worry not adding any new tetures to the models that are being eported we really have nothing to worry about with the T#> but if we are to add any new tetures there are a few things we must do
about with the T#> but if we are to add any new tetures there are a few things we must do 1 3
1 3 the new tetures need to follow the same naming principles of all other pac! files 0numbers from the new tetures need to follow the same naming principles of all other pac! files 0numbers from 1111.dds - EEEE.dds4.
1111.dds - EEEE.dds4. 2 3
2 3 the new teture entries in the MT> file need to be placed in the new teture entries in the MT> file need to be placed in ascending sequential order ascending sequential order . To do so. To do so we must edit the MT> file entries so that all the materials are placed in order by their
we must edit the MT> file entries so that all the materials are placed in order by their texuture nametexuture name order
order li!e so li!e so
newmtl MaterialFF58E newmtl MaterialFF58E illum 7 illum 7 Gd 1.$11111 1.$11111 1.$11111 Gd 1.$11111 1.$11111 1.$11111 Ga 1.711111 1.711111 1.711111 Ga 1.711111 1.711111 1.711111 Gs 1.111111 1.111111 1.111111 Gs 1.111111 1.111111 1.111111 Ge 1.111111 1.111111 1.111111 Ge 1.111111 1.111111 1.111111 @s 1.111111 @s 1.111111 mapFGd mapFGd 002.s002.s newmtl MaterialFF55E newmtl MaterialFF55E illum 7 illum 7 Gd 1.$11111 1.$11111 1.$11111 Gd 1.$11111 1.$11111 1.$11111 Ga 1.711111 1.711111 1.711111 Ga 1.711111 1.711111 1.711111 Gs 1.111111 1.111111 1.111111 Gs 1.111111 1.111111 1.111111 Ge 1.111111 1.111111 1.111111 Ge 1.111111 1.111111 1.111111 @s 1.111111 @s 1.111111 mapFGd mapFGd 002.s002.s mapFD mapFD 0026.s0026.s newmtl MaterialFF515 newmtl MaterialFF515 illum 7 illum 7 Gd 1.$11111 1.$11111 1.$11111 Gd 1.$11111 1.$11111 1.$11111 Ga 1.711111 1.711111 1.711111 Ga 1.711111 1.711111 1.711111 Gs 1.111111 1.111111 1.111111 Gs 1.111111 1.111111 1.111111 Ge 1.111111 1.111111 1.111111 Ge 1.111111 1.111111 1.111111
@s 1.111111 @s 1.111111 mapFGd mapFGd 0024.s0024.s newmtl MaterialFF55 newmtl MaterialFF55 illum 7 illum 7 Gd 1.$11111 1.$11111 1.$11111 Gd 1.$11111 1.$11111 1.$11111 Ga 1.711111 1.711111 1.711111 Ga 1.711111 1.711111 1.711111 Gs 1.111111 1.111111 1.111111 Gs 1.111111 1.111111 1.111111 Ge 1.111111 1.111111 1.111111 Ge 1.111111 1.111111 1.111111 @s 1.111111 @s 1.111111 mapFGd mapFGd 0028.s0028.s
you see above that the first material entry has
you see above that the first material entry has 002.s002.s,, the second entry has
the second entry has 002.s then 0026.s002.s then 0026.s the thrid entry has
the thrid entry has 0024.s 0024.s and the last material entry has
and the last material entry has 0028.s0028.s
This is an eample of material entries being ordred by their associated tetures in
This is an eample of material entries being ordred by their associated tetures in ascendingascending sequential order
sequential order
DD%), )&? M(D&*S
DD%), )&? M(D&*S
If we are adding new models with new tetures we have several 7 ways of dealing with the T#>. "e If we are adding new models with new tetures we have several 7 ways of dealing with the T#>. "e can use 7 different methods
can use 7 different methods
Method 1
Method 1
This method is preferable if we are going to be simply adding or removing models from eisting rooms This method is preferable if we are going to be simply adding or removing models from eisting rooms without ma!ing dramatic changes. If we are ma!ing entirely new rooms I
without ma!ing dramatic changes. If we are ma!ing entirely new rooms I stron-lystron-ly suggest usingsuggest using Method 7 below.
Method 7 below.
Method 5 re<uires that we rename the T#> file each time before repac!ing then SMD. "hat this Method 5 re<uires that we rename the T#> file each time before repac!ing then SMD. "hat this method does is updates the same T#> file each time a new model is added and updates the .id method does is updates the same T#> file each time a new model is added and updates the .id 'irstCustoTexture%nex
'irstCustoTexture%nex value to 5 integer above the last teture used by the last model. Invalue to 5 integer above the last teture used by the last model. In contrast, Method 7 rewrites an entirely new T#> each time the SMD is repac!ed.
contrast, Method 7 rewrites an entirely new T#> each time the SMD is repac!ed. &xaple of Metho 1
&xaple of Metho 1
:or this eample in Method 5 we are simply going to be adding one new model to an SMD that :or this eample in Method 5 we are simply going to be adding one new model to an SMD that originally had 3$ models 0with a T#> that was originally
originally had 3$ models 0with a T#> that was originally 004>.tpl004>.tpl4 +ur new model that we are adding is4 +ur new model that we are adding is named
named 004>.ob=004>.ob= as the last etracted model was 113$.ob;as the last etracted model was 113$.ob; To ma!e this wor!
To ma!e this wor! we need to rename thewe need to rename the 004>.tpl004>.tpl toto 0080.tpl 0080.tpl since our new model is named since our new model is named 004>.ob=
004>.ob=. Any new tetures included in the new. Any new tetures included in the new 004>.MT*004>.MT* file should be in ascending sequentialfile should be in ascending sequential order
order . This ensures that the T#> entries are in correct order. If we are dealing with adding numerous. This ensures that the T#> entries are in correct order. If we are dealing with adding numerous new models and tetures I strongly suggest using
new models and tetures I strongly suggest using Metho2Metho2 0see below4, because renaming the T#>0see below4, because renaming the T#> and editing MT> file each time is a pain and with any errors you could comprise the intergrity of the and editing MT> file each time is a pain and with any errors you could comprise the intergrity of the T#>.
T#>.
If we are to use this method we need to update the
If we are to use this method we need to update the 'irstCustoTexture%nex'irstCustoTexture%nex value in the .id filevalue in the .id file each time a new model is added 0more on this below4. This value should reflect the number of the first each time a new model is added 0more on this below4. This value should reflect the number of the first new teture that is being added.
"e etract an SMD that originally has 3$ models and it shows us in the .id file that there is a value of "e etract an SMD that originally has 3$ models and it shows us in the .id file that there is a value of 'irstCustoTexture%nex 112.
'irstCustoTexture%nex 112. This means that the last model used had it9s last teture atThis means that the last model used had it9s last teture at 0111.s
0111.s and that the SMD tool will write the net teture in the T#> as and that the SMD tool will write the net teture in the T#> as 112112. If we do not wish the. If we do not wish the teture of our new 113E.ob; model to start at 1557.dds 0either because there are other tetures teture of our new 113E.ob; model to start at 1557.dds 0either because there are other tetures
present in the pac! file that are being used, li!e being used for effects or 'TM models4, then we have present in the pac! file that are being used, li!e being used for effects or 'TM models4, then we have the option of telling the tool where to start from using the
the option of telling the tool where to start from using the 'irstCustoTexture%nex'irstCustoTexture%nex value.value.
:or this eample we may wish to set the
:or this eample we may wish to set the 'irstCustoTexture%nex'irstCustoTexture%nex value tovalue to 11 11 becuase thebecuase the tetures from 1557 - 151 are being used by effects. Doing this allows us to s!ip over bloc!s of teture tetures from 1557 - 151 are being used by effects. Doing this allows us to s!ip over bloc!s of teture numbers.
numbers.
So a brief overview of Method 5 is this So a brief overview of Method 5 is this 1 3
1 3 Add new model to our etracted SMD folder named 5 integer higher than the last model. Add new model to our etracted SMD folder named 5 integer higher than the last model. 2 3
2 3 Ma!e sure all the new materials in the .mtl file of the new model are arranged in numeratedMa!e sure all the new materials in the .mtl file of the new model are arranged in numerated se<uential order, meaning that all the materials are ordered in se<uence according to the teture se<uential order, meaning that all the materials are ordered in se<uence according to the teture number, starting from lowest to highest.
number, starting from lowest to highest. 3
3 Add a new entry to the Add a new entry to the MoelData.txtMoelData.txt file for the new model update the ModelDataCount value. file for the new model update the ModelDataCount value. 3
3 *ac!up then rename the eisting T#> to one value higher than the last model. *ac!up then rename the eisting T#> to one value higher than the last model. 3
3 update theupdate the 'irstCustoTexture%nex'irstCustoTexture%nex value in thevalue in the .ix.ix file to the number of the first teture usedfile to the number of the first teture used by the new model.
by the new model. 6 3
6 3 &epac! the SMD, then import new SMD into wor!ing )DAS, repac! )DAS and replace. &epac! the SMD, then import new SMD into wor!ing )DAS, repac! )DAS and replace.
Method 2
Method 2
This method is preferable if we are going to be ma!ing entirely new rooms from scratch or adding lots This method is preferable if we are going to be ma!ing entirely new rooms from scratch or adding lots of new tetures to an eisting room. This method re<uires a different wor! flow and creates a more of new tetures to an eisting room. This method re<uires a different wor! flow and creates a more stable process for adding new models. "hat this method does essentially is to create the first model stable process for adding new models. "hat this method does essentially is to create the first model with
with ** T7& $((M T&T+$&S** T7& $((M T&T+$&S included, so that all the models that follow can be easily eported included, so that all the models that follow can be easily eported wihtout having to update the .id or T#> files before repac!ing. This method ma!es it a bree=e to wihtout having to update the .id or T#> files before repac!ing. This method ma!es it a bree=e to repac! our SMD without worry of damaging the T#> file.
repac! our SMD without worry of damaging the T#> file. Steps for usin- Metho 2
Steps for usin- Metho 2 Import the
Import the 0000.ob=0000.ob= file 0provided with this distribution in thefile 0provided with this distribution in the DM file with T'?T)&'S folder DM file with T'?T)&'S folder 4 into 8Ds4 into 8Ds Ma. 0>ater on we will have to move our original 1111.ob; file to another number as this DM file will be Ma. 0>ater on we will have to move our original 1111.ob; file to another number as this DM file will be eported as 1111 so that it will load first4. This DM model 1111.ob; consists of 72 s<uare planes, 5 eported as 1111 so that it will load first4. This DM model 1111.ob; consists of 72 s<uare planes, 5 for each teture in the pac! file 0even ones used by the 'TM, '::, and ITM4. *elow is a picture of how for each teture in the pac! file 0even ones used by the 'TM, '::, and ITM4. *elow is a picture of how the tetures were assigned to this 1111.ob; DM model.
"hat this does is creates a stable method of replacing, rearranging, and adding new models without "hat this does is creates a stable method of replacing, rearranging, and adding new models without worrying about the constant need for the T#> to be being updated becuase the first model contains worrying about the constant need for the T#> to be being updated becuase the first model contains **
** the tetures we are going to need for the following models, and the tool does not create new T#> the tetures we are going to need for the following models, and the tool does not create new T#> entries for the models that follow after 1111.ob; as the .mtl for this model contains all the tetures entries for the models that follow after 1111.ob; as the .mtl for this model contains all the tetures entries used by all models. %aving 5 model at the start that contains
entries used by all models. %aving 5 model at the start that contains ALL ALL the used tetures creates athe used tetures creates a T#> that is
T#> that is soli.soli.
+S%), T7& DME '%*&
+S%), T7& DME '%*&
The DM file that has been provided contains 72 plane models, each of which that is assigned a The DM file that has been provided contains 72 plane models, each of which that is assigned a teture starting at 1111 up to 17. If you need more than 72 tetures for your SMD model then I teture starting at 1111 up to 17. If you need more than 72 tetures for your SMD model then I suggest you follow the instrcutinons below on how to ma!e your own DM file. If you do not need more suggest you follow the instrcutinons below on how to ma!e your own DM file. If you do not need more than 72, then all you need to do is the following
than 72, then all you need to do is the following
5 - Import DM file into 8dsMa. If 8DsMa as!s for the location of the tetures on import 0or says that 5 - Import DM file into 8dsMa. If 8DsMa as!s for the location of the tetures on import 0or says that there are mssing materials4, point it to the
there are mssing materials4, point it to the DME file ith T&T+$&SDME file ith T&T+$&S directory located in thedirectory located in the DefaultDefault DsMax
9Customi=e--HConfigure )ser #aths--H'ternal :iles
HConfigure )ser #aths--H'ternal :iles Tab and set the directory of theTab and set the directory of the DME file ith T&T+$&SDME file ith T&T+$&S directory.
directory.
+nce the models are imported they will all be assigned a teture. All we need to do at this point is to +nce the models are imported they will all be assigned a teture. All we need to do at this point is to loo! at how many tetures our room has inthe .pac! file and eport the same amount of planes from loo! at how many tetures our room has inthe .pac! file and eport the same amount of planes from the DM model.
the DM model. &xaple:&xaple:
+ur room pac! file has 5(3 tetures 0starting at 1111-15(24. This means that we only need to include +ur room pac! file has 5(3 tetures 0starting at 1111-15(24. This means that we only need to include planes
planes 00030160003016 when we eport the model as when we eport the model as 0000.ob= 0000.ob=. This tells the SMD tool that there are 5(3. This tells the SMD tool that there are 5(3 tetures being used. +nce we eport this model any model that follows can be assigned any of the tetures being used. +nce we eport this model any model that follows can be assigned any of the tetures without us having to worry about the order of materials in the MT> files that are eported for tetures without us having to worry about the order of materials in the MT> files that are eported for each model.
each model.
:or this process, each time we add new models repac! the room SMD file we will delete the T#> file, :or this process, each time we add new models repac! the room SMD file we will delete the T#> file, ma!ing sure that the
ma!ing sure that the .ix .ix file is always set tofile is always set to 'irstCustoTexture%nex 0'irstCustoTexture%nex 0 0more on the .id file0more on the .id file below in
below in $epa5Ain- the SMD file$epa5Ain- the SMD file4.4. If we arent adding any new models but simply editing models thatIf we arent adding any new models but simply editing models that already pac!ed into the SMD there is no need to delete the T#>4.
already pac!ed into the SMD there is no need to delete the T#>4.
DD%), )&? T&T+$&S
DD%), )&? T&T+$&S
If we want to add new tetures at any point we can simply include more planes to the DM model If we want to add new tetures at any point we can simply include more planes to the DM model 0000.ob=
0000.ob= and eport it with the new tetures applied. If we need more than 172 planes for more thanand eport it with the new tetures applied. If we need more than 172 planes for more than 72 tetures 0this would rare4, we woudl have to clone the
72 tetures 0this would rare4, we woudl have to clone the LAST PLANE firstLAST PLANE first 0eample... we would0eample... we would clone plane 17 and it would be a new copy named 1724, then copy 172 to get 173 and so clone plane 17 and it would be a new copy named 1724, then copy 172 to get 173 and so
on.This would ensure that each plane is named properly and that the materials associated with it are in on.This would ensure that each plane is named properly and that the materials associated with it are in the correct order for the MT> file. "e would repeat this process as many times as we need until we get the correct order for the MT> file. "e would repeat this process as many times as we need until we get the amount of planes needed to match our .pac! file.
the amount of planes needed to match our .pac! file.
&emember if we arent using more than 72 tetures for models,then we do not need to add more &emember if we arent using more than 72 tetures for models,then we do not need to add more planes. "e simply assign new tetures to planes that already eist in the 1111.ob; model taht was planes. "e simply assign new tetures to planes that already eist in the 1111.ob; model taht was imported.
imported.
M@%), E(+$ (?) DME '%*&
M@%), E(+$ (?) DME '%*&
0s!ip down to
0s!ip down to $epa5Ain- the SMD file$epa5Ain- the SMD fileif you are using the DM file provided4if you are using the DM file provided4
If for some reason we need more than 72 models and updating the DM file provided isnt wor!ing we If for some reason we need more than 72 models and updating the DM file provided isnt wor!ing we can create our own DM model. "hile doing this we need to ma!e sure that the order of the tetures is can create our own DM model. "hile doing this we need to ma!e sure that the order of the tetures is in correct order. )sing the steps below will ensure that the teture order is in correct order
in correct order. )sing the steps below will ensure that the teture order is in correct order 1 3
1 3 create a layer in 8dsMa and name it 1111 for your first model. create a layer in 8dsMa and name it 1111 for your first model. 2 3
2 3 In this layer, create a plane 0use only ( vertices to reduce polycount by using In this layer, create a plane 0use only ( vertices to reduce polycount by using *en-th Se-s*en-th Se-s andand ?ith Se-s
3
3 copy/paste this plane 0ma!e sure it9s acopy/paste this plane 0ma!e sure it9s a copy copy not not instanceinstance4. 8dsma should automatically wish to4. 8dsma should automatically wish to name this new plane
name this new plane 9plane00199plane0019 if not, manually ma!e it so, and the net time it should do itif not, manually ma!e it so, and the net time it should do it automaticly.
automaticly.
3
3 do step 7 again, copying/pastingdo step 7 again, copying/pasting plane002plane002 etc. Do this over and over until you have as manyetc. Do this over and over until you have as many
planes as you need for all your tetures. 0ou can copy/paste more than 7 at a time but ma!e sure you planes as you need for all your tetures. 0ou can copy/paste more than 7 at a time but ma!e sure you always copy from the last bunch and not the first as the order of the tetuers will get screwed up.
always copy from the last bunch and not the first as the order of the tetuers will get screwed up.
3
3 Drag and drop all the tetures one by one from the etracted folder of your pac! file in windows Drag and drop all the tetures one by one from the etracted folder of your pac! file in windows eplorer to each plane in the viewport 0yes this is tedious.. that9s why I made a DM for you4J This will eplorer to each plane in the viewport 0yes this is tedious.. that9s why I made a DM for you4J This will automatically assign the tetures the plane and create a material for it. &emember to drag and drop automatically assign the tetures the plane and create a material for it. &emember to drag and drop 1111.dds to plane111 and 1115.dds to plane115 and so on.
6 3
6 3 +nce all the tetures have been dropped to the planes in ascending se<uential order, eport the file+nce all the tetures have been dropped to the planes in ascending se<uential order, eport the file as
as 0000.ob=0000.ob= to the wor!ing direcotry where we first etracted the SMD file 0ma!e sure you bac! up the to the wor!ing direcotry where we first etracted the SMD file 0ma!e sure you bac! up the original 1111.ob; file in case you want to use it later4. @ow observe the new
original 1111.ob; file in case you want to use it later4. @ow observe the new 0000.tl0000.tl file and ma!efile and ma!e sure all of the teture entries are in
sure all of the teture entries are in ascending sequential orderascending sequential order as outlined above in theas outlined above in the &itin- &itin-Moels 3 ?orAin- ith textures B the MT* file
Moels 3 ?orAin- ith textures B the MT* file section of this tutorial.section of this tutorial.
If the teture number order in the MT> isn9t in ascending se<uential order automaticaly you proabably If the teture number order in the MT> isn9t in ascending se<uential order automaticaly you proabably made one of the following mista!es
made one of the following mista!es - copy/pasted the planes wrong, - copy/pasted the planes wrong,
- the planes weren9t named in proper se<uential order - the planes weren9t named in proper se<uential order - you dragged a teture file onto the wrong plane. - you dragged a teture file onto the wrong plane.
In any case you can go bac! and start over by simply re-dragging-dropping all the tetures again, or In any case you can go bac! and start over by simply re-dragging-dropping all the tetures again, or you can do as described in
you can do as described in Metho 1Metho 1and rearrange the entries maunally in the MT> so that theand rearrange the entries maunally in the MT> so that the tetures appear in ascending se<uential order. +nce the materials are arranged by teture number in tetures appear in ascending se<uential order. +nce the materials are arranged by teture number in ascending se<uential order you are safe to repac! your model and now any models using these
ascending se<uential order you are safe to repac! your model and now any models using these tetures will not have to have their MT> files edited in any way.
tetures will not have to have their MT> files edited in any way.
$epa5Ain- the SMD file
$epa5Ain- the SMD file
*efore we go ahead and repac! the file we need to edit another 7 files *efore we go ahead and repac! the file we need to edit another 7 files The
The MoelData.txtMoelData.txt file and thefile and the .ix .ix file. first lets have a loo! at thefile. first lets have a loo! at the MoelData.txtMoelData.txt file 0this may seemfile 0this may seem li!e a long read but this is a very important part of the process4 K4
li!e a long read but this is a very important part of the process4 K4
?orAin- ith the MoelData.txt file
?orAin- ith the MoelData.txt file
As mentio
As mentioned aboned above theve the MoelData.txtMoelData.txt file is responsible for the placement and scale of the models in file is responsible for the placement and scale of the models in the game. There are also other parameters that we can edit to change the behaviour of the model with the game. There are also other parameters that we can edit to change the behaviour of the model with arrangements that coincide with other files in the
arrangements that coincide with other files in the +DS ar5hie+DS ar5hie, in particular the, in particular the SMSMfile. :irst let9sfile. :irst let9s loo! at at an eample of the ModelData.tt file output
loo! at at an eample of the ModelData.tt file output MoelDataCount 210
F Moel Data &ntry 0 F Moel Data &ntry 0 F Moel )uber F Moel )uber
Translation; 31168.2002 Goel positionH
Translation; 31168.2002 Goel positionH
Translation;E 0>4.1084>
Translation;E 0>4.1084>
Translation;I 0.000000
Translation;I 0.000000
$otation; 0.000000 Goel rotationH
$otation; 0.000000 Goel rotationH
$otation;E 30.000000
$otation;E 30.000000
$otation;I 22.4286
$otation;I 22.4286
S5ale; 11.>4482> Goel s5alin-H
S5ale; 11.>4482> Goel s5alin-H
S5ale;E >.64
S5ale;E >.64
S5ale;I 10.000000
S5ale;I 10.000000
#%);)uber 0x Goel nuber in 7& alueH
#%);)uber 0x Goel nuber in 7& alueH
(ffsetJ8K 0x'' (ffsetJ8K 0x''
SM;&ntry;%D 0xD Gthis is the 5orresponin- SM %D in the SM fileH
SM;&ntry;%D 0xD Gthis is the 5orresponin- SM %D in the SM fileH
(ffsetJ0..K 0x0 (ffsetJ0..K 0x0 (ffsetJ..4K 0x0 (ffsetJ..4K 0x0 (ffsetJ8..1K 0x0 (ffsetJ8..1K 0x0 (ffsetJ2..K 0x0 (ffsetJ2..K 0x0 (ffsetJ6..>K 0x0 (ffsetJ6..>K 0x0 (ffsetJ60..6K 0x0 (ffsetJ60..6K 0x0 (ffsetJ6..64K 0x0 (ffsetJ6..64K 0x0
(ffsetJ68..41K 0x8 Goel typeH
(ffsetJ68..41K 0x8 Goel typeH
F Moel Data &ntry 1 F Moel Data &ntry 1 F Moel )uber 6 F Moel )uber 6 Translation; 0.000000 Translation; 0.000000 Translation;E 30.000000 Translation;E 30.000000 Translation;I 0.000000 Translation;I 0.000000 $otation; 0.000000 $otation; 0.000000 $otation;E 30.000000 $otation;E 30.000000 $otation;I 0.000000 $otation;I 0.000000 S5ale; 10.000000 S5ale; 10.000000 S5ale;E 10.000000 S5ale;E 10.000000 S5ale;I 10.000000 S5ale;I 10.000000 #%);)uber 0x6 #%);)uber 0x6 (ffsetJ8K 0x'' (ffsetJ8K 0x'' SM;&ntry;%D 0x& SM;&ntry;%D 0x& (ffsetJ0..K 0x0 (ffsetJ0..K 0x0 (ffsetJ..4K 0x0 (ffsetJ..4K 0x0 (ffsetJ8..1K 0x0 (ffsetJ8..1K 0x0 (ffsetJ2..K 0x0 (ffsetJ2..K 0x0 (ffsetJ6..>K 0x0 (ffsetJ6..>K 0x0 (ffsetJ60..6K 0x0 (ffsetJ60..6K 0x0 (ffsetJ6..64K 0x0 (ffsetJ6..64K 0x0 (ffsetJ68..41K 0x> (ffsetJ68..41K 0x> Above w
Above we see the e see the mainmain MoelDataCountMoelDataCount and then 7 entries that follow. In the eample above theand then 7 entries that follow. In the eample above the MoelDataCount 210
MoelDataCount 210 indicates that there are 751 entries 0I only showed you the first 7 for this indicates that there are 751 entries 0I only showed you the first 7 for this eample4. The first entry is 1, the second is 5, the third is 7 and so on. Simpy put the
is an inde of how many entries there are in the file. is an inde of how many entries there are in the file. "ith the
"ith the MoelDataCountMoelDataCount we can often remove 0not always.. see we can often remove 0not always.. see %MP($T)T%MP($T)T below4 models from below4 models from the game wihtout actually removing the *I@ model files from the SMD. "e can do this by simply
the game wihtout actually removing the *I@ model files from the SMD. "e can do this by simply redcuing the value in the
redcuing the value in the MoelDataCountMoelDataCount . Imagine that the. Imagine that the MoelData.txtMoelData.txt is the 9cue file9 for the *I@is the 9cue file9 for the *I@ files in the SMD. *I@ files can be present in our SMD file but without the 9cue9 to appear in the game files in the SMD. *I@ files can be present in our SMD file but without the 9cue9 to appear in the game from the
from the MoelData.txtMoelData.txt our model will not be loaded in the game. Imagine the *I@ files in your SMDour model will not be loaded in the game. Imagine the *I@ files in your SMD file as your >ibrary of music, and the
file as your >ibrary of music, and the MoelData.txtMoelData.txt is your playlist.is your playlist.
@ormally we would thin! that there would be 5 entry for each model but there are often times that we @ormally we would thin! that there would be 5 entry for each model but there are often times that we see the same *I@ model being used repeatedly 0li!e your favorite song repeated ( times in a row in a see the same *I@ model being used repeatedly 0li!e your favorite song repeated ( times in a row in a playlist ?D4. This would eplain why there are often many more
playlist ?D4. This would eplain why there are often many more MoelDataCountMoelDataCount entries than there entries than there are *I@ models in the etracted SMD folder. At the top of the
are *I@ models in the etracted SMD folder. At the top of the MoelData.txtMoelData.txt config we have theconfig we have the MoelDataCount
MoelDataCount value which shows us the number of entries in the config 0value which shows us the number of entries in the config 0 )(T T7& )+M#&$ (')(T T7& )+M#&$ (' M(D&*S
M(D&*S in the etracted SMD folder4. Allow me to elaboratein the etracted SMD folder4. Allow me to elaborate "ith the
"ith the MoelData.txt fileMoelData.txt file we can repeat the same model more than once by ma!ing another entry we can repeat the same model more than once by ma!ing another entry and using the same model number. "e can then place the model in a different location using the and using the same model number. "e can then place the model in a different location using the Translation;
Translation; offsets...offsets...
The reason for this feature was so that if we have numerous instances of the same model we conserve The reason for this feature was so that if we have numerous instances of the same model we conserve file/dis! space by using the
file/dis! space by using the MoelData.txtMoelData.txt config to place duplicate models rather than ma!ing config to place duplicate models rather than ma!ing duplicate *I@ files. ou will see this often in cases where there are many repeating models such as duplicate *I@ files. ou will see this often in cases where there are many repeating models such as handrail posts, fence posts and trees, bushes etc. @ow that computers are much faster and have much handrail posts, fence posts and trees, bushes etc. @ow that computers are much faster and have much more memory storage this feature is not as imperative to use as it once was.
more memory storage this feature is not as imperative to use as it once was. @ow lets loo! at some of the offsets we see in the
@ow lets loo! at some of the offsets we see in the MoelData.txtMoelData.txt config config
MoelData.txt DT L*+&S
MoelData.txt DT L*+&S
Translation;
Translation;
data
data
If the all the
If the all the Translation; Translation; coordinates of our model are set tocoordinates of our model are set to 0.0000000.000000 the model9s location will bethe model9s location will be determined by the model coordinates as they appear in 8dsMa. This is the easiest way to place determined by the model coordinates as they appear in 8dsMa. This is the easiest way to place
models 0and the most commonly used method4, but there are other instances when we need to use the models 0and the most commonly used method4, but there are other instances when we need to use the coordinate entries in the
coordinate entries in the Moelata.txtMoelata.txt file to position a model instead of the 8dsMa position.file to position a model instead of the 8dsMa position. An eam
An eample of this ple of this is when is when we havwe have a moving e a moving model 0lmodel 0li!e a rotai!e a rotating fan ting fan for eampfor eample4. In thle4. In this case wis case wee would place the fan model in 8ds ma at 1,1,1 and the use the
would place the fan model in 8ds ma at 1,1,1 and the use the Translation;Translation; coordinates offest tocoordinates offest to position the fan model where we desire. The reason for this is because the rotation ais of moving position the fan model where we desire. The reason for this is because the rotation ais of moving models are always centred at 1,1,1,. Another reason to use the
models are always centred at 1,1,1,. Another reason to use the Translation;Translation; coordinates to postion acoordinates to postion a model as mentioned above is when we want to have a repeating model without duplicating the *I@ file model as mentioned above is when we want to have a repeating model without duplicating the *I@ file over and over in the SMD.
over and over in the SMD.
$otation;
$otation;
data
data
The same principles from the previous offset apply to this. I have never rotated a model using this The same principles from the previous offset apply to this. I have never rotated a model using this offest as I always simply rotate the ob;ect in 8DSMa.
offest as I always simply rotate the ob;ect in 8DSMa.
S5ale;
S5ale;
data
data
The &'( game developers devised several ways to scale models in the game which gives us a bit of The &'( game developers devised several ways to scale models in the game which gives us a bit of fleibility. The first way is the
fleibility. The first way is the absoluteabsolute scale of the physical model that we can manipulate in 8dsMa. scale of the physical model that we can manipulate in 8dsMa. The second is by the
The second is by the S5ale; S5ale; factor in the factor in the MoelData.txtMoelData.txt file. :or reasons un!nown to me wefile. :or reasons un!nown to me we
sometimes see models scaled differently in the ModelData.tt file 051 for eample4. :or the most part sometimes see models scaled differently in the ModelData.tt file 051 for eample4. :or the most part
though models will usually be scaled 5 in the ModelData.tt file. "hen wor!ing with multiple models at though models will usually be scaled 5 in the ModelData.tt file. "hen wor!ing with multiple models at once it is easiest to simply set the scale of all models to 5 in the ModelData.tt file and ad;ust their once it is easiest to simply set the scale of all models to 5 in the ModelData.tt file and ad;ust their si=es accordingly in 8dsMa.
si=es accordingly in 8dsMa.
It should be noted that some rooms use different scales in &'()%D. Most rooms use 5 , but ta!e note It should be noted that some rooms use different scales in &'()%D. Most rooms use 5 , but ta!e note of all the
of all the S5ale; S5ale; entries before editing yor models as sometimes all the models 0or most4 models in aentries before editing yor models as sometimes all the models 0or most4 models in a room can be scaled 51, or even 511. This is worth paying attention to in the case where we are room can be scaled 51, or even 511. This is worth paying attention to in the case where we are ta!ing models from one room and placing them in another. Dont be surpised when your model comes ta!ing models from one room and placing them in another. Dont be surpised when your model comes out loo!ing LIA@T, or that it appears to not be there at all becuase it is so small. #aying attention to out loo!ing LIA@T, or that it appears to not be there at all becuase it is so small. #aying attention to scale can often save you lots of headacheJ
scale can often save you lots of headacheJ
#%);)uber
#%);)uber
This is simply the ob; file number translated into %'? values. This is simply the ob; file number translated into %'? values.
SM;&ntry
SM;&ntry
This offest is sometimes not very important while other times it is the most important part of the This offest is sometimes not very important while other times it is the most important part of the MoelData.txt
MoelData.txt file. "hat is SM? you as!6 "ell if you have ever paid attention to all the files that are infile. "hat is SM? you as!6 "ell if you have ever paid attention to all the files that are in your )DAS archive you will note there is one file with the etension .
your )DAS archive you will note there is one file with the etension . SMSM. This file is repsonible for. This file is repsonible for several things
several things
- governing how lights affect models in the game
- governing how lights affect models in the game 0how a wall is not lit from a light on the other side of0how a wall is not lit from a light on the other side of
the wall4
the wall4
- governing scorlling tetures on models
- governing scorlling tetures on models 0li!e when the clouds appear to move acorss the s!y40li!e when the clouds appear to move acorss the s!y4
- governing the movement of moving models
- governing the movement of moving models 0how fast a model rotates, li!e a rotating windmill40how fast a model rotates, li!e a rotating windmill4
So why is this part of
So why is this part of MoelData.txtMoelData.txt file6 "ell, as stated above we might want our model to move afile6 "ell, as stated above we might want our model to move a bit, or we might want the teture that is applied to it to scroll slowly 0or maybe really fast4J "e might bit, or we might want the teture that is applied to it to scroll slowly 0or maybe really fast4J "e might also want to ad;ust the lighting on this one particular model in a certain way, perhaps by ad;uting which also want to ad;ust the lighting on this one particular model in a certain way, perhaps by ad;uting which colors are allowed to be lit. The SM? file is very handy for ad;usting lighting, but it needs to !now which colors are allowed to be lit. The SM? file is very handy for ad;usting lighting, but it needs to !now which models are being used, and this is where the
models are being used, and this is where the MoelData.txtMoelData.txt file comes in. Thefile comes in. The MoelData.txtMoelData.txt file tellsfile tells the SM? file which models are assigned to which SM? entries.
the SM? file which models are assigned to which SM? entries. So if we loo! at our eample above we see that the first
So if we loo! at our eample above we see that the first Moel Data &ntry 0Moel Data &ntry 0 uses uses SM;&ntry;%DSM;&ntry;%D
0xD.
0xD. This means that when we edit theThis means that when we edit the %D 0xD%D 0xD in thein the SM.txtSM.txt config Gusin- the SM toolHconfig Gusin- the SM toolH that the that the values there will affect the model in
values there will affect the model in MoelData.txtMoelData.txt entry 1. @ow you see that these tools wor! together entry 1. @ow you see that these tools wor! together and often have vlaues that point to each each other.
and often have vlaues that point to each each other.
%MP($T)T
%MP($T)T
Soe notes about SM;&ntry;%D alues
Soe notes about SM;&ntry;%D alues
Most often there is one SM? entry in the
Most often there is one SM? entry in the SM fileSM file for each model entry in thefor each model entry in the SMD file SMD file but this is not but this is not always the case. Sometimes models share SM? entries while other times they simply use the default always the case. Sometimes models share SM? entries while other times they simply use the default value of
value of SM;&ntry;%D 0x'&.SM;&ntry;%D 0x'&. )sing this deafult value is a safe way to assign a value when we aren9t)sing this deafult value is a safe way to assign a value when we aren9t sure what to do, or have no intention of using the SM? tools in con;unction with the SMD tool.
sure what to do, or have no intention of using the SM? tools in con;unction with the SMD tool.
In any case if we are adding new models we should be aware of which SM? entry they are assigned In any case if we are adding new models we should be aware of which SM? entry they are assigned to becuase it can drastically affect how the model appears/behaves in the game. :or eample, if we to becuase it can drastically affect how the model appears/behaves in the game. :or eample, if we reaplaced the s!y model in a room with a new wall model and didnt change the SM? entry data, the reaplaced the s!y model in a room with a new wall model and didnt change the SM? entry data, the teture on the new wall model might be scolling because the SM? entry for the s!y was configured to teture on the new wall model might be scolling because the SM? entry for the s!y was configured to have a scrolling teture.