I'm dabbling a lot lately with the Unity3D engine. I'm really interested in creating a very Freelancer-esque space flight sim thats mod friendly. So as things go, I came back (after a long time away) to Lancers to see if someone had devised a tool that would allow me to get Trent, Juni, and King out of the game and into their next big side adventure. Well I didn't see such a thing and I probably never will but...
I remembered over at the Tomb Raider modding forums of a handy little tool called 3DRipperDX. It's a modestly stable program that will capture mesh data within the currently rendered frame of any DirectX 6/8/9 application. So I decided to give it a whirl on Freelancer and I had a fair amount of success.
While we still cannot get character models back into Freelancer we can at the very least take them out and use them in other projects, games, machinima, whatever. So what follows is my process for "ripping" character meshes from the game.
1. Download and install 3D RipperDX, you may additionally want to install the necessary plugins for your version of 3DSMAX so you can more easily port your data. If you're like me and you use Maya for your 3D work, then we will be exporting OBJs as I will demonstrate.
2. Run the application with the following settings:
*Obviously your game directory will differ! I don't recommend using Force Windowed Mode as this will throw a 3D detection error.
*Sorry in advance for these horrendously large screenies, this forum message editor sucks ballocks!
3. Now load a savegame from a point where the character models are standing and capture several frames.
IT IS VERY IMPORTANT THAT YOU CAPTURE THEM WHEN THEY ARE STANDING IN A NEUTRAL POSITION.
If you capture them in the middle of a walk cycle or a hand motion, this will dump into the resulting 3D scene.
4. Exit the game and navigate to the folders that dump the Frames files. Load the largest OBJ file and examine the scene. Cutout unnecessary parts as needed and rescale the mesh. I say rescale, because you'll immediately notice that the captured frame is sometimes at an angle and is likely to result in a skewed file. For the seasoned modeler this is no concern.
You may want to experiment with capturing different scenes to determine what angles and views result in the best and most proportional meshes. The less cleanup work you have to do, the better.
Here's what I got in my cleaned OBJ:
UV information is also retained from frame capture, however as you can also see smoothed normals is not retained.
This is a limitation of the OBJ format:
Have fun my pilots!!!