Adventures In Texture Editing

Thanks Grinkles. I wasn't sure where the hands has gone from the original mesh so I just made my own. You're right they're solid blue like that because of that reason. I can't very well put a fisted hand texture on an open hand.

I have messed with some textures, the face texture my druid has was never updated so I started working on that but left it to play with the iksar model. That post by Nysus and Xevin is what got me started on this whole journey. I'd actually given up until I came across your post here.

Heya all, I would be most interested in making robes look like robes on non-robe wearing races, even if they look like diapers, as they did on the troll. Theoretically, how could you go about doing this? I understand that it has to be referenced, but it is a possible edit? Would it be simple?

I think Grinkles already did this but swapping out the "Naked" skin texture with a robe texture. The problem with that is then every troll would be wearing a diaper robe and not just an enchanter in troll form, as an example. So to answer your question, yes I think it's doable but I don't think it's really the desired goal.

Here is Grinkle's original post on the matter.


Thanks for the positive feedback!

Here's something I know a lot of people have always wanted to see -- a robe on a non-robe race! It's really just a trick and not the real thing. Robes are stored in a series of files with names like clkch0001, which stands for cloak (clk), chest (ch), first texture piece (0001). (This use of the word "cloak" in lieu of robe leads me to believe the files were done very early on in the development of the game, before actual cloaks -- back slot items which do not show up -- were devised. Another similar oddity is the use of the abbreviation ho for Halfling in files like homch0001 -- Halfling / Male / Chest Set / First Texture Piece in Chest Set -- which presumably stands for Hobbit!)

Anyway, robes themselves are stored as separate textures and are not part of a race's texture set. They are actually mapped on top of the robe-enabled races through a process called referencing, whereby a bitmap image (of a robe, in this case) is assigned a place in a 3D space on a pixel-by-pixel basis. At least that's the apparent gist of it! Non-robe races, such as Dwarves, Barbarians, and Trolls, do not have this referencing and therefore a robe shows up as nothing more than a bare chest, or maybe a tinted bare chest if the robe has tinting applied.

For this experiment, I took the robe texture pieces and applied them to the male Troll's base texture, which means it is impossible to make the legs look like actual robe legs (because no armor actually goes across the space between the legs except referenced robes, which Trolls obviously lack). There's also an issue with the bottom portion of the robe, which looks rather like a diaper, whereby the "front" of the robe is actually displaced onto the sides. I could fix this pretty easily, I think, but unless someone were able to go in and actually reference robes for the non-robe races, they'll never be truly usable. :(

TrollRobe1_zps7ff80aeb.jpg


TrollRobe2_zpse16a2776.jpg
 
Last edited:
Thanks Zukan. I guess my question is if robe referencing can be done for these races, without having to modify eqgame.exe. As it is currently, a green robe will cause the player's chest to turn green in troll form. Is it possible to make these races have robes, or would it require modification of more than just s3d files?
 
ryandward I don't believe so. :(

I uploaded some zbrush on that iksar though. Perhaps it will calm your disappointment.

 
I guess my question is if robe referencing can be done for these races, without having to modify eqgame.exe. As it is currently, a green robe will cause the player's chest to turn green in troll form. Is it possible to make these races have robes, or would it require modification of more than just s3d files?

A middle ground might be possible (and not too difficult, if the client accepts it): not having a complete, body-covering robe model for non-robe races, but at least having a unique chest texture corresponding to each robe type. Would allow those races to see something spiffy rather than tinted naked chest, at least.

The client may not play nice with this, just because loading the player races is extra-special in a lot of ways. But if it does work, might also open up the possibility of adding completely new textures for player races without replacing old ones. There are a few unused texture id numbers (5 to 9, for example). On the other hand, the client does have extra-special logic for the velious texture id numbers (17 to 23) which might be coded as simply "anything 17 up is restricted"... but I can remember making a one-byte edit to one of the clients a couple years ago to make custom "velious" textures above 23 work, by extending the loop that looks for the LoadArmor## lines in eqclient.ini.

