I’m currently trying to properly implement a loot beam FX on legendaries\rares (the one I liked so much in Diablo 3); I really liked the effect in D3 and miss it so much. A visual emphasis on highly rare items is what I really wanted in Grim Dawn and here I am, completely new to modding in Grim Dawn with a wagon of questions :).
So far I’ve figured a couple things with the software (how to extract .arc archives, rebuild fx.arc with the AssetManager etc.,(but I’m still at a child’s level) and more or less managed to achieve some results.
And I’ve got a bunch of technical questions so that I can make it look like I originally intended.
1. MOST important thing : how do I make a beam? You can see on the screenshot that if it’s in the center it looks like a beam, but whenever I move the camera and change the viewpoint it shows as a series of horizontal lines. PSEditor “Stretch” might be the case. Can someone advise me what particle\shader to use and how do I make a beam PROPERLY?
2. It seems that by default items have the so called “anchors” between which the standard itemFX (green, blue, purple etc.) cycle periodically. Obviously this cycle makes the beam disappear and reappear above the other “anchor”. How do I stabilize a beam (I figured I have to somehow “remove” the cycle and make the effect “stick” to a certain “anchor”). How do I do that?
3. itemFX applies to an item with a slight delay. How do I shorten\remove the delay completely?
I really appreciate if someone is interested in what I’m doing and if there’s somebody more experienced than I (99% of people on this forum) who could give me some tips and answers! THANKS!
My suggestion would be instead of making one particle STRETCH upwards, you should instead have a ring of particles (using the circle emitter type) and have them travel upwards rather than stretch. You can either use gravity or velocity (i think that is the term used).
Yeah experimenting is the best way to go. Maybe something in between what you were doing and what I suggest will work, who knows. I would have expected a stretched texture to work but if you say it has issues with camera rotations, then maybe something is causing an issue.
Now that I think about it there are a few things that might cause that, instead of the stretching. There’s a few places where this field is located, in the item fx database file it’s called “Local Orient”, and sometimes it makes funny things happen, try switching that on/off.
The problem is, even if I drag the FX in the PSEditor rendering window it yields the same effect - the beam turns out to be just a bunch of horizontal lines that overlap.
I’ve stumbled upon this entry in the “lootsparkle04_fx.dbr” - another diffuculty I encounter is that I can’t manage to “rebuild” database.arz correctly, neither using Asset Manager, nor via arzedit.exe. I’m sure I’m doing something wrong, cause the game either gets stuck on a loading screen after I press “Start Game” or for some reason it loads BUT doesn’t recognize my Demolitionist mastery (?). In the latter scenario I can at least drop the legendary to see whether switching “localOrientFix” to 0 or 1 does anything. Unfortunately, it doesn’t.
I played a bit with PSEditor, had some positive results to some extent, but the beam is not high enough. I either have to set Emit Rate to humongous numbers (which drastically increases particle count = might result in the unnecessary FPS drop) or otherwise the beam turns to a flow of round particles with huge spaces in between.
I’m quite sure you suggestion might turn out to be a right course of action, it seems like it needs a bit of fine-tuning and number tweaking
The game will cull out a lot of particles past a certain number when they all come from the same effect. So I wouldn’t worry too much about impacting performance (it’s still possible, though), the real worry is having the game cull something essential to making your effect look good.
I haven’t experienced the horizontal line thing you’re seeing before. Pretty weird. Is your emitter moving or changing in size during its lifespan, or do the particles themselves emit along some non-axis-only direction (e.g., are the X/Y/Z Rotations set to nonzero)?
I’m tossing together a quick test of my own to see how things turn out. It’s pretty small relative to what you’re after, but that’s a simple enough tweak. Here’s a picture of it in the PSEditor…
Oh my, that’s so pretty! I’m so happy I’ve got so many consctructive and in-depth responses, it really motivates me to learn about modding
The biggest issue and limitation to this creative process is the fact that I actually started tweaking the default “pfx_lootsparkle04.pfx” not knowing much about what all those weird buttons did in the first place, and tried learning the hard way - by tweaking, inserting extreme numbers to see the consequences, etc.
I checked your FX and noticed that you used different textures\shaders than I did, I figured those must have been a culprit, but since I don’t know much about different FX and have less than 0 experience I just messed around with the default preset. Shame on me
I’m attaching the original FX used in the screenshots; now I’m just gonna silently spend some time watching and analyzing the tweaks you’ve made to get the idea better.
Many, many thanks!
P.S Initial rotations are set to 0, seems like the issue is the particle; it’s being stretched horizontally, not vertically. No idea how to do that.
P.P.S I actually don’t really understand what my emitter is currently doing. I just set the Y axis offset to some high value, “maxed” stretching and emit rate. I really like how it looks in-game, smooth and basically what I would expect. If only camera rotation didn’t mess it all up… Another point I don’t get : your FX is really beatiful and smooth, but moves together with the camera, the beam just rotates as if it were a 2D sprite effect. I mean, what influences that? How do I make the light go up the certain axis? So many questions
Doing a little tweaking to get the stars to look good, but otherwise fixed the separation between the particles. The variability of the Y Offset value throughout the emitter’s lifespan was the cause. Essentially the emitter itself would move to different positions spitting out ‘newbown’ particles of smaller sizes as it moved, which would grow over the course of the particles’ lifespan. Anyways, if you zero-out the Y Offset, here’s how it looks during motion/from a different angle:
I’m doing some funky stuff with the gravity on the stars to get them to ascend the full column appropriately but over the course of a large enough time period. Right now they move pretty quickly, which would probably be too distracting in-game.
WIP File Attached if you want to take it from here.
I’m afraid I don’t fully know what you’re asking. Maybe my explanation above answers your question?
So, what I’m trying to say is that no matter from what direction I look at the beam it moves together with my perspective, as if it weren’t a 3D object that goes roughly from 0 up the Y axis, but rather it’s ‘stuck’ to the starting point and is always directed to the top of the screen.
It doesn’t follow the Y axis and that’s what I want to know - how do I direct it so that it would feel like a 3D FX.
So, that’s how it looks in-game. It doesn’t stretch from the ground to the sky, it’s just tied to my screen = as if it were lying on the ground.
P.S So yes, it’s the Y Offset setting that influences this. If I increase it - the beam goes from the ground to the sky but has the stretching problem, if I reduce the variable - it stops following the Y axis.
It might be a little difficult for this example in particular, because the particles in question don’t really have a lot of features to distinguish one angle from another. However, you could toggle the Motion Orient/Randomize Orientation (careful with Randomize) settings on particles, or the Emit Locally setting on Emitters, to slightly offer variability to how things look with the camera.
So that’s what it looks like if I choose to keep it as simple as possible aka Diablo 3 style.
Looks nice, I may toy with sparks a bit to add that extra Grim Dawn touch.
I like it but I’ll experiment more and try to make it 3D, but for now - I’m good
If only I knew how to rebuild database.arz without making a game unplayable, I could try to fiddle with some files to remove the effect cycling. Oh well, nobody told me it was going to be simple
I see what you did there, you lined up numerous emitters so that they would interlap each other, fill spaces and seem like a continuos beam. You even set stretching to 0.05 so that they won’t give off that strange effect I’m getting.
So far THIS approach seems to be the most reasonable way to actually make a beam go up the Y axis.
That’s what it’s like when you don’t touch Y offset.
My usual way of including the FX in the base game is:
Extract FX.arc
Put the extracted “fx” folder with all the files\subfolders into “resources” (so it will look like that : X:\path to game\Grim Dawn\Resources\FX;
in my case, I modify this file : Grim Dawn\resources\fx\particlesystems\items[b]pfx_lootsparkle04.pfx[/b] with the help of PSEditor;
via Asset Manager, press Archive\Build…
P.S If you download any of the attached FX in this thread, just rename\replace the file after you unpack the FX.arc and Build the archive via Asset Manager.
AND MAKE SURE YOU MAKE A BACKUP OF FX.ARC. Otherwise, it’s not a big deal if something goes south, you can just verify cache via Steam. Just to save you the trouble of redownloading.
It is, but while it looks great if you watch at it from the front, the moment you move the camera it becomes a mess.
There are 3 solutions :
Construct a flow of numerous emitters on top of each other that will resemble a beam
Leave it the way it is
Do a completely different thing and forget about Diablo 3 legendary beam; I’ve been trying to make a glittering emitter (not a beam) that rises from a legendary and goes up, looks quite good, needs some polishing iming adjustments; I’ll implement it in game, do a .gif and show how it looks when it’s done