PDA

View Full Version : WLD Editor Suite


Zaela_S
04-24-2014, 07:05 PM
...for Windows.

Currently comprising two small programs:

* Texture Adder - for adding new texture set data, allowing you to add custom mob model textures under new IDs rather than overwriting old ones.
* Transparentifier - for editing texture visibility flags, allowing you to e.g. tell the client to render arbitrary textures as semi-transparent, turn full transparency masking on/off, etc.

Link (www.shardsofdalaya.com/WLDEditorSuite.7z)

Proof of concept:
http://i.imgur.com/ArCNhLo.png

gfaydark_chr.s3d normally has 3 golem (GOL / race 17) textures, IDs 0 to 2. Here the number of textures has been expanded to 7, IDs 0 to 6, using the Texture Adder. Two of the added textures were made semi-transparent using the Transparentifier.


Instructions for Texture Adder:

1. Pick your desired _chr.s3d file and make a backup copy of it.
2. Extract the internal .wld file using S3DSpy.
3. Run Texture Adder and select the .wld file from File > Load WLD. This will produce a list of model texture sets, like so:
http://i.imgur.com/tgLGJZA.png
4. Select a model texture set from the list.
5. Hit the "Add Texture Set" button. The texture set data entries for your current selection will be copied, and the newly copied data will be renamed under the next available ID. For example, if we selected FEM01 from the above list and copied it, we'd end up with a new entry for FEM with ID 02.
6. Using S3DSpy, note all the textures belonging to the model and ID you copied, e.g. FEMCH0101.bmp, FEMCH0102.bmp, FEMLG0101.bmp, etc, where the format is MDL__ID__.bmp. Create your new textures based on these and give them the new ID, e.g. FEMCH0201.bmp, FEMCH0202.bmp, FEMLG0201.bmp, etc.
7. Insert the your new textures and the edited .wld file into the _chr.s3d file using S3DSpy.
8. Voila!

Note that the texture set data in the .wld file is different from the texture files that go into the .s3d. Other than the visibility/transparency settings (and some unknowns, see below), they basically just tell the client "a texture with this name exists, and you should try to load it for this model and ID".


Instructions for Transparentifier:

1. Pick your desired _chr.s3d file and make a backup copy of it.
2. Extract the internal .wld file using S3DSpy.
3. Run Transparentifier and select the .wld file from File > Load WLD. This will produce a list of texture data, like so:
http://i.imgur.com/j31jhFB.png
The names should line up with the names of .bmp files in the .s3d. Most of the data fields on the right have unknown functions (and are presented just in case anyone might want to try to figure someting out by looking for patterns), but the one we're interested in is the "Visibility Flag". Typical textures have values like 0x80000013 or 0x80000014. The "Visibility Flag binary" field represents the same value, but in binary (obviously). This field can be edited; each of the ones and zeros potentially corresponds to one setting being turned on or off for that texture. Which bits do what has not been thoroughly tested, but the user is free to experiment. On the other hand, if you just want to make something semi-transparent, a button is provided to do just that. Note that the button is not very smart -- it justs pastes 0x80000017 over the current value rather than setting specific bits (I'm too lazy to puzzle out exactly which bits are needed just yet). This should work fine for textures that have values of 0x80000013 or 0x80000014 beforehand, but may cause crashes on others.
4. When you've changed what you want, insert the .wld file back into the .s3d file using S3DSpy.
5. Done!


Note that neither of these programs have been very thoroughly tested, so they may well have bugs, and they obviously aren't super user-friendly as far as the information that is displayed goes. Furthermore, they've only been tested at all for mob model textures from _chr.s3d files; whether they would be able to do anything useful for equipment models or zone geometry is unknown, but you're welcome to try.

If there is any interest in all this, I could maybe make improvements/figure out more .wld data to edit and release later versions.

One last note, if anyone has any cool custom mob model textures or decides to make some using these programs, the folks at the Shards of Dalaya server (www.shardsofdalaya.com) would be happy to incorporate them into their world as brand new alternate textures.

Akkadius
04-24-2014, 09:57 PM
This is cool as shit, nice job

Dunge0nMastr
04-24-2014, 10:04 PM
Very awesome!

Akkadius
04-25-2014, 12:03 AM
Zaela, posted on the Wiki: http://wiki.eqemulator.org/p?WLD_Editor_Suite

Let me know if you want access to make changes to Wiki documentation.

moofta
04-25-2014, 11:35 AM
Looks groovy. Where can you get the current S3DSpy from? Whenever I search for it I either get 404's or Spy Kids 3D :shock:

ChaosSlayerZ
04-25-2014, 12:04 PM
RE: SoD

some of their achievements in this area:
https://shardsofdalaya.com/forum/threads/adventures-in-texture-editing.28215/