And as long as I'm mentioning things off the top of my head, animated textures are another neat thing that can be done. There aren't any mob models that use animated textures as far as I'm aware, but the client will load an animated texture for them if it finds one. It's pretty oldschool stuff (just swaps texture A for texture B after x milliseconds, then on to C and down the variable-length list before looping back to A -- not very efficient since all these textures have to be kept in memory), but could do neat things with that for both npcs and player textures, like having maggots crawling around on a zombie or something.

All sorts of neat things... too bad there isn't that much interest in this kind of stuff in the emu community. I'm getting bored of EQ data formats (and customization thereof) myself.

I don't know how to get the magic pink to work. :(

I'm not convinced that magic pink is really a thing. They use a lot of colors for "masked" transparency; pink is just a convenient one, not something that the client actively looks for. There's a flag in the wld data that controls the transparency "mode". If that is flagged for masking, then it'll look for the first color in the palette and use that as the "transparent" color, if the texture is BMP; if it's DDS (or png, jpeg) I believe it just excludes anything with alpha < 0.5 or something like that. 'Course, you'd need a tool to edit these flags properly...
 
I don't know how to get the magic pink to work. :(

Zaela's right in that lots of different colors are used for transparencies. Magic pink is found in a number of textures from vanilla through Velious, though it is used inconsistently. It is more common to find some other arbitrary color for transparency, as seen in this Pegasus wing (where the color R240 G240 B240, which surrounds the wing itself, is flagged for transparency) and these animated Kunark branches that everybody hates (with R57 G56 B49 as the transparency color):

peghn0001_zpsfxr3xmxl.png


newbranch_rj_zpsbn0ujmmh.png


On the other hand, magic pink (R255 G0 B255) is used for things like the texture for coin models (which are no longer used since coins aren't droppable now) and the little Coldain dude on the shiny crystal shield from Velious:

iplat_zpsh8ulepyl.png


coldaindecal_zpskspepqoz.png


In short, if a texture isn't flagged for transparency to begin with, magic pink (or any other color you want to use) won't accomplish anything. The closest method I know of to play with transparencies is Zaela's Transparentifier mentioned earlier in this thread, but that simply allows you to flag a 3D model as semi-transparent, such as the ice/crystal golems from Velious; it won't apply selective transparency with a texture like the above examples. The Transparentifier also doesn't have an option to make something completely transparent, which sounds like the effect you're going for.

EDIT:

This is what Zaela's Transparentifier can achieve if you're looking for a see-through Troll:

Transparent%20Troll_zpsgr2pmoh0.jpg
 
Last edited:
I liked your post because of the super cheese smile on the dudes face behind the "WOOOO it's Mardi Gras" female troll. He knows what's up.
 

Just so I'm understanding. You're saying that there is no way to create my own alpha map for something that normally doesn't have any transparencies? Are things like the slits in the helms and the feathering on wings hard coded and the magic pink simply helps locate whats suppose to be transparent?
 
Good news everyone!

I've discovered that using the "chequip.s3d" file yields better results with extracting the character models. I found this video on exporting and preping for Unity for the EQ Browser game.


Noticing they're drawing from another place than I was I searched for it. Turns out the P99 client I was using doesn't even have that file. So I tried the Project 2002 client I had and tada! It works.

I was able to pull out a troll with the mesh and UV's fully intact.
axeZv1Q.png



Bonus:

I replaced the face on the hobbit with a head scult I'd done earlier.

Oz7ywZG.png
 
Last edited:
Just so I'm understanding. You're saying that there is no way to create my own alpha map for something that normally doesn't have any transparencies? Are things like the slits in the helms and the feathering on wings hard coded and the magic pink simply helps locate whats suppose to be transparent?

Basically.

The WLD format that classic models use is from a different time. Alpha transparency was the most computationally expensive kind of transparency available, they couldn't expect their players to have accelerated graphics of any kind, and they were using BMP textures with no alpha channel anyway. So they avoided it.

What they did do is give their WLD-based materials a few different blending modes to choose from. These can be edited in the .wld data, but the options are pretty limited:

* Solid - texture is rendered as-is, using the RGB channels only.

* 'Alpha' Test (what I call "masked") - the cheapest kind of transparency. Pixels are either rendered using their RGB channels, or not rendered at all. Slits in helmets and such use this. Slightly more modern stuff would use the alpha channel for this (exclude pixels where alpha < x, cheaper than actual alpha blending), but since BMPs had no alpha channel they used a 'transparency color' instead: any pixel with that color would not be rendered. In my experience, this is always the first color in the BMP's "palette" rather than any specific color.

* Multiply Color - cheap-o blending where a texture's RGB channels are multiplied with the RGB channels of everything behind it. Used for things like semi-transparent water surfaces.

* Particle - much like multiply color, except that the texture is more transparent as it approaches black, more opaque as it approaches white. Common on particles with (fully transparent) black backgrounds, but also found on ghost mobs (whites are intense, everything else is pretty transparent). Tends to have a very faded quality in the absence of very bright colors.

* Invisible - not rendered at all (zone walls, etc.).


I believe Grinkles' example is of the Particle blending mode.


Later, EQG-based models use the alpha channel the way you would expect, iirc. They are a lot more modern and conventional in a lot of ways.
 
Maybe I can answer some questions in exchange for a question of mine to be answered: :)
I also came across this lovably low-res shield front which is in the database, though I'm fairly certain SoD has never once assigned it to an item:

