Hello, i would like to know if there is a way to make out of multiple particle emitters, into one.
i mean like i got like an effect that is mad out of 4 particle emitters, but i need to unify all these 4 particle emitters into one,. one particle emitter.
Is there any way to do this?
Only if they use the same appearance
You would have to change each of the images as well as the different Properties you use for the single emitters and switch them with a script. I’m guessing this would be a whole lot more work.
Please give us as many details possible as to why you have to make them into one emitter?
Its because i have to Change the size of this,group of emitters that form a single effect togheter. So each emitter has it’s own texture and Size, and keeping in mind that are like 10 emitters, it would be basically impossible to modify their sizes and then get these effects on their original sizes ( The sizes are frequence of numbers, like a gradient, so it’s harder). if you got any ideas how to make what i want to do please tell me.
thanks in advice and sorry for the long message
also if you dont understand what i want to make tell me so i can explain myself better
Adjusting a models
scale property also adjusts its descendant ParticleEmitters
. Every property of the particle gets changed relatively, for example when scaling a model
up the particles get faster and bigger. Scaling models
also bypasses the particles’ size limit of 10.
Heres an example of models
with different scales, each model
has a part parented to them with a ParticleEmitter
parented to those parts:
The models’ hierarchy is the following:
If possible you could try using this for scaling the particles. You’d have to adjust the speed manually tho when resizing the particles since the bigger the model the faster the particles get.
on god thank you so much i’ve been working on this thing all day it works, thanks again and have a good day
Is there any way to reduce the number of emitters by combining say 2 or 3 images into one image so you need less emitters.
You could put the emitters in a folder then run through them using ipairs
to change the properties.
for example:
for i, emitter in ipairs(Emitters) do --Emitters is the name of the folder in my example
if emitter.Name == "Orange Orb" then -- example name
emitter.Transparency = .2
emitter.Size = 2
elseif emitter.Name == "Bluestreak" then
emitter.Transparency = .8
emitter.Size = 13
end
end
I’m not sure how you’d change the gradient scales though.
EKIT: just saw it was solved.
No problem
Btw you don’t have to have the particles be descendants of a model constantly, you could use a function like this for example to scale a table of ParticleEmitters:
The function takes a table of particles then creates a new model
to parent them under, then sets the scale of the model
based on the parameters: originalScale
and newScale
local function SetParticleScale(particleEmitters: {ParticleEmitter}, originalScale, newScale): number
local temporaryModel: Model = Instance.new("Model")
local emitterDataTable: {emitter: ParticleEmitter, originalParent: Instance} = {}
for _, emitter: ParticleEmitter in particleEmitters do
table.insert(emitterDataTable, {emitter, emitter.Parent})
emitter.Parent = temporaryModel
end
-- Set scale based on given originalScale
temporaryModel:ScaleTo(newScale / originalScale)
for _, emitterData in emitterDataTable do
local emitter: ParticleEmitter = emitterData[1]
local originalParent: Instance = emitterData[2]
emitter.Parent = originalParent
end
temporaryModel:Destroy()
return newScale
end
Note: You have to keep track of the particles’ original scale for it to work as intended. Also once a particle has been scaled like this it cannot easily be scaled back to its original size if you don’t have its original scale saved as a variable.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.