Home / Developer  / Game Development  / Unity 3D  / Oculus Integration บน Unity สร้างเกม VR

Oculus Integration บน Unity สร้างเกม VR

บทเรียนสำหรับการติดตั้งใช้งานโปรแกรม Unity โดยพัฒนาร่วมกับ Oculus Integration สร้างเกม VR ในตัวอย่างจะเป็นการติดตั้งบน Oculus Quest

บทเรียนนี้จำเป็นต้องติดตั้ง Unity Hub และติดตั้ง Unity Editor ในเวอร์ชันที่ไม่ใช่ beta (เวอร์ชันไหนก็ได้ที่เป็น f หรือฟังก์ชัน release) หลังจากนั้นต้องติดคั้ง NDK และ Java SDK ไปจนถึง Android SDK สำหรับ Build ผ่าน Gradle Android ลง อุปกรณ์ Oculus Quest

ทำไมต้องเป็น Platform Android แล้วทำไมถึงไม่ใช่ SteamVR?

SteamVR สามารถใช้กับแพลตฟอร์มของอุปกรณ์ Oculus Rift หรือ HTC Vive, HTC Vive Sense ซึ่งต้องใช้สาย HDMI เชื่อมต่อเข้ากับ เครื่องคอมพิวเตอร์ PC รันผ่านระบบปฏิบัติการ Windows เท่านั้น

สำหรับ Oculus Quest นั้นเบื้องต้นเป็นอุปกรณ์ VR Headset ที่เป็น Stand Alone แต่ทำงานได้ดีกว่า Oculus Go ในส่วนของ Tracking Hand โดยพื้นฐานไม่ได้รองรับระบบ SteamVR แต่อย่างใด จำเป็นต้อง Sign ตัว APK นำขึ้นผ่านอุปกรณ์โดยตรง การประมวลผลกราฟิก Texture Compression ต้องเข้าระบบแบบ ASTC จึงต้องใช้ชุด พัฒนาหรือ Assets ที่ชื่อว่า Oculus Integration (ซึ่งจริงๆ เขียนร่วมกับ SteamVR 2 ได้) ซึ่งยุ่งยากกว่า SteamVR ไหม ก็ต้องบอกว่า พื้นฐานคือ OVR (OpenVR) ดังนั้นไม่ต้องห่วงว่าจะยาก

มาเริ่มต้นติดตั้ง Unity Editor และ เชื่อม Oculus Quest เข้ากับระบบกันดีกว่า เปิดกล่อง Oculus Quest ออกมา หลังจากนั้นให้หยิบโทรศัพท์มือถือของเรา โหลแอปพลิเคชัน Oculus ลงมือถือ

เชื่อมต่อบัญชี Facebook ของเราเลย

หลังจากนั้นให้ทำการ Pairing อุปกรณ์ของเราเข้ากับมือถือ โดยการกด Scan หาอุปกรณ์ Nearing Device เมื่อเสร็จทำตามขั้นตอนที่บอกผ่านหน้าจอมือถือ (จะมีขั้นตอนที่ต้องเปิด Headset ไปมองรหัสเครื่องเพื่อมากรอกในแอปพลิเคชัน)

เลือกเชื่อมต่อ WiFi เสีย หลังจากนั้นไปที่ More Setting….

เราจะเห็นเมนูชื่อ Developer Mode ให้ไปเปิดถ้าเปิดแล้ว

ลองเสียสาย Type C USB เข้าระหว่างคอมพิวเตอร์ และ Oculus Quest มองไปที่หน้าจอจะมี Allow USB Debuggin ถ้าต้องพัฒนาที่เครื่องนี้ตลอดให้กด จดจำ ไว้แล้วแล้วกด Allow ก็เป็นอันเสร็จในการ เชื่อมต่ออุปกรณ์ เข้ากับคอมพิวเตอร์ และมือถือ

มาที่ Unity Editor ให้ทำการสร้าง 3D Project Template ขึ้นมาปกติ เมื่อพร้อมให้โหลด Assets Store ที่ชื่อว่า Oculus Integration มาใน Project

หากทำการ Import ลงไปแล้วจะพบ Folder ตามนี้