shkiteleather_zps9ce23a80.jpg


Anyone else remember this shield? I seem to recall it being on a very small shield with an unusual shape to it. I think that's meant to be a griffon on it, but you'd never know given the graininess. I don't have a clue what item model ID this is attached to, but I say it ought to be brought back in all its ugly glory! :D

You are correct! Marrs Promise ID#1675. Part of the Shaman epic on EQLive.
It is not that much smaller than a normal Kite shield, BUT It does have a pretty unique shield shape (its more angled than the standard Kite shield)
Picture of it worn:
EQEQ999443c_zpsoipgyqk9.jpg


Remember those unused Velious helms I posted about a long time ago? I made an interesting discovery today in the Velious files that reminded me of that.

I was looking over the Thurgadin textures earlier and came across the Shadow Dwarf, a.k.a. the Coldain. I saw the usual faces that I was used to seeing in Thurgadin and Crystal Caverns. However, I also came across several faces that I could swear I'd never seen before, and they were ordered differently from the run-of-the-mill faces. I found I was able to access them in-game by 1) opening the face menu, 2) shapeshifting to a Dwarf in Thurgadin, and 3) pressing the right arrow button in the face menu. This is bizarre to me, because no other NPC model I've come across works with the face menu.

Let's get to the pictures. Here's the standard blue-bearded male Dwarf that we're used to seeing in Thurgadin:

MaleColdainHead1_zpsa56b6941.jpg


Nothing special there, right? Well, this is what happens when I click the right button in the face menu in this model:

MaleColdainHead2_zps73598c40.jpg


Who knew there was a ginger Shadow Dwarf?! And that's not all:
/snip for post length
/snip
So what's the scoop on these Coldain heads? Were these faces ever in the game on Live? Were the textures dropped into the game files and then forgotten about? Are the SoD staff aware they exist and are at our disposal?

ALL of these faces were definitely used all over Velious on EQLive (and Al'Kabor). I really enjoyed the variety of Faces in early EQlive (up to PoP or so)
EQ838383e_zpshdzdxfmp.jpg

Now my question: My bard: Is it possible to "flip the lute" so it looks better? (old lute displays correctly, but the newer lute never has displayed nicely)
EQ987541b_zpsf92kkuon.jpg
EQ986532a_zpsybuug1b7.jpg
because clearly this side of the lute looks better!
EQ878878d_zpsyktz8qjp.jpg

If any of you have burning "where'd that texture come from? was it ever in game?" questions, please let me know :) I looked back about 5 pages for any questions I could answer.
 
