Home / Developer  / Newbie  / Beginning  / เริ่มต้นเขียนเกม 3D ด้วย Unity

เริ่มต้นเขียนเกม 3D ด้วย Unity

บทเรียนการพัฒนาเกม 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

logo

ก่อนจะเข้าเรื่อง Unity นั้นเราคงจะทราบดีว่า Unity เน้นเกมที่พัฒนาในมุมมองของ 3D องค์ประกอบของ 3D ที่เราควรรู้ในตอนแรกนั้นก็คือเรื่องของ Coordinate

Cartesian Coordinate

หรือภาษาทางการคือ พิกัดคาร์ทีเซียน เป็นการกำหนดพิกัดแบบ Cartesian ในลักษณะแนวระนาบ หรือแบบราบ การกำหนดตำแหน่งของวัตถุจะมีเพียง 2 มิติ คือค่าพิกัด X และค่า Y มีระยะทางจากจุดตั้งต้น (origin) ค่าพิกัด X และค่า Y ส่วนใหญ่จะมีค่าเป็นบวกและมีหน่วยเป็นฟุตหรือเมตรตามด้วยจุดทศนิยม ซึ่งถ้าเราเรียนคณิตศาสตร์ หรือ พัฒนาเกม 2D มาก่อนจะใช้พิกัด X และ Y ส่วนนี้บ่อย

xy

สำหรับ 3D นั้น Cartesian Coordinate จะมีแกน Z ปรากฏออกมา เป็นการกำหนดบอกถึงความลึกของ ระยะระหว่าง X และ Y ครับ ตามตัวอย่าง

มีแกน Z

มีแกน Z

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

poly

พอได้ Grid Based แล้วให้เราใส่ Texture ลงไปก็เป็นอันเสร็จเรียบร้อย

ภาพจาก  gamedev.stackexchange.com

ภาพจาก gamedev.stackexchange.com

ทั้งหมดนั้นเราสามารถกำหนดได้ใน Unity ครับ เราสามารถนำ Model 3D มาใช้งานร่วมพัฒนาเกมได้ง่ายๆ

Physics Engine

สิ่งที่ขาดไม่ได้เลยคือเรื่องของ Physics ที่จะต้องใช้ ตัว unity เองเราสามารถเรียนรู้ วิธีใช้งาน Rigid Body สร้าง Gravity ขึ้นมาได้อย่างง่ายๆ ซึ่งเดี๋ยวจะอธิบายในบทถัดไป

body

ส่วนของ User Interface ของ Unity

ส่วนของ User Interface นั้นเราสามารถ Customized การวางตำแหน่งต่างๆ ได้อย่างง่าย ตามความถนัดของเราได้เลยครับ ให้ลองเปิดโปรเจ็คขึ้นมา จะเห็นว่า UI จะมีส่วนประกอบต่อไปนี้

main

  • Tools Bar เมนูสำหรับจัดการ
  • Inspector การกำหนดองค์ประกอบต่างๆ ของ Object ในเกม
  • Hierarchy ทำงานเหมือน Layer ใน Photoshop นั่นแหละครับ
  • Sceneview คือ ฉากองค์ประกอบของ Scene ที่เราออกแบบมาสำหรับเกม
  • Gameview คือการ Test ตัวเกมของเราผ่าน Unity แบบ Real-Time Debug ได้

Camera สำหรับ Unity มีการกำหนด camera หรือมุมกล้องได้อย่างตามที่เรากำหนด และเป็นอิสระ

มุมกล้องแบบ Perspective Projection

มุมกล้องแบบ Perspective Projection

มุมกล้องแบบ Orthographic Projection

มุมกล้องแบบ Orthographic Projection

ตัวอย่าง Project Angrybots

หากเปิด Project ขึ้นมาครั้งแรกจะพบกับ Sample Project AngryBots ครับซึ่งเป็นการแนะนำ คำสั่ง และการจัดการ asset ได้ดีทีเดียว และสร้างความน่าตื่นตาตืนใจให้กับ ผู้ใช้งานครั้งแรกให้เกิดแรงบันดาลใจได้เลยครับ

ตัวอย่างเกม

ตัวอย่างเกม

ลองกด Play ใน Game View เพื่อรันดูสิครับ

Angrybots เกมเล่นได้ 100%

Angrybots เกมเล่นได้ 100%

เอาเป็นว่าก็พอหอมปากหอมคอแล้ว เดี๋ยวกำลังเรียบเรียงบทเรียนต่อๆ ไปนะครับเพื่อ อธิบายคำสั่งพื้นฐานของ Unity เพื่อคนที่สนใจสร้างเกมจะได้สร้างเกมดีๆ ออกมาบ้าง

Comments

daydevthailand@gmail.com

<p>อาจารย์ประจำสาขาวิชาการออกแบบเชิงโต้ตอบ และการพัฒนาเกม วิทยาลัยครีเอทีฟดีไซน์ & เอ็นเตอร์เทนเมนต์เทคโนโลยี มหาวิทยาลัยธุรกิจบัณฑิตย์<br /> ,ผู้ก่อตั้ง บริษัท Daydev Co., Ltd, (เดย์เดฟ จำกัด)</p>

Review overview
%d bloggers like this: