Jump to content

Cool fx


Lindor

Recommended Posts

Hmm since nobody replied I think I'll try to find it out myself. I guess it's spawned via worldobjects.txt. Unfortunately objects there only have exact coordinates and no sectors. Is there a way to "translate" sectors into coordinates?

EDIT:

nevermind, I didn't look into the actual worldobjects.t but at an old testing file of me where I copied certain worldobjects and tried to backtrace what they are. turns out I edited the sector coordinates out. :facepalm: Guess it's too late and I can't think anymore:lol:

Edited by Lindor
  • Haha 1
Link to comment

Ok using the worldobject.txt spreadsheet, I can tell that it's not spawned via worldobject.txt. In the sector there are only "Kisten" or "Fässer" spawned. And two magic hiding places.

Edited by Lindor
Link to comment

Just look through the FX in the scripts/particle folder.  It's likely defined in there.  You can extrapolate what to put in the spell FX lines from the file names.

That stuff looks pretty similar to Dislodged Spirit.  FX_INQ_SEELENRAUB or some variant of it.

Link to comment

Thanks. Thats a good advice but FX_INQ_SEELENRAUB only has its two main FX, there is no other variant and I was hoping to get an Area of Effect CA (was using raging nimbus spellclass and -controltype). It's also not FX_INQ_SEELENRAEUBER which has some more variants, already tested that one. Guess I simply need to test all the FX.

Link to comment
39 minutes ago, Flix said:

It really depends on the effect though.  Once you're sure simply swapping around FX within spells.txt won't yield the results you want, the next best place to go is to the scripts within the "particle" folder.  Here you can view various parameters such as particle emission rate, and what textures are called on for specific FX.  Sometimes the particle color is set directly within the file by using hex codes.

Alas, some textures are linked to FX via hard-coding.  In that case the colors of the textures themselves must be edited.  A further complication is that some textures are generic and therefore shared by multiple FX.  Changing yellow to purple for the benefit of one spell may result in several yellow things unexpectedly turning purple.  This is why, for example, General Terus' stun nova is now purple instead of yellow. Fortunately that's the only odd change from all the recoloring.  It took a lot of juggling to make it work out ok.

Look within pak\graphics01.zip and you will see the bulk of the various image files used for FX.

Thx for the explanation, I'm already understanding more:lol:

The current FX I want to alter is FX_SKELETON_ROOT. I think you used it quite extensively in D2 Fallen. Above FX would have been more fitting, but I couldn't find them. I want to make the FX blue. Tried Copy-pasting the dislodged spirit particle script, it had no effect, so I'm guessing it's one of the hardcoded-linked. In the particle script it says "material particles/multi/multi_fx_liane.tga". There exists a "multi_fx_liane.dds" in graphics01/hq/particles/multi but it's neither a .tga file nor does it contain any coloring, only a surface and some mipmaps. Is the coloring probably in another folder, my master?

Edited by Lindor
Link to comment

Don't get thrown off by scripts referring to TGA when the actual file is DDS.  Consider them interchangeable.  JPG is really JPG though, on those rare occasions it appears.

If a particle script refers to a neutral (greyscale) texture file, then the color is being added in one of two ways: hex codes within the particle script (you will see this as values other than 000000 in the "affector ColorInterpolator" section), or a hard-coded link to one of the generic colors in the hq folder, such as:

hq\fx\symbols\gs_coloring5.jpg

or

hq\fx\gradients\gradient4.dds

If there's no hex colors in the script, then you may have to experiment to find out which texture is providing the color.

Link to comment

Ahh.

But what's wierd is that there are hex colors, even in the unaltered script, and they're even green, but changing them doesn't do anything.

EDIT: these are the four hex colors that aren't 00000000:

Spoiler

    "cia_color1           0000ff00"
    "cia_time1            0.097656"
    "cia_alpha1           255"
    "cia_alphatime1       0.136719"
    "cia_color2           00dbffd7"
    "cia_time2            0.1875"
    "cia_alpha2           255"
    "cia_alphatime2       0.898438"
    "cia_color3           00deffc4"
    "cia_time3            0.652344"
    "cia_alpha3           0"
    "cia_alphatime3       1"
    "cia_color4           0080ff00"
    "cia_time4            0.886719"
    "cia_alpha4           0"
    "cia_alphatime4       2"

 

