หลุด! ชำแหละเวทมนตร์ลับ Arc System Works: ทำไม Guilty Gear หลอกตาคุณว่าเป็น 2D ทั้งที่เรนเดอร์ 3D เต็มรูปแบบ

มีอยู่วันหนึ่งในปี 2014 ที่ชาวเกมทั่วโลกนั่งดูตัวอย่างเกม Guilty Gear Xrd -SIGN- ครั้งแรก แล้วเกิดคำถามเดียวกันหมดในหัวว่า "นี่มันสไปรต์ 2D วาดมือชัดๆ" จนกระทั่งมีคนปล่อยคลิปเบื้องหลังที่หมุนกล้องรอบตัวละครในโหมด Photo Mode แล้วทุกอย่างก็พังทลายลง — ตัวละครที่ดูเหมือนภาพวาด 2D ทั้งเส้นขอบคมกริบ เงาแบนเรียบ และแสงที่ไม่เคยเปลี่ยนทิศ กลับเป็น โมเดล 3D เต็มตัว ที่หมุนได้ 360 องศาแบบไม่มีอะไรซ่อน

นี่ไม่ใช่การตลาดหลอกลวง แต่มันคือ วิศวกรรมกราฟิกระดับสูงสุด ที่ทีม Arc System Works ใช้เวลาเกือบทั้งทศวรรษในการไขปริศนาว่า "ทำอย่างไรให้ 3D ดูเป็น 2D ได้อย่างสมบูรณ์แบบ" และวันนี้เราจะรื้อเอนจินทั้งหมดออกมาชำแหละกันแบบถึงกระดูก

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

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

  • ไฮไลต์สำคัญ: Arc System Works ไม่ได้ใช้เทคนิค Cell-Shading ธรรมดา แต่ใช้การ "กลับด้าน Normal + ปั้นทิศทางแสงด้วยมือ" เพื่อบังคับให้แสง 3D ตกในตำแหน่งที่ศิลปินวาดต้องการเท่านั้น
  • ข้อมูลเจาะลึก: ตัวละคร Guilty Gear Xrd และ Strive ถูกอนิเมตที่ราว 12–15 fps บนเกมที่รัน 60fps พร้อมเทคนิค Inverted Hull Outline ที่ปั้นความหนาเส้นขอบแบบ Variable Width ตามกล้อง
  • มุมมองน่าจับตา: นี่คือกรณีศึกษาที่พิสูจน์ว่า "ความสมจริง" ไม่ใช่เป้าหมายสูงสุดของเอนจินเกม — แต่ "ความตั้งใจของศิลปิน" ต่างหากที่เป็นเป้าหมายจริง

ปรากฏการณ์หลอกตาที่โลกเกมยังต้องยอมแพ้

ถ้าคุณเคยเล่น Guilty Gear Strive หรือ Dragon Ball FighterZ คุณจะสัมผัสได้ถึงความรู้สึกแปลกๆ อย่างหนึ่ง — ภาพมัน "นิ่ง" เกินกว่าจะเป็น 3D แต่ "ลื่น" เกินกว่าจะเป็น 2D สไปรต์ และนั่นคือจุดที่ทีมงานของ Junya C Motomura (หัวหน้าฝ่าย CG Designer ของ Arc System Works) เรียกมันว่า "2D that happens to be 3D" หรือพูดง่ายๆ คือ พวกเขาไม่ได้สร้างเกม 3D ที่ดูเหมือน 2D แต่พวกเขาสร้าง เกม 2D ที่บังเอิญเรนเดอร์ด้วยเอนจิน 3D

ความต่างนี้ฟังดูเหมือนเล่นคำ แต่ในทางวิศวกรรมมันเปลี่ยนทุกอย่าง เพราะเมื่อเป้าหมายคือ "ทำให้เหมือน 2D" ทุกบรรทัดของ Shader ทุกทิศทางของ Normal Vector และทุกเฟรมของอนิเมชัน จะต้องถูกบิดให้รับใช้ภาพวาด ไม่ใช่รับใช้ฟิสิกส์ของโลกจริง

