🏷️ คอลัมน์พิเศษ: [Engine Breakdown: Anime Games & Physics (ชำแหละเอนจินเกมและกราฟิก)]

📌 ประเด็นสำคัญที่ต้องรู้ (Key Takeaways):

  • ไฮไลต์สำคัญ: Guilty Gear Strive ไม่ได้ใช้ Toon Shader สำเร็จรูปจาก Unreal หรือ Unity แต่ Arc System Works สร้าง Rendering Stack ของตัวเองที่ใช้เทคนิค Inverted Hull Outline ร่วมกับ Normal Warping เพื่อให้ตัวละคร 3D อ่านเป็นอนิเมะวาดมือได้สมบูรณ์แบบ
  • ข้อมูลเจาะลึก: ระบบแสงในเกมใช้ Ramp-based Lighting ที่แบ่งโทนสีเป็นขั้นบันได ไม่ใช่การ Lerp แบบนุ่มนวล และใช้ Selective Frame-Skipping เพื่อสร้างจังหวะอนิเมะโดยไม่กระทบ Hitbox
  • มุมมองน่าจับตา: นี่คือเหตุผลที่ทำไมคู่แข่งอย่าง Unreal Engine และ Unity ยังตาม ArcSys ไม่ทันในด้าน Anime Aesthetic — เพราะมันไม่ใช่เรื่องของ Shader อย่างเดียว แต่เป็น Pipeline Philosophy ทั้งระบบ

ปฐมบทแห่ง Paradox: ทำไม 3D ถึงดูเป็น 2D ได้เนียนขนาดนี้?

ย้อนกลับไปปี 2014 ตอนที่ Arc System Works ปล่อย Guilty Gear Xrd -SIGN- วงการเกมต่อสู้ถึงกับช็อก เพราะไม่มีใครเชื่อว่าตัวละครที่เห็นบนจอเป็น 3D Model จริง ๆ ทุกคนคิดว่าเป็น Sprite 2D วาดมือแบบเก่า แต่เปล่าเลย — มันคือ 3D ที่ถูกบิดเบือนการรับรู้ด้วยเทคนิคระดับศิลปะการหลอกตา

จนถึง Guilty Gear Strive (2021) ที่ยังคงพัฒนาต่อยอด Rendering Stack นี้อย่างดุเดือด กลายเป็น Benchmark ให้กับทุกสตูดิโอที่อยากทำเกมอนิเมะสไตล์ Cel-Shaded ในระดับ AAA

คำถามคือ — Paradox อยู่ตรงไหน? Paradox อยู่ตรงที่ว่า ปกติแล้ว 3D จะดูเป็น 3D เพราะแสงเงาที่คำนวณแบบ Physically-Based และ Silhouette ที่ลื่นไหลตามมุมกล้อง แต่ ArcSys กลับ ตั้งใจทำลาย หลักการเหล่านั้นทั้งหมด เพื่อให้ได้ผลลัพธ์ที่ขัดกับธรรมชาติของ 3D

Inverted Hull: เทคนิค Outline ที่ทุกคนลอก แต่ไม่มีใครทำได้เท่า

หลักการทำงานของ Inverted Hull

เทคนิค Inverted Hull (หรือ Backface Outline) เป็นเทคนิคที่หลายคนรู้จัก แต่ ArcSys ทำได้ลึกกว่านั้นมาก หลักการพื้นฐานคือ:

  • ทำ Duplicate Mesh ของตัวละครขึ้นมา 1 ชุด
  • Flip Normal ของ Mesh นั้นให้กลับด้าน
  • ขยาย Vertex ตามแนว Normal ออกไปเล็กน้อย (ปกติ 0.5-2 หน่วย)
  • Render ด้วย Front-face Culling เพื่อให้เห็นแค่ด้านหลัง
  • ผลลัพธ์คือเส้นขอบดำที่ล้อมรอบตัวละคร

แต่ปัญหาคือ ถ้าขยาย Vertex ตาม Normal ตรง ๆ มันจะเกิด Outline ที่หนาไม่สม่ำเสมอ โดยเฉพาะบริเวณที่ Normal ชี้เข้าหากล้อง (Outline จะหาย) หรือ Normal ที่หันข้าง (Outline จะหนาผิดปกติ)

เคล็ดลับ Normal-Warping ของ ArcSys

นี่คือจุดที่ Arc System Works แตกต่าง — พวกเขา แก้ไข Normal ของ Mesh ด้วยมือ ในขั้นตอน Art Pipeline แทนที่จะพึ่ง Auto-Generated Normal จาก 3D Software

