I made a quick vignette system that takes advantage of ParticleEmitters to create moving and dynamic Vignettes for a variety of reasons.
Edit:
Added distance and auto update support.
Current usage:
local ActiveVignette = require(script:WaitForChild("ActiveVignette"))
local Vignette = ActiveVignette:CreateVignette({ Table of ParticleEmitters }) --// creates a new vignette
Vignette:Enabled(false/true) --// disables the particle effects associated with this vignette
Vignette:Destroy() --// completely destroys the vignette
Vignette:SetDistance(5) --// Set's the distance from the camera (Larger can result in phasing)
Vignette:UpdateEnabled(true/false) --// Determines whether or not the vignette will auto adjust to new FOV's and AspectRatio changes.
Please leave feedback as well as suggested features! I’ll be building on this in my free time.
I was literally just looking for an effect like this some time ago, though my question was formed somewhat differently: I was looking to attach parts to the edge of the screen and move them around or create a screen cover using them. I wonder if I’ll be able to salvage code out from this.
This is looking real neat. Is the code transferrable between systems? I haven’t looked through the module and won’t have that time for a bit, but I’d like to incorporate this into my framework raw and I don’t know if I’ll have to make some changes to accomodate for that or not.
The only dependency is the Physics module that is a descendant of the base module. I imported that purely for welding purposes, but if you are willing to replace the “physics.joint.new()” stuff inside the main module, you can remove it and use it somewhere else just fine.
I like this a lot. I have some immediate concerns, however.
The parts containing the vignette should be parented to workspace.CurrentCamera rather than just workspace. This is more a thing of etiquette, I think, since CurrentCamera only exists on the client.
The emitters should likely be set to enforce LockedToPart as true at least for instantiation, since leaving the particles behind kind of messes with the look of things.
I also have a couple ideas. Since you can parent emitters to Attachments, you may see it fit to implement special vignette modes, e.g. a jitter effect so that the particles on the outside of the screen shake and stuff (add a particle to an Attachment, disable the emitter, call Particle:Emit(1), move the attachment every frame). The main idea is to include more cosmetic stuff, provide some neat bells and whistles that people can mess with to really make the effects pop. You may also see it fit to manually set the velocity of the parts as the camera moves based on displacement so that particles using velocity inheritance work.
Hi! So I like this alot but I have a question! How could I make it so once you get damage animated blood will pop up or like lightning? The more damage the more blood/lightning.
I’m working on a sort of “screen splash” feature that lets you be more precise with particle placement, but my wrist is currently immobilized in a cast so no coding ;c
That’s likely an issue with your particles, not the code. Particles need to be locked to part. I didn’t automate that in case you want to have a combination of both. This is open source for a reason, if there are things you need to change, you can.