Edited by Lindor
Link to comment

Little bit of an update: I still can't find the image, but I remembered something that I posted somewhere in the S2EE thread: The whole aspect could have a green color scheme for as many reasons like it has for a blue one. So instead of trying to make this one spell blue, I'm going to make the other underworld spells green and see if I loke that. Maybe I'll make this into something like a development thread and post some preview pictures.

Link to comment

@Flix 

I want to say that without your help, I would have probably given up, so thank you very much. At the risk of being annoying, can I ask for some more advices? Because I ran into some issues:

First of all, I cannot open the mipmaps of most of the .dds files in GIMP with .dds plugin and I have no idea why that is. It always calls the unexpected end of file error. Therefore I need to load the files without the mipmaps which means edited files become looking super bulky and pixel-ish ingame. Can you tell me which program you use?

Secondly, how did you change the color of the inexorable subjugation beam? For the spell there is only the casting particles and there is no spell particles file for that spell. I thought maybe it shares a file with lifeleech and when I tried to alter the only lifeleech fx I could find, namely particles/fx_lifeleech_c.particle, nothing happened, neither when I changed the script nor recolored particles/multi/multi_fx_starline.tga. The last guess was as always that it's a file inside the gradients or symbols folder, but when I recolored all these files again nothing happened to the beam. It's basically the same thing like with the two skeletonroot fx files.

Thirdly, some FX seem to consist of multiple scripts and some FX seem to have partially scripted, partially hardcoded particles. The dislodged spirit spell fx has some particles that can be altered by the script, but the soul itself is always unaffected. The same thing goes for the souls succed in by soul reaver. Maybe thats why there are hex colores in the skeleton root particle script? And maybe that's also why I couldn't find the fx for the pictures in the first post of this topic? Because some things are hardcoded?

First I thought the skeletonroot issue was maybe a niche case issue because it's an unfinished Vanilla CA, but now with the same stuff happening to inexorable subjugation and dislodged spirit, I'm not sure anymore. Did you ever run in such things? Since you managed to mod inexorable subjugation, I know that at least there the error must be in my thought process, which gives me hope for these spells FX, even the skeleton root, to be moddable again.

Link to comment
11 hours ago, Lindor said:

First of all, I cannot open the mipmaps of most of the .dds files in GIMP with .dds plugin and I have no idea why that is

I never load or edit the mipmaps.  I generate new ones when exporting the final product.

11 hours ago, Lindor said:

Secondly, how did you change the color of the inexorable subjugation beam?

I only recolored "FX_INQ_VERSKLAVUNG_C" from red to blue.

"FX_INQ_VERSKLAVUNG" was replaced with "FX_GEN_MANALEACH" in the spell entry.

This is because the original FX was already identical to life leech, and I wanted the energy leech coloration (blue).  So why recolor textures when I can swap out lines in the script?  Remember, that's always step one.

This just occurred to me, you're sure you're working on "FX_SKELETON_ROOT" and not "FX_SKELETON_ROOT_C" right?  The first is the green tendrils.  The second is the greenish spray around the caster.

  • Thanks! 1
Link to comment
1 hour ago, Flix said:

I"FX_INQ_VERSKLAVUNG" was replaced with "FX_GEN_MANALEACH" in the spell entry.

Oh that is so genius:bow:! I never thought of that. That explains so much. The thing is, if you scroll through both the particle scripts and the pak folder, there is no fitting file for FX_INQ_VERSKLAVUNG, only DX_INQ_VERSKLAVUNG_C is moddable. If you didn't bother searching for the files and simply swapped the spell entry, that also explains why you didn't encounter that issue.

1 hour ago, Flix said:

This just occurred to me, you're sure you're working on "FX_SKELETON_ROOT" and not "FX_SKELETON_ROOT_C" right?  The first is the green tendrils.  The second is the greenish spray around the caster.

Yes, absolutely sure. That the _C suffix in most cases stands for the casting fx while the entries without a suffix are the spell fx is something I figured out quite early. Dislodged spirit and Soul Reaver are again the exception here, the former particle scripts have suffixes _C and _C2 and the latter uses two scripts per entry. I don't even use the "FX_SKELETON_ROOT_C" entry, I don't like the FX that much. We're only talking about "FX_SKELETON_ROOT".