ผลลัพธ์ที่ได้คือ:

  1. Outline หนาสม่ำเสมอ ทุกมุมกล้อง ไม่มีอาการ Outline หาย
  2. ควบคุมความหนาได้ตามส่วนของร่างกาย เช่น ใบหน้าจะบางกว่าแขน
  3. หลีกเลี่ยง Self-Intersection ที่ทำให้ Outline ทะลุเข้าไปใน Mesh

ในทางเทคนิคแล้ว นี่คือการ Override Vertex Attribute ใน Shader โดยใช้ Custom Normal Map เฉพาะสำหรับ Outline Pass ซึ่ง GPU Cost เพิ่มขึ้นเพียงเล็กน้อย แต่คุณภาพที่ได้คือคนละมิติ

Ramp-Based Lighting: แสงเงาแบบขั้นบันไดที่ไม่ใช่ Gradient

ทำไมต้องทิ้ง Physically-Based Lighting?

ในเกม 3D ทั่วไป แสงจะคำนวณแบบ Continuous Gradient คือค่อย ๆ เปลี่ยนจากสว่างไปมืดอย่างนุ่มนวล แต่ในอนิเมะวาดมือ แสงจะถูกแบ่งเป็น 2-3 ระดับ ชัดเจน (Highlight / Base / Shadow) ไม่มี Gradient ตรงกลาง

ArcSys จึงใช้เทคนิค Ramp Lighting หรือ Step-Function Shading โดย:

  • ใช้ 1D Texture (Ramp Map) เก็บค่า Light Threshold แบบขั้นบันได
  • Sample ค่า NdotL (Normal dot Light Direction) แล้ว Map ผ่าน Ramp Map
  • ผลลัพธ์คือแสงที่เปลี่ยนเป็นขั้นบันไดตามที่ศิลปินกำหนด

ตารางเปรียบเทียบ Shading Pipeline

เทคนิค Arc System Works (Strive) Unreal Engine Toon Unity Toon Shader (UTS)
Outline Inverted Hull + Hand-Edited Normal Post-Process Outline (Edge Detect) Inverted Hull (Auto Normal)
Lighting Ramp-Based + Custom Threshold Step Function Ramp Texture
Shadow Dynamic + Hand-Placed Shadow Map Shadow Map
Frame Timing Selective Frame-Skip Full 60fps Full 60fps
GPU Cost ต่ำ (Offline Optimization) กลาง ต่ำ-กลาง
Anime Feel สมบูรณ์แบบ ดี ดี

จะเห็นได้ว่า Unreal กับ Unity ใช้ Post-Process Outline ซึ่ง ขึ้นกับความละเอียดจอ และเกิดอาการ Outline หายเมื่อวัตถุอยู่ไกล ในขณะที่ Inverted Hull ของ ArcSys ทำงานใน Object Space จึงเสถียรทุกความละเอียด

ภาพประกอบ

Frame-Perfect Anime Illusion: หลอกตาแบบที่ Hitbox ยังแม่นยำ

Selective Frame-Skipping คือหัวใจ

นี่คือส่วนที่หลายคนไม่รู้ — Guilty Gear Strive ไม่ได้ Render ที่ 60fps เต็ม สำหรับตัวละครทุกตัวในทุกเฟรม

ArcSys ใช้เทคนิค Selective Frame-Skipping หรือที่ทีมงานเรียกว่า "Limited Animation" โดย:

  • ท่าไม้ตายหรือ Cutscene จะ Render ที่ 24fps หรือ 12fps เพื่อให้ได้จังหวะอนิเมะ
  • แต่ Hitbox และ Frame Data ยังคำนวณที่ 60fps เต็ม
  • เมื่อผู้เล่นกด Input เกมจะตอบสนองทันที ไม่มี Input Lag

Smear Frames และ Motion Blur แบบวาดมือ

อีกเทคนิคที่ ArcSys ใช้คือ Smear Frames — การบิด Mesh ให้ยืดออกในเฟรมที่ตัวละครเคลื่อนที่เร็ว เพื่อสร้างความรู้สึกของ Motion Blur แบบที่อนิเมะวาดมือทำ

ตัวอย่างชัดเจนคือท่า Sol Badguy's Volcanic Viper — ในเฟรมที่ตัวละครพุ่งขึ้น Mesh จะถูก Stretch ตามแนวตั้งอย่างรุนแรง แต่ Hitbox ยังคงเป็นสี่เหลี่ยมปกติที่คำนวณแยกจาก Visual

นี่คือเหตุผลที่ Guilty Gear Strive ยังคงเป็น Competitive Fighting Game ที่ Evo ใช้แข่งได้ ขณะเดียวกันก็ดูเป็นอนิเมะคุณภาพสูง

