AR Foundation Unity เบื้องต้น

 AR (Augmented Reality ) 

สำหรับคนที่สนใจทำแอปพลิเคชั่น AR บนมือถือ ฟรีๆ โดยที่ไม่มีข้อจำกัดต่างๆ 

Vuforia หรือ EasyAR ก็สามารถใช้บน Unity ได้แต่ปัจจุบันการจะนำขึ้นบนสโตรว์จะต้องเสียค่าลิขสิทธ์ที่ค่อนข้างสูง แล้ววันนี้ Unity เองก็มีไลบรารีของตัวเองที่เชื่อมต่อกับ ARkit ของ iOS และ ARCore ของ android ให้เราสามารถพัฒนาแอปหรือเกมบน Unity ให้ใช้งานได้บนมือถือทั้งสองแพลทฟอร์ม อาจจะมีข้อจำกัดบางอย่าง เช่น ตอนทดสอบต้องบิ้วแอปแล้วลองบนเครื่องจริง หรือฟรีเจอร์บางอย่างก็ยังไม่ครบเหมือน Vuforia หรือ EasyAR  แต่ด้วยข้อดีอันดับแรกคือมัน ฟรี!!! วันนี้ก็เลยจะพาเพื่อนลองใช้มันดูครับ


*** จุดข้อระวังที่สำคัญ

    - folder ที่อยู่ของโปรเจคตั้งแต่พาร์ทแรกๆเลย ระวังอย่ามีเว้นวรรค หรือภาษาไทย Unity จะมีปัญหาในการหาไฟล์รูปในโปรเจค 

    - ชื่อโปรเจคตอนที่สร้างขึ้นมา ใช้ภาษาอังกฤษและห้ามมีเว้นวรรค

    - ไฟล์รูปที่มันมาใช้ ชัวที่สุดคือสกุล jpg แนะนำให้ใช้สกุลนี้สกุลเดียว จะได้ตัดปัญหาที่อาจจะเจอกับภาพที่ใช้เป็นมาร์กเกอร์


  1. เริ่มแรก เราจะต้องติดตั้ง Package ใน  Package Manger 3 ตัวคือ
AR Foundation  เป็นไลบราลี ของ Unity ที่เหมือนเป็นสะพานไว้ให้เรียกใช้ AR Core และ ARKit

ARCore ไลบราลี่ AR ฝั่ง Android  ของ Google

ARKit ไลบราลี่ AR ฝั่ง iOS  ของ Apple

เปิด Package Manger ที่เมนู Window -> Package Manager


2  หารูป Maker 
 ข้อแนะนำคือขนาดรูปต้องไม่เล็กเกินไป สกุล jpg  แนะนำอย่างตํ่า 100x100 px ไม่งั้นจะเจอ error การสร้าง Database Image Reference ได้



จากนั้นให้สร้าง Image Reference Library

แล้วกดปุ่ม Add Image แล้วลากรูป Marker ของเราไปใส่ พร้อมทั้งติ๊กถูกที่ Specify Size ตั้งค่าเป็น 1 ที่ช่อง x เพื่อให่้ขนาดของวัตถุเป็นอัตราส่วนเท่ากับขนาด Maker ที่ช่อง (เคยลองไม่ติ๊กแล้วตอนบิ้วก็จะพังแล้ว Error อย่าลืมติ๊กกันด้วยนะครับ)

3 สร้าง AR Session และ AR Session Origin 


4 สร้าง Cube และ Sphere เพื่อเป็นวัตถุ 3D ที่จะแสดงขึ้นมาตอนส่องรูป Marker 







5 ตั้งค่า AR Session Origin ขั้นตอนนี้จะเยอนิดนึง

    5.1 เพิ่มสคริป AR Tracked Image Manager แล้วลาก Reference Image ของเราไปใส่ในช่อง Serialised Image 




    5.2 ปรับค่า Max Number of Move Object ตามจำนวนmarker ที่จะต้องการให้แสดงผลพร้อมกัน อย่างตอนนี้เรามี 2 ตัวก็ใส่ค่า 2
    5.3 เพิ่ม C# สคริป SwichPrefab.cs ระบุค่าในช่อง Maker Prefab Combos เท่ากับ 2 แล้วจะมีช่องข้อมูล 2 ชุดมาให้เรากรอก ช่องMarker ใส่ชื่อรูป Marker ส่วนช่อง Target Prfab ก็ให้เลือกวัตถุที่เราต้องการจะแสดง
(SwitchPrefab.cs ดาวโหลดได้ที่ https://github.com/24engiball/unityar/blob/main/Assets/Script/SwitchPrefab.cs )



6 ตั้งค่า XR Plugin Manager ไปที่ Project Settings


สำหรับ ios ไปติ๊กเลือก ARKit


Android เลือก ARCore



7 build 
สำหรับ iOS เราจะต้อง กรอกค่า Camera Usage Description  เพื่อแจ้งผู้ใช้ว่าเราใช้กล้องเพื่ออะไรก่อน แล้วก็ก็ไป build แอปรันบน xcode ทดสอบได้เลย


ส่วน Andrid เราจะต้องไปตั้งค่า 2 อย่างคือ แก้ mininum api เป็น 24 และลบ vulkan graphic ออกก่อนเพราะ ARCore ยังไม่รองรับ แล้วพอ build แอปออกมาก็จะได้ APK ไปติดตั้งที่เครื่องเลย





ผลเมื่อเปิดแอปขึ้นมาก็จะสามารถส่องรูปมาร์กเกอร์ทั้ง 2 รูปให้แสดงกล่องและวัตถุทรงกลมออกมาให้เราเห็น




















ไม่มีความคิดเห็น:

แสดงความคิดเห็น