Particle FX - kuimoani/defold GitHub Wiki
Particle FX
μ΄ λ§€λ΄μΌμ νν°ν΄FX μ»΄ν¬λνΈκ° μ΄λ»κ² λμνλμ§, νν°ν΄μ μκ°μ ν¨κ³Όλ₯Ό μ΄λ»κ² μμ±νκ³ μμ νλμ§ μ€λͺ ν©λλ€.
ParticleFX Overview Video
νν°ν΄ ν¨κ³Όλ₯Ό μ¬μ©νλ©΄ κ²μμ μκ°μ λ§€λ ₯μ λμ΄λ κ²μ΄ κ°λ₯ν©λλ€. μλ λΉλμ€μμ Defoldμ νν°ν΄ ν¨κ³Όκ° μ΄λ»κ² λμνλμ§ μ°Έκ³ λ°λλλ€.
μ νλΈ λ§ν¬: https://youtu.be/qzyB1lXNDKQ


Concepts
- ParticleFX - νν°ν΄ ν¨κ³Όλ₯Ό λνλ΄λ μ»΄ν¬λνΈ
- Emitter - λͺ¨μμ λ°λΌ μΌμ νκ² λΆν¬λ νν°ν΄ μ μλ₯Ό λ°©μΆ(emit)νλ μμΉκ° μ§μ λ λͺ¨ν(positioned shape)
- Modifier - μ€ν°λ νν°ν΄λ€μ μλ(velocity), κ°μλ(acceleration), μ ν(drag), λ°©μ¬ν(radial), νμ€λ¦¬ν(vortex)μ μν₯μ μ€
- Tile source - ν μ€μ³μ νλ¦½λΆ μ λλ©μ΄μ μ μΆκ°ν΄μ μ¬μ©λ¨ (2D graphics λ¬Έμ μ°Έκ³ )
νν°ν΄FX νμΌμ μμ±νκ³ μ΄μ΄λ³΄λ©΄ Outlineμ°½μμ λ§μ°μ€ μ€λ₯Έμͺ½ λ²νΌμ λλ¬ emiterμ modifierλ₯Ό μΆκ°ν μ μμ΅λλ€.


Previewing
νν°ν΄ ν¨κ³Όλ₯Ό 미리보기 νλ €λ©΄, μ¬ μλν°λ₯Ό μ¬μ©νλ©΄ λ©λλ€. Scene Editing μμ μμΈν μ€λͺ μ λ³Ό μ μμ΅λλ€. μ€νμ΄μ€ ν€λ₯Ό μ¬μ©νλ©΄ νν°ν΄ ν¨κ³Όμ 미리보기λ₯Ό μμνκ³ μ€μ§ν μ μμ΅λλ€. νν°ν΄ ν¨κ³Όκ° νλ μ΄μ€μΈμ§ μλμ§μ μκ΄ μμ΄, μ€μκ°μΌλ‘ μ‘°μ (tweak)νλ©΄μ νν°ν΄μ μ λ°μ΄νΈ ν μ μμ΅λλ€.
Value tweaking
μ«μλ‘ λ λͺ¨λ μμ±λ€μ altν€λ₯Ό λλ₯Έμ± λ§μ°μ€ ν (νΉμ νΈλν¨λμμ μ€ν¬λ‘€ μ μ€μ³)μ μ¬μ©νμ¬ μ‘°μ ν μ μμ΅λλ€. altν€λ₯Ό ctrlν€μ κ°μ΄ λλ¬ μ¬μ©νλ©΄ 10λ°°κ° μ¦κ°λ κ°μΌλ‘ μ‘°μ ν μ μμ΅λλ€.
Keying Properties