สำหรับใครที่อยากเจาะลึกวัฒนธรรมอนิเมะและมังงะที่อยู่เบื้องหลังสไตล์ภาพแบบนี้ แนะนำให้อ่าน คู่มือฉบับสมบูรณ์! เปิดตำนานอนิเมะและมังงะระดับมาสเตอร์พีซที่ต้องดูต้องอ่าน เพื่อเข้าใจรากฐานทางศิลปะที่ ArcSys นำมาดัดแปลง

Depth-Aware Camera Trick: กล้องที่หลอกตาผู้เล่น

เทคนิค 2.5D Composition

Guilty Gear Strive ไม่ได้เป็น 2D Fighter แท้ ๆ และไม่ใช่ 3D Arena Fighter — มันคือ 2.5D ที่ใช้กล้อง Orthographic-like เพื่อให้การเคลื่อนที่ในแนว Z แทบไม่มีผลต่อ Gameplay

แต่ในด้าน Visual กล้องกลับใช้ Perspective Projection เพื่อให้ได้ Depth ของฉากหลัง ทำให้ Stage ดูมีมิติ แต่ตัวละครยังอ่านเป็น 2D ได้

Dynamic Camera Zoom

ในท่าไม้ตาย กล้องจะ Zoom เข้า อย่างรวดเร็ว และ Rotate เล็กน้อย เพื่อสร้าง Dramatic Effect แต่ ArcSys ต้องระวังไม่ให้ Outline หนาเกินไปเมื่อกล้องเข้าใกล้ จึงมีการ Scale Outline Width ตามระยะกล้อง แบบ Dynamic

GPU Cost และ Pipeline Philosophy

หลายคนคิดว่าเทคนิคเหล่านี้ต้องกิน GPU มหาศาล แต่จริง ๆ แล้ว Arc System Works ใช้ Offline Optimization อย่างหนัก:

  • Bake Normal Warping ลงใน Mesh โดยตรง ไม่ต้องคำนวณ Runtime
  • ใช้ Ramp Texture ขนาดเล็ก (256x1 pixel) แทนการคำนวณ Lighting ซับซ้อน
  • Outline Pass ใช้ Geometry Shader เฉพาะเมื่อจำเป็น
  • Shadow ใช้ Hand-Placed ในบาง Stage เพื่อลด Shadow Map Cost

ผลลัพธ์คือเกมสามารถรันที่ 60fps บน PS4 ได้อย่างเสถียร ซึ่งน่าทึ่งมากสำหรับเกมที่ดูสวยระดับนี้

ถ้าคุณสนใจเรื่อง Rendering Pipeline ของเกมอนิเมะเพิ่มเติม สามารถดูข้อมูลเชิงลึกได้ที่ Arc System Works Official Website ซึ่งมี Technical Blog ของทีมงานเป็นระยะ

คำถามที่พบบ่อย (FAQ)

Q1: ทำไม Unreal Engine ถึงทำ Cel-Shading ได้ไม่เท่า Guilty Gear Strive?

เพราะ Unreal ใช้ Post-Process Outline ที่ขึ้นกับ Depth Buffer และความละเอียดจอ ทำให้ Outline ไม่เสถียร ในขณะที่ ArcSys ใช้ Inverted Hull ที่ทำงานใน Object Space จึงควบคุมได้แม่นยำกว่ามาก อีกทั้ง ArcSys ยังแก้ Normal ด้วยมือในทุก Mesh ซึ่ง Unreal ไม่สามารถทำได้อัตโนมัติ

Q2: Selective Frame-Skipping กระทบ Competitive Play ไหม?

ไม่กระทบเลย เพราะ Frame Data, Hitbox, และ Input Response ยังคำนวณที่ 60fps เต็ม การ Skip เฟรมเป็นแค่ Visual Trick ที่ทำให้ภาพดูเป็นอนิเมะ ไม่ได้กระทบ Logic ของเกม

Q3: Smear Frames ทำให้ Hitbox เพี้ยนหรือเปล่า?

ไม่ เพราะ Hitbox เป็น Capsule/Box Collider ที่คำนวณแยกจาก Mesh Visual อย่างสมบูรณ์ Smear Frames เป็นเพียงการบิด Render Mesh เท่านั้น

Q4: ทำไมเกมอื่นถึงลอกเทคนิคนี้ไปใช้ไม่สำเร็จ?

เพราะหัวใจไม่ใช่เทคนิค แต่เป็น Pipeline Philosophy — ArcSys ลงทุนแก้ Normal ด้วยมือทุกตัวละคร ใช้ศิลปินที่มีพื้นฐานอนิเมะวาดมือ และออกแบบ Ramp Map เฉพาะสำหรับแต่ละฉาก สตูดิโออื่นที่พยายามลอกมักลอกแค่ Shader แต่ไม่ลอกกระบวนการ Art Direction