วันอาทิตย์ที่ 28 ตุลาคม พ.ศ. 2561

Wikitude : Pricing

    หลังจากที่ได้ตรวจสอบเรื่องของอุปกรณ์ที่รองรับการทำงานของ Wikitude ต่อไปก็ต้องตรวจสอบเรื่อง license ที่เราจะใช้ในการทำงาน โดยจากที่ค้นคว้าจะมีอยู่ 3 แบบใหญ่ๆนั้นคือ

1. SUBSCRIPTION => จ่ายรายปี

2. ONE-TIME FEE => จ่ายครั้งเดียว

3. FREE TRIAL => ทดลองใช้ฟรี



        ซึ่งนอกจากข้างบนนั้น ก็จะมีอีกรูปแบบหนึ่งนั้นคือ Wikitude Academy ซึ่งจะเป็นจะเป็นตัว License ที่มีไว้ให้สำหรับการทำงานเพื่อจุดประสงค์ทางการศึกษา ซึ่งผมได้ลองกรอกรายละเอียดเพื่อที่จะขอใช้งานตัว License โดยผมกับเพื่อนได้ส่งกันไปคนละฉบับ แต่ของเพื่อนจะใช้เมล์ทั่วไป ส่วนผมใช้เมล์ของมหาวิทยาลัย ผลก็คือทางทีมงานได้ติดต่อกลับมาในเมล์ที่ผมติดต่อไป แต่ของเพื่อนผมนั้นไม่ได้



   โดยในอีเมล์ฉบับดังกล่าวเขาก็จะส่งตัว License ที่เป็นของ Academy มาให้ครับ ซึ่ง 1 License สามารถใช้ได้ 1 Package เท่านั้นนะครับ


วันอังคารที่ 16 ตุลาคม พ.ศ. 2561

Wikitude : Supported Android Devices

    สำหรับ AR SDK อีกตัวที่มีชื่อว่า Wikitude ก็เป็นอีกหนึ่งเครื่องมือที่น่าสนใจในการทำงานเกี่ยวกับด้าน AR โดยจากการค้นคว้าในเรื่องของอุปกรณ์ที่รองรับนั้นได้ผลดังนี้ (ลิงค์อ้างอิง )


อุปกรณ์จะต้องมีคุณสมบัติพื้นฐานดังนี้

    1. ต้องมีระบบปฏิบัติการแอนดรอยด์ตั้งแต่ 4.0.3+ ขึ้นไป
    2. มี GPS
    3. มี Accelerometer
    4. มีกล้องหน้าและหลัง
    
     

วันอาทิตย์ที่ 7 ตุลาคม พ.ศ. 2561

