Sitemap
Gitti Ekchan

Gitti Ekchan

Unity Augmented Reality 101

4 min readMar 19, 2023

--

Press enter or click to view image in full size

สวัสดีครับ Blog นี้เป็น Blog แรกที่เขียนครับ สืบเนื่องจาก Session Unity Fundamental มีคน Request เรื่อง AR ด้วย Unity เยอะพอสมควรเลย Blog แรกบน Medium นี้ก็เลย เป็นเรื่องการทำ AR Application ลงบนมือถือ Android และ iOS ครับ

สำหรับ Package หรือ Plug-in ที่เราจะใช้วันนี้ คือ AR Foundation ครับเหตุผลที่ใช้ AR Foundation เพราะว่า

  • AR Foundation เป็น Package ที่ถูกทำขึ้นจาก Unity Technology เอง
  • Support ทั้ง2 Platform ทั้ง iOS และ Android ทำให้เราไม่ต้องCoding 2 รอบ
  • AR Solution ที่ได้ค่อนข้างจะครอบคุม Usecase ทั่วไปและง่ายต่อการประยุกต์ (Image Tracking , Plane tracking )
  • ไม่มีค่าใช้จ่าย

Installation

ก่อนอื่นก็สร้าง Project ก่อนเลยครับ ใครขี้เกียจสร้าง สามารถใช้ Template ที่ผมทำไว้ได้เลยครับ

Get Gitti Ekchan’s stories in your inbox

Join Medium for free to get updates from this writer.

หลังจากนั้น ให้เราทำการลง Package AR Foundation เข้าไปใน Project ครับ

  • ไปที่ Window > Package Manager
  • เลือก Package เป็น Unity Registry
  • เลือก AR (อันนี้เป็น Package รวมนะครับ ถ้าใครกลัวหนักแนะนำให้ลงแยกครับ )
  • กด Install
Press enter or click to view image in full size
เลือก AR แล้ว กด Install ได้เลยครับ

*** สำหรับ คนที่ต้องการจะลงแบบแยก ให้ลงตามนี้นะครับ ***

AR Foundation

ถ้าเป็น iOS ลง AR Kit

ถ้าเป็น Android ลง AR Core

หลังจากลงเสร็จแล้วให้เราไปเช็คความเรียบร้อยเพื่อความชัวว่าไม่มีอะไรผิดพลาด ให้ไปที่

  • Edit > Project Setting > XR Plug-in Management
  • Android ให้ติ๊กถูกที่ ARCore
  • iOS ให้ติ๊กถูกที่ AR Kit
ติ๊กถูกที่ ARKit/ARCore ตาม Platform ที่เราจะใช้
  • iOS ให้ดูว่า AR Kit : Requirement ถูกเลือก เป็น Required แล้วหรือยัง
  • Android ให้ดูว่า AR Core : Requirement ถูกเลือก เป็น Required แล้วหรือยัง
  • ถ้าทำลงทั้ง 2 Platform ให้ดู 2อันเลย
Press enter or click to view image in full size
ถ้า Requirement เป็น Required ก็เป็นอันว่าลงเรียบร้อยดีครับ

เนื้อหาส่วนนี้สำหรับ Android เท่านั้น เนื่องจาก ARCore นั้นไม่รองรับ Vulkan และต้องการ SDK version ขั้นต่ำที่ 24 ทำให้เราต้องไปเปลี่ยน minimum SDK version โดย

  • ไปที่ Project Setting > Player Setting
  • Other Settings
  • Rendering ติ๊ก Auto Graphics API ออกแล้ว เอา Valkan
เลือก Vulkan แล้วกดเครื่องหมายลบ ขวาล่าง
  • Minimum API Level ให้เราปรับเป็น 24 หรือมากกว่า
ปรับเป็น API level 24 หรือมากกว่านั้น

Scene Setup

ขั้นตอนนี้จะเกี่ยวกับการ Setup Scene ของเราให้ สามารถใช้งานAR ได้ครับ โดย AR Foundation นั้นจะมี Component ที่จำเป็นอยู่ใน Scene ของเราได้แก่

  • AR Session Origin : ไปที่ Game Obejct > XR > AR Session Origin หลังจากนั้น Unity จะสร้าง Game Object ที่ชื่อว่า AR Session Origin ที่มี AR Camera เป็น Child ใน Scene ของเราครับ ซึ่งตัว AR Session Origin เนี่ยจะทำหน้าที่เหมือนเป็นจุดอ้างอิงกล้องของเราในโลกความเป็นจริงครับ
  • AR Session : Game Obejct > XR > AR Session แล้วเราจะได้ Game Object ชื่อ AR Session เข้ามาใน Scene ของเรา
  • ไปที่ Game Object AR Session Origin ที่เราสร้างไว้ก่อนหน้านี้ Add Component ชื่อว่า AR Tracked Image Manager
คลิ้กที่ Add Component หาคำว่า Tracked Image Manager

MARKER

ถ้าพูดถึง AR หลายๆคนก็ต้องนึกถึงการที่เราเอากล้องไปจ่อกับ รูปอะไรสักอย่างใช่ไหมครับ ฉะนั้นเราจะมาสร้าง Marker ของเราในขั้นตอนนี้กัน

  • ไปที่เมนู Assets > Create > XR > Reference Image Library
  • หลังจากนั้นเราจะได้ Asset ที่เอาไว้สำหรับใส่ Marker ของเราเข้าไป หลังจากนี้จะเรียก Asset ตัวนี้ว่า Image Library
  • ให้เราหารูป ที่เราอยากเอาไว้สแกนขึ้นมาสักรูป (เป็นการ์ดเกมสวยๆ ก็ได้ครับตอนโมเดลขึ้นแล้วเท่ดี 555)
  • ในตัวอย่างนี้ผมจะใช้รูปนี้ครับ :)
ใครไม่รู้จะใช้รูปไหนเอาอันนี้ไปใช้ได้เลยจ้า
  • ไปที่ Image Library ของเราแล้วเลือก Add Image
  • ใส่รูปที่เราอยากให้เป็น Marker เป็นอันเสร็จการสร้าง Marker
ถ้าเรียบร้อยจะได้ประมาณนี้ครับ

ปล. เราสามารถตั้งชื่อ Marker ของเราได้ตามใจชอบแต่ว่าในบทความนี้เราจะยังไม่ได้ใช้ครับ

AR Object

ขั้นตอนนี้จะเป็นการสร้าง AR Object หลังจากกล้องของเราจับภาพ Marker ที่เราสร้างไว้ขั้นตอนที่แล้วได้ครับ ใครมีโมเดลเท่ๆ สามารถเอามาใช้ได้ตามใจชอบเลยครับ

  • สร้าง GameObject เปล่าๆ ขึ้นมาไว้เป็น Privot ก่อนครับ
    Game Object > Create Empty หลังจากนี้จะเรียกว่า AR Object นะครับ
  • เอาโมเดลที่เราต้องการจะใช้ ลากเข้าไปเป็น Child ของ AR Object ที่เราสร้าใหม่ก่อนหน้าครับ
  • ให้เราเปลี่ยน AR Object ของเราให้กลายเป็น Prefab โดยการลาก AR Object ของเราที่อยู่ในหน้าต่าง Hierachy เข้าไปในหน้าต่าง Project ครับ
  • หลังจากเราได้ AR Object ที่เป็น Prefab แล้ว ให้เรา ลบ AR Object ที่อยู่ใน Scene ทิ้งไปเลยครับ เพราะหลังจากนี้เราจะใช้ตัว Prefab แทนครับ
  • ปรับ Scale xyz ของ AR Object Prefab ให้เป็น 0.1 (ถ้าไม่ปรับ Scale เป็น 0.1 เวลาเราสแกนเจอ Marker โมเดลที่โชว์มันจะใหญ่มากๆ)
Press enter or click to view image in full size
AR Object Prefab ที่มี Scale 0.1

ประกอบร่าง

มาถึงขั้นตอนเกือบสุดท้ายของ บทความนี้แล้วครับ ซึ่งนั่นก็คือการเอาทุกอย่างมารวมกันนั่นเองครับ (Image Library + Marker + AR Object)

  • ไปที่ Game Object AR Session Origin
  • ที่ Component AR Tracked Image
  • ลาก Image Library ที่เราสร้างไว้ก่อนหน้านี้ใส่ในช่อง Serialized Library
  • ลาก AR Object Prefab ที่เราสร้างไว้ก่อนหน้านี้ใส่ในช่อง Tracked Image Prefab
หน้าตา Inspector ถ้าสำเร็จตามขั้นตอนที่บอกมาครับ

BUILD and RUN

หลังจากทำทุกอย่างเรียบร้อย AR App เราก็พร้อมใช้งานแล้วครับ

ไปที่ File > Build Settings

  • เลือก Scene ที่เราทำงาน แล้วลากเข้าไปในช่อง Scenes in Build ครับ (แต่ถ้าใครใช้ Scene เริ่มต้นมาตั้งแต่แรกก็ Add Open Scene ได้เลยครับ)
  • กด Build
  • ฝั่ง Android จะได้ .APK ให้เราเอาไปลงในมือถือเราได้เลยครับ
  • ฝั่ง iOS จะยุ่งยากเล็กน้อยเพราะเราจะได้ xCode Project มา แล้วต้องไป Run ผ่าน xCode อีกทีครับ
Press enter or click to view image in full size
เสร็จแล้ววววว

ก็จบไปแล้วนะครับสำหรับ Unity AR 101 ซึ่งบทความนี้จะเห็นได้ว่าเราไม่ได้เขียนโค้ดเลยสักตัว แต่สำหรับขั้น Advance ของ Marker AR ที่เราจะใช้ Marker Library มาเก็บ Marker หลายๆอันนั้น อาจจะไว้คราวหน้าหรืออาจจะเป็น Online Session นะครับยังไงก็ ติดตามข้อมูลได้ที่เพจนะครับผม

ขอบคุณสำหรับคนที่อ่านมาจนถึงตรงนี้นะครับ ใครมีคำถามสามารถ Inbox เข้าไปในเพจ นี่หรือUnity ได้เลยนะครับ

และสุดท้ายนี้ฝากติดตามเพจ นี่หรือUnity ด้วยนะครับบบ ขอบคุณครับบบบบ เจอกันใหม่ บทความหน้าครับ

--

--