Page 1 of 1

UE4 and Oculus

Posted: 11 Jun 2020, 11:36
by porndusit
5df1222cfd9db23851669bd2.jpg
image_1359.png
ในกระทู้นี้ผมขอเล่าถึงการพัฒนา VR ผ่านทางแว่น Oculus Go สำหรับนักพัฒนาหรือนักศีกษาที่ชอบอยู่ไม่สุข ตัวแว่น Oculus Go นั้นหลายคนคงมีไว้เป็นของเล่น แต่ตัวผมเห็นว่าถ้านำมาพัฒนาโครงงานน่าจะมีประโยชน์มากกว่า เอาเป็นว่าผมจะค่อยๆเขียนไปและไม่ใช่ตำราถ้าใครชอบตำราที่มีการอ้างอิงก็ต้องไปหาหนังสือที่ผมได้แนะนำไปหลายเล่มก่อนหน้านี้มาอ่านกัน และคุณก็ต้องมีแว่นอยู่ด้วยแน่นอน ถ้ามีคนถามว่าใช้ Oculus Quest แทนได้ไหม ก็ใช้ได้แน่นอนแต่มันแพงเกินงบสำหรับการทดลอง ตัวผมเองได้ Oculus Go มือสองจากคนที่เล่นเบื่อแล้วในสภาพสมบูรณ์ก็ประหยัดได้หลายเงินอยู่ ใครที่คิดจะซื้อมือสองก็เช็คสภาพและอุปกรณ์หลายๆชิ้นในกล่องให้ครบถ้วนด้วย โดยเราอาจจะต้องล้าง account เก่าของคนก่อนเพื่อลงข้อมูลและรูปของเราใหม่ แล้วมันต่างกันยังไงระหว่าง Oculus Go กับ Quest สิ่งที่เหมือนกันคือเป็นระบบแว่นไร้สายแต่ต่างกันที่ระบบ DoF(degree of freedom)
-Oculus Go ความละเอียด 1280 x1440 ต่อตาต่อข้าง เป็น 3Dof คือติดตาม (track) การหมุนได้ 3 ทิศทางแต่ไม่ตามการเคลื่อนที่
-Oculus Quest ความละเอียด 1600 x1440 ต่อตาต่อข้าง เป็นระบบ 6Dof ติดตามการหมุนได้ 3 ทิศทางและการเคลื่อนที่ได้อีก 3 ทิศทางและมีระบบ inside-out tracking เพื่อกำหนดบริเวณอาณาเขตที่จะเล่นติดอยู่ที่ตัวแว่นไม่ต้องติด station เพิ่มตามมุมห้องให้ประสบการณ์ VR ที่สมจริงและสะดวกกว่า
3dof-6dof-vr-headset.jpg
https://www.youtube.com/watch?v=Hfzkfi_RMeI

Re: UE4 and Oculus

Posted: 11 Jun 2020, 21:06
by porndusit
Oculus-Rift-VR-Simulator-Headset.jpg
แล้วจะใช้ Oculus Rift หรือ HTC Vive ได้ไหม ซึ่งได้แน่นอนและดีมากกว่าด้วยเพราะคุณจะได้ภาพที่คมชัดกว่าแต่ต้องแลกมาด้วยสายต่อระยะยาวพร้อมกับชุดคอมพ์เล่นเกมส์ระดับบนซึงหนีไม่พ้น 4-5 หมื่น แต่ในระบบงาน Production ก็ใช้ Oculus Rift หรือ Vlve เป็นมาตรฐาน ทั้ง 2 ตัวที่กล่าวมาเป็นระบบ 6 DoF ตัว Oculus Go นั้นมีลักษณะการใช้เหมือน Google Cardboard และ mobile VR แต่มี hardware และการออกแบบที่ดีกว่า ส่วน Quest แม้จะมีข้อบกพร่องอยู่บ้างในตอนนี้ก็ได้กลายเป็นมาตรฐานของแว่น VR สวมหัวแบบไร้สายที่มี Tracking อยู่ในตัวและทุกคนก็รอรุ่นใหม่ในอนาคตเพราะตัวนี้ก็วางตลาดมาครบปีแล้ว

ส่วนตัวอื่นที่น่าสนใจในตอนนี้ก็มี Pico Neo 2 ที่เป็น 6Dof และมีระบบติดตามการมองจากเรตินาที่ดวงตา แต่จากการทดสอบที่ต่างประเทศก็ยังมี bug อยู่และเกมส์ที่สนับสนุนก็ยังมีน้อยมาก
557a1adeb1911b3506676ea703022fdd.jpg