μκ° λμ λ°λΌ λ€λ₯Έ μμ±κ°μ ν€λ₯Ό λ§λ€μ΄ μ½μ (keying)ν μ μμ΅λλ€. λ€μ λ§ν΄, μ΄λ€ κ°μ μκ°μ λ°λΌ λ³ν μ μλ€λ κ²μ μλ―Έν©λλ€. μλμμ μ΄ κΈ°λ₯μ κ°μ§ μμ±λ€μ λ³Ό μ μμ΅λλ€:
- ν€κ°μ μ½μ
νλ €λ©΄:
- Properties μ°½μμ ν μ€νΈ νλμ λκ³ λ§μ°μ€ μ€λ₯Έμͺ½ λ²νΌμ λλ¬μ Curveλ₯Ό μ ννλ©΄ 곑μ μ΄ μΆκ°λκ³ ν μ€νΈ νλμ λ°°κ²½ μμμ΄ λ ΉμμΌλ‘ λ°λλλ€.
- Curve Editor μ°½(νλ¨μ ν μ€μμ μ¬μ© κ°λ₯)μΌλ‘ κ°μ 곑μ μ μμ ν©λλ€. μ (point)κ³Ό νμ νΈ(tangent)λ₯Ό ν΄λ¦ λλκ·Έ ν μ μμ΅λλ€. λλΈν΄λ¦ νλ©΄ μ μ΄ μΆκ°λκ³ μμ λ©λλ€. (Curve Editor μ°½μμ 곑μ μ λ§μ°μ€ μ€λ₯Έμͺ½ λ²νΌμ λλ¬λ λ©λλ€.)
- ν€ μμ±(Keyed properties)μ Propertiesμ°½μμ μμ ν μ μμ΅λλ€. μ€μ§ Curve Editor μ°½μμλ§ κ°λ₯ν©λλ€.
- ν€ μμ±μ μμ νλ €λ©΄ ν΄λΉ ν μ€νΈ νλμμ λ§μ°μ€ μ€λ₯Έμͺ½ λ²νΌ λλ¬ λ€μ Curveλ₯Ό μ ννλ©΄ λ©λλ€.
- Fν€λ₯Ό λλ₯΄λ©΄ Curve Editorμ 곑μ μ μ²΄κ° λ³΄μ΄κ²λ ν¬κΈ°λ₯Ό μλμΌλ‘ λ§μΆ₯λλ€(auto-zoom).
Spread
μμ±μ λ κ°μ νλκ° μλ κ²½μ°, 첫λ²μ§Έ νλλ κ°(value)μ΄κ³ λλ²μ§Έ νλλ μ€νλ λ(Spread)μ λλ€. κ°(value)μ λΉμ μ΄ κΈ°μ€μΌλ‘ μ§μ ν κ°μ΄κ³ , μ€νλ λ(Spread)λ μ€ν°λ κ° νν°ν΄μ λ°μλλ λλ€κ°μ λ²μμ λλ€. μλ₯Ό λ€μ΄ κ°μ΄ 50μ΄κ³ μ€νλ λκ° 10μ΄λ©΄, μ€ν°λ κ° νν°ν΄μ 50μ κΈ°μ€μΌλ‘ +/- 10μ κ°μ κ°μ§κ² λ©λλ€.
Reference
Emitter Properties (λ°©μ¬μ²΄ μμ±λ€)
- Id - emitter μλ³μ (νΉλ³ν emitterλ₯Ό μν΄ λ λλ§ μμ(render constants)λ₯Ό μ€μ ν΄μΌ ν λ μ¬μ©λ¨)
- Mode - emitterκ° μ€νκΈ°κ°(duration)μ λλ¬νλ©΄ λ©μΆμ§(once), μ¬μμν μ§(loop) μ€μ ν¨
- Duration - λͺ μ΄ λμ νν°ν΄ μ μλ₯Ό λ°©μΆ(emit)ν μ§ μ€μ
- Space - μ€ν°λ μ μλ€μ΄ μ‘΄μ¬ν κΈ°ννμ μΈ κ³΅κ°. Worldλ νν°ν΄μ΄ κ²μ μλμ λ¨κ²¨μ Έ emitterμ λ 립μ μΌλ‘ μμ§μ΄λ©°, Emitterλ emitterμ μμΉμ μλμ μΌλ‘ μμ§μ
- Position/rotation - νν°ν΄FX μ»΄ν¬λνΈμ κ΄κ³λ emitterλ₯Ό λ³ν(transform)ν¨
- Tile Source - νν°ν΄μ ν μ€μ³λ₯Ό μ νκ±°λ μ λλ©μ΄μ μ²λ¦¬λ₯Ό μν΄ νμΌ μμ€ νμΌμ μ€μ ν¨
- Animation - νμΌμμ€μ μ΄λ€ μ λλ©μ΄μ μ νν°ν΄μ μ¬μ©ν μ§ μ€μ ν¨
- Material - νν°ν΄μ μμ΄λ© νλλ° νμν λ©ν°λ¦¬μΌμ μ€μ ν¨
- Blend Mode - λΈλ λ©μ μν΄ Alpha, Add, Add Alpha, Multiplyλ₯Ό μ€μ ν¨
- Particle Orientation - νν°ν΄μ΄ ν₯νλ λ°©ν₯μ μ€μ ν¨. Default(μ λ λ°©ν₯) νΉμ Initial Direction μ€μ κ°λ₯
- Inherit Velocity - νν°ν΄λ€μ΄ μμλ°λ emitterμ μλ ₯μ μ€μ ν¨. μ΄ κ°μ Space μμ±μ΄ Worldλ‘ μ ν λμ΄ μμ λ μ¬μ© κ°λ₯ν¨. emitterμ μλλ λ§€ νλ μ λ§λ€ μΆμ (estimate)λ¨
- Max Particle Count - emitterμμ μΌλ§λ λ§μ νν°ν΄ μ μκ° λμμ μ‘΄μ¬νλμ§ μ€μ
- Type - emitterμ λͺ¨ν(shape)
- Circle - 2D μνμ μ€μ¬μ μμ λ°κΉ₯ λ°©ν₯μΌλ‘ νν°ν΄μ λ°©μΆν¨. μ§λ¦μ Emitter Size X κ°μΌλ‘ μ€μ κ°λ₯
- 2D Cone - 2D μλΏμ μλμͺ½ μ½λμμ μλΏμ μλ°©ν₯μΌλ‘ νν°ν΄μ λ°©μΆν¨. Emitter Size X κ°μΌλ‘ μλ¨μ μ§λ¦μ μ€μ νκ³ Y κ°μΌλ‘ λμ΄λ₯Ό μ€μ ν¨
- Box - 3D λ°μ€λ λ‘컬 Y μΆ(axis)μ λ°λΌ νν°ν΄μ λ°©μΆν¨. Emitter Size X, Y, Z κ°μΌλ‘ κ°κ° λμ΄, λμ΄, κΉμ΄λ₯Ό μ€μ ν¨
- Sphere - 3D ꡬ체λ μ€μ¬μ μμ λ°κΉ₯ λ°©ν₯μΌλ‘ νν°ν΄μ λ°©μΆν¨. μ§λ¦μ Emitter Size X κ°μΌλ‘ μ€μ κ°λ₯
- Cone - 3D μλΏμ μλμͺ½ μ½λμμ μλΏμ μλ°©ν₯μΌλ‘ νν°ν΄μ λ°©μΆν¨. Emitter Size X κ°μΌλ‘ μλ¨μ μ§λ¦μ μ€μ νκ³ Y κ°μΌλ‘ λμ΄λ₯Ό μ€μ ν¨
- Start Delay - νν°ν΄FXκ° μμλ ν emitterκ° νν°ν΄μ λ°©μΆνκΈ° μ κΉμ§ μΌλ§λ λκΈ°ν μ§ μ€μ ν¨
Keyable Emitter Properties (μ‘°μ κ°λ₯ν λ°©μ¬μ²΄ μμ±λ€)
μ΄λ€ μμ±λ€μ κ°(value)κ³Ό μ€νλ λ(spread)λΌλ 2κ°μ νλλ₯Ό κ°μ§κ³ μμ΅λλ€. μ΄ κ°λ€μ emitterμ νλ μ΄ μκ°(duration) λμ μ‘°μ ν μ μμ΅λλ€. μ€νλ λλ κ°κ° μ€ν°λ νν°ν΄ μ μλ€μ΄ λλ€νκ² λ³νλ κ°μ λ²μλ₯Ό μ΄λ»κ² ν κ²μΈμ§ μ μν©λλ€. μ€νλ λλ νμ¬ κ°μ ν©μ°λ©λλ€.
- Spawn Rate - μ΄λΉ μΌλ§λ λ§μ νν°ν΄μ λ°©μΆν μ§ μ€μ
- Emitter Size X/Y/Z - emitter λͺ¨ν(shape)μ ν¬κΈ°(dimensions)(μμ μ€λͺ μ°Έκ³ )
- Particle Life Time - μ€ν°λ νν°ν΄μ΄ μΌλ§λ μ€λ μ΄μ μλκ°λ₯Ό μ€μ
- Initial Speed - μ€ν°λ νν°ν΄μ μ΄λ°μ μΌλ§λ 빨리 μμ§μ΄λμ§ μ€μ
- Initial Size - μ€ν°λ νν°ν΄μ΄ μ΄λ°μ μΌλ§λ ν°μ§ μ€μ
- Initial Red/Green/Blue/Alpha - νν°ν΄λ€μ μ»¬λ¬ κ°λ€μ μ€μ
Keyable Particle Properties (μ‘°μ κ°λ₯ν νν°ν΄ μμ±λ€)
μ΄ μμ±κ°λ€μ νν°ν΄μ μλͺ μ λ°λΌ μ‘°μ (keying)λ μ μμ΅λλ€.
- Life Scale - νν°ν΄μ ν¬κΈ°λ₯Ό μλͺ λμ μΌλ§λ νλμΆμν μ§ μ€μ
- Life Red/Green/Blue/Alpha - νν°ν΄μ μμμ μλͺ λμ μ΄λ»κ² μμΉ (tint)ν μ§ μ€μ
Modifier Properties (μμ μ μμ±λ€)
- Position/rotation - λΆλͺ¨μ μλμ μΈ(relative) modifierλ₯Ό λ³ν(transform)
- μ’
λ₯
- Acceleration - μμΉκ°μ΄ μλ(no position) κ°μλμ λ°©ν₯. μ€λ ₯ κ°μκ±Έ ννν λ μ΄ κ°μ μ¬μ©ν¨
- Drag - μ μμ μλμ λΉλ‘νμ¬ κ°μμ κ°μμν€λ μ νκ°. 곡기 μ νμ΄λ μ 체(fluid) κ°μκ±Έ νν ν λ μ΄ κ°μ μ¬μ©ν¨
- Radial - λ°©μ¬ν(radial)μ μ€μ¬μμ νν°ν΄μ λ°©μ¬νκ±°λ μ€μ¬μΌλ‘ λμ΄ λΉκΉ. μμ νμ± κ°μκ±Έ ννν λ μ¬μ©ν¨
- Vortex - νμ€λ¦¬ν(vortex)μ μ€μ¬μ μ£Όμμ μνμ΄λ λμ ν λ°©ν₯μΌλ‘ νν°ν΄ μ μλ€μ μν₯μ μ€. λΈλνμ΄λ ν λ€μ΄λ κ°μκ±Έ ννν λ μ¬μ©
- Max Distance - νν°ν΄ μ μλ€μ΄ νμ¬ Modifierμ μν₯μ λ°κ² λλ μ΅λ 거리λ₯Ό μ€μ ν¨. Radialκ³Ό Vortexμμλ§ μ€μ κ°λ₯ν¨.




Keyable Modifier Properties (μ‘°μ κ°λ₯ν μμ μ μμ±λ€)
μ΄λ€ μμ±λ€μ κ°(value)κ³Ό μ€νλ λ(spread)λΌλ 2κ°μ νλλ₯Ό κ°μ§κ³ μμ΅λλ€. μ΄ κ°λ€μ emitterμ νλ μ΄ μκ°(duration) λμ μ‘°μ λ μ μμ΅λλ€. μ€νλ λλ κ°κ° μ€ν°λ νν°ν΄ μ μλ€μ΄ λλ€νκ² λ³νλ κ°μ λ²μλ₯Ό μ΄λ»κ² ν κ²μΈμ§ μ μν©λλ€. μ€νλ λλ νμ¬ κ°μ ν©μ°λ©λλ€.
- Magnitude - μμ μκ° νν°ν΄μ λ―ΈμΉλ ν¨κ³Όμ μμ μ€μ ν¨