So my conclusion would be that both FX_SKELETON_ROOT and FX_INQ_VERSKLAVUNG have completely hardcoded FX, while FX_INQ_SEELENRAUB and FX_INQ_SEELENFANGER have partially hardcoded, partially scripted FX. Additionally, scripted parts of the FX_INQ_SEELENFANGER and FX_INQ_SEELENFANGER_C use multiple scripts for the same FX.

Which would sadly mean that there is no way to make the underworld aspect a uniform color scheme if I want to include those spells. The tendrils will always be green, the souls will always be blue and the beam will always be either red or blue.

1 hour ago, Flix said:

I never load or edit the mipmaps.  I generate new ones when exporting the final product.

Sounds like I'll will have a lot of work to do the next couple of weeks:lol:

Link to comment

Check in hq/fx for ghostlyliane.dds and ghostlyspline.dds

Those might be the ones.  I don't have time for a deep dive with testing right now, sorry.

There's also the possibility that the roots are a textured model, though I kind of doubt it.

Link to comment

Oh man you won't believe it. I tried those two files and at first I thought it wouldn't do anything. Now I gave them another try and I found out the issue: It's ghostlyliane.dds but if you leave anything of the green color channel in, it will only take the green resulting in bright green FX. It's unbelievable. You have to turn the green color channel in GIMP color mixer to zero:

spacer.png

The first one has some green in it to make it look brighter, more ghostly, but the game only takes the green. Alpha will always be the same, at least I haven't found a way to adjust it, so if you don't want it to be green, it's only the proportion of red and blue you can adjust, not the green and not the brightness. I have no idea why that is. I was never so happy to be wrong.:D Unfortunately it's not that strongly visible ingame.

4 hours ago, Flix said:

Those might be the ones.  I don't have time for a deep dive with testing right now, sorry.

You have done more than I could have hoped for. I'm just so glad that you're even interested in this. Thank you a lot, I cannot say it often enough. Sometimes I'm just giving up too quickly and you helped me to not lose hope.

Edited by Lindor
  • Like! 1
Link to comment

Glad I could help.  All I did was take a look at the thumbnails, and I thought, "that looks like a vine."  Lucky it paid off.  :lol:

3 hours ago, Lindor said:

Alpha will always be the same, at least I haven't found a way to adjust it,

What I will do sometimes if I want to wipe the alpha channel and start fresh is this:

  • Right click the layer ---> Add Layer Mask.
  • Set it to "Transfer Layer's Alpha Channel" and click Add.
  • Right click the layer again and select "Delete Layer Mask." 

This will give you the "complete" image to work with containing all the information from the alpha channel.  You will not get the same result if you simply right click and select "Remove Alpha Channel."  Layer masks have a pretty rich functionality but I mainly just use them for that.

If, after your recolors, edits, etc. you want to regain the original transparency settings, you can:

  • Drop the original image in as a separate layer. 
  • Right click that layer ---> Alpha to Selection. 
  • In the top menu, hit Select---> Invert. 
  • Select your edited layer, choose the eraser tool and move it over the entire image.
Link to comment

Oh cool trick. I have that problem sometimes when the image has white parts that I not want to have full transparency on an edge to a part that has full transparency, they are merged with the white that occurs after the "Remove Alpha Channel" command. What I mostly did then was simply selecting by color and recoloring these parts with something easily recognisable, then do all the alpha editing and then color the formerly recolored part white/black again. That layer mask thing will now save me this work:)

Anyway, what I meant is, I can edit the images alpha channel, but it has no ingame effect. Same with the particle scripts alpha and the in this script mentioned file particles/multi/multi_fx_liane.tga. Honestly I don't believe the last two have any effect on the FX. The only file that does have an affect so far is the ghostlyliane.dds file, and despite it having 100% opacity everywhere by default, the ingame FX are very transparent if they're not green.

Link to comment
19 hours ago, Flix said:

Glad I could help.  All I did was take a look at the thumbnails, and I thought, "that looks like a vine."  Lucky it paid off.  :lol:

That was actually a very helpful line again. I had no clue that something like SageThumbs exists. Using that tool, I was now able to find a missing part of the Soul Reaver FX. Now all that's left to find is the initial one, the Dislodged Spirits Soul.:)

Link to comment