ปัญหาในการทำ AR : Markerless

    ในโพสต์ที่ผ่านมานั้นจะมีการเขียนเกี่ยวกับการทดลองทำเกี่ยวกับตัว AR แบบ Markerless หรือก็คือแบบไม่ต้องใช้ตัว target ในการที่จะให้เกิดการแสดงผล ซึ่งในการทดลองหลายการทดลองดังกล่าวยังไม่ได้ประสบผลสำเร้จโดยผมก็ได้พยายามหาวิธีแก้ไข ทั้งการลองทำใหม่ตั้งแต่ต้น ลองตรวจสอบขั้นตอนต่างๆแบบละเอียด แต่ก็ยังไม่พบสาเหตุของปัญหาดังกล่าว จนวันนี้เพื่อนที่ทำโครงงานด้วยกันก็ได้บอกว่าได้เจอสิ่งที่น่าจะเป็นสาเหตุที่ทำให้การทดลองเกี่ยวกับ Markerless นั้นไม่ประสบผลสำเร็จ นั้นก็คือ อุปกรณ์ของพวกผมนั้นไม่รองรับการทำงานของ Ground Plane

    โดย Ground Plane จะเป็นตัว Features สำคัญในการทำงานเกี่ยวกับ Markerless เพราะจะเป็นตัวที่ใช้ในการตรวจจับพื้นผิว หรือ Surface Detection พออุปกรณ์เราตรวจพบพื้นผิวแล้วก็จะแสดงผลบนพื้นผิวนั้นๆ ซึ่งมาถึงตรงผมก็เลยคิดได้ว่า สาเหตุที่ผมไม่ได้นึกถึงปัญหาที่ว่าตัวอุปกรณ์ไม่รองรับนั้น มาจากที่ว่าในตอนแรกที่ผมได้ลองศึกษาเกี่ยวกับ Vuforia แล้วได้ไปดูหน้าเว็บที่บอกว่าอุปกรณ์รุ่นไหนรองรับการทำงานบ้าง และได้พบกับ Link นี้ ซึ่งจะบอกว่ารองรับตั้งแต่ Android เวอร์ชั่น 4.4+ ขึ้นไปสามารถใช้งาน Vuforia ได้



    ซึ่งพอรู้ว่าอุปกรณ์ของผมนั้นสามารถทำงานได้ก็ได้ทดลองทำ AR แบบมี Marker ก่อนก็สามารถทำงานได้อย่างเป็นปกติ ก็เลยคิดว่าอุปกรณ์ของผมนั้นสามารถที่จะใช้งานได้กับทุก Features ที่ Vuforia มี แต่อันที่จริงแล้วไม่ได้เป็นอย่างที่ผมคิด เพราะเมื่อลองค้นคว้าดูดีๆแล้วจะพบว่าการใช้ Ground Plane ก็จะต้องมาดูสเปคอีกรอบ อ้างอิงจากหน้าเว็บนี้ Link


   โดยทำให้รู้ว่าอันที่แท้จริงแล้วอุปกรณ์ของผมนั้นไม่รองรับการทำงานของ Ground Plane ครับ 

    สรุปแล้วก็คือตัวอุปกรณ์ของผมนั้นสามารถที่จะใช้ Vuforia ได้แต่ไม่สามารถใช้งาน Ground Plane ที่เป็น Feature สำคัญในการทำ AR:Markerless ได้นั้นเองครับ

    หลังจากนี้พวกผมก็จะลองหันไปศึกษา Feature ตัวอื่นหรือเทคนิคอื่นๆเพื่อที่จะใช้ในการทำงานครับ




วันพุธที่ 19 กันยายน พ.ศ. 2561

ปัญหาและวิธีแก้ไขเรื่องกล้องไม่โฟกัส

    จากการทำงานเรื่องของ AR ไปเรื่อยๆนั้นพบว่า ปัญหาอย่างหนึ่งที่สำคัญและเจอบ่อยในการทำงานที่จำเป็นจะต้องมีเรื่องของการใช้กล้องสแกน Target นั้นก็คือปัญหากล้องที่เราใช้นั้นไม่โฟกัสทำให้ภาพนั้นเบลอ และไม่สามารถที่จะสแกนได้ ซึ่งผมก็ได้ไปทดลองหาวิธีแก้ไข โดยผมได้วิธีมาจากบทความนี้ครับ Link

    ในบทความจะเป็นการสร้าง Script ให้กับ ARCamera ขึ้นมาซึ่งตัวโค้ดเองนั้นได้มีการใช้คำสั่งทำให้ตัวของอุปกรณ์นั้นทำการ Auto Focus เองแบบอัตโนมัติ โดยใช้ Focus Mode แบบ"ต่อเนื่อง" หรือ แบบ Continuous 

ตัวอย่างโค้ดการเลือกโหมด


CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);


นอกจากโหมด continuous แล้วยังมีอีกหลายโหมดด้วยกันตามบทความนี้ Link
ซึ่งผมก็ยังไม่ค่อยเข้าใจในโหมดต่างๆมากนัก และคิดว่าโหมด Continuous เองก็สามารถที่
จะใช้งานได้ดีอยู่แล้วเพราะฉะนั้นผมจึงขอข้ามเนื้อหาในส่วนนี้ไปครับ
























ผลเปรียบเทียบระหว่างแอปพลิเคชัน


รูปจากแอปพลิเคชันที่ไม่ได้ใส่ Script Auto Focus




รูปจากแอปพลิเคชันที่ใส่ Script Auto Focus แล้ว