HP Reverb Virtual Reality Headset – PRO EDITION V2 หน้าจอ Full RGB ที่ความละเอียด 2160 x 2160 พิกเซลต่อต่าแต่ละข้าง ซึ่งทำให้ไม่เห็นเป็นลักษณะตาข่ายอีกต่อไป และมุมมองกว้าง 114° Ergonomic Fit น้ำหนักเบา สวมใส่สบายเหมาะกับงานในระดับองค์กร
15ec4b224e1fab65ea17f282e06ca862.jpg

แล้วถ้าถามว่าใช้ Unity พัฒนาได้ไหมก็ตอบว่าได้แน่นอนอยู่ที่ความชำนาญและเข้าใจในโปรแกรมนั้นๆ เหมือนทำ 3D จะใช้ Maya, Max หรือ Blender ก็แล้วแต่ความถนัด แต่ถ้าจะใช้ Unity ก็ต้องเป็นภาษา C# ด้วย

Re: UE4 and Oculus

Posted: 11 Jun 2020, 22:54
by porndusit
ขั้นตอนการทำงาน
-ลงโปรแกรม UE4 (ฟรี-ถ้าใช้งานแบบไม่มีผลกำไร) ให้เรียบร้อยผ่านทางเว็บ Epic Games โดยควรจะใช้ Windows 10 ที่สำคัญคือการตั้งค่า Data Cache (DDC) บนไดรฟ์ที่มีพื้นที่มากพอ
-ตั้งค่าการทำงานสำหรับ Mobile VR โดยไปลงทะเบียนเป็น Developer ที่เว็บ Oculus โดยช่วงนี้ต้องทำผ่านมือถือและเราต้องใช้ App Oculus ผ่านทางการทำงานด้วย
-Oculus Go ทำงานผ่านระบบ Google Android เราจึงต้องลงตัว Android Debug Bridge (ADB) drivers
-ลงชุด Software Deveopment Kits (SDKs) และอื่นๆให้ครบโดยวิธีที่ง่ายที่สุดใช้ NVIDIA's Code Works for Android ที่ทาง Epic บรรจุมาให้แล้วที่ตำแหน่งที่ลง Unreal Engine ในเครื่องของเรา
-รีสตาร์ตเครื่องใหม่แล้วเช็คดูว่า Oculus Go ของเราติดต่อกันเครื่องคอมพ์ของเราได้แล้วผ่านการใช้ PowerShell (Command Shell รูปแบบใหม่จาก Microsoft ที่รวม Scripting Language และ .NET Framework มาให้ด้วยในตัว) ขอบอกก่อนว่าขั้นตอนจะวุ่นวายและต้องใช้เวลากับความอดทนพอสมควรกว่าจะผ่านได้ทั้งหมดเพราะมันไม่มีขั้นตอนสำเร็จแบบกดปุ่มครั้งเดียว อย่าง ADB driver ถ้ามันใช้ไม่ได้ก็ต้องลองรุ่นอื่นมาลงและเสาะหาคำตอบโดยการค้นในเว็บอย่างเดียว
PowerShell.jpg

ถ้าเชื่อมต่อสำเร็จก็จะมีข้อความแบบนี้หลังจากส่งไฟล์ไปที่แว่น (Pacific - XXXX... เป็นเลขหมายประจำแว่น Oculus Go ของเราเอง)
Test.jpg

ใน UE4 เราสามารถทดสอบงานของเราได้โดยตรง
2020-03-01-20_07_55-FirstAidVRTraining-Unreal-Editor.png

การส่งไฟล์ APK จากเครื่องคอมพ์ไปที่แว่นผ่าน Powershell เราเรียกว่า Sideloading

เอกสารที่ช่วยในการลงโปรแกรม
https://developer.oculus.com/documentat ... ide-quest/
https://circuitstream.com/blog/oculus-q ... ity-setup/
https://isaratech.com/how-to-start-ocul ... gine-4-24/
https://www.reddit.com/r/OculusGo/wiki/sideloading
https://wirewhiz.com/unreal-engine/
https://www.instavr.co/articles/general ... adb-method

Re: UE4 and Oculus

Posted: 12 Jun 2020, 12:17
by porndusit
มาถึงการทำงานใน UE4 ซึ่งผมแนะนำเว็บมาให้ลองทำตามดู
https://wirewhiz.com/unreal-engine/

อีกวิธีที่ง่ายคือเปิดไฟล์ตัวอย่างที่เขาทำมาให้แล้วเพื่อมาเปิดดุูใน Oculus Go
Temple.jpg

ในการที่เราจะเดินเที่ยวไปได้ทั่วเราต้อง setting ปุ่มบนตัว Controller โดยไปตั้งค่าที่ Engine - Input
image_138221.png
470051_1_En_4_Fig15_HTML.jpg