I have found the file for the ghost thingy in the general terus area, I have found the file for the dislodged spirit soul (they're not the same), I have found all the soul reaver files and I have found several files for his other aspects! I'm so happy right now, I can't believe it! Prepare for some awesome screnshots the next couple of days!

Link to comment

Hello

It's pretty late here but I have a new theory about particle scripts: remember this right here?:

On 12/6/2020 at 5:45 AM, Lindor said:

Oh man you won't believe it. I tried those two files and at first I thought it wouldn't do anything. Now I gave them another try and I found out the issue: It's ghostlyliane.dds but if you leave anything of the green color channel in, it will only take the green resulting in bright green FX. It's unbelievable. You have to turn the green color channel in GIMP color mixer to zero:

spacer.png

The first one has some green in it to make it look brighter, more ghostly, but the game only takes the green. Alpha will always be the same, at least I haven't found a way to adjust it, so if you don't want it to be green, it's only the proportion of red and blue you can adjust, not the green and not the brightness. I have no idea why that is.

I now have an idea why that is. the part where the hex colors in the particle script are defined is called ColorInterpolator. An interpolation in mathematics is e.g. a reconstruction of a function given a (mostly finite) array of points. If you think of colors as a function of from the set of points defined in the hardcoded part of the FX to the set of colors defined by the corresponding image in the pak folder, splitting an FX colorization into the three/four RGB(+alpha?) color channels can be viewed as an interpolation. So what if these hex colors defined in the particle script are not defining the colors of the scripted part of the FX, but are rather the given array of points over which the function for all the FX is interpolated? That would explain why the skeleton root spell only takes the green color channel for each pixel, I checked and yes the rgb colors for the particle sript are all green only. If alpha is treated separately, that would also explain why the alpha is always the same, no matter the alpha of the colorization image in the pak folder. And that would also explain why changing the hex colors in the particle script sometimes does something and sometimes does nothing, it's depending on whether the corresponding image has pixels for which an interpolation over the defined hex color would be a zero or not. If it's a zero, by that I mean like in above example if the pixel's green color channel value would be zero(yes it works pixel by pixel), then the game does not care about the interpolation and just takes the color of the corresponding image pixel as seen above, but if it's not a zero, then the game tries to split the color of the pixel into the color channels defined by the script and smoothenes it out. And lastly that would also explain why some imeges in the pak folder have a completely different colorization from what the FX appear like ingame, e.g. the original skeletonroot image is yellow.

The genius part of this developers idea is that they can 1. define more than three color channels and 1. give those additional ones a hardcoded task, e.g. as a normal map. I believe that this is how they've done it e.g. for the inquisitors clustering maelstrom FX, if you look at hq\lensflares\inq_machtsog.jpg, you can clearly see the correlation between colorization and depth. The color interpolator filters the colorization into the different channels, the game turns that into a normal map and what's left is this very transparent whirl. The same effect goes for all files with the _nrm ending. If I'm right, this would mean that we can now change the normalmaps of FX even without needing to edit the image, e.g. to invert it we can simply swap the hex colors in the corresponding particle script.

  • Like! 1
Link to comment
  • 4 weeks later...
On 12/5/2020 at 2:26 AM, Flix said:

"FX_INQ_VERSKLAVUNG" was replaced with "FX_GEN_MANALEACH" in the spell entry.

Hello @Lindor ! I am trying to locate those files but can't..

I did found FX_INQ_VERSKLAVUNG_C, but not the other two, ( neither in the vanilla folder or in @Flix mod's folder, if it is EE we're talking about )

 

Edited by Methatronc
  • Like! 1
Link to comment
13 hours ago, Methatronc said:

Hello @Lindor ! I am trying to locate those files but can't..

I did found FX_INQ_VERSKLAVUNG_C, but not the other two, ( neither in the vanilla folder or in @Flix mod's folder, if it is EE we're talking about )

 

Do you mean the particle scripts or the images in graphics01?

For the particle scripts, all of them are located in scripts\particle and they have almost always nearly identical names to their corresponding FX. Here they are (only FX listed that actually have a particle script, there are multiple that don't have one)

  • Paralyzing Dread:
    • FX_INQ_ENTSETZEN_C
      • fx_inq_seelenraub_c.particle
      • fx_inq_seelenraub_c2.particle
  • Dislodged Spirit:
    • FX_INQ_SEELENRAUB_C
      • fx_inq_seelenraub_c.particle
      • fx_inq_seelenraub_c2.particle
  • Inexorable Subjugation:
    • FX_INQ_VERSKLAVUNG_C
      • fx_inq_versklavung_c.particle
  • Eruptive Desecration:
    • FX_INQ_SCHAENDUNG_C
      • fx_inq_schaendung_c.particle
      • fx_inq_schaendung_c2.particle
    • FX_INQ_SCHAENDUNG
      • fx_inq_schaendung.particle
      • fx_inq_schaendung_p.particle
  • Soul Reaver:
    • FX_INQ_SEELENFAENGER_C
      • fx_inq_seelenfaenger_c.particl
    • FX_INQ_SEELENFAENGER
      • fx_inq_seelenfaenger.particle
      • fx_inq_seelenfaenger2.particle
      • fx_inq_seelenfaenger_s.particle

For the images, all of them are located in either pak\graphics01\hq\fx, pak\graphics01\hq\lensflares and pak\graphics01\hq\particle:

  • Paralyzing Dread:
    • FX_INQ_ENTSETZEN_C
      • particles\multi\multi_inq_cast.dds
    • FX_INQ_ENTSETZEN
      • none
  • Dislodged Spirit:
    • FX_INQ_SEELENRAUB_C
      • particles\flare2.dds
      • particles\trail_vert3.dds
      • fx\inq_dg_stream.jpg
    • FX_INQ_SEELENRAUB
      • fx\inq_sr_soul.jpg
  • Inexorable Subjugation:
    • FX_INQ_VERSKLAVUNG_C
      • particles\flare2.dds
    • FX_INQ_VERSKLAVUNG
      • fx\inq_vs_stream1.jpg
      • fx\inq_vs_stream2.jpg
  • Eruptive Desecration:
    • FX_INQ_SCHAENDUNG_C
      • particles\smoke2.dds
    • FX_INQ_SCHAENDUNG
      • particles\multi\multi_fx_schaendung_p.dds
  • Soul Reaver:
    • FX_INQ_SEELENFAENGER_C
      • particles\spark01.dds
    • FX_INQ_SEELENFAENGER (some of the listed images here are actually hardcoded to the spellclass)
      • fx\inq_seelenf_soul.jpg
      • fx\inq_sf_stream.jpg
      • particles\trail_vert3.dds
      • particles\multi\multi_he_frostschlag.jpg
      • lensflares\inq_seelenfaenger.dds
  • The soul thingy in the General Terus Area:
    • FX name not known yet, probably doesn't exist. same for particle script.
      • fx\ghost.jpg
  • The regeneration per hit effect that Flix replaced FX_INQ_VERSKLAVUNG with in spells.txt::
    • FX_GEN_MANALEACH
      • fx\gen_manaleach1.jpg
      • fx\gen_manaleach2.jpg

Red Colored ones are probably used by multiple FX. Some images are also only there to give a general shape while the colors come from somewhere else, mostly the particle scripts. You can also find some images by looking at the particle scripts, they're a key in understanding FX. I can only give you the tip to use SageThumbs so that you can see the thumbnails of .dds files, it makes searching for FX images waaay easier.

Btw most mods don't add new files, we just alter existing ones. Both the particle scripts and as the graphic images have the same names and locations in Vanilla as well as in EE.

 

EDIT: forgot fx\inq_dg_stream.jpg, added it.

Edited by Lindor
Link to comment

Thanks for your answer ! And for the tip, though I use paint.net who can display .dds too so that's ok.

However I still don't understand what did Flix, if you do could you explain ? Because in the answer I quoted in my previous message he said to prefer swap lines in the particle files rather than editing the images. And in EE in scripts/particle there are only 3 files and none are used for Inexorable Subjugation. Or perhaps I misunderstood ?

The point is : I'm looking to find an edited particle file that worked because I edited a custom particle file myself and it didn't worked. I changed the hex values to go from a white tone to a red one, nothing appears when using the custom spell. The custom animation works, custom tokens are ok, changed spellclass is ok, just the fx that's not been called it seems..

Link to comment

Thank you for this very detailed answer, it's good to have what I thought confirmed !

I still don't know where FX_GEN_MANALEACH is located but from what you say I'll just try different hex values if none of the existing unused ones you highlighted in another topic suits the custom spells.

Thanks again and have a good day, I'll come back to show the results if it works :)

  • Respect! 1
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...
Please Sign In or Sign Up