กุญแจดอกแรก: Inverted Hull กับความลับของเส้นขอบที่ไม่มีวันหนาเท่ากัน

หัวใจข้อแรกของเวทมนตร์นี้คือ Outline หรือเส้นขอบดำรอบตัวละคร ซึ่งเป็นเอกลักษณ์ของอนิเมะญี่ปุ่น ถ้าใครยังไม่เคยอ่านกลไกเชิงลึกของเทคนิคนี้ ผมแนะนำให้ไปอ่านบทวิเคราะห์เจาะลึกที่ หลุด! ชำแหละเอนจิน Guilty Gear Strive ปรากฏการณ์ Inverted Hull ที่ทำให้ 3D กลายเป็นอนิเมะ 2D ระดับเทพ ประกอบกันก่อน เพราะในบทความนี้เราจะโฟกัสที่ "ชั้นถัดไป" ของปัญหา

การกลับด้าน Normal และการโกง Geometry

เทคนิคพื้นฐานที่ Arc System Works ใช้คือ Inverted Hull — การ Duplicate Mesh ตัวละครขึ้นมาอีกชั้น แล้วทำสามสิ่งนี้พร้อมกัน

  • Flip Normal ให้ทุก Face หันเข้าด้านใน
  • Cull Front Face เพื่อให้เห็นเฉพาะด้านหลังที่กลายเป็นด้านนอก
  • Scale Vertex ตามแนว Normal เพื่อดัน Shell ออกไปด้านนอกเล็กน้อย

ผลลัพธ์คือ Shell บางๆ ที่ห่อตัวละครอยู่ ทำให้เกิดเส้นขอบสีดำ แต่ปัญหาคือ ถ้าคุณ Scale แบบ Uniform เส้นขอบจะ หนาเท่ากันทุกจุด ซึ่งดูเป็น CGI ทันที

ทำไมเส้นขอบต้อง "บาง" ไม่ใช่ "หนา"

ในอนิเมะจริง ศิลปินจะวาดเส้นขอบหนาที่ส่วนโค้งด้านในของแขน แต่บางเฉียบที่ปลายนิ้ว Arc System Works แก้ปัญหานี้ด้วยการ Bake ค่า Width ลงใน Vertex Color ของ Shell Mesh โดยตรง ทำให้แต่ละ Vertex มีค่าความหนาของเส้นขอบที่แตกต่างกัน และยังเพิ่ม Logic ให้ Width เปลี่ยนตามระยะกล้อง (Distance-based Thickness) อีกด้วย

นี่คือเหตุผลที่เวลาเกมซูมเข้าใกล้ตัวละคร เส้นขอบจะไม่หนาจนน่ารำคาญ แต่จะบางลงอย่างเป็นธรรมชาติ เหมือนศิลปินใช้ปากกาหมึกเปลี่ยนขนาดปลายตามระยะ

ศิลปะแห่งการปั้น Normal ด้วยมือ: เมื่อแสงไม่ใช่ของธรรมชาติ

ถ้า Outline คือผิวหนัง Normal Editing คือกระดูกสันหลังของเทคนิคทั้งหมด และนี่คือส่วนที่ Arc System Works ลงทุนมากที่สุด

ในเอนจิน 3D ทั่วไป แสงจะคำนวณจาก Normal Vector ของแต่ละ Face ซึ่งได้มาจากการเฉลี่ยของ Face รอบข้าง (Smooth Shading) แต่ Arc System Works ไม่ปล่อยให้เอนจินคำนวณเอง — ทีมงานจะเข้าไปแก้ Normal ทีละจุดในโมเดล เพื่อบังคับให้แสงตกในตำแหน่งที่ศิลปินวาดต้องการ

