บทเรียนการพัฒนาเกม 3มิติ หรือ 3D Game สำหรับคนที่สนใจเกี่ยวกับการพัฒนาเกม ที่รองรับทั้งบน PC, Mobile และ Web Based ก็คงต้องยกให้ Unity เป็นตัวเลือกแรก
จะว่าไปช่วงหลังเว็บไซต์ Daydev เองก็วิ่งเข้าสู่เส้นทางการพัฒนาเต็มรูปแบบในเรื่องของ แอพพลิเคชัน และเทคโนโลยีเกมเป็นหลักไปแล้วล่ะครับ อีกทั้งช่วงนี้ผมก็มีโปรเจ็คเกมมากมายที่ต้องพัฒนาออกมาเยอะด้วย
ประกอบกับการพัฒนาเกมที่ ใช้ เครื่องมือ Game Engine ที่เป็น Virtual Machine ของมันเองอย่าง Adobe Flash CS6 กับ Unity ส่วนตัวผมคิดว่าอนาคตของ Flash มันคงจบลงที่ตัว Banner โฆษณาแค่นั้นครับ เลยเลือกที่จะเอา Unity มาถ่ายทอดแทนเลยดีกว่า เพราะ Unity เองก็สามารถพัฒนาเกมได้ทั้งแพลตฟอร์มของ 3D และ 2D หมดครับ
สามารถดาวน์โหลดติดตั้งแบบ Free กันได้เลยที่นี่ http://www.unity3d.com/unity/download
ขนาดก็ประมาณ 1Gb กว่ารอไปก่อนนะครับตามความเร็วเน็ต ระหว่างนี้ก็มาเรียนรู้ 3D Game Design กันก่อนกับความรู้พื้นฐานแบบไม่ค่อยละเอียด
มาเริ่มต้นกันหน่อยดีกว่าทำไมต้อง Unity
ก่อนจะเข้าเรื่อง Unity นั้นเราคงจะทราบดีว่า Unity เน้นเกมที่พัฒนาในมุมมองของ 3D องค์ประกอบของ 3D ที่เราควรรู้ในตอนแรกนั้นก็คือเรื่องของ Coordinate
Cartesian Coordinate
หรือภาษาทางการคือ พิกัดคาร์ทีเซียน เป็นการกำหนดพิกัดแบบ Cartesian ในลักษณะแนวระนาบ หรือแบบราบ การกำหนดตำแหน่งของวัตถุจะมีเพียง 2 มิติ คือค่าพิกัด X และค่า Y มีระยะทางจากจุดตั้งต้น (origin) ค่าพิกัด X และค่า Y ส่วนใหญ่จะมีค่าเป็นบวกและมีหน่วยเป็นฟุตหรือเมตรตามด้วยจุดทศนิยม ซึ่งถ้าเราเรียนคณิตศาสตร์ หรือ พัฒนาเกม 2D มาก่อนจะใช้พิกัด X และ Y ส่วนนี้บ่อย
สำหรับ 3D นั้น Cartesian Coordinate จะมีแกน Z ปรากฏออกมา เป็นการกำหนดบอกถึงความลึกของ ระยะระหว่าง X และ Y ครับ ตามตัวอย่าง
3D Model, Shader, Texture และ Material
ต่อจาก Coordinate แล้วสิ่งที่เราต้องเข้าใจสักหน่อยคือเรื่องของ 3D Models หรือ Polygon ที่จะประกอบไปด้วย Vertex, Edge และ Surface (Face) สำหรับ Vertex คือเส้นแกนแบบ Grid ลากจาบนลงล่าง ตามด้วย Grid แนวราบคือ Edge เวลาที่เราออกแบบ ภาพ Concept Art 2D ของตัวละครแล้ว เราจะต้องปั้น Model 3D ขึ้นมา ซึ่งการขึ้นรูปจะเป็นลักษณะของ Polygon ที่เป็น Grid ดังภาพข้างล่าง ส่วน Surface คือพื้นผิวของ Models
พอได้ Grid Based แล้วให้เราใส่ Texture ลงไปก็เป็นอันเสร็จเรียบร้อย
ทั้งหมดนั้นเราสามารถกำหนดได้ใน Unity ครับ เราสามารถนำ Model 3D มาใช้งานร่วมพัฒนาเกมได้ง่ายๆ
Physics Engine
สิ่งที่ขาดไม่ได้เลยคือเรื่องของ Physics ที่จะต้องใช้ ตัว unity เองเราสามารถเรียนรู้ วิธีใช้งาน Rigid Body สร้าง Gravity ขึ้นมาได้อย่างง่ายๆ ซึ่งเดี๋ยวจะอธิบายในบทถัดไป
ส่วนของ User Interface ของ Unity
ส่วนของ User Interface นั้นเราสามารถ Customized การวางตำแหน่งต่างๆ ได้อย่างง่าย ตามความถนัดของเราได้เลยครับ ให้ลองเปิดโปรเจ็คขึ้นมา จะเห็นว่า UI จะมีส่วนประกอบต่อไปนี้
- Tools Bar เมนูสำหรับจัดการ
- Inspector การกำหนดองค์ประกอบต่างๆ ของ Object ในเกม
- Hierarchy ทำงานเหมือน Layer ใน Photoshop นั่นแหละครับ
- Sceneview คือ ฉากองค์ประกอบของ Scene ที่เราออกแบบมาสำหรับเกม
- Gameview คือการ Test ตัวเกมของเราผ่าน Unity แบบ Real-Time Debug ได้
Camera สำหรับ Unity มีการกำหนด camera หรือมุมกล้องได้อย่างตามที่เรากำหนด และเป็นอิสระ
ตัวอย่าง Project Angrybots
หากเปิด Project ขึ้นมาครั้งแรกจะพบกับ Sample Project AngryBots ครับซึ่งเป็นการแนะนำ คำสั่ง และการจัดการ asset ได้ดีทีเดียว และสร้างความน่าตื่นตาตืนใจให้กับ ผู้ใช้งานครั้งแรกให้เกิดแรงบันดาลใจได้เลยครับ
ลองกด Play ใน Game View เพื่อรันดูสิครับ
เอาเป็นว่าก็พอหอมปากหอมคอแล้ว เดี๋ยวกำลังเรียบเรียงบทเรียนต่อๆ ไปนะครับเพื่อ อธิบายคำสั่งพื้นฐานของ Unity เพื่อคนที่สนใจสร้างเกมจะได้สร้างเกมดีๆ ออกมาบ้าง
6 Comments