วันอังคารที่ 18 กันยายน พ.ศ. 2561

การทดลองทำปุ่มไว้บนป้ายแบบ AR

    การทดลองนี้เกิดขึ้นจากที่ว่า ในวันพฤหัสบดีที่ 13 กันยายน พศ. 2561 เพื่อนที่ทำโปรเจคท์นี้ด้วยกันได้พูดขึ้นมาว่า เราน่าจะลองทำเป็นปุ่มกดบนป้ายนะ เพราะว่าตัวป้ายนั้นมีตั้งแต่ชั้นที่ 1 - 6 ถ้าเราทำปุ่มกดบนป้ายให้ ผู้ใช้กดได้เลยคงจะสะดวกไม่น้อยเลยทีเดียว

    ตัวผมเองก็มีความสนใจและเห็นด้วยกับความคิดนี้เลยลองค้นหาวิธีการสร้างปุ่มและสามารถใช้กับ AR ได้ ซึ่งก็มีอยู่หลายวิธีซึ่งวิธีที่ผมสนใจคือวิธีที่อยู่ในคลิปวิดิโอนี้ครับ Link (Youtube) ซึ่งผมก็ลองทำตามดูแล้วมันก็ได้ผลตามวิดิโอด้านล่าง


    โดยในวิดิโอจะเป็นการอัดหน้าจอจากโทรศัพท์ของผมแล้วสแกน Target ที่อยู่บนหน้าจอโน๊ตบุ๊คของผมเองครับ

    ในคลิปวิดิโอนั้นจะเป็นการกดปุ่มทั้งหมด 6 ปุ่ม โดยเมื่อกดแล้วจะมีเสียงเป็น โด เร มี ฟา ซอล ลา ไล่มาตั้งแต่ปุ่มบนสุดถึงปุ่มล่างสุดครับ

สิ่งที่ได้จากการทดลอง

1. การประยุกต์ใช้ 3D Model Cube มาทำเป็นปุ่มกดด้วยการใช้ Switch-Case 



    จากรูปด้านบนจะเห็นได้ว่าปุ่มกดที่ใช้กดนั้นผมใช้เป็น 3D Model ลูกบาศ์กธรรมดามาใช้เป็นปุ่มกดครับ โดยในไฟล์ Script จะมีชุดคำสั่งดังนี้อยู่

Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);

    คำสั่งด้านบนจะเป็นการรับอินพุทว่าตอนนี้หน้าจอของอุปกรณ์ที่เป็น Touch Screen นั้นถูกสัมผัสที่จุดใด แล้วเมื่อเรารู้ว่าจุดใดถูกกดอยู่ เราสามารถที่จะเรียกค่า value ที่เป็น name ของ object ที่เรากำลังกดอยู่ได้ แล้วนำไปเข้า switch case แล้วทำตามเงื่อนไขต่างๆได้ครับ ในที่นี้จะเป็นเงื่อนไขการเล่นเสียงโน๊ตต่างๆ


รูปภาพการใช้เงื่อนไข Switch Case


รูปภาพการตั้งชื่อให้ 3D Model Cube เป็น btn1-btn6

2. การสร้าง Array เปล่าใน Unity Script


รูปการสร้าง Array aClips และการใช้ Library AudioSource สำหรับการเล่นเสียงเพลง


การเรียกใช้ Array และใช้คำสั่งเล่นเสียงเพลง


    ในไฟล์ Script ผมจำเป็นจะต้องสร้าง Array ขึ้นมาชื่อว่า aClips ไว้สำหรับการเล่นเสียงตัวโน๊ตที่ต่างกัน ซึ่งพอผมสร้างเสร็จแล้วในโปรแกรม Unity จะมีแถบใหม่ขึ้นมาเป็นแถบชื่อ aClips ตามชื่อ Array ที่ผมได้สร้างเอาไว้ และผมสามารถที่จะลากไฟล์เสียงเข้าไปเป็น Element ของ Array เพื่อไว้ใช้เล่นเป็นเสียงได้เลยครับ


รูปภาพการเพิ่ม element ให้กับ Array



การทดลองใช้ป้ายตึกเป็น Target


    ในบริเวณอาคาร 81 จะมีเป็นป้ายบอกรายละเอียดว่าตัวอาคารนั้นแต่ละชั้นมีอะไรบ้าง ซึ่งท่านอาจารย์ที่ปรึกษาให้ลองไปนำป้ายพวกนี้มาเป็น Target ซึ่งเราก็ได้เลือกมา 2 ป้ายจาก 2 สถานที่ นั้นคือ


1. ชั้น 1 อาคาร 81

   

2. ชั้นที่ 2 อาคาร 81 



    ซึ่งดูจากรูปแล้วทั้งสองป้ายนั้นมีรายละเอียดเหมือนกันแต่ผมจำเป็นที่จะต้องนำมา 2 ป้ายเพราะว่า ในส่วนของป้ายชั้นที่ 1 นั้นอยู่ในกรอบพลาสติกใส ซึ่งอาจจะทำให้เกิดการสะท้อนแสงอาจจะทำให้เกิดการ Tracking เกิดผิดพลาดได้ ต่างจากป้ายที่สองซึ่งถูกแปะไว้กับตัวประตูเลย

ผลการวัด Rating

1. รูปป้ายที่ชั้น 1 ได้ 2 ดาว




2. รูปป้ายชั้นที่ 2 ได้ 1 ดาว



สรุปผลการทดลอง

    จากการทดลองนำไปใช้เป็น Target ผลปรากฏว่ารูปทั้ง 2 สามารถนำไปใช้เป็น Target ได้ถึงแม้ว่ารูปที่มาจากป้ายที่อยู่ชั้น 1 นั้นจะมีภาพสะท้อนของหลอดไฟและถูกนับเป็นจุด Tracking ไปด้วย



รูปการใช้ป้ายของชั้นที่ 1 เป็น Target


รูปการใช้ป้ายของชั้นที่ 2 เป็น Target





วันจันทร์ที่ 10 กันยายน พ.ศ. 2561

Vuforia + Unity Tutorial Part 4 : Ideal Target

ผลการค้นหารูปภาพสำหรับ target





    Target นั้นเป็นส่วนสำคัญในการใช้ AR แบบ Marker เพราะจะเป็นส่วนที่ตัวอุปกรณ์นั้นจะสแกนแล้วแสดงผลลัพธ์ออกมา โดย Target ที่เป็นแบบ Single Image นั้นจะต้องมีความชัดเจนพอที่จะทำให้ตัวอุปกรณ์นั้นสามารถที่จะสแกนได้ โดย Vuforia ได้กำหนดลักษณะของตัว Target ที่เป็นอุดมคติไว้ดังนี้

แหล่งที่มา https://library.vuforia.com/articles/Solution/Optimizing-Target-Detection-and-Tracking-Stability

    1. Rich in detail => มีรายละเอียดของรูปภาพเยอะ เช่น ภาพผู้คนบนท้องถนน กลุ่มคนหรือสิ่งของจำนวนมากๆ หรือ อาจจะเป็นรูปภาพการแข่งขันกีฬา เป็นต้น



ตัวอย่าง Target ที่ดี

    2. Good contrast => รูปภาพนั้นมีแสงสว่างมากเพียงพอ ไม่มืดหรือสว่างมากจนเกินไป

รูปภาพที่เกี่ยวข้อง

ตัวอย่างของ Target ที่ไม่ดี เนื่องจากมีสีที่มืดจนเกินไป


    3. No repetitive pattern => รูปภาพจะต้องไม่มีลักษณะเป็นรูปแบบซ้ำๆกัน เช่น รูปตารางหมากรุก

ผลการค้นหารูปภาพสำหรับ checker boards

ตัวอย่างของ Target ที่ไม่ดีเพราะเป็นรูปแบบซ้ำกันทั้งรูป

วันอังคารที่ 4 กันยายน พ.ศ. 2561

Vuforia + Unity Tutorial Part 3 : ทดลองการแสดงผลแบบใช้ Marker



    ในโพสต์นี้นะครับจะเป็นการทดลองเกี่ยวกับ AR โดยใช้ Unity + Vuforia เช่นเคย โดยในโพสต์นี้จะเป็นทดลองใช้ AR แบบ Marker อย่างง่ายนะครับ

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

สิ่งที่ได้เรียนรู้

    1) การใช้ Target Manager ในตอนแรกที่ผมได้สัมผัสใช้งาน Vuforia เป็นเรื่องปกติที่เวลาสร้างโปรเจคท์ใหม่ผมก็จะต้องมาขอ License Key อันใหม่ ซึ่งมันจะมี Tab ข้างๆ ที่เขียนว่า Target Manager ซึ่งในตอนนั้นเองผมก็สงสัยว่ามันคืออะไร แต่จากชื่อมันก็น่าจะเกี่ยวกับตัวของ Target หรือ Marker นั้นเอง 


    จากรูปด้านล่าง เมื่อเราทำการสร้าง Database เสร็จนะครับ เราจะสามารถ Add รูปที่ใช้เป็น Target/Marker ได้ โดยจากคลิปวิดิโอจะให้ใช้สองรูปด้านล่างครับ

    เมื่อเรา Add เสร็จแล้วเราสามารถกดโหลด Database นี้เพื่อไปใช้งานต่อได้โดยสามารถเลือก Platform ที่เราใช้ได้ 2 ประเภทนั้นคือ Android Studio, Xcode , Visual Studio จะอยู่หมวดเดียวกัน กับอีกประเภทคือจะใช้กับ Unity นั้นเองครับ


    2) Import ทุกอย่างที่ต้องใช้ ในที่นี้จะต้องใช้ Database ที่เราได้โหลดมา แล้วก็ตัวของรูป Model 3D ที่จะให้มันแสดงผลออกมา และในคลิปจะมีการ Import Package ของ Vuforia ด้วยซึ่งคลิปมันก็ลงไว้เมื่อ 2017 ซึ่งตอนนี้ที่ผมลองทำปี 2018 ตอน Install โปรแกรม Unity นั้นจะมีการติ๊กให้ลง Vuforia ไปเลย ทำให้ในส่วนนี้นั้นผมไม่จำเป็นที่จะต้อง Import เข้ามาเหมือนกับเขาครับ (ในข้อนี้ผมจะขอไม่ใส่รูปนะครับ)

    3) เมื่อทำการ Import Package ต่างๆเสร็จแล้วนะครับเราก็จะต้องใช้ตัว Object ต่างๆตามรูปด้านล่างนะครับ



3.1 ARCamera อยู่ใน Package ของ Vuforia ครับเพื่อให้เราใช้งานแทนตัวของ Main Camera ซึ่งจะต้องมีการใส่ License Key ด้วยครับ

3.2 ImageTarget จะเป็นตัวที่เราเลือกใส่รูป Target ลงไปครับจะมีหน้าตาประมาณรูปข้างล่าง โดยตัวรูปที่เราเลือกจะมาจากที่เราได้ใส่ไว้ใน Database ในเว็บ Vuforia และดาวน์โหลดมาเป็น Package ครับผม


รูปตอนเลือกตัวรูปที่จะใช้เป็น Target


เมื่อเลือกเสร็จะเป็นรูปดังนี้