ปิด Specular ทิ้ง แล้ววาดแสงด้วย Vertex Color

ลองสังเกตตัวละครใน Guilty Gear Strive ดูดีๆ — คุณจะไม่เห็น Specular Highlight แบบเงาสะท้อนโลหะบนชุดเกราะเลย ไม่ว่าจะเป็นดาบของ Ky Kiske หรือหมวกของ Faust นั่นเป็นเพราะ Arc System Works ปิด Specular Lighting ทิ้งทั้งหมด และใช้ Custom Ramp Texture ในการกำหนดว่าแสงจะไล่ระดับอย่างไร

แทนที่จะให้ GPU คำนวณ Fresnel, Roughness, Metallic พวกเขา Bake ทุกอย่างลง Vertex Color แล้วใช้ Shader แบบง่ายที่อ่านค่าจาก Ramp เท่านั้น ผลลัพธ์คือแสงที่ "นิ่ง" ไม่มี Noise และที่สำคัญที่สุด — เหมือนกับที่ศิลปินวาด ไม่ใช่เหมือนกับที่ฟิสิกส์เป็น

การบังคับทิศทางแสงแบบ Three-Point ที่ไม่ขยับ

อีกจุดที่หลายคนไม่รู้คือ แสงหลักที่ส่องตัวละครใน Guilty Gear ไม่ใช่แสงที่อยู่ในฉาก แต่เป็น Character Light ที่ผูกติดกับตัวละครและหันเข้าหากล้องเสมอ (Camera-facing Light) ทำให้ไม่ว่าตัวละครจะหันไปทางไหน หรือกล้องจะแพนไปแค่ไหน ใบหน้าตัวละครจะสว่างในมุมที่ถูกต้องตามหลักศิลปะเสมอ

ส่วนเงาตกกระทบ พวกเขาใช้ Fake Shadow ที่เป็น Mesh ทรงรีแบนๆ วางไว้ใต้เท้า แทนที่จะใช้ Shadow Map จริง เพราะ Shadow Map จะทำให้เกิด Soft Edge ที่ดูเป็น CGI เกินไป

Stepped Animation: หัวใจที่เต้นไม่ตรงกับ Framerate ของจอ

นี่คือส่วนที่ผมคิดว่าเจ๋งที่สุด และเป็นส่วนที่หลายคนเข้าใจผิดมากที่สุด

12 fps บนจอ 60Hz — ความตั้งใจที่ถูกออกแบบ

เกมต่อสู้ Arc System Works ทั้งหมดรันที่ 60fps แต่ตัวละครของพวกเขาถูกอนิเมตที่ ประมาณ 12–15 fps หรือพูดให้ถูกคือ "ทุกๆ 4–5 เฟรมของเกม จะมีการเปลี่ยนท่าทางเพียง 1 เฟรม" เท่านั้น

นี่คือการเลียนแบบ "On Twos" และ "On Threes" ที่สตูดิโออนิเมะญี่ปุ่นใช้จริง เพราะอนิเมะ 24fps ส่วนใหญ่ไม่ได้วาดใหม่ทุกเฟรม แต่วาดใหม่ทุก 2–3 เฟรม แล้วถือภาพเดิมไว้

ผลลัพธ์ที่ได้คือความ "กระตุกอย่างมีศิลปะ" ที่ทำให้สมองของเราแปลความว่า "นี่คืออนิเมชันวาดมือ" ไม่ใช่ "นี่คือ Motion Capture ที่ Smooth เกินมนุษย์"

Hitstop, Smear Frame และการตัดต่อแบบอนิเมะ