Last edited:
Thanks for the info, @Fanglore! I remember that shield now. I'm pretty sure the griffon icon is also seen somewhere else in the pre-Kunark game (perhaps in less pixelated form), though I can't remember where. I also had no idea that the Coldain faces were used in EQ. Their absence must've been a simple oversight on the part of the SoD devs, seeing as the face value almost never comes into play for designing NPCs.

As for the lute, your request is problematic in a couple ways:
  1. I'm unable to verify this, but I'm pretty sure the lute is oriented correctly for strumming with Luclin models, which would mean that anybody who uses Luclin models would then see Bards strumming the back of the instrument even though Classic model users would see it the "right" way around for the first time.
  2. Truly flipping the lute model around is beyond my capabilities, as I'm only experienced with manipulating textures; however, I imagine it would be child's play for someone like @Zaela to swivel the lute model around the Z axis.
  3. Merely flipping the textures around (back to front, front to back) might result in a strange-looking instrument, with the pegbox and neck looking "backwards". Unfortunately, I also can't confirm this because I don't currently have a means of viewing the new lute model.
Having said that, I have attempted to flip the two textures in question (it11502bk.dds and lutetop301.dds from gequip4.s3d). I have a feeling it won't turn out right because the ribs (i.e. the sides) of the instrument probably use the "back" texture rather than part of the "top" texture; if this is the case, it is beyond texture editing and the 3D model itself is what needs manipulating. Anyway, give this a go and let me know what the result is:
  1. Create a backup of gequip4.s3d just in case.
  2. Download this version of the file: Modified Lute Test
  3. Insert the new gequip4.s3d file into your directory.
  4. Start the game (or close it completely and then start it up if it's already open) and cross your fingers...
Oh, and one last question regarding obscure textures, seeing as you offered your expertise. I noticed while digging through the classic lute textures that there are apparently two separate "lute body" variants, titled lutebody.bmp and lutebody2.bmp. It seems the first one is what's seen in the pic you provided, but I can't put my finger on where the second one might come into play (if at all). Does lutebody2.bmp ring any bells or is it another "orphaned" texture that never saw the light of day?

Classic%20Lute%20Textures_zpsluvupawx.jpg
 
@Grinkles, Do you think I give a fig about the durty Luclin models? :p This would be for my client side pleasure, really.
I was indeed hoping for either a texture swap or a model 180 flip.
Pics as follows: Looks nice from the front, Body looks a bit odd, but its passable to me. The proper neck really sells it for me, personally.
EQ898989f_zps4jh6em6p.jpg

The side is as you described, though. So, the back and side texture is not separate texture references, I take it?
EQ878787g_zps682on4n8.jpg

Aka /plead @Zaela ! Thank you so much for your efforts, Grinkles!
Unfortunately my research yielded nothing to answer your question, Grinkles. It probably did not help that I did not play a bard before Luclin. In Luclin they pretty much unilaterally changed most lutes to the new Luclin model one. The only 3 lutes left that I know of that use the original lute model are: Orcish Lute of Singing, Lisera Lute, and Melodious Truncheon... and the last 2 don't even count as lutes for stringed song purposes! They all use the first lute body texture, and my research yielded nothing for the 2nd body texture. I would say 99% that it is probably an orphan texture like the Kaladim and Ak'Anon king textures. (interesting comment- the first lute texture you posted has the same sound hole as the bard animated icon when open inventory, if you know what I mean)
 
Also- my preliminary research shows there were 3 shield models (cracked darkwood shield, qeynos shield, and the above mentioned shield shapes) before Kunark, which added 2 more (sarnak battle shield, ornate runed shield shapes) Am I forgetting any? Sorry if this is not the right thread to post in for model stuff.
 
Back
Top Bottom