https://www.youtube.com/watch?v=wKuPOEgZsJs

Re: UE4 and Oculus

Posted: 12 Jun 2020, 22:13
by porndusit
เมื่อเราส่งไฟล์ไปบนแว่น Oculus Go แล้วเราจะดูได้จาก Unknown Resources ใน Menu
hacks_quest-library-dev.png

ภาพที่เราจะเห็นใน Oculus Go
ScreenShot.png
เวลาที่เราทำงาน VR สิ่งที่ต้องคิดคือเรื่องการให้แสงในฉาก เพราะมันจะใช้ทรัพยากรมากใน UE4 ถ้าจัดการไม่ดี ซึ่งเราสามารถเช็คดูในโหมด Lightmap density โดยสีต่างๆจะเป็นตัวบอกการให้ความละเอียดของแสงที่ตกกระทบในแต่ละพื้นผิว เมื่อพอใจก็ทำการ baking light ลงใน texture
ScreenShot00001.png
จุดสำคัญที่ UE4 ต้องใช้คอมพ์ที่เร็วพอควรก็เพราะการทำ Lightmap นี่เอง รวมถึงการตั้งค่า Lightmap ที่เหมาะสม ไม่เช่นนั้นการคำนวณจะกินเวลานานมากๆ (บางฉากต้องคำนวณกันข้ามคืน ถ้าเป็นฉากที่ใหญ่มีรายละเอียดและมีวัตถุเยอะๆ) อีกอย่างที่สำคัญใน UE4 คือ mesh ที่ import เข้ามาควรที่จะคลี่ UV มาให้เรียบร้อยและเตรียม PBR texture มาให้ดี

Re: UE4 and Oculus

Posted: 20 Jun 2020, 11:27
by porndusit
ข้อควรระวังในการเก็บรักษาแว่น Oculus Go/Quest
-ถ้าไม่เล่นเป็นเวลานานๆ ก็ถอดถ่านที่ controller ออกดีกว่า เพราะถ้าลืมจนมันเน่าอยู่ข้างในก็อาจจะต้องเสียเงินซื้อใหม่
-อย่าวางตัวแว่นให้แสงแดดส่องถูกเลนส์โดยตรง จะสร้างความเสียหายจนไม่สามารถใช้งานได้
-ดูแลสายเชื่อมต่อ USB อย่าให้มันหักงอ
-ข้อบกพร่องของ Quest ที่ทางเมืองนอกเขาติติงมาตือ หนักส่วนหน้าและฝาครอบที่ controller มักจะเลื่อนหลุดตอนแกว่งแขนเล่นมันส์มากๆ และสายรัดที่หัวจะอมเหงื่อจนเหม็นได้ แต่พอแก้ไข(hack)ได้บ้าง

> เอา Power bank ตัวไม่ใหญ่นักมามัดถ่วงด้านหลังที่สายรัดหัวและทำให้เล่นได้นานมากขื้นอีก
finished-rear.jpg

> ซื้อส่วนเสริมของสายรัดหัวที่เขาทำขายมาใส่เพิ่ม บางแบบก็เพิ่มหูพังให้ด้วยนะอันนี้แล้วแต่กำลังทรัพย์
For-Oculus-Quest.jpg

> ซื้อ Case มาจัดเก็บให้ดี ดีกว่าวางทิ้งไว้ตามยถากรรมของมันหลายบาท เผื่ออยากขายต่อก็ยังดูดีมีราคาอยู่
512qpm.jpg

Oculus Quest กับวิธีถนอมแบตเตอรี่ เพื่อเอาไว้ใช้งานกันนานๆ
https://www.siamvr.com/oculus-rift/ocul ... e-battery/

Re: UE4 and Oculus

Posted: 24 Jun 2020, 19:47
by porndusit
ข่าวล่าสุด(CNBC-23 Jun 2020)
https://www.cnbc.com/2020/06/23/faceboo ... sales.html

Facebook จะยุติการพัฒนา Oculus Go แล้วโดยยังปล่อย bug fixed และ security patches ไปจนถึงปลายปี 2022 รวมถึงเลิกรับ apps ต่างๆ ด้วยเช่นกันโดยจะมุ่งไปทุ่มเทให้ Oculus Quest และ Rift ที่มีราคาแพงกว่าและเป็นตลาดบนแทนซึ่ง Facebook คงจะมองเห็นได้ถึง trend ของแว่น VR สวมหัวเพราะ Samsung ก็เลิกทำ Gear VR ไปแล้วเช่นกัน

Re: UE4 and Oculus

Posted: 24 Jun 2020, 23:14
by porndusit
รูปนี้ผมลองทำมาเพื่อคุณble
ScreenShot00001.png