Arc System Works ยังเพิ่มเทคนิคที่มาจากอนิเมะโดยตรงอีกสองอย่าง

  • Hitstop / Impact Freeze: เมื่อการโจมตีโดนตัว เกมจะหยุดทุกอย่างไว้ 8–15 เฟรม เพื่อให้เกิดความรู้สึก "หนัก" เหมือนการตัดฉากในอนิเมะ
  • Smear Frame: ในท่าที่เร็วมาก เช่น ท่า Overdrive บางท่า พวกเขาจะยืดโมเดลให้ผิดรูปไป 1 เฟรม เพื่อจำลอง Motion Blur แบบที่ศิลปินวาด

เทคนิคพวกนี้ทำให้ Guilty Gear ดู "มีพลัง" กว่าเกม 3D ทั่วไปที่ใช้ Motion Blur จาก Post-Processing เพราะมันเลียนแบบ ภาษาVisual ของอนิเมะ ไม่ใช่ของกล้องถ่ายภาพยนตร์

ภาพประกอบ

ตารางเปรียบเทียบ: เทคนิคหลอกตา 2D ของ Arc System Works ในแต่ละยุค

เทคนิค / เกม Guilty Gear Xrd -SIGN- (2014) Guilty Gear Strive (2021) Dragon Ball FighterZ (2018)
เอนจินพื้นฐาน Unreal Engine 3 Unreal Engine 4 Unreal Engine 4
Outline Inverted Hull + Vertex Color Width Inverted Hull ปรับละเอียด + Distance Falloff Inverted Hull + ปรับตาม Hit Spark
Normal Editing ปั้นมือเกือบ 100% ปั้นมือ + Procedural Blend บางส่วน ปั้นมือ + Cel-Shading Mask
Specular Lighting ปิดทั้งหมด ปิดทั้งหมด (ยกเว้นบางท่า) ปิดทั้งหมด
Framerate อนิเมชัน ~12–15 fps ~12–15 fps (ปรับตามท่า) ~15 fps
Character Light Camera-facing Fixed Camera-facing Fixed + Dynamic Camera-facing Fixed
Netcode Delay-based (Rollback เพิ่มปี 2022) Rollback (GGPO) ตั้งแต่ Day 1 Delay-based + Rollback Patch

เบื้องหลังสตูดิโอ: จาก Xrd สู่ Strive กับ Unreal Engine

สิ่งที่น่าสนใจคือ Arc System Works ไม่ได้สร้างเอนจินของตัวเอง แต่เลือกใช้ Unreal Engine และเขียน Custom Shader ทับลงไปเกือบทั้งหมด ซึ่งหมายความว่าพวกเขาใช้เวลาไปกับ การดัดแปลงเครื่องมือสำเร็จรูปให้เชื่อฟังศิลปิน มากกว่าการสร้างเครื่องมือใหม่ตั้งแต่ต้น

ใน Guilty Gear Xrd พวกเขาต้องต่อสู้กับข้อจำกัดของ UE3 ที่ไม่รองรับ Deferred Shading แบบยืดหยุ่นนัก ทำให้ต้องใช้ Forward Rendering และจำกัดจำนวนแสงในฉากอย่างเข้มงวด

พอมาถึง Guilty Gear Strive บน UE4 พวกเขาได้พื้นที่สร้างสรรค์มากขึ้น — เพิ่ม Dynamic Camera ในท่า Overdrive, เพิ่มรายละเอียด Texture ที่คมขึ้น และเพิ่ม Effect ที่ซับซ้อนขึ้น แต่ ยังคงไม่แตะหลักการเดิม คือปิด Specular, ปั้น Normal มือ และอนิเมตแบบ Stepped

นี่คือบทเรียนสำคัญของวงการ: เทคโนโลยีใหม่ไม่ควรลบเอกลักษณ์เก่าทิ้ง

บทเรียนที่นักพัฒนาเกมอนิเมะทุกคนต้องจำ

ถ้าผมต้องสรุปทั้งหมดนี้เป็นประโยคเดียว มันคือ "เอนจินที่ดีไม่ใช่เอนจินที่สมจริงที่สุด แต่คือเอนจินที่ยอมแพ้ต่อศิลปินมากที่สุด"

