Partikeleffekter er et essentielt værktøj i moderne spiludvikling. De bruges til at tilføje visuelle forbedringer, der kan forvandle et statisk billede til en dynamisk og levende scene. Forestil dig den dramatiske effekt af en eksplosion med flyvende fragmenter, den uhyggelige stemning fra tæt tåge, eller den fascinerende skønhed af magiske besværgelser – alt dette opnås ofte gennem brug af partikeleffekter. I Defold spilmotoren er partikeleffekter en kraftfuld komponent, der giver dig mulighed for at skabe et bredt spektrum af disse visuelle fænomener.
I sin kerne består en partikeleffekt i Defold af to hovedelementer: emittere og modifikatorer. Disse arbejder sammen for at definere, hvordan partikler genereres, bevæger sig og ændrer sig over tid. At forstå samspillet mellem disse elementer er nøglen til at mestre partikeleffekter.

- Hvad er Partikeleffekter?
- Komponenter i Partikeleffekter: Emittere og Modifikatorer
- Oprettelse af en Partikeleffekt i Defold
- Forhåndsvisning af Effekten
- Emitter-egenskaber i Detaljer
- Blandingstilstande (Blend Modes)
- Keyable Egenskaber og Kurver
- Modifikator-typer og Egenskaber i Detaljer
- Kontrol af Partikeleffekter via Script
- Materialekonstanter
- Projektkonfiguration
-
Ofte Stillede Spørgsmål om Partikeleffekter
- Kan jeg bruge flere billeder eller animationer i én partikeleffekt?
- Hvad er forskellen mellem World og Emitter Emission Space?
- Hvorfor kan jeg ikke se min partikeleffekt?
- Hvordan laver jeg en specifik effekt, f.eks. ild?
- Kan modifikatorer påvirke alle emittere?
- Hvad er forskellen på Initial Size og Life Scale?
Hvad er Partikeleffekter?
Partikeleffekter er systemer, der simulerer fænomener ved at generere et stort antal små grafiske elementer (partikler), der bevæger sig og ændrer sig over tid. De er ideelle til at repræsentere ting, der er svære at modellere individuelt, såsom væsker, røg, ild, sne, regn, stjerner, gnister, eksplosioner og meget mere. Ved at kontrollere partiklernes adfærd – deres fødsel, levetid, farve, størrelse, hastighed og interaktion med omgivelserne – kan man skabe utroligt overbevisende og stemningsfulde visuelle effekter.
Komponenter i Partikeleffekter: Emittere og Modifikatorer
Emittere
En emitter er kilden til partiklerne. Det er en positioneret form, der udsender partikler jævnt fordelt over sin overflade eller sit volumen. Hver emitter har en række egenskaber, der styrer, hvordan partiklerne fødes, samt hvordan de ser ud og opfører sig individuelt. Egenskaber som partiklens billede eller animation, dens levetid, farve, form og initialhastighed defineres på emitter-niveauet.
Modifikatorer
En modifikator er et element, der påvirker partiklernes hastighed efter, at de er blevet udsendt af en emitter. Modifikatorer kan bruges til at accelerere eller bremse partikler i en bestemt retning, få dem til at bevæge sig radialt væk fra eller hen imod et punkt, eller skabe hvirvlende bevægelser omkring et centrum. En vigtig egenskab ved modifikatorer er, at de kan påvirke enten partikler fra en specifik emitter (hvis modifikatoren er 'childed' til emitteren) eller partikler fra *alle* emittere i effekten (hvis modifikatoren er på effektniveau). Dette giver stor fleksibilitet i udformningen af komplekse effekter.
Oprettelse af en Partikeleffekt i Defold
Processen med at skabe en partikeleffekt i Defold er ligetil. Du starter med at oprette en ny partikeleffekt-fil i Assets browseren ved at vælge New... ▸ Particle FX
. Giv filen et navn, og den åbnes automatisk i Scene Editoren.
I Scene Editoren vil du se Outline panelet, som viser strukturen af din partikeleffekt. Som standard starter du med en enkelt emitter. Du kan vælge denne emitter i Outline for at se og redigere dens egenskaber i Properties panelet nedenfor.
For at tilføje flere emittere til din effekt, højreklikker du på roden af effekten i Outline og vælger Add Emitter ▸ [type]
. Du kan senere ændre typen af emitteren i dens egenskaber.
Tilføjelse af modifikatorer sker på samme måde. Højreklik på det sted i Outline, hvor modifikatoren skal placeres – enten på effektroden for at påvirke alle partikler, eller under en specifik emitter for kun at påvirke dennes partikler. Vælg Add Modifier
og derefter den ønskede modifikatortype.
Forhåndsvisning af Effekten
Under udviklingen er det afgørende at kunne se, hvordan din partikeleffekt ser ud i bevægelse. Defold-editoren gør dette nemt. Vælg View ▸ Play
fra menuen for at starte forhåndsvisningen. Du skal muligvis zoome ud i kameraet for at se hele effekten, især hvis den spreder sig over et stort område.
Du kan sætte effekten på pause ved at vælge View ▸ Play
igen, og stoppe den helt med View ▸ Stop
. Når du stopper effekten og starter den igen, nulstilles den til sin starttilstand. En stor fordel er, at når du redigerer egenskaber for en emitter eller modifikator, opdateres forhåndsvisningen øjeblikkeligt i editoren, selvom effekten er sat på pause. Dette giver hurtig iteration og feedback.
Emitter-egenskaber i Detaljer
Hver emitter har et omfattende sæt af egenskaber, der giver finmasket kontrol over partiklernes adfærd:
- Id: En unik identifikator for emitteren. Nyttig, hvis du skal referere til specifikke emittere fra scripts eller materialekonstanter.
- Position/Rotation: Transformationen af emitteren i forhold til Partikel FX-komponenten.
- Play Mode: Styrer, hvordan emitteren afspilles.
Once
får emitteren til at stoppe efter dens varighed er udløbet.Loop
får den til at genstarte kontinuerligt. - Size Mode: Bestemmer partikelstørrelsen, især relevant for flipbook-animationer.
Auto
bruger størrelsen fra kildebilledet.Manual
bruger den defineredeInitial Size
egenskab. - Emission Space: Definerer det geometriske rum, partiklerne eksisterer i.
World
betyder, at partiklerne bevæger sig uafhængigt af emitteren.Emitter
betyder, at partiklerne bevæger sig relativt til emitterens transformation. Vigtigt for effekter der skal følge en bevægelig genstand. - Duration: Hvor mange sekunder emitteren skal udsende partikler.
- Start Delay: Hvor mange sekunder emitteren skal vente, før den begynder at udsende partikler.
- Start Offset: Hvor mange sekunder ind i partikelsimulationen emitteren skal starte. Bruges til 'prewarming' en effekt, så den ser ud til at have kørt i et stykke tid allerede ved start.
- Image: Billedfilen (Tile source eller Atlas), der bruges til teksturering og animation af partiklerne.
- Animation: Den specifikke animation fra
Image
filen, der skal bruges på partiklerne. - Material: Materialet, der bruges til at rendere partiklerne. Bestemmer hvordan partiklerne skygges og blandes.
- Blend Mode: Styrer, hvordan partikelgrafikken blandes med det, der er bagved. Se afsnit om Blandingstilstande nedenfor.
- Max Particle Count: Det maksimale antal partikler fra denne emitter, der kan eksistere samtidigt.
- Emitter Type: Formen på emitteren.
Typer af Emitter-former:
- Circle: Udsender partikler fra en tilfældig position inden for en cirkel. Partiklerne rettes udad fra centrum. Diameter styres af Emitter Size X. God til radiale eksplosioner eller spray.
- 2D Cone: Udsender partikler fra en tilfældig position inden for en flad kegle (trekant). Partiklerne rettes ud af toppen. Emitter Size X er bredden af toppen, Y er højden. Nyttig for flade, retningsbestemte effekter.
- Box: Udsender partikler fra en tilfældig position inden for en boks. Partiklerne rettes op langs boksens lokale Y-akse. Emitter Size X, Y og Z definerer dimensionerne. Z=0 for en 2D-effekt. God til røg, tåge eller partikler, der stiger op.
- Sphere: Udsender partikler fra en tilfældig position inden for en kugle. Partiklerne rettes udad fra centrum. Diameter styres af Emitter Size X. God til 3D-eksplosioner eller tåge i et volumen.
- Cone: Udsender partikler fra en tilfældig position inden for en 3D-kegle. Partiklerne rettes ud gennem topdisken. Emitter Size X er diameteren af topdisken, Y er højden af keglen. Perfekt til flammer, jetstråler eller magiske stråler.
- Particle Orientation: Styrer, hvordan partiklerne er orienteret.
Default
er en standard orientering.Initial Direction
bevarer partiklens startorientering.Movement Direction
justerer orienteringen, så den følger partiklens hastighed (god til røg eller hale-effekter). - Inherit Velocity: En skaleringsværdi, der bestemmer, hvor meget af emitterens egen hastighed partiklerne arver. Kun tilgængelig, når Emission Space er sat til World.
- Stretch With Velocity: Hvis markeret, strækkes partiklen i bevægelsesretningen. Kan give en følelse af fart eller form (f.eks. for regndråber).
Blandingstilstande (Blend Modes)
Blend Mode
-egenskaben definerer, hvordan partikelgrafikken blandes med baggrunden. Dette er afgørende for at opnå den ønskede visuelle effekt, især for gennemsigtighed, lys og farveinteraktion.
Blandingstilstand | Beskrivelse | Formel |
---|---|---|
Alpha | Standard blanding med gennemsigtighed. Den mest almindelige tilstand. | src.a * src.rgb + (1 - src.a) * dst.rgb |
Add | Lysner baggrunden ved at lægge partiklens farveværdier til baggrundens. God til lysende effekter som ild, gnister eller energi. | src.rgb + dst.rgb |
Multiply | Mørkner baggrunden ved at gange partiklens farveværdier med baggrundens. God til skygger, snavs eller farvefiltre. | src.rgb * dst.rgb |
Screen | Det modsatte af Multiply. Lysner både baggrunden og partiklens farveværdier. Ligner Add, men med en anden karakter. | src.rgb - dst.rgb * dst.rgb |
Keyable Egenskaber og Kurver
Mange emitter-egenskaber er 'keyable', hvilket betyder, at deres værdi kan styres over tid ved hjælp af en kurve. Dette giver mulighed for at skabe dynamiske effekter, hvor partiklernes egenskaber ændrer sig gradvist eller pludseligt i løbet af enten emitterens varighed eller partiklens egen levetid.
For keyable egenskaber ser du to felter: en værdi og en 'spread'. 'Spread' er en variation, der anvendes tilfældigt for hver enkelt partikel. Hvis værdien er 50 og spread er 3, vil hver partikel få en værdi mellem 47 og 53 (50 +/- 3). Dette tilføjer naturlig variation til effekten.
Ved at markere 'key'-knappen ved siden af en egenskab, bliver dens værdi styret af en kurve. Du redigerer disse kurver i Curve Editor, som typisk findes blandt de nederste faner i editoren. I Curve Editor kan du tilføje, slette og flytte kontrolpunkter samt justere tangenter for at forme kurvens forløb. En egenskab, der styres af en kurve, kan kun redigeres i Curve Editor, ikke direkte i Properties panelet.
Keyable Egenskaber over Emitterens Spilletid (Play Time):
Disse egenskaber styres af en kurve over emitterens samlede Duration
. Alle partikler udsendt på et givent tidspunkt i emitterens levetid vil arve egenskaber baseret på kurvens værdi på det tidspunkt.
- Spawn Rate: Antallet af partikler, der udsendes per sekund. Kan bruges til at starte med mange partikler og falde til nul (f.eks. en eksplosion, der hurtigt aftager) eller omvendt.
- Emitter Size X/Y/Z: Dimensionerne af emitterens form. Kan bruges til at få kilden til at vokse eller skrumpe over tid.
- Particle Life Time: Levetiden for hver udsendt partikel, i sekunder. Partikler udsendt senere i emitterens levetid kan have kortere eller længere levetid.
- Initial Speed: Den initiale hastighed for hver udsendt partikel.
- Initial Size: Den initiale størrelse for hver udsendt partikel (hvis Size Mode er Manual).
- Initial Red/Green/Blue/Alpha: Den initiale farvetone (RGB) og gennemsigtighed (Alpha) for partiklerne. Kan bruges til at ændre farven på partikler, der udsendes over tid.
- Initial Rotation: Den initiale rotation (i grader) for partiklerne.
- Initial Stretch X/Y: De initiale stræk-værdier for partiklerne.
- Initial Angular Velocity: Den initiale vinkelhastighed (i grader/sekund) for hver partikel.
Keyable Egenskaber over Partiklens Levetid (Life Time):
Disse egenskaber styres af en kurve over den enkelte partikels levetid, fra 0% (når partiklen fødes) til 100% (lige før den dør). Hver partikel følger den samme kurve uafhængigt af, hvornår den blev født.
- Life Scale: Skaleringen af partiklen over dens levetid. Meget almindeligt brugt til at få partikler til at skrumpe ind, før de dør (f.eks. røg eller gnister).
- Life Red/Green/Blue/Alpha: Farvetone og gennemsigtighed over partiklens levetid. Essentielt for at få partikler til at falme ud (Alpha) eller skifte farve (RGB) over tid (f.eks. flammer der skifter fra gul til rød til sort).
- Life Rotation: Rotation (i grader) over partiklens levetid. Bruges til at få partikler til at rotere, mens de er i live.
- Life Stretch X/Y: Strækning over partiklens levetid.
- Life Angular Velocity: Vinkelhastighed over partiklens levetid.
Kombinationen af keyable egenskaber over Play Time og Life Time, sammen med Spread-værdierne, giver mulighed for at skabe utroligt rige og varierede effekter, hvor både partiklerne selv og den samlede effekt ændrer sig dynamisk over tid.
Modifikator-typer og Egenskaber i Detaljer
Modifikatorer påvirker partiklernes hastighed og dermed deres bane. Der er fire typer tilgængelige:
- Acceleration: Anvender en konstant acceleration i en bestemt retning (defineret af modifikatorens Rotation). Simulerer f.eks. tyngdekraft eller vind.
- Drag: Reducerer partiklernes acceleration proportionalt med deres hastighed. Virker som luftmodstand eller friktion, der bremser partiklerne.
- Radial: Tiltrækker eller frastøder partikler mod/fra modifikatorens position. Kan skabe implosioner, eksplosioner eller hvirvler, der trækker partikler mod et centrum.
- Vortex: Anvender en kraft, der skaber en cirkulær eller spiralformet bevægelse omkring modifikatorens position. God til orkaner, hvirvelvinde eller magiske portaler.
Modifikatorer har også egenskaber:
- Position/Rotation: Transformationen af modifikatoren i forhold til dens parent (enten effektroden eller en specifik emitter).
- Magnitude: Styrken af modifikatorens effekt på partiklerne.
- Max Distance: Den maksimale afstand, inden for hvilken partikler påvirkes af denne modifikator. Bruges kun for Radial og Vortex modifikatorer.
Kontrol af Partikeleffekter via Script
I mange tilfælde vil du have brug for at starte eller stoppe en partikeleffekt dynamisk fra et script, f.eks. når en handling sker i spillet (en fjende dør, en dør åbnes, en magisk besværgelse kastes). Dette gøres nemt ved at sende beskeder til partikeleffekt-komponenten.
-- Start effekten med ID'et "particles" i det aktuelle game object particlefx.play("#particles") -- Stop effekten med ID'et "particles" i det aktuelle game object particlefx.stop("#particles")
"#particles"
er her adressen til partikeleffekt-komponenten. Husk at bruge den korrekte adresse for din komponent.
Det er vigtigt at bemærke, at hvis game objectet, som partikeleffekt-komponenten tilhører, slettes, vil de partikler, der allerede er blevet udsendt, fortsætte deres simulation, indtil deres levetid udløber. Selve emitteren stopper dog med at udsende nye partikler.
Partikeleffekter kan også styres fra GUI-scripts, hvis komponenten er en del af en GUI-scene. Se den relevante dokumentation for GUI Particle FX for detaljer om dette.
Materialekonstanter
Standardmaterialet for partikeleffekter har visse konstanter, der kan ændres via script for at påvirke effekten globalt. Den mest almindelige er tint
.
tint
er en vector4
, der repræsenterer den overordnede farvetone for partikeleffekten. De fire komponenter (x, y, z, w) svarer typisk til Rød, Grøn, Blå og Alpha (gennemsigtighed). Du kan ændre denne konstant ved hjælp af particlefx.set_constant()
og nulstille den med particlefx.reset_constant()
.
Projektkonfiguration
game.project
-filen indeholder også visse indstillinger, der er relateret til partikler. Disse er typisk mere tekniske indstillinger, der påvirker, hvordan partikelsystemet opfører sig eller optimeres på et lavere niveau.
Ofte Stillede Spørgsmål om Partikeleffekter
Her er svar på nogle almindelige spørgsmål, når man arbejder med partikeleffekter i Defold:
Kan jeg bruge flere billeder eller animationer i én partikeleffekt?
Ja, men typisk via en enkelt emitter, der bruger en Atlas eller Tile Source med flere billeder eller animationer. Du vælger så den specifikke animation, der skal bruges på partiklerne fra den emitter.
Hvad er forskellen mellem World og Emitter Emission Space?
I World Space bevæger partiklerne sig uafhængigt af emitteren, når de er født. Hvis emitteren bevæger sig, fortsætter partiklerne deres bane i verdenskoordinater. I Emitter Space bevæger partiklerne sig relativt til emitterens position og rotation. Hvis emitteren bevæger sig, følger partiklerne med den. World Space er godt til effekter, der efterlades (f.eks. røgspor), mens Emitter Space er godt til effekter, der er fastgjort til en genstand (f.eks. en jetstråle fra en raket).
Hvorfor kan jeg ikke se min partikeleffekt?
Der kan være flere årsager: Tjek emitterens position og kameraets zoom i editoren. Tjek Max Particle Count
– er den for lav? Tjek Duration
og Play Mode
– er emitteren færdig med at afspille? Tjek Spawn Rate
– er den sat til nul? Tjek Image
og Material
– er de korrekt tildelt? Tjek Blend Mode
– er det sat korrekt op for gennemsigtighed? Tjek Initial Alpha
og Life Alpha
kurven – er partiklerne fuldt gennemsigtige?
Hvordan laver jeg en specifik effekt, f.eks. ild?
Ild er ofte en kombination af en Cone eller Box emitter med Movement Direction
orientering, en Atlas-animation af flammer, Add
blend mode, en Life Scale
kurve der skrumper partiklerne, og en Life Alpha
kurve der får dem til at falme ud. Life Red/Green/Blue
kurver kan også bruges til at skifte farve fra gul/orange til rød/sort over levetiden. Initial hastighed og en let Acceleration mod toppen kan simulere opdrift.
Kan modifikatorer påvirke alle emittere?
Ja, hvis en modifikator placeres direkte under roden af partikeleffekt-komponenten i Outline panelet, vil den påvirke partikler fra alle emittere i den effekt.
Hvad er forskellen på Initial Size og Life Scale?
Initial Size
er den størrelse, en partikel har, når den fødes. Dette kan variere baseret på en kurve over emitterens spilletid. Life Scale
er en *faktor*, der anvendes på partiklens størrelse over dens egen levetid. Hvis en partikel starter med størrelse X, og dens Life Scale er 0.5 halvvejs gennem dens levetid, vil dens størrelse på det tidspunkt være X * 0.5.
Partikeleffekter er et dybt emne med mange muligheder for kreativitet. Ved at eksperimentere med emitter-egenskaber, keyable kurver og modifikatorer kan du skabe et uendeligt antal visuelle effekter, der vil berige dine spil og fange spillernes opmærksomhed.
Hvis du vil læse andre artikler, der ligner Partikeleffekter i Defold: Skab Magiske Verdener, kan du besøge kategorien Grafik.