def shootFireworkRing(x, y, z, color1, color2, amp): f = ParticleEffect.ParticleEffect() p0 = Particles.Particles('particles-1') # Particles parameters p0.setFactory("PointParticleFactory") p0.setRenderer("SparkleParticleRenderer") p0.setEmitter("RingEmitter") p0.setPoolSize(100) p0.setBirthRate(0.01) p0.setLitterSize(100) p0.setLitterSpread(0) # Factory parameters p0.factory.setLifespanBase(1.5000) p0.factory.setLifespanSpread(0.5000) p0.factory.setMassBase(1.0000) p0.factory.setMassSpread(0.0000) p0.factory.setTerminalVelocityBase(20.0000) p0.factory.setTerminalVelocitySpread(2.0000) # Point factory parameters # Renderer parameters p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) p0.renderer.setUserAlpha(1.00) p0.renderer.setCenterColor(color1) p0.renderer.setEdgeColor(color2) p0.renderer.setBirthRadius(0.300) p0.renderer.setDeathRadius(0.300) p0.renderer.setLifeScale(SparkleParticleRenderer.SPNOSCALE) # Emitter parameters p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) p0.emitter.setAmplitude(0) p0.emitter.setAmplitudeSpread(0) f0 = ForceGroup.ForceGroup('gravity') force0 = LinearSourceForce(Point3(x,y,z), LinearDistanceForce.FTONEOVERR, 0.1, 1.1 * amp, 1) force0.setActive(1) f0.addForce(force0) force1 = LinearSinkForce(Point3(x, y, z), LinearDistanceForce.FTONEOVERR, 0.5, 2.0 * amp, 1) force1.setActive(1) f0.addForce(force1) f.addForceGroup(f0) # Ring parameters p0.emitter.setRadius(4.0000) f.addParticles(p0) f.setPos(x, y, z) # f.setHpr(0, 45, 45) f.setHpr(0,random.random()*180,random.random()*180) sfx = loader.loadSfx("phase_4/audio/sfx/firework_distance_03.mp3") t = Sequence( Func(f.start, render, render), Func(sfx.play), Wait(0.5), Func(p0.setBirthRate, 3), Wait(1.5), Func(f.cleanup), name = getNextSequenceName("shootFireworkRing"), ) t.start()
def shootFireworkCircleGeneric(x, y, z, color1, color2, amp, poolSize): f = ParticleEffect.ParticleEffect() p0 = Particles.Particles('particles-1') # Particles parameters p0.setFactory("PointParticleFactory") p0.setRenderer("SparkleParticleRenderer") p0.setEmitter("SphereVolumeEmitter") p0.setPoolSize(poolSize) p0.setBirthRate(0.01) p0.setLitterSize(poolSize) # Factory parameters p0.factory.setLifespanBase(2.0000) p0.factory.setLifespanSpread(0.5000) p0.factory.setTerminalVelocityBase(400.0000) p0.factory.setTerminalVelocitySpread(40.0000) # Point factory parameters # Renderer parameters p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) p0.renderer.setUserAlpha(1.00) # Sparkle parameters p0.renderer.setCenterColor(color1) p0.renderer.setEdgeColor(color1) p0.renderer.setBirthRadius(0.4) p0.renderer.setDeathRadius(0.6) p0.renderer.setLifeScale(SparkleParticleRenderer.SPSCALE) # Emitter parameters p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) p0.emitter.setAmplitudeSpread(0.1000) p0.emitter.setAmplitude(amp) p0.emitter.setRadius(0.1000) f.addParticles(p0) circleForceGroup = ForceGroup.ForceGroup('gravity') force1 = LinearSinkForce(Point3(x, y, z - 100), LinearDistanceForce.FTONEOVERRSQUARED, 2.000, 0.300 * amp * 0.1, 1) force1.setActive(1) circleForceGroup.addForce(force1) f.addForceGroup(circleForceGroup) f.setPos(x, y, z) sfxName = random.choice(("phase_4/audio/sfx/firework_explosion_01.mp3", "phase_4/audio/sfx/firework_explosion_02.mp3", "phase_4/audio/sfx/firework_explosion_03.mp3", )) sfx = loader.loadSfx(sfxName) # fadeColor = Vec4(color1[0] * 0.5, color1[1] * 0.5, color1[2] * 0.5, 1) t = Sequence( Func(f.start, render, render), Func(sfx.play), #Sequence(LerpColorScaleInterval(base.cr.playGame.hood.loader.geom, 2, Vec4(0.2,0.2,0.2,1), fadeColor), # duration=0), Wait(0.5), Func(p0.setBirthRate, 3), Wait(0.5), Func(p0.renderer.setCenterColor, color2), Func(p0.renderer.setEdgeColor, color2), Wait(1.5), Func(f.cleanup), name = getNextSequenceName("shootFireworkCircle"), ) t.start()
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleFlameSmoke') self.speed = 20.0 if not ExplosionCloud.particleDummy: ExplosionCloud.particleDummy = render.attachNewNode( ModelNode('ExplosionCloudParticleDummy')) ExplosionCloud.particleDummy.setDepthWrite(0) ExplosionCloud.particleDummy.setLightOff() ExplosionCloud.particleDummy.setColorScaleOff() ExplosionCloud.particleDummy.setFogOff() self.f = ParticleEffect.ParticleEffect('ExplosionCloud') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereSurfaceEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('Noise') force0 = LinearNoiseForce(0.5, 0) force0.setVectorMasks(1, 1, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0)
def gearExplosionSmall(self): self.reset() self.setPos(0.000, 0.000, 4.600) self.setHpr(0.000, 0.000, 0.000) self.setScale(1.000, 1.000, 1.000) p0 = Particles.Particles('particles-1') p0.setFactory("PointParticleFactory") p0.setRenderer("SpriteParticleRenderer") p0.setEmitter("SphereVolumeEmitter") p0.setPoolSize(6) p0.setBirthRate(0.4000) p0.setLitterSize(2) p0.setLitterSpread(1) p0.setSystemLifespan(0.0000) p0.setLocalVelocityFlag(1) p0.setSystemGrowsOlderFlag(0) p0.factory.setLifespanBase(1.5000) p0.factory.setLifespanSpread(0.0000) p0.factory.setMassBase(1.0000) p0.factory.setMassSpread(0.0000) p0.factory.setTerminalVelocityBase(400.0000) p0.factory.setTerminalVelocitySpread(0.0000) p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAUSER) p0.renderer.setUserAlpha(1.00) p0.renderer.setIgnoreScale(1) p0.renderer.setTextureFromNode("phase_3.5/models/props/suit-particles", "**/gear") p0.renderer.setColor(Vec4(1.00, 1.00, 1.00, 1.00)) p0.renderer.setXScaleFlag(0) p0.renderer.setYScaleFlag(0) p0.renderer.setAnimAngleFlag(0) p0.renderer.setInitialXScale(0.112) p0.renderer.setFinalXScale(0.112) p0.renderer.setInitialYScale(0.112) p0.renderer.setFinalYScale(0.112) p0.renderer.setNonanimatedTheta(0.0000) p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPBLENDLINEAR) p0.renderer.setAlphaDisable(0) p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) p0.emitter.setAmplitude(9.0000) p0.emitter.setAmplitudeSpread(0.0000) p0.emitter.setOffsetForce(Vec3(0.0000, 0.0000, 9.0000)) p0.emitter.setExplicitLaunchVector(Vec3(1.0000, 0.0000, 0.0000)) p0.emitter.setRadiateOrigin(Point3(0.0000, 0.0000, -2.0000)) p0.emitter.setRadius(3.2282) self.addParticles(p0) f0 = ForceGroup.ForceGroup('forces') force0 = LinearSinkForce(Point3(0.0000, 0.0000, -79.0000), LinearDistanceForce.FTONEOVERRSQUARED, 15.9701, 95.0100, 1) force0.setActive(1) f0.addForce(force0) self.addForceGroup(f0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleGreenBlood') if not self.splashSfx: for audio in self.SfxNames: self.splashSfx.append(loadSfx(audio)) if not GreenBlood.particleDummy: GreenBlood.particleDummy = render.attachNewNode( ModelNode('GreenBloodParticleDummy')) GreenBlood.particleDummy.setDepthWrite(0) self.f = ParticleEffect.ParticleEffect('GreenBlood') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('DiscEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -20.0), 1.0, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/fireworkCards') self.card = model.find('**/pir_t_efx_msc_particleStars') self.cardScale = 64.0 self.setDepthWrite(0) self.setColorScaleOff() self.setLightOff() self.effectScale = 1.0 self.effectColor = Vec4(1, 1, 1, 1) self.f = ParticleEffect.ParticleEffect('StarBurst') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-0') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereSurfaceEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('Gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -25.0), 1.0, 0) force0.setVectorMasks(1, 1, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) self.p0.setPoolSize(128) self.p0.setBirthRate(0.04) self.p0.setLitterSize(64) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(1.25) self.p0.factory.setLifespanSpread(0.5) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.factory.setInitialAngle(0.0) self.p0.factory.setInitialAngleSpread(360.0) self.p0.factory.enableAngularVelocity(1) self.p0.factory.setAngularVelocity(0.0) self.p0.factory.setAngularVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setColorBlendMode(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.renderer.getColorInterpolationManager().addLinear(0.0, 0.1, Vec4(0, 0, 0, 0), self.effectColor, 1) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 0.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.setEffectScale(self.effectScale) self.setEffectColor(self.effectColor)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('phase_4/models/props/tt_m_efx_ext_particleCards') self.card = model.find('**/tt_t_efx_ext_particleStars') self.cardScale = 64.0 self.effectColor = Vec4(1, 1, 1, 1) self.effectScale = 1.0 self.lifespan = 2.0 if not SparksTrailLong.particleDummy: SparksTrailLong.particleDummy = render.attachNewNode(ModelNode('SparksTrailLongParticleDummy')) SparksTrailLong.particleDummy.setDepthWrite(0) self.f = ParticleEffect.ParticleEffect('SparksTrailLong') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('PointEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('Gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -2.0), 1.0, 0) force0.setVectorMasks(1, 1, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) self.p0.setPoolSize(128) self.p0.setBirthRate(0.02) self.p0.setLitterSize(1) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(0) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(self.lifespan) self.p0.factory.setLifespanSpread(0.1) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.factory.setInitialAngle(0.0) self.p0.factory.setInitialAngleSpread(90.0) self.p0.factory.enableAngularVelocity(1) self.p0.factory.setAngularVelocity(0.0) self.p0.factory.setAngularVelocitySpread(25.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.renderer.setColorBlendMode(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, -2.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.setEffectScale(self.effectScale)
def __init__(self): NodePath.__init__(self, 'Fireflies') EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleGlow') if not Fireflies.particleDummy: Fireflies.particleDummy = render.attachNewNode( ModelNode('FirefliesParticleDummy')) Fireflies.particleDummy.setDepthWrite(0) Fireflies.particleDummy.setFogOff() Fireflies.particleDummy.setColorScale(1.0, 1.0, 1.0, 1) Fireflies.particleDummy.setLightOff() Fireflies.particleDummy.setBin('fixed', 120) self.f = ParticleEffect.ParticleEffect('Fireflies') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereVolumeEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('Noise') force0 = LinearNoiseForce(0.10000000000000001, 0) force0.setVectorMasks(1, 1, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleSpark') if not Sparks.particleDummy: Sparks.particleDummy = render.attachNewNode( ModelNode('SparksParticleDummy')) Sparks.particleDummy.setDepthWrite(0) Sparks.particleDummy.node().setAttrib( ColorBlendAttrib.make(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne)) Sparks.particleDummy.setFogOff() Sparks.particleDummy.setLightOff() Sparks.particleDummy.setBin('fixed', 120) self.f = ParticleEffect.ParticleEffect('Sparks') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('RingEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -6.5), 2.0, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0)
def __init__(self, effectParent=None): PooledEffect.__init__(self) EffectController.__init__(self) self.effectScale = 1.0 model = loader.loadModel('models/effects/particleCards') self.card = model.find('**/particleSparkle') if not FireSparks.particleDummy: FireSparks.particleDummy = base.effectsRoot.attachNewNode(ModelNode('FireSparksParticleDummy')) FireSparks.particleDummy.setColorScaleOff() FireSparks.particleDummy.setDepthWrite(0) FireSparks.particleDummy.setLightOff() FireSparks.particleDummy.setBin('fixed', 70) self.f = ParticleEffect.ParticleEffect('FireSparks') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-sparks') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('DiscEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('Noise') self.noiseForce = LinearNoiseForce(10.0, 10.0) self.noiseForce.setVectorMasks(1, 1, 1) self.noiseForce.setActive(0) f0.addForce(self.noiseForce) self.f.addForceGroup(f0) self.p0.setPoolSize(64) self.p0.setBirthRate(0.2) self.p0.setLitterSize(12) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(1.0) self.p0.factory.setLifespanSpread(0.5) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.2) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 0.6, 0.2, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setInitialXScale(0.008 * self.cardScale) self.p0.renderer.setInitialYScale(0.008 * self.cardScale) self.p0.renderer.setFinalXScale(0.016 * self.cardScale) self.p0.renderer.setFinalYScale(0.016 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPNOBLEND) self.p0.renderer.setColorBlendMode(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETCUSTOM) self.p0.emitter.setAmplitude(3.0) self.p0.emitter.setAmplitudeSpread(3.0) self.p0.emitter.setOffsetForce(Vec3(2.0, 2.0, 20.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 1.0)) self.p0.emitter.setRadius(5.0)
def shootFireworkRocket(x, y, z, color1, color2, amp): f = ParticleEffect.ParticleEffect() p0 = Particles.Particles('particles-1') # Particles parameters p0.setFactory("PointParticleFactory") p0.setRenderer("SparkleParticleRenderer") p0.setEmitter("SphereVolumeEmitter") p0.setPoolSize(110) p0.setBirthRate(0.01) p0.setLitterSize(2) p0.setLitterSpread(0) # Factory parameters p0.factory.setLifespanBase(0.4000) p0.factory.setLifespanSpread(0.1000) p0.factory.setMassBase(1.0000) p0.factory.setMassSpread(0.0000) p0.factory.setTerminalVelocityBase(400.0000) p0.factory.setTerminalVelocitySpread(0.0000) # Point factory parameters # Renderer parameters p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) p0.renderer.setUserAlpha(1.00) # Sparkle parameters p0.renderer.setCenterColor(color1) p0.renderer.setEdgeColor(color2) p0.renderer.setBirthRadius(0.600) p0.renderer.setDeathRadius(0.600) p0.renderer.setLifeScale(SparkleParticleRenderer.SPNOSCALE) # Emitter parameters p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) p0.emitter.setAmplitude(amp) p0.emitter.setAmplitudeSpread(0.0000) # Sphere Volume parameters p0.emitter.setRadius(0.3) f.addParticles(p0) gravityForceGroup = ForceGroup.ForceGroup('gravity') # Force parameters force0 = LinearVectorForce(Vec3(0.0000, 0.0000, -10.0000), 1.0000, 0) force0.setActive(1) gravityForceGroup.addForce(force0) f.addForceGroup(gravityForceGroup) f.setPos(x, y, z) sfxName = random.choice(( "phase_4/audio/sfx/firework_whistle_01.mp3", "phase_4/audio/sfx/firework_whistle_02.mp3", )) sfx = loader.loadSfx(sfxName) t = Sequence( Func(f.start, render, render), Func(sfx.play), LerpPosInterval(f, 2.0, Vec3(x, y, z + (20 * amp)), blendType="easeInOut"), Func(p0.setBirthRate, 3), Wait(0.5), Func(f.cleanup), name=getNextSequenceName("shootFirework"), ) t.start()
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleRockShower') if not self.splashSfx: for audio in self.SfxNames: self.splashSfx.append(loadSfx(audio)) if not ShipSplintersA.particleDummy: ShipSplintersA.particleDummy = render.attachNewNode( ModelNode('ShipSplintersAParticleDummy')) ShipSplintersA.particleDummy.setDepthWrite(0) self.f = ParticleEffect.ParticleEffect('ShipSplintersA') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('DiscEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -30.0), 1.0, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) self.p0.setPoolSize(16) self.p0.setBirthRate(0.4) self.p0.setLitterSize(1) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.setFloorZ(-5.0) self.p0.factory.setLifespanBase(2.0) self.p0.factory.setLifespanSpread(0.5) self.p0.factory.setMassBase(0.45) self.p0.factory.setMassSpread(0.2) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAUSER) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(0.3, 0.2, 0, 1)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setInitialXScale(0.035 * self.cardScale) self.p0.renderer.setFinalXScale(0.06 * self.cardScale) self.p0.renderer.setInitialYScale(0.035 * self.cardScale) self.p0.renderer.setFinalYScale(0.06 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPNOBLEND) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETCUSTOM) self.p0.emitter.setAmplitude(8.0) self.p0.emitter.setAmplitudeSpread(4.0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 40.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 1.0)) self.p0.emitter.setRadius(8.0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) self.setColorScaleOff() self.startCol = Vec4(0.5, 0.5, 0.5, 1) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleDot') if not PistolFlame.particleDummy: PistolFlame.particleDummy = render.attachNewNode(ModelNode('FireParticleDummy')) PistolFlame.particleDummy.setDepthWrite(0) PistolFlame.particleDummy.node().setAttrib(ColorBlendAttrib.make(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne)) PistolFlame.particleDummy.setFogOff() self.flash = loader.loadModel('models/effects/lanternGlow') self.flash.node().setAttrib(ColorBlendAttrib.make(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne)) self.flash.setDepthWrite(0) self.flash.setFogOff() self.flash.setColorScale(self.startCol) self.flash.setBillboardPointEye(0.2) self.flash.setBin('fixed', 120) self.flash.setScale(25) self.flash.reparentTo(self) self.flash.hide() self.f = ParticleEffect.ParticleEffect('PistolFlame') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereVolumeEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('frict') force0 = LinearFrictionForce(1.0, 10.0, 1.0) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleSmoke') self.speed = 20.0 self.radius = 7.0 self.spriteScale = 1.0 if not SmokePillar.particleDummy: SmokePillar.particleDummy = render.attachNewNode( ModelNode('SmokePillarParticleDummy')) SmokePillar.particleDummy.setDepthWrite(0) SmokePillar.particleDummy.setLightOff() self.f = ParticleEffect.ParticleEffect('SmokePillar') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereVolumeEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -40.0), 1.0, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0)
def shootFireworkCircleGeneric(x, y, z, color1, color2, amp, poolSize): f = ParticleEffect.ParticleEffect() p0 = Particles.Particles('particles-1') p0.setFactory('PointParticleFactory') p0.setRenderer('SparkleParticleRenderer') p0.setEmitter('SphereVolumeEmitter') p0.setPoolSize(poolSize) p0.setBirthRate(0.01) p0.setLitterSize(poolSize) p0.factory.setLifespanBase(2.0) p0.factory.setLifespanSpread(0.5) p0.factory.setTerminalVelocityBase(400.0) p0.factory.setTerminalVelocitySpread(40.0) p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) p0.renderer.setUserAlpha(1.0) p0.renderer.setCenterColor(color1) p0.renderer.setEdgeColor(color1) p0.renderer.setBirthRadius(0.4) p0.renderer.setDeathRadius(0.6) p0.renderer.setLifeScale(SparkleParticleRenderer.SPSCALE) p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) p0.emitter.setAmplitudeSpread(0.1) p0.emitter.setAmplitude(amp) p0.emitter.setRadius(0.1) f.addParticles(p0) circleForceGroup = ForceGroup.ForceGroup('gravity') force1 = LinearSinkForce(Point3(x, y, z - 100), LinearDistanceForce.FTONEOVERRSQUARED, 2.0, 0.3 * amp * 0.1, 1) force1.setActive(1) circleForceGroup.addForce(force1) f.addForceGroup(circleForceGroup) f.setPos(x, y, z) sfxName = random.choice(('phase_4/audio/sfx/firework_explosion_01.mp3', 'phase_4/audio/sfx/firework_explosion_02.mp3', 'phase_4/audio/sfx/firework_explosion_03.mp3')) sfx = loader.loadSfx(sfxName) t = Sequence(Func(f.start, render, render), Func(sfx.play), Wait(0.5), Func(p0.setBirthRate, 3), Wait(0.5), Func(p0.renderer.setCenterColor, color2), Func(p0.renderer.setEdgeColor, color2), Wait(1.5), Func(f.cleanup), name=getNextSequenceName('shootFireworkCircle')) t.start()
def jargonSpray(self): self.reset() self.setPos(0.000, 3.000, 4.000) self.setHpr(0.000, 0.000, 0.000) self.setScale(1.000, 1.000, 1.000) p0 = Particles.Particles('particles-1') p0.setFactory("PointParticleFactory") p0.setRenderer("SpriteParticleRenderer") p0.setEmitter("LineEmitter") p0.setPoolSize(4) p0.setBirthRate(0.200) p0.setLitterSize(1) p0.setLitterSpread(0) p0.setSystemLifespan(0.0000) p0.setLocalVelocityFlag(1) p0.setSystemGrowsOlderFlag(0) p0.factory.setLifespanBase(1.0000) p0.factory.setLifespanSpread(0.2000) p0.factory.setMassBase(1.0000) p0.factory.setMassSpread(0.0000) p0.factory.setTerminalVelocityBase(400.0000) p0.factory.setTerminalVelocitySpread(0.0000) p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAUSER) p0.renderer.setUserAlpha(1.00) p0.renderer.setIgnoreScale(1) p0.renderer.setTextureFromNode("phase_3.5/models/props/suit-particles", "**/jargon-brow") p0.renderer.setColor(Vec4(1.00, 1.00, 1.00, 1.00)) p0.renderer.setXScaleFlag(1) p0.renderer.setYScaleFlag(1) p0.renderer.setAnimAngleFlag(0) p0.renderer.setInitialXScale(0.40) p0.renderer.setFinalXScale(1.60) p0.renderer.setInitialYScale(0.10) p0.renderer.setFinalYScale(0.40) p0.renderer.setNonanimatedTheta(0.0000) p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPBLENDLINEAR) p0.renderer.setAlphaDisable(0) p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) p0.emitter.setAmplitude(5.0000) p0.emitter.setAmplitudeSpread(0.0000) p0.emitter.setOffsetForce(Vec3(0.0000, 4.0000, 0.0000)) p0.emitter.setExplicitLaunchVector(Vec3(1.0000, 0.0000, 0.0000)) p0.emitter.setRadiateOrigin(Point3(0.0000, -9.0000, 0.0000)) p0.emitter.setEndpoint1(Point3(0.0000, 0.0000, 0.0000)) p0.emitter.setEndpoint2(Point3(0.0000, 0.0000, 0.0000)) self.addParticles(p0) f0 = ForceGroup.ForceGroup('forces') force0 = LinearJitterForce(2.1279, 0) force0.setActive(1) f0.addForce(force0) self.addForceGroup(f0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleSmoke') if not DustRing.particleDummy: DustRing.particleDummy = render.attachNewNode( ModelNode('DustRingParticleDummy')) DustRing.particleDummy.setDepthWrite(0) DustRing.particleDummy.setLightOff() self.f = ParticleEffect.ParticleEffect('DustRing') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('RingEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -5.0), 1.0, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) self.p0.setPoolSize(64) self.p0.setLitterSize(4) self.p0.setLitterSpread(1) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(1.8) self.p0.factory.setLifespanSpread(0.5) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.20000000000000001) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(0.20000000000000001) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setInitialXScale(0.050000000000000003 * self.cardScale) self.p0.renderer.setFinalXScale(0.20000000000000001 * self.cardScale) self.p0.renderer.setInitialYScale(0.050000000000000003 * self.cardScale) self.p0.renderer.setFinalYScale(0.20000000000000001 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPNOBLEND) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETCUSTOM) self.p0.emitter.setAmplitude(20.0) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 2.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(5.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 10.0)) self.p0.emitter.setRadius(2.0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleFlameSmoke') if not CeilingDust.particleDummy: CeilingDust.particleDummy = render.attachNewNode( ModelNode('CeilingDustParticleDummy')) CeilingDust.particleDummy.setDepthWrite(0) self.f = ParticleEffect.ParticleEffect('CeilingDust') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('DiscEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('Gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -1.0), 1.0, 1) force0.setVectorMasks(1, 1, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) self.p0.setPoolSize(64) self.p0.setBirthRate(0.02) self.p0.setLitterSize(8) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.setFloorZ(-5.0) self.p0.factory.setLifespanBase(3.0) self.p0.factory.setLifespanSpread(2.5) self.p0.factory.setMassBase(2.0) self.p0.factory.setMassSpread(1.5) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAINOUT) self.p0.renderer.setUserAlpha(0.25) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(0) self.p0.renderer.setInitialXScale(0.08 * self.cardScale) self.p0.renderer.setFinalXScale(0.08 * self.cardScale) self.p0.renderer.setInitialYScale(0.04 * self.cardScale) self.p0.renderer.setFinalYScale(0.04 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(1.0) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, -0.3)) self.p0.emitter.setExplicitLaunchVector(Vec3(0.2, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(100.0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) if not DarkAura.particleDummy: DarkAura.particleDummy = render.attachNewNode(ModelNode('DarkAuraParticleDummy')) DarkAura.particleDummy.setDepthWrite(0) DarkAura.particleDummy.setFogOff() DarkAura.particleDummy.setBin('fixed', 120) model = loader.loadModel('models/effects/darkglow') self.card = model.find('**/effectDarkGlow2') self.f = ParticleEffect.ParticleEffect('DarkAura') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereVolumeEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('Noise') force0 = LinearNoiseForce(0.10000000000000001, 0) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) self.p0.setPoolSize(32) self.p0.setBirthRate(0.20000000000000001) self.p0.setLitterSize(3) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(2.5) self.p0.factory.setLifespanSpread(0.0) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.80000000000000004) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAINOUT) self.p0.renderer.setUserAlpha(0.29999999999999999) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(0) self.p0.renderer.setInitialXScale(0.01 * self.cardScale) self.p0.renderer.setFinalXScale(0.001 * self.cardScale) self.p0.renderer.setInitialYScale(0.01 * self.cardScale) self.p0.renderer.setFinalYScale(0.001 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.renderer.setColorBlendMode(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingColor, ColorBlendAttrib.OOneMinusIncomingAlpha) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(0.20000000000000001) self.p0.emitter.setAmplitudeSpread(0.10000000000000001) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 0.10000000000000001)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(0.80000000000000004)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleSpark') self.speed = 20.0 self.setDepthWrite(0) self.setLightOff() self.f = ParticleEffect.ParticleEffect('HealBlast') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('DiscEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('vortexForce') force0 = LinearCylinderVortexForce(10.0, 10.0, 0.5, 2.25, 0) force0.setVectorMasks(1, 1, 0) force0.setActive(1) f0.addForce(force0) self.p0.setPoolSize(64) self.p0.setBirthRate(0.029999999999999999) self.p0.setLitterSize(2) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(0.75) self.p0.factory.setLifespanSpread(0.25) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(0.29999999999999999, 1, 1, 0.5)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(0) self.p0.renderer.setInitialXScale(0.01 * self.cardScale) self.p0.renderer.setFinalXScale(0.0050000000000000001 * self.cardScale) self.p0.renderer.setInitialYScale(0.01 * self.cardScale) self.p0.renderer.setFinalYScale(0.0050000000000000001 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.renderer.setColorBlendMode(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(8.5) self.p0.emitter.setAmplitudeSpread(0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, -6.5)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(2.0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) self.card = loader.loadModel('phase_4/models/props/icecream') self.cardScale = 18.0 self.setDepthWrite(0) self.setColorScaleOff() self.setLightOff() self.effectScale = 1.0 self.effectColor = Vec4(1, 1, 1, 1) self.f = ParticleEffect.ParticleEffect('IceCream') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-0') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereSurfaceEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('Gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -0.25), 1.0, 0) force0.setVectorMasks(1, 1, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) self.p0.setPoolSize(128) self.p0.setBirthRate(0.04) self.p0.setLitterSize(64) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(3.25) self.p0.factory.setLifespanSpread(1.0) self.p0.factory.setMassBase(0.5) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.factory.setInitialAngle(0.0) self.p0.factory.setInitialAngleSpread(360.0) self.p0.factory.enableAngularVelocity(1) self.p0.factory.setAngularVelocity(100.0) self.p0.factory.setAngularVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(2) self.p0.renderer.setYScaleFlag(2) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 0.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.setEffectScale(self.effectScale) self.setEffectColor(self.effectColor)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleGlow') self.blueCard = model.find('**/particleGlowBlue') self.darkCard = model.find('**/effectDarkGlow') self.particleDummy = render.attachNewNode( ModelNode('SparkBurstParticleDummy')) self.particleDummy.setDepthWrite(0) self.particleDummy.setLightOff() self.particleDummy.setFogOff() self.particleDummy.setColorScaleOff() self.effectColor = Vec4(1, 1, 1, 1) self.f = ParticleEffect.ParticleEffect('SparkBurst') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereVolumeEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('Noise') self.f.addForceGroup(f0) self.p0.setPoolSize(32) self.p0.setBirthRate(0.02) self.p0.setLitterSize(10) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(0.3) self.p0.factory.setLifespanSpread(0.2) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(0.8) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(0) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(1) self.p0.renderer.setColorBlendMode( ColorBlendAttrib.MAdd, ColorBlendAttrib.OOne, ColorBlendAttrib.OOneMinusIncomingAlpha) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitudeSpread(4.0) self.p0.emitter.setOffsetForce(Vec3(1.0, 1.0, -0.1)) self.p0.emitter.setExplicitLaunchVector(Vec3(0.1, 0.0, 100.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(0.5)
def __init__(self, name='particles-1'): self.node = ParticleEffect() self.p0 = Particles.Particles(name) self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('PointParticleRenderer') self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.f0 = ForceGroup.ForceGroup('default') self.birth_set = False self.emitter_set = False self.force = {}
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleRockShower') self.effectScale = 1.0 self.setDepthWrite(0) self.setLightOff() self.setColorScaleOff() self.f = ParticleEffect.ParticleEffect('GroundDirt') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('DiscEmitter') self.f.addParticles(self.p0) self.f0 = ForceGroup.ForceGroup('Grav') force0 = LinearVectorForce(Vec3(0.0, 0.0, -10.0), 1.0, 1) force0.setVectorMasks(1, 1, 1) force0.setActive(1) self.f0.addForce(force0) self.f.addForceGroup(self.f0) self.p0.setPoolSize(32) self.p0.setBirthRate(0.02) self.p0.setLitterSize(3) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(2.0) self.p0.factory.setLifespanSpread(1.0) self.p0.factory.setMassBase(0.5) self.p0.factory.setMassSpread(0.25) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor( Vec4(0.29999999999999999, 0.20000000000000001, 0, 1)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(0) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(1.5) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 10.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(0.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(1.5)
def __init__(self, parent, renderParent): # Initialize the superclass NodePath.__init__(self) self.renderParent = renderParent.attachNewNode("bubbleRenderParent") self.renderParent.setBin("fixed", 0) # Create a container node to hold ripple sequences self.assign(parent.attachNewNode('bubbles')) self.effect = ParticleEffect.ParticleEffect() p0 = Particles.Particles('particles-1') # Particles parameters p0.setFactory("PointParticleFactory") p0.setRenderer("SpriteParticleRenderer") p0.setEmitter("DiscEmitter") p0.setPoolSize(8) p0.setBirthRate(0.75) p0.setLitterSize(2) p0.setLitterSpread(1) # Factory parameters p0.factory.setLifespanBase(2.0) p0.factory.setLifespanSpread(0.5) p0.factory.setTerminalVelocityBase(400.0000) p0.factory.setTerminalVelocitySpread(40.0000) # Point factory parameters # Renderer parameters p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAUSER) p0.renderer.setUserAlpha(1.00) # Sparkle parameters p0.renderer.setTextureFromNode('phase_4/models/char/bubble', '**/*') p0.renderer.setXScaleFlag(1) p0.renderer.setYScaleFlag(1) p0.renderer.setInitialXScale(0.07) p0.renderer.setFinalXScale(0.20) p0.renderer.setInitialYScale(0.07) p0.renderer.setFinalYScale(0.20) # p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPBLENDLINEAR) # p0.renderer.setAlphaDisable(0) # Emitter parameters p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) p0.emitter.setAmplitudeSpread(0.025) p0.emitter.setAmplitude(0.1) p0.emitter.setRadius(0.5000) gravityForceGroup = ForceGroup.ForceGroup('air') # Force parameters force0 = LinearVectorForce(Vec3(0.0, 0.0, 1.0), 1.0, 0) force0.setActive(1) force1 = LinearJitterForce(2.5, 0) force1.setActive(1) gravityForceGroup.addForce(force0) gravityForceGroup.addForce(force1) self.effect.addForceGroup(gravityForceGroup) self.effect.addParticles(p0) self.effect.setPos(0, 0, 0)
def setParticleOptions(self): if self.f0 != None: self.f.removeForceGroup(self.f0) self.f0 = ForceGroup.ForceGroup('gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -50.0), 1.0, 0) force0.setVectorMasks(1, 1, 1) force0.setActive(1) self.f0.addForce(force0) force1 = LinearJitterForce(15.0, 0) force1.setVectorMasks(1, 1, 1) force1.setActive(1) self.f0.addForce(force1) self.f.addForceGroup(self.f0) self.p0.setPoolSize(150) self.p0.setBirthRate(0.05) self.p0.setLitterSize(8) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(0) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(0.4) self.p0.factory.setLifespanSpread(0.05) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.factory.setInitialAngle(0.0) self.p0.factory.setInitialAngleSpread(20.0) self.p0.factory.enableAngularVelocity(1) self.p0.factory.setAngularVelocity(0.0) self.p0.factory.setAngularVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAUSER) self.p0.renderer.setUserAlpha(0.25) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setInitialXScale(0.00035 * self.cardScale) self.p0.renderer.setInitialYScale(0.00035 * self.cardScale) self.p0.renderer.setFinalXScale(0.004 * self.cardScale) self.p0.renderer.setFinalYScale(0.004 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPNOBLEND) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(1.0) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, -6.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(0.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(0.125) return
def shootFireworkCircleSprite(x, y, z, color, texture, amp): f = ParticleEffect.ParticleEffect() p0 = Particles.Particles('particles-1') p0.setFactory('PointParticleFactory') p0.setRenderer('SpriteParticleRenderer') p0.setEmitter('SphereVolumeEmitter') p0.setPoolSize(100) p0.setBirthRate(0.01) p0.setLitterSize(100) p0.factory.setLifespanBase(2.0) p0.factory.setLifespanSpread(0.5) p0.factory.setTerminalVelocityBase(400.0) p0.factory.setTerminalVelocitySpread(40.0) p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAUSER) p0.renderer.setUserAlpha(1.0) p0.renderer.setFromNode(texture) p0.renderer.setColor(color) p0.renderer.setXScaleFlag(1) p0.renderer.setYScaleFlag(1) p0.renderer.setInitialXScale(0.12) p0.renderer.setFinalXScale(0.48) p0.renderer.setInitialYScale(0.12) p0.renderer.setFinalYScale(0.48) p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) p0.emitter.setAmplitudeSpread(0.1) p0.emitter.setAmplitude(amp) p0.emitter.setRadius(0.1) f.addParticles(p0) circleForceGroup = ForceGroup.ForceGroup('gravity') force1 = LinearSinkForce(Point3(x, y, z - 100), LinearDistanceForce.FTONEOVERRSQUARED, 2.0, 0.3 * amp * 0.1, 1) force1.setActive(1) circleForceGroup.addForce(force1) f.addForceGroup(circleForceGroup) f.setPos(x, y, z) sfxName = random.choice(('phase_4/audio/sfx/firework_explosion_01.ogg', 'phase_4/audio/sfx/firework_explosion_02.ogg', 'phase_4/audio/sfx/firework_explosion_03.ogg')) sfx = loader.loadSfx(sfxName) sfx.setVolume(0.7) t = Sequence(Func(f.start, render, render), Func(sfx.play), Wait(0.5), Func(p0.setBirthRate, 3), Wait(2.0), Func(f.cleanup), name=getNextSequenceName('shootFireworkSprite')) t.start()
def setParticleOptions(self): self.p0.setEmitter('SphereSurfaceEmitter') if self.f0 != None: self.f.removeForceGroup(self.f0) self.f0 = ForceGroup.ForceGroup('gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, 1.5), 1.0, 0) force0.setVectorMasks(1, 1, 1) force0.setActive(1) self.f0.addForce(force0) force1 = LinearJitterForce(0.5, 0) force1.setVectorMasks(0, 0, 1) force1.setActive(1) self.f0.addForce(force1) self.f.addForceGroup(self.f0) self.p0.setPoolSize(128) self.p0.setBirthRate(5.0) self.p0.setLitterSize(12) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(5.0) self.p0.setLocalVelocityFlag(0) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(7.0) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(0.25) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) bubbleSize = 0.001 self.p0.renderer.setInitialXScale(bubbleSize * self.cardScale) self.p0.renderer.setInitialYScale(bubbleSize * self.cardScale) self.p0.renderer.setFinalXScale(bubbleSize * self.cardScale) self.p0.renderer.setFinalYScale(bubbleSize * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPNOBLEND) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(1.0) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(1.0, 0.0, -4.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(0.25) return
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleGunSmoke') self.setDepthWrite(0) self.f = ParticleEffect.ParticleEffect('MusketSmoke') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereVolumeEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('frict') force0 = LinearFrictionForce(1.0, 25.0, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleEvilSmoke') if not VoodooFire.particleDummy: VoodooFire.particleDummy = render.attachNewNode(ModelNode('VoodooFireParticleDummy')) VoodooFire.particleDummy.setDepthWrite(0) VoodooFire.particleDummy.setLightOff() VoodooFire.particleDummy.setColorScaleOff() VoodooFire.particleDummy.setFogOff() self.f = ParticleEffect.ParticleEffect('VoodooFire') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereVolumeEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('Noise') self.f.addForceGroup(f0)