Arc System Works ไม่ได้พยายามเอาชนะฟิสิกส์ พวกเขาไม่ได้พยายามทำให้แสงสมจริง พวกเขาไม่ได้พยายามทำให้อนิเมชันลื่นไหลแบบ Motion Capture สิ่งที่พวกเขาทำคือ ย้อนกลับไปถามว่า "อนิเมะ 2D มันทำงานยังไง" แล้วสร้างเอนจินที่เลียนแบบภาษาภาพนั้นอย่างซื่อสัตย์

และนั่นคือเหตุผลที่ทำไมเวลาคุณเล่น Guilty Gear Strive แล้วรู้สึกว่า "นี่มันการ์ตูนมีชีวิต" — เพราะเบื้องหลังทุกเฟรม มีวิศวกรที่นั่งปั้น Normal ทีละจุด มีศิลปินที่เลือกความหนาเส้นขอบทีละ Vertex และมีโปรแกรมเมอร์ที่ตัดสินใจ ปิดความสมจริงทิ้ง เพื่อให้ได้สิ่งที่สำคัญกว่า

สำหรับคนที่สนใจเรื่องฮาร์ดแวร์และโลกไซไฟแบบจริงจัง บทเรียนนี้ยังเชื่อมโยงกับอีกเรื่องหนึ่งที่ผมเคยเขียนไว้ คือ หลุด! วิศวกรรม FullDive VR สู่โลกจริง: Neuralink ใกล้ระดับ Sword Art Online แค่ไหน? เพราะทั้งสองกรณีมีคำถามเดียวกัน คือ "เราต้องเลียนแบบความจริง หรือเราต้องสร้างภาษาของตัวเอง"

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

Guilty Gear Strive ใช้เอนจินอะไรในการพัฒนา?

Guilty Gear Strive พัฒนาบน Unreal Engine 4 แต่ Arc System Works เขียน Custom Shader ทับเกือบทั้งหมด เพื่อควบคุมการเรนเดอร์เส้นขอบ การปั้น Normal และการปิด Specular Lighting ตามสไตล์อนิเมะ 2D ของตัวเอง

Inverted Hull คืออะไร และทำงานอย่างไร?

Inverted Hull คือเทคนิคการสร้างเส้นขอบตัวละคร 3D โดยการ Duplicate Mesh ขึ้นมาอีกชั้น กลับทิศทาง Normal ให้หันเข้าด้านใน แล้วดัน Vertex ออกตามแนว Normal เล็กน้อย ทำให้เกิดเส้นขอบสีดำรอบตัวละคร คล้ายการวาดเส้น Ink ในอนิเมะ

ทำไมอนิเมชันใน Guilty Gear ถึงดู "กระตุก" แต่กลับสวย?

เพราะ Arc System Works ตั้งใจอนิเมตตัวละครที่ ประมาณ 12–15 fps บนเกมที่รัน 60fps เทคนิคนี้เรียกว่า Stepped Animation หรือการทำอนิเมชันแบบ "On Twos/On Threes" ซึ่งเป็นมาตรฐานของอนิเมะญี่ปุ่น ทำให้สมองผู้ชมรับรู้ว่าเป็นงานวาดมือ ไม่ใช่ CGI ลื่นๆ

เทคนิคหลอกตา 2D นี้เอาไปใช้กับเกมแนวอื่นได้ไหม?

ได้ แต่ต้องระวังเรื่องบริบท เพราะเทคนิคทั้งหมดนี้แลกมาด้วย การปิดความสมจริง เกมที่ต้องการแสง Dynamic, เงาสมจริง หรือ Motion ที่ลื่นไหล เช่น เกม Open World หรือ FPS อาจไม่เหมาะ แต่เกมแนว Anime Fighter, RPG สไตล์เซลเฉด และ Visual Novel 3D นำไปประยุกต์ได้ดีมาก