Praneat Blog

BosStraf
20 Apr 2020
Sinking.png

มารู้จักกับ Unity Particle

Particle Effect คืออะไร Particle Effect นั้น คือ Effect ต่างๆ ที่เราเห็นในเกม เช่น พวก ลำแสงจากปืน ระเบิด หรือ ไฟ ต่างๆ เหล่านี้ ล้วนเป็น Particle Effect ทั้งนั้น และวันนี้ เราจะมาทำ ความรู้จักกับ ระบบ Particle Effect ของ โปรแกรม Unity3d กัน

(ตัวอย่าง Particle System ของ Unity)



Particle Effect ของ Unity3d ถูกเรียกว่า Particle System ซึ่งสามารถสร้างง่ายๆ โดยการไปที่ เมนู GameObject > Effects > Particle System ซึ่ง Particle System นั้นจะประกอบไปด้วย Module สำคัญ 3 อย่างคือ ตัว Main Emission และ Renderer โดย แต่ละอย่างมีหน้าที่ และ ส่วนประกอบ ที่สำคัญ ดังนี้

Main Module

มีหน้าที่สำหรับการกำหนดค่าเริ่มต้นโครงสร้างของ Particle ไม่ว่าจะเป็น ขนาด สี การหมุน

  • Duration คือ ระยะเวลาในการปล่อย Particle ต่อรอบ
  • Looping คือ การเล่นวนซ้ำไปเรื่อยๆ
  • Prewarm คือ การสร้าง Particle 1 loop ตั้งแต่แรกตั้งแต่เกิด (จำเป็นต้องเปิดLooping)
  • Start Delay คือ การรอเวลาก่อนจะเริ่มปล่อยParticle
  • Start Lifetime คือ ระยะเวลาในการแสดงผลของParticle 1 หน่วย
  • Start Speed คือ ความเร็วเริ่มต้นในการเคลื่อนที่ของ Particle
  • Start Size คือ ขนาดเริ่มต้นของ Particle
  • 3D Start Size คือ การทำให้ Size ของParticle เป็นการ Scale แบบ 3D
  • Start Rotation คือ การหันหน้าเริ่มต้นของParticle
  • 3D Start Rotation คือ การทำให้ หันหน้า ของParticle เป็นการ หมุน แบบ 3D
  • Randomize Rotation คือ การสุ่มหมุนParticle มีค่าตั้งแต่ 0-1
  • Start Color คือ การ Tint สีเริ่มต้นเข้าไปใน Particle
  • Gravity Modifier คือ ค่าแรงดึงดูดที่มากระทำต่อ Particle
  • Simulation Space คือ การเลือกว่าจะให้Particleของเรานั้นถูกสร้างบน world หรือ local space
  • Simulation Speed คือ ความเร็วในการ ปล่อย Particle
  • Delta Time คือ การเลือกว่าจะให้ Particle ขึ้นกับ Time Scale ของ Unity หรือไม่
  • Scaling Mode คือ การเลือกว่าจะให้ Particle ของเรานั้น Scale กับ world หรือ local
  • Play On Awake คือ การเริ่มเล่น Particle อัตโนมัติ ตอนเกม Object Awake หรือไม่
  • Max Particle คือ จำนวน หน่วย สูงสุดที่ Particle จะแสดงผลพร้อมกัน

Emission Module

มีหน้าที่สำหรับการปล่อย Particle โดยการรับค่า หน้าตาพื้นฐาน ของ Particle มาจาก Main Module

  • Rate over Time คือ จำนวนการปล่อย Particle ในระยะเวลาหนึ่ง
  • Rate over Distance คือ จำนวนการปล่อย Particle ในระยะทางที่GameObjectเปลี่ยนไป(ถ้าGameObjectไม่เคลื่อนที่ จะไม่เกิดอะไรขึ้นเลย)
  • Burst คือ การปล่อย Particle ออกมาตามจำนวนหน่วยที่กำหนด ในเวลาที่เราตั้งไว้

Renderer Module

มีหน้าที่ ในการ Render หน้าตา ของ Particle โดยการรับค่า มาจาก Emssion Module ในบทความนี้ จะเสนอแต่ส่วนที่จำเป็นต้องใช้ในการแสดงผลหลักๆ ก่อน

  • Render Mode คือ การเลือกว่าจะให้ Particle ของเรา Render เป็นแบบไหน
  • Material คือ Materialที่เราจะนำมาใส่ให้ Particleของเรา
  • Min Particle Size คือ ขนาดเล็กสุดของ Particle 1 หน่วย
  • Max Particle Size คือ ขนาดใหญ่สุดของ Particle 1 หน่วย
  • Render Alignment คือ การเลือกการจัดเรียงการRender ของ Particle ว่าจะหันหน้าไปทางใด