also some of Vaion of THF achievements on custom particle effects:
http://www.thehiddenforest.org/viewtopic.php?f=4&t=10557

Akkadius
04-25-2014, 12:53 PM
Someone needs to take ownership of 3D modeling and the Wiki 3D modeling resources.

Zaela_S
04-25-2014, 01:11 PM
Where can you get the current S3DSpy from?

I think the version I have is outdated (1.1)...

If anyone has the newest version I could arrange to have it hosted alongside these.

Akkadius
04-25-2014, 01:36 PM
I think the version I have is outdated (1.1)...

If anyone has the newest version I could arrange to have it hosted alongside these.

The Wiki can host anything as far as files. Already has quite a few programs on there.

Secrets
04-25-2014, 02:34 PM
http://sourceforge.net/projects/eqemulator/files/OpenZone/S3DSpy%201.2/

Tyen05
04-26-2014, 04:45 AM
link (http://www.shardsofdalaya.com/WLDEditorSuite.7z)

Thanks for contributing this, amazing work.

This really is such a great tool to have in the Everquest Developers arsenal. It's 1/3 of having the complete ability to customize Everquest npcs/pcs (textures, animations, models).

Can't thank you enough for providing this to everyone, and taking the time to create it.

Zaela_S
04-26-2014, 10:06 PM
Added a couple more small things to the download link at the top:

* Weapon Copier - for copying (old) weapon models and textures under new IDs of your choosing, to allow alternate skins etc.
* Info - a mostly useless and woefully incomplete WLD data browser. Mainly for my own benefit; adding different data as it becomes relevant/confusing to me.

Important note about the Weapon Copier: right now it doesn't support weapon models with animation (i.e. particles and things with attack animations like whips and classic Cleric epic). Such models are excluded from the list when you load the .wld. Animation data is fairly complicated compared to simple texture stuff, not helped by the fact that, unlike with mob models, item models reuse data a lot, complicating making completely separate copies a bit. I might work on particles, but on the other hand it may not be worth the effort -- .s3d-based item models are not terribly impressive in the first place. Dunno.


Anyway, the instructions for Weapon Copier are pretty much the same as for Texture Adder, the main difference being that you get to input the new ID number you want your copy to have. (It's up to you to make sure you use a free ID.) Also, because the names of textures items use are not necessarily as consistent as for mob models, when you make a copy a .txt file will be made detailing the source texture files and the new names they will be expected under. For example:


it335_info.txt
IT174BLADE.BMP -> IT335BLADE.BMP
IT174METAL.BMP -> IT335METAL.BMP
IT174HANDLE.BMP -> IT335HANDLE.BMP
IT174GEM.BMP -> IT335GEM.BMP


http://i.imgur.com/SVOzGsG.png

Also, fixed a couple potential bugs in Texture Adder.

Zaela_S
05-02-2014, 03:39 AM
S3DSpy kept crashing/hanging on me trying to insert anything at all into certain files (gequip.s3d, omensequip.eqg... inexplicably, since they're all structured identically as archives). Made a quick replacement just for importing and exporting files from .s3d/.eqg: EQGExport (http://www.shardsofdalaya.com/EQGExport.7z). It's a bit more ergonomic than S3DSpy as well if I say so myself. C++ source is included.

Also added another small thing to the WLD Editor Suite (http://www.shardsofdalaya.com/WLD Editor Suite.7z) -- an editor for particle data for .s3d-based weapon particles. Most fields are unknowns, but I managed to find the ones for particle lifetime, delay between emissions, and how many of the same particle can be alive at once. Which is enough to make old weapons pump out absurd amounts of particles. With some trial and error and observation of a certain flag one can also change whether the particles stick around a weapon as it swings (animating stictly in weapon-space) or trailing behind it as it moves (animating in world-space around the point at which they were emitted).

The particle editor has EQGExport integrated into it so there's no need to export and import from the .s3d's as a separate step. If I make any other tools they'll also have this.

http://i.imgur.com/JYhYBOI.png http://i.imgur.com/z1Q8jy9.png

http://i.imgur.com/7WWL3mr.png http://i.imgur.com/53dxWjs.png

http://i.imgur.com/m1RIgA8.png

http://i.imgur.com/X4NdbgL.png

sorvani
05-02-2014, 10:49 AM
This is good stuff.

knowom
05-07-2014, 10:48 PM
Looks like a good tool and I imagine "Transparentifier" could be interesting if it works on zones also for say a semi transparent spectral ghost town sort of texture effect. I really wish there was like a SQL table that could be created to texture swap textures within .s3d files. That would be a ideal way around the copyright distribution dilemma of texture modding EQ s3d files while enjoying the zones we've grown fond of navigating. Open Zone was a good idea had the right intentions, but seems like it's been stagnant for awhile and could have benefited from being able to easily import Blender's 3D modeling file format.

Zaela_S
05-08-2014, 02:19 AM
Yeah, I missed the early days when it seems legal issues were discussed here a lot. Don't know much about all that stuff; curious where exactly the line would be drawn. Can I modify my own files? (Well, not much they can do there.) If so, what's to stop me from making and distributing a program which modifies peoples' files for them in a pre-set way, e.g. inserting new textures into an .s3d and modifying a .wld, but not distributing any of the original data from those files? Probably too blatant a loophole... presumably "modify" does come right after "distribute" on the list of Things You May Not Do.

For mob models, at least, I would be interested to see if they would work split up. I.e., load the file containing base data for a certain model, then load a brand new custom-made file which only contains data for a new texture set for that model. Would depend how the client's loader is structured -- but it already surprised me with how permissive it is: the Texture Adder just shoves new .wld data at the very end of the file rather than following the internal ordering/structure, and it works. Being in separate files is only a step further than that. Maybe.

I'm kind of disappointed that people in the early days were only really interested in custom zones and not, say, item models (to the extent than stuff is only documented as far as it is relevant to zones). Item models seem like they might be pretty open to having brand new data loaded from new files. (Unlike mob models which as far as I can tell are dependent on the client for the translation from 3-letter model code to race id numbers that go in server packets.)

Blah blah blah...

Akkadius
05-08-2014, 02:23 AM
Yeah, I missed the early days when it seems legal issues were discussed here a lot. Don't know much about all that stuff; curious where exactly the line would be drawn. Can I modify my own files? (Well, not much they can do there.) If so, what's to stop me from making and distributing a program which modifies peoples' files for them in a pre-set way, e.g. inserting new textures into an .s3d and modifying a .wld, but not distributing any of the original data from those files? Probably too blatant a loophole... presumably "modify" does come right after "distribute" on the list of Things You May Not Do.

For mob models, at least, I would be interested to see if they would work split up. I.e., load the file containing base data for a certain model, then load a brand new custom-made file which only contains data for a new texture set for that model. Would depend how the client's loader is structured -- but it already surprised me with how permissive it is: the Texture Adder just shoves new .wld data at the very end of the file rather than following the internal ordering/structure, and it works. Being in separate files is only a step further than that. Maybe.

I'm kind of disappointed that people in the early days were only really interested in custom zones and not, say, item models (to the extent than stuff is only documented as far as it is relevant to zones). Item models seem like they might be pretty open to having brand new data loaded from new files. (Unlike mob models which as far as I can tell are dependent on the client for the translation from 3-letter model code to race id numbers that go in server packets.)

Blah blah blah...

I wouldn't let that keep you from toying around with this. It is at the servers discretion to do what they want with graphic files. We can have the tools hosted here and guides around it but obviously we won't be redistributing Sony's intellectual property here.

vithmiris
05-08-2014, 01:05 PM
Thanks for this, can't wait to get home and give this a whirl!

Zaela_S
05-10-2014, 12:15 PM
Starting to work on a .eqg weapon model importer type thing...

http://i.imgur.com/ZZ1IM3L.png

http://i.imgur.com/3Mdlk6d.png

...will probably make a new thread when I have something presentable.

Making item models use new IDs is indeed as trivial for .eqg-style ones as it was for .s3d-style, so that's nice.

knowom
05-12-2014, 05:14 AM
Hmm looks like your using blender that's very promising!

I'd love to see a easy way to import/export files to and from blender to create s3d zones and objects between that and GIMP it's pretty much all the open source tools needed to do all 3D related customization content design stuff.

On the subject issue of private servers here's a interesting tweet comment I had made awhile back on twitter "@Aradune Interesting...to be getting endorsed support from private servers, but honestly its exactly the exposure you want @RichardGarriott"

Here's a tweet I got back in return from @RichardGarriott and for some clarification @Aradune is Brad McQuaid a key designer of EQ.

"@BinaryPimpSmack @Aradune While obviously we must protect our own bottom line & trademarks, private servers allow important self expression."

If so, what's to stop me from making and distributing a program which modifies peoples' files for them in a pre-set way, e.g. inserting new textures into an .s3d and modifying a .wld, but not distributing any of the original data from those files?

If you aren't distributing any original data then that's legal as far as I can interpret at least. Creating a program isn't illegal. As a example using a hack might be illegal depending on what's being done with it, but creating one isn't.


http://www.project1999.com/forums/showthread.php?t=87281
Over at p1999 by Nilbog has a program that somewhat does what you say to fix some transparencies glitches within the early game and had this to say.

Is this legal?
Yes. This includes no copyrighted files. It simply modifies your existing files.

Based on Nilbog's claims and even from @RichardGarriott's response in regard to private servers I'd interpret that as yes it's legal. You aren't distributing anything you don't own and it's a important form of self expression a fundamental freedom of expression protected in the constitution your able to express it fully within the rules of the laws of it.

knowom
05-12-2014, 06:06 AM
I wouldn't let that keep you from toying around with this. It is at the servers discretion to do what they want with graphic files. We can have the tools hosted here and guides around it but obviously we won't be redistributing Sony's intellectual property here. Very well said I think these new tools are a big step forward.

I think with a good method to save a custom patch files easily that other people could easily load into it to perform a set of variables this tool would be pretty near perfect.

Zaela_S you may find some useful info idea's in this thread. That post is actually what inspired me to do a full zone retexturing of Grobb with Skyrim mod textures.

http://www.eqemulator.org/forums/showthread.php?t=34836&highlight=legal


Here's another good link you may find useful it's a PDF file by Windcatcher on the .WLD file something I had recently tracked down and uncovered.
http://sourceforge.net/projects/eqemu/files/EQEMu%20Admin/WLD%20Reference%201.1/wlddoc.pdf/download?use_mirror=iweb

EQZoneViewer is a nice tool worth mentioning for zone texturing.

Here's a tool similar to EQZone Viewer also that I haven't tried, but judging from thread screenshots it looks nice!
http://www.eqemulator.org/forums/showthread.php?t=36087

I'm not sure who Sakrateri is, but he was doing some great Open Zone stuff and Windcatcher seemed impressed with it.
http://www.eqemulator.org/forums/showthread.php?t=23422

Also here's a bunch a bunch of said Open Zone creations of Sakrateri's on a forum I found! I'm not sure if these are in the Open Zone section or not, but they defiantly should be achieved.
http://kinanu.proboards.com/thread/20/openzone-zones-finished

knowom
05-19-2014, 09:49 PM
Yeah, I missed the early days when it seems legal issues were discussed here a lot. Don't know much about all that stuff; curious where exactly the line would be drawn. Can I modify my own files? (Well, not much they can do there.) If so, what's to stop me from making and distributing a program which modifies peoples' files for them in a pre-set way, e.g. inserting new textures into an .s3d and modifying a .wld, but not distributing any of the original data from those files? Probably too blatant a loophole... presumably "modify" does come right after "distribute" on the list of Things You May Not Do.
We just need a program that would merge copyright free .s3d files into other .s3d files by the users on their end. From what I understand there is nothing illegal modifying the files on your own PC much like DJ's and music manipulation to remix songs. It's purely the distribution of copyright materials where the legality issue comes into play. WSUS Offline Update has a lot of great things to model a EQemu s3d file patching program around. Could even have a github feature to download individual user patch mods or even batch ones.

Using my Grobb texture project as a example.
https://docs.google.com/file/d/0B1YEgOhikxllOVFnLXdQQWtqZkE/edit

Simplifying the original text file instructions a bit I should have perhaps saved the custom textures found in the Grobb folder as Custom_Grobb.s3d. Then simply had users copy contents into the default grobb.s3d file. Backing up the original .s3d files someplace safe is still always recommend of course in case you'd like to revert back to defaults. Given the way I did have it saved uploaded though I'd just recommend taking the Grobb folder textures in the zip and adding them to default grobb.s3d file with S3DSpy. A backup copy still recommended.

In a WSUS Offline Patch inspired program you could take something like merge Grobb.s3d user mods to grobb.s3d with merge patch save options button and could have a check box for a batch merge patch save project. The file name for the mod files could really be whatever and user selected from a directory and same for the default S3D files being modded you could just have 1-10 base directory + mod directory with individual merge patch save buttons along with a check boxes if you wanted to do a batch patch file for simplicity.

This program would raise the interest level I feel of texture modding a lot at least for me personally. The distribution hurdle was what really deterred my overall initial enthusiasm I had when I worked on revamping Grobb. I'd have been much more inclined to do more zones otherwise especially with like a patch program that could download from a github repository. I'd touched on the subject before in another thread. I didn't really have a great relatively more simplified solution in mind just a generic one.

This could be viewed as a better alternative to Open Zone is because we could still enjoy our familiar zones and 3D models just in new dynamic ways. While technically still possible the idea of it is largely inaccessible and or simply not worth the effort from a individual standpoint. A way to mod distribute patch and share in a easily and accessible manner I feel it would greatly increase peoples interest levels by collectively making the game more unique and custom rather than mostly on a individual basis.

knowom
05-19-2014, 10:34 PM
If your still looking for a newer S3DSpy version here's S3DSpy 1.3.
http://sourceforge.jp/projects/sfnet_eqemulator/downloads/OpenZone/S3DSpy%201.3/S3DSpy_1.3.zip/

A lot of other neat stuff in the Download Files List portion as well
http://sourceforge.jp/projects/sfnet_eqemulator/releases/