PDA

View Full Version : How to get EQ zones into 3DSMax


Kaiyodo
08-30-2002, 01:41 AM
Now, I know you've always been able to get EQ zones into 3DSMax using Hackerquest's ZoneConverter by importing as an obj file, but that threw away all the texturing information leaving you with a lot of work ahead if you wanted to make some fancy renders of zones. Yesterday I modified ZoneConverter a little and wrote a big chunk of maxscript which imports zones into max while preserving all of the texture mapping.

Needless to say this is very 3DSMax specific, most of the heavy duty work is done in MaxScript. The process you need to go through to import a zone only takes a couple of minutes once you're used to it, but it takes a while to explain and makes use of a few different programs along the way. I'm only going to post the quick start section of the read me and the binaries you need to be getting along with, the source is available on my website if you want it).


Importing EQ zones into Max
----------------------------

Requirements:

Everquest Data files.
Modified ZoneConverter.
New EQModelViewer.
3DSMAx 4+ with DDS texture support (plugin available from http://developer.nvidia.com/view.asp?IO=ps_texture_compression_plugin) Comes with Max5 as standard.
ZoneImporter.ms MaxScript file.

Quickstart using field of bone example:

1) Unzip EQModelViewerBinary.zip, ZoneImportMaxScript.zip and ModifiedZoneConverterBinary.zip into the same directory.
2) Load up EQModelViewer, choose EQ directory (if it's the first time it's been run) click on 'fieldofbone.s3d', click on 'Load S3D' then 'Save S3D files'
3) A directory called 'FieldofBone_Data' will have been created. Rename all extracted BMP files to DDS
4) Load up Zoneconverter and import fieldofbone.wld from the fieldofbone.s3d_Data directory. Wait until it says the logfile is saved then quit (it may crash on exit, doesn't matter)
5) Load up 3dsmax and set a map path for the 'fieldofbone.s3d_Data' directory
6) Load up the ZoneImport MaxScript and click import, select the 'Zonelog.txt' in the fieldofbone_data directory.
7) Wait a while. Done.

I'll post the three binaries and readme you'll need in a minute. For now, here's what the Arena looks like rendered from Max with a gratuitous sky slapped on by me :)

K.

Kaiyodo
08-30-2002, 01:42 AM
Here's the new version of the model viewer that can save out files from S3Ds.

K.

Kaiyodo
08-30-2002, 01:43 AM
Here's the modified ZoneConverter

K.

Kaiyodo
08-30-2002, 01:44 AM
Here's the MaxScript file

K.

Kaiyodo
08-30-2002, 01:47 AM
.. and finally the full readme so you can see what to do :)

All of these files are also available on my website at www.geocities.com/Kaiyodouk/MaxStuff but it's a geocities site as you can see, so it'll probably fall over if anyone tries to download from it.

The souce for the ZoneConverter and new model viewer are only on the website. You don't need the source for the MaxScript, it's script :)

Hopefully someone can make some nicer renders than I managed, I suck at lighting :)

K.

morpheus014
08-30-2002, 08:03 AM
Cool now all i gotta do is get a bootleged copy of max runnin =P

Mitselplik
08-30-2002, 05:38 PM
I did something quite similar, but my program exports the info to POV-Ray 3.5 Scene File format.

Get the program, source code, instructions, etc. here:
http://pages.sbcglobal.net/mitselplik/VBZoneConverter.html

Bonus in this case is that POV-Ray is Free :-) No need for a boot leg copy

Kaiyodo
08-31-2002, 01:27 AM
That's some nice work. I've got a lot of respect for anyone who can understand the ZoneConverter code :)

K.

Mitselplik
08-31-2002, 06:54 AM
K,
Got a question for ya. I can read C Code and even convert it to VB, but I can't write a C program. I don't have the knowledge and expertise to do what I want done. So I need your help if possible.

What I want to do is do the same thing that EQInside does (basically) in my application. But I don't have the knowledge required to create a COM wrapper for Viktor Voroshylo's DLL.

So I was wondering if you had one of the following: (1) A spec of the S3D file format; or (2) a COM wrapper that mimics the functionality in his DLL, or (3) a way I could get a hold of Mr. VOroshylo to ask him for one of the first two things.

Thanks in advance,
Mitselplik

Kaiyodo
08-31-2002, 07:33 AM
Well I don't know if this will be much use, but in the EQInside SDK header file Victor's address is given as 'rpginside@yahoo.com', that's dated 1999 though.

I've no idea of the S3D file format, I've not even looked at it. The EQInside SDK doesn't provide any sort of clues to the format either unfortunately.

As for a COM wrapper, my COM knowledge is a bit weak (DirectX and a bit of ATL are the only COM-like things I've messed with) so I can't really help you there either.

Sorry I couldn't be of more help :(

K.

septimus
10-07-2002, 03:42 AM
This doesn't seem to be working - the ZoneConverter first required MFC70.dll (which I found on the net) and now I get:

The aplication failed to initialize properly (0xc0000005). Click on OK to terminate the application.

I've got VB6 service pack 5 runtime and .NET installed. I don't however, have any dev tools installed.

Any ideas?

Mitselplik
10-07-2002, 06:34 AM
Septimus,
Likely you just downloaded the source code or EXE by itself. VB created programs require support libraries and such that will be installed if you download and run the full setup program. The last error you got is likely an issue caused by not having one of the support DLL files registered properly or in your windows system directory. The full setup program does all this for you :-)

Mitselplik

septimus
10-07-2002, 09:47 AM
There's no install program for Kaiyodo's modified ZoneConverter. I downloaded the binary, not the source.

Something tells me it's using a dependency of the dev tool or something :/

Kaiyodo
10-08-2002, 04:54 AM
Yeah, I wouldn't use my version of the ZoneConverter if I were you, there's a better way.

You want to be getting hold of Mitselplik's ZoneConverter and output the zone as a POVRay 3.5 Mesh2 format file, then use the PoVImport.ms MaxScript that I've included in my latest Model Viewer to get the zone into Max.

I don't have the link for Mitselpik's converter here at work, but I know where my model viewer's kept :)

http://www.geocities.com/kaiyodouk/

Hope that helps.

K.

Mitselplik
10-08-2002, 05:03 AM
Its in this forum hehe

EQZoneConverter (http://pages.sbcglobal.net/mitselplik/VBZoneConverter.html)

there it is again :-)

Kaiyodo
10-08-2002, 07:01 AM
Ah yes, I see it now! I was in a bit of a rush to join our after-work Battlefield 1942 session as I was typing and didn't have much of a chance to check :)

K.

Q-Dog
10-08-2002, 07:28 PM
Hey Kaiyodo, I run 3dsmax4 and your script wouldn't create a rollout for me, so I edited it to the following so it creates a popup window. This should be helpful for anyone that is having the same problem.

Quick Side note: Your awesome, thanks for creating this.

Original Code:

Utility ZoneImporter "ZoneImporter"
(
-- Import a ZoneConverter generated logfile of an Everquest zone into Max
-- along with it's materials

Button ImportZoneButton "Import"

on ImportZoneButton pressed do
(
ImportEQZone()
)
)


Modified Code:

rollout ZoneImporter "ZoneImporter" width:162 height:70
(
-- Import a ZoneConverter generated logfile of an Everquest zone into Max
-- along with it's materials

button ImportZoneButton "Import" pos:[20,30] width:63 height:21

on ImportZoneButton pressed do
(
ImportEQZone()
)
)
createDialog ZoneImporter width:100 height:100
registerViewWindow ZoneImporter




Here is the file:

Norvak
10-23-2002, 12:04 AM
I used the tools to try to get character models into 3dsmax. I've been wanting to try to animate them in the zonefiles I've managed to export. Problem is that they're all crushed and jacked up. It's like when you define a skeleton in Character studio and attach it to a mesh, then remove the skeleton and the mesh collapses.

Am I missing something here?

Kaiyodo
10-23-2002, 12:25 AM
You're not missing anything, the character models just don't work. In fact anything that's skinned doesn't work, I don't know how to interpret the skinning info in the file so I can't output it correctly :(

K.

Norvak
10-23-2002, 12:58 AM
Thanks anyway.

I'll get a full model into 3dsmax and see if I can use something like Texporter to translate its skinning info into a texture file. Might give some clue. Best to see if we can get some look at the UVs. If not, at least we'll have a useless texture template or a method to add skins to EQ. :)

Norvak
10-23-2002, 05:50 PM
Well crap.

No luck on that. Loaded it up in 3dsmax and the skinning info translated by Textporter was all garbled. Oh well. Worth a shot. Not really a big loss at this time.

There's another matter I want to talk with you about, Kaiyodo.

What language is the converter written in? I'm trying to get the structure of the WDL files so I can see if I can add support for them to the 3D engine I'm working with.

I'm working with The Nebula Device, the engine being used for Project Nomad and was released Open Source. I think It'd be cool to code our own client to go with the server. ;)

Kaiyodo
10-24-2002, 12:32 AM
The zoneconverter that I released was originally written in C++ by someone over at Hackersquest, I modified it to extract the texture coordinates. The better version which is compatible with Luclin and Pop zones was written in VB by Mitselplik, i had nothing to do with that one :)

K.

Norvak
10-24-2002, 05:58 PM
Cool. I'll go over there and get the source so I can get WLD support into the engine I'm working with. I tried using Morfit, which was the engine the WLD format was written for, but low and behold, it didn't work. :P WLD is SUPPOSED to be an ASCII format that the engine translates into a BSP tree, but for some odd reason, the ones with EQ are in some terse binary format.

Methinks VI either made a proprietary format and just decided to call it WLD or used some other format and just changed the extension.

We'll see how it goes.

Thanks for the tipoff.

Kaiyodo
10-25-2002, 12:12 AM
I can pretty much guarentee that VI made up a proprietry format that just happened to be called WLD. I don't think I've ever seen a 3d game that used a known format for it's levels unless they wanted to be easily editable. Most 3d formats store either too much or too little data to be of any use for games.

K.

Bluezone
01-01-2003, 04:07 PM
Just curious, what would it take to get a zone into GTKRadiant? Used for Quake 3 engine games :P .

septimus
01-01-2003, 05:59 PM
An act of god. :)

Radiant and other Quake engine editors (Hammer etc) all use BSP brush based geometry. EQ zones use single continuous mesh geometry (like a big inside-out 3D model made in 3DSMAX).

There's some debate as to whether the zones were created in a brush engine (which I myself am against) but what's for certain is that the finished zone geometry shows no signs of being made like that, so it'd not be possible to turn them back into editable brush geometry.

Bluezone
01-01-2003, 09:18 PM
Thanks, been wondering. :wink: