I learned how to do this (.3DS model with .DDS textures into X3) for the first time yesterday. I agree with you that it can be a bit daunting trying to figure out what goes where when. Although there are several possible variations on the theme, here is what I did in a nutshell as I recall - using the Argon Nova as a basis for “proof of concept”.
1. Use Doubleshadow’s X3 ModManager (ver 0.0.5) and extract all the game files from 01.cat – 06.cat (or whatever the highest number is) into a working (sandbox) directory. You wouldn’t have to extract them all, but what the heck.
2. Now use Doubleshadow’s X2BC command line program to convert the file objects\ships\argon_M3.bob to argon_M3.bod. I extracted all my .cat files to e:\xtbc\data, so my command line is:
e:\x2bc\x2bc -d "E:\x2bc\data\objects\ships\argon\argon_M3.bob”.
3. Make sure that the file objects\ships\argon_M3_scene is also in .bod format. As I recall, this file was already converted when I extracted the .cat files, but you may need to execute X2BC on that file as well (if it isn’t already.bod).
4. Install the Doubleshadow’s DBOX2 plugin for 3DS.
5. Run 3DS and use the MAXscript DBOX2 plugin to import argon_M3.bod. This will import the Nova spaceship into 3DS.
6. Change/create the ship.
7. Use the DBOX2 plugin to export your ship to a file named argon_M3_my.bod. This is now a custom ship body file.
8. Within 3DS, use DBOX2 plugin again to import the “scene” file argon_M3_scene.bod. This presents you with an unmodified Nova along with guns, engines etc.
9. Click on the ship and rename it: Bships\argon\argon_M3_my_1b. This will reference your modified ship. Save the scene as: ships\argon\argon_M3_scene_my.bod.
10. Using Doubleshadow’s TXT Editor, open the file types\Tships and copy and paste the Argon Nova.
11. In the ID section replace NEW_OBJECT_1 (or whatever) to something like SS_SH_000. Change the description number to 5900.
12. Still in TXT Editor, click on the Text Res button and open the file t\440001.pck.
13. Scroll down to the Boardcomp.objects section and right-click in the right window pane and select “Add text”. Enter 5900 in the ID, and enter a name for your ship. I called my custom Nova “Phoenix One – FIGHTER – nova” (I go by the name Phoenix. It has no reference to the Teladi Phoenix ship). Add text again with ID number 5901. This will be the description of your ship. I entered “Classified”. Save and exit the Text Resource Editor.
14. Back in TXT Editor, in the Model tab for your ship (SS_SH_000) change Ship scene: ships\argon\argon_M3_scene_my. Save and exit.
15. Using a text editor (notepad), open types\Components.txt (from the files you extracted in step 1). Locate the 2 lines that have something like:
ships\argon\argon_M3;1;
NULL;0.000000;0.268692;-0.515625;0.000000;0.000000;0.000000;
16.Copy and paste those 2 lines so they are duplicated. Change one of the lines that says ships\argon\argon_M3 to ships\argon\argon_M3_my. This will correctly set the “cockpit” viewing position for your ship. Also, at the top of this section will be something like: SCTYPE_COCKPIT; 134;. Increase the number (134) by 1 so that the count reflects the added entry.
17.Using Modmanager, create a new .cat file (I called mine flagship.cat) in the Mods subdirectory off the game root. When you start the game, you will be able to select flagship.mod.
18. Add the following files from your “sandbox” to your flagship.cat file in Modmanager:
types\Tships.pck
types\Components.pck
t\44001.pck
textures\novamat.jpg (the texture I used in 3DS)
objects\ships\argon\argon_M3_my.bpd
objects\ships\argon\argon_M3_scene_my.bpd
Run your game and either script in a Phoenix One – FIGHTER – nova, or add one into the game with the Universe editor. I add my ships to one of the existing shipyards so I can buy them from there.
You will now have a custom ship in the game!!
I’m sorry that this may not be the most elegant way to do things, but at least it will give you an idea of one of the ways to do it. Keep in mind my naming and numbering are somewhat arbitrary.
There is a lot more to all this, but that is how I've started out.
Here is the result of using this procedure to apply a new paintjob to the Nova:
[ external image ]