ให้เราลบ MainCamera ออกจาก Hierarchy ของเราออกไป หลังจากนั้นไปที่โฟลเดอร์ Assets->Oculus->VR->Prefabs

ลาก Prefab ที่ชื่อว่า OVRCameraRig มาวางบน Hierarchy หลังจากนั้นคลิกเพื่อดู Child ของ OVRCameraRig เราจะเห็น GameObject ที่ชื่อว่า TrackingSpace

ให้เราไปที่โฟลเดอร์ ชื่อว่า นำ Prefab ชื่อ LocalAvartar ไปวางเป็น Child ของ OVRCameraRig ใน TrackingSpace

ไปที่ File -> Build Setting เลือก Switch Platform เป็น Android รอสักครู่แล้วเลือก Player Setting ตั้งค่าใน Other Settings ดังนี้

ส่วน Auto Graphic API ของผมในตัวอย่างให้ลบ Vulkan ออกไป สำหรับ Android ต้องเลือก Version 4.4 ขึ้นไปถึงจะ Build ได้

ไปที่ XR Setting ตั้งค่าดังนี้

อย่าลืมใน Publishing Setting ต้องทำการสร้าง Ketstore ของ Android ก่อน

เสียบสาย USB กับ Oculus Quest แล้วให้ลองกด Build and Run เสียหน่อย

ใช้เวลา Build สักหน่อย พอ Build Succeed แล้วให้สวม Headset เข้าไปเลือกที่ Library หลังจากนั้นถ้าเราสร้าง Developer Mode แล้วเราจะเห็นเมนูชื่อ Unknown Sources คือ ไฟล์ทดสอบที่เรายังไม่พร้อมนำขึ้น Store ของ Oculus  แต่สามารถใช้งานได้ก่อน เพราะทำเล่นเอง ไปที่ Library -> Unknown Sources

แล้วดูผลลัพทธ์จะเห็นว่าเรามีมือปรากฏขึ้น

และถ้าก้มมองมากๆ จะเห็นใบหน้าของเราซ้อนมานั่นคือ VR Avatar ที่เราสร้างในบัญชีของ Oculus ใน Headset นั่นเอง

เอาล่ะเรามาสร้างการจับวัตถุกันหน่อยดีกว่า ไปที่ LeftHandAnchor สร้าง 3D Objects ชื่อ Sphere ขึ้นมา

ใน Inspector ให้ทำการปิด Mesh Renderer เพื่อไม่แสดงผล Sphere ในตัวอย่างทำลวกๆ ไม่เล็กมาก

ไปที่ LeftHandAnchor เพิ่ม Add Component เข้าไปเลือก OVR Grabber

สังเกตที่ Grip Transform เป็นค่า None (Transform) ให้ลากเจ้า Sphere ไปใส่ใน Grip Transform ทำทั้ง 2 ข้าง

ตั้งค่า is Trigger เป็น true ใน Sphere ทั้งสอง

ต่อมาเรามาสร้างวัตถุที่หยิบจับได้ดีกว่า ให้สร้าง Cube ขึ้นมา

ใน Cube นั้นขอให้เพิ่ม Rigidbody เข้าไป แล้วเพิ่ม Component ว่า OVR Grabbable

ใส่แล้วก็ Build ลงเครื่องอีกรอบ แล้วทดสอบ กด Grib ที่นิ้วกลางดู จะเห็นว่าเรายกของได้แล้ว

จะเห็นว่าไม่ยากอีกแล้ว แต่ถ้าใครที่ติดการลงตัว VRTK ของ Unity ก็ไม่มีปัญหานะครับ เพราะมันก็มี Oculus Integration และผ่าน OVR เช่นกันแค่ สำหรับผมมันไฟล์ขนาดใหญ่ไปหน่อยแค่นั้นเองครับ ว่าแล้วก็ลองซื้อมาพัฒนากันดู หรือ บริษัท เดย์เดฟ จำกัด รับพัฒนา MarTech งานเกม VR สำหรับ Event Marketing นะครับ 🙂

daydevthailand@gmail.com

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

Review overview