3.2 wolf อันนี้จะเป็นรูป Model 3D ที่เราจะใช้ครับซึ่งผมเลือกที่จะใช้เป็นรูปหมาป่า โดยจากรูปด้านบนเราจะต้องเลือกให้เป็น Child ของ Object ที่ชื่อว่า ImageTarget นะครับไม่อย่างนั้นแล้วจะไม่สามารถทำงานได้ ตัวโมเดลหมาป่าจะโผล่ขึ้นมาเลยเวลาใช้งาน 


    หลังจากทำตามขั้นตอนที่กำหนดนะครับเราก็สามารถที่จะ Build APK ออกมารันในโทรศัพท์ได้เลยครับก็ถือว่าเสร็จแล้ว หรือเราจะลองกดรันใน Unity แล้วลองหาภาพ Target มาลองดูก่อนว่าหมาป่าจะขึ้นหรือไม่ตามภาพด้านล่างครับ

    จากรูปจะเห็นได้ว่าผมเอาโทรศัพท์ของผมเปิดตัวรูป Target แล้วลองส่งดูก็จะขึ้นเป็นรูปของหมาป่าครับ


    อีกรูปหนึ่งจะเป็นรูปที่ผม Capture มาจากจอโทรศัพท์ของผมครับโดยใช้โน๊ตบุ๊คผมเปิดรูป Target แล้วส่องไปที่จอดูครับ ก็จะขึ้นเป็นหมาป่าเด้งออกมา

    สาเหตุที่ผมจะต้องมาศึกษาการใช้ Marker นะครับเพราะว่าเราอาจจะจำเป็นที่จะต้องใช้ตัว Marker เนี่ย ในการระบุตำแหน่งชั้นของผู้ใช้งานครับว่าตอนนี้เขานั้นอยู่ที่จุดไหน ชั้นอะไรครับผม เลยจำเป็นที่จะต้องศึกษาไว้ก่อน


วันอังคารที่ 28 สิงหาคม พ.ศ. 2561

Vuforia + Unity tutorial Part 2.2 แก้ปัญหา Build ไม่ผ่าน (Android Studio)

    นี้เป็นวิธีการแก้ปัญหาโดยใช้ตัวโปรแกรมอย่าง Android Studio ในการจัดการพวก SDK Tool โดยต้องขอเกริ่นก่อนว่าการที่เราจะ Build APK ได้นั้นจะต้องมีโฟลเดอร์ SDK ของ Android ก่อนและหลังจากนั้นเราก็กำหนด PATH ไปที่โฟลเดอร์ดังกล่าว เพื่อที่ตัวโปรแกรม Unity จะได้ใช้ Resource เหล่านี้ในการสร้างไฟล์ APK

    ซึ่งเราสามารถที่จะโหลดเป็น SDK แยกมาตามแต่ละเวอร์ชั่นก็ได้ แต่วิธีนี้จะต้องจัดการเวอร์ชันผ่านทาง SDK Manager ที่เป็น Command Line กับอีกวิธีซึ่งผมลองใช้คือ การโหลดโปรแกรม Android Studio เอาไว้ในเครื่องซึ่ง โหลดเอาไว้แต่ไม่ได้ใช้ทำ Application ใดๆนะครับ แต่โหลดไว้สำหรับกำหนด PATH ไปที่โฟลเดอร์ที่มี SDK Tool อยู่ และผมสามารถที่จะใช้ SDK Tool ที่เป็นแบบ GUI ที่มาพร้อมกับตัวโปรแกรม Android Studio


    
โดยเมื่อกดที่ปุ่ม ที่อยู่ในรูปด้านซ้ายจะพาเราไปที่หน้าต่างของ SDK Manager นะครับ


    และเมื่อเลือกแถบ SDK Tool จะมีรายละเอียดของ Tool ต่างๆขึ้นมา


    โดยปัญหาที่เกิด เกิดจากที่เวอร์ชันของ SDK Build-Tools รุ่นใหม่ๆนั้นทำให้เราไม่สามารถ Build Apk ได้ซึ่งจากที่คู่หูทำโปรเจคท์ผมไปหาข้อมูลมา เขาบอกว่ามีคนแนะนำเวอร์ชัน 24 - 25  ผมเลยจะลองเปลี่ยนให้เป็นเวอร์ชั่น 24 ดู 

    ในหน้าต่างดังกล่าวถ้าเราติ๊กที่ช่อง Show Package Details ในส่วนหัวข้อ Android SDK Builds-Tool จะมีเวอร์ชันต่างๆมากมายออกมาดังรูป


    ให้เราทำการติ๊กไปที่เวอร์ชั่น 24.03 ครับ แล้วกดติ๊กออกที่เวอร์ชั่น 26.03 แล้วกด Apply ซึ่งมันจะใช้เวลาสักเล็กน้อยเมื่อเสร็จแล้ว เราก็สามารถที่จะ Build APK ออกมาได้ครับ




