View Single Post
  #3  
Old 03-24-2003, 04:17 PM
Magick
Sarnak
 
Join Date: Feb 2003
Posts: 73
Default

IMPORTING MODELS INTO 3DMAX

1. Start EQ Model Viewer

2. The left column, when properly configured, will display all of the *.S3D files in your /EverQuest/ directory. Select "gequip3.s3d" and click the "LOAD S3D" button on the bottom of that column.

3. You should see "gequip3.wld" show up in the upper right column under "Model Files". Make sure it is highlighted/selected and hit the "LOAD MODEL" button.

4. All of the models in gequip3.wld are now displayed in the lower right column. Make sure only show selection is checked and scroll down to *IT10025_DMSPRITEDEF" - highlight this model.

5. In the viewport window, you should now see Seru's Sword of Truth (that badass sword they gave him just for looks).

6. Above the object selection window are a set of controls (wire mode, only show selection, etc.). Click the EXPORT button. And Export Options window will appear.

7. Select MAXSCRIPT FORMAT, Export Skin, and leave scale at 1.00000

8. Press SAVE... and name your file.

9. You show now have a filename.ms and filename.dat in your saved directory.

== OPTIONAL - You currently have the raw MODEL but no textures, continue on to get those also ==

10. Using Notepad or 3dMax (I suggest Notepad), open the filename.ms and you will see something like the following:
Code:
-- START OF MODEL
fp = openFile "sword7-noskin.dat" mode:"r"
if fp != undefined then
(
 -- START OF OBJECT
 undo off
 (
   try
   (
   try
   (
    Mat = MultiMaterial()
    Mat.numsubs = 4
    Mat[1] = StandardMaterial name:"Slot1"
    Mat[1].DiffuseMap = BitmapTexture filename:"1025BLDBLUE.DDS"
    assignNewName Mat[1].DiffuseMap
    ShowTextureMap Mat[1] Mat[1].DiffuseMap true
    Mat[2] = StandardMaterial name:"Slot2"
    Mat[2].DiffuseMap = BitmapTexture filename:"IT10025HLT.DDS"
    assignNewName Mat[2].DiffuseMap
    ShowTextureMap Mat[2] Mat[2].DiffuseMap true
    Mat[3] = StandardMaterial name:"Slot3"
    Mat[3].DiffuseMap = BitmapTexture filename:"IT10025HAFT.DDS"
    assignNewName Mat[3].DiffuseMap
    ShowTextureMap Mat[3] Mat[3].DiffuseMap true
    Mat[4] = StandardMaterial name:"Slot4"
    Mat[4].DiffuseMap = BitmapTexture filename:"IT10025POM.DDS"
    assignNewName Mat[4].DiffuseMap
    ShowTextureMap Mat[4] Mat[4].DiffuseMap true
   )
   catch
   (
    format "An Exception occurred during Material setup\n"
   )

   try
   (

    format "Creating object IT10025_DMSPRITEDEF\n"

    Obj = mesh NumVerts:478 NumFaces:454
    Obj.Name = "IT10025_DMSPRITEDEF"
    Obj.Mat = Mat
    SetNumTverts Obj 478 false
    BuildTvFaces Obj false

    local tempx,tempy,tempz
    for i=1 to 478 do
    (
     tempx = ReadValue fp	-- Vertex positions
     tempy = ReadValue fp
     tempz = ReadValue fp
     SetVert Obj i tempx tempy tempz
     tempx = ReadValue fp	-- UVs
     tempy = ReadValue fp
     SetTVert Obj i [tempx, tempy, 1.0]
    )

    local index0,index1,index2
    for i=1 to 454 do
    (
     index0 = ReadValue fp
     index1 = ReadValue fp

     index2 = ReadValue fp
     SetFace Obj i index0 index1 index2
     SetTVFace Obj i [index0, index1, index2]
    )

    local tmap,faceindex
    for i=1 to 454 do
    (
     faceindex = ReadValue fp
     tmap = ReadValue fp
     SetFaceMatId Obj faceindex tmap
    )

    Update Obj
   )
   catch
   (
    format "An Exception occurred during Geometry setup\n"
   )
  ) catch (format "An unknown exception occurred during import\n")
 ) -- undo off
 -- END OF OBJECT

 -- END OF MODEL
 close fp
)
else
(
 format "Error loading data file.\n"
)
11. Search for Mat[#].DiffuseMap = BitmapTexture filename:"*.DDS"

12. Each .DDS file is basically a bitmap of the material used to texture the object. To texture it in max (if you want it exactly as it is in game), you will need to extract those *.DDS files into the same directory as the .MS and .DAT files.

13. To do this, I use EQInside. Load up the SAME *.S3D file you generated the maxscript from. When the S3D is load, you will see its contents in the right column. Highlight the needed materials (in this case 1025BLDBLUE.DDS, IT10025HLT.DDS, IT10025HAFT.DDS and IT10025POM.DDS) seperately, and under the ARCHIVE menu is "SAVE DATA". Save that .DDS to the same directory as your *.MS and .DAT

14. Continue this for any remaining textures/materials.

15. Load 3D Max (I use R5)

16. In the menu (File, Edit, Tools, Group, etc) is "MAXscript". Select MAXscript >> Run Script... and load your filename.ms into 3dMax.

17. Left click-dragging your mouse inside the modeling window will now create the model (in my experience they're usually very small - so you may need to zoom). You'll know it's created when the model number appears as the object name.

18. Edit, Render, do whatever... you are done.

You can now save ANY EQ model to .max, .lwo or any other format that your version of Max will allow you to export.


** This has only worked on individual object models in Everquest. I have not seen or been able to export/render a zone into Max **
Reply With Quote