Vuforia + Unity tutorial Part 2.1 แก้ปัญหา Build ไม่ผ่าน


    จากบทความที่แล้ว คุณเพื่อนธนัท คู่หูผมได้ลองที่จะ Build APK File ผ่านทาง Unity แบบง่ายๆดู แต่ก็เจอปัญหา Build ไม่ผ่าน เกิด Error SDK ไม่อัพเดท ไหนจะตากผ้าไว้แล้วฝนดันตกเทลงมาเหมือนฟ้าแกล้งกันอีก ซวยจริงๆ

    ซึ่งตัวผมนั้นก็ได้ลองในเวลาไล่เลี่ยกัน ลองไปก็คุยปรึกษาปัญหากันไป โดยที่ก็ลองทำตาม Tutorial ของทางเว็บ unity3d ดู (https://unity3d.com/learn/tutorials/topics/mobile-touch/building-your-unity-game-android-device-testing) ซึ่งจะคล้ายๆกับที่เพื่อนผมได้ทำไป

    สิ่งที่จะแตกต่างจากเพื่อนก็คือ ผมไม่ได้ลง Android Studio ครับ ลงแค่เพียง Command line tools only เท่านั้น (โหลดที่นี่ )ซึ่งต่อจากนี้ก็มาพูดปัญหาที่ผมได้พบกัน

ปัญหาที่ 1

    หลังจากที่ลง JDK, Android SDK (command line) ตั้งค่า Unity ตาม Tutorial เสร็จทุกอย่าง ก็มาถึงขั้นตอนการ Build!

    ขึ้น Error มาคล้ายๆกับเพื่อนเลย จะแตกต่างก็ตรงเวอร์ชั่นปัจจุบันของผมเป็น 0.0
    เอาล่ะสิ เจ้า 0.0 นี่มันก็หมายความว่าไม่มีเลยนี่หว่า ผมก็เลยเข้าไปอ่านจากเว็บที่โหลด Android SDK มาก็ได้คำตอบว่า ตัวที่โหลดมาเนี่ย มีแค่ tool ที่เป็น Command Line อย่างเดียว พวก Package ที่ต้องใช้นั้นต้องใช้คำสั่งโหลดอีกที
    โดยขั้นตอนการโหลด package นั้นให้เปิด cmd ขึ้นมาแล้ว cd ไปหาโฟล์เดอร์ที่แตกไฟล์ไว้ แล้วเข้าไปที่ tool>bin ซึ่งจะมีไฟล์ sdkmanager อยู่ จากนั้นก็ใช้คำสั่ง
sdkmanager "platform-tools" "platforms;android-26"
    ทีนี้ก็จะได้ package ที่จำเป็นต้องใช้ใน version ล่าสุด (version 26) ออกมาแล้ว


ปัญหาที่ 2 

    หลังจากติดตั้ง Package version ล่าสุดแล้ว ความนี้ต้อง Build ผ่านแน่นอน!


    ชะอ้าว ดันเกิด error ขึ้นมาซะอย่างงั้น ซึ่ง error ผมไม่ทราบว่าสาเหตุจริงๆเป็นเพราะอะไร sdk ก็เพิ่งลงไปเมื้อกี้ แต่จากปัญหาที่แล้วที่ error เพราะว่าเวอร์ชั่น sdk ขั้นต่ำต้องเป็น version 24 ผมจึงเดาว่าบางที version 26 อาจจะยังใหม่ไป ยัง support ไม่เต็มที่ จึงทำการดาวน์โหลด version 24 มาแทน(ซึ่งก็มีคนแนะนำว่าใช้ version 25 ก็ได้) ผลปรากฎว่าสามารถ Build APK File ออกมาได้โดยไม่มีปัญหาอะไรครับ

( Asset ที่ใช้ทดสอบเป็น ลูกบาศก์สีแดงที่จะหมุนเรื่อยๆ เมื่อแตะที่จอก็จะสลับทิศทางการหมุน)





เพิ่มเติม : ผมได้ทำการลอง Build อีกรอบโดยลบ Android SDK version 24 เหลือแค่ version 26 ผลปรากฎว่ากลับ Build ได้โดยไม่เกิด error ใดๆ จึงได้ลองอีก 4-5 รอบก็ไม่พบปัญา ซึ่งตรงนี้ก็ไม่เข้าใจว่าเกิดจากอะไรกันแน่ แต่ก็ทำการติดตั้ง Android SDK version 24 เพื่อที่จะได้ไม่มีปัญหาในอนาคตครับ :)


Vuforia + Unity tutorial Part 2 : ทดลอง Build APK ไฟล์ผ่าน Unity แบบเบสิคๆ


Source of tutorial



    ในคลิปวิดิโอที่ผมได้แปะไว้ในโพสต์นี้จะเป็นคลิปวิดิโอเกี่ยวกับการทำ AR พื้นฐาน เป็นการควบคุมตัวละครที่เป็นมอนเตอร์ยักษ์สีเขียว โดยสามารถควบคุมให้มันเดินไปตามที่เราต้องการได้ด้วยการใช้ Joystick บนจอโทรศัพท์


    ผมจะขอสรุปสิ่งที่ผมได้จากการทดลองทำตามคลิปวิดิโอนี้ดังนี้ครับ

สิ่งที่ได้เรียนรู้และปัญหาที่พบ

1) การโหลดพวกอุปกรณ์เสริมผ่านทาง Asset Store ในที่นี้คือผมโหลดตัวโมเดลยักษ์เขียวมาครับ โดยตัว Asset ต่างๆมีทั้งฟรีและตัวเสียเงินครับผม


2) ในตอนแรกทีทำตามวิดิโอจะมีการ Import Package ที่มีชื่อว่า CrossPlatformInput แต่ในโปรแกรม Unity ของผมเองนั้นไม่มี ทำให้ต้องไปหาวิธีแก้ไข ซึ่งวิธีแก้นั้นก็ง่ายมากครับ เพราะว่าตัว Package นี้อยู่ในส่วนของ Standard Asset ซึ่งเราโหลดได้ที่ Asset Store เลยครับ



ภาพจากคลิปวิดิโอ จะมีให้ Import เลย


ภาพจากเครื่องของผม


ตัว Standard Assets ที่สามารถกด Download และ Import ลงใน Project ได้เลย

3) ในขั้นตอนการ Build APK ของ Android นั้นสิ่งที่ต้องก็คือการตั้งชื่อ Package Name โดยรูปแบบการตั้งจะเป็น com.ชื่อของเรา.ชื่อ application ครับ


4) หลังจากตั้งชื่อเสร็จแล้ว เมื่อกด Build โปรแกรมจะให้เราตั้งชื่อ APK พอเราตั้งชื่อเสร็จแล้วมันจะให้เราระบุ Directory ที่มีตัวของ JDK และ Android SDK อยู่ โดยผมได้มารู้ทีหลังว่าเราสามารถตั้งค่า Default ไว้ได้เลยโดยจะอยู่ในแถบ Unity Preference ในส่วนของ External Tools จากรูปด้านล่างนั้นเราสามารถใส่ PATH ไว้ด้านล่างได้เลยครับ


5) นอกจากนี้ในรูปด้านบนเราสามารถที่ตั้งตัว Editor ไว้แก้ไข Script เองได้อีกด้วย โดยถ้าเราไม่ได้ตั้งจะเป็นโปรแกรม Visual Studio ซึ่งเราได้ติดตั้งพร้อมกับตัวโปรแกรม Unity

6) ในตอนนี้นั้นยังไม่สามารถทดลองเรื่องของการแก้ไขโค้ดและดูผลที่เปลี่ยนไปได้เพราะว่ายังไม่สามารถ Build เป็นไฟล์ APK ออกมาได้ครับ เพราะติดเรื่องเวอร์ชั่นของ SDK ซึ่งตอน Building อยู่มันจะขึ้นว่าให้ไปอัพเดต ทำให้ไม่ผ่าน 


    โดยผมในตอนนี้กำลังลองหาวิธีแก้ไขอยู่ครับ ถ้าสามารถแก้ได้แล้วจะโพสต์ลงบล็อกถัดไปครับ