Design and Develop an Interactive Virtual Aquarium

Design and Develop an Interactive Virtual Aquarium

สมาชิกผู้จัดทำ

นางสาวณัฏฐณิชา ศรสุวรรณรังสี สถาบันวิทยาการหุ่นยนต์ภาคสนาม มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าธนบุรี ปีการศึกษา 2564

วัตถุประสงค์

  1. เพื่อศึกษาออกแบบและพัฒนาระบบ Interactive Virtual Aquarium
  2. เพื่อประเมินผลการใช้งานระบบ Interactive Virtual Aquarium ที่จะช่วยเติมเต็มจินตนาการและสร้างความบันเทิงของผู้เล่น

ภาพรวมของระบบ (system overview)

  • 1. ผู้ใช้เลือกรูปภาพของสัตว์ทะเลที่ตนเองสนใจมาระบายสี
  • 2. นำรูปภาพที่ระบายสีมาแสกนรุปด้วย Scanner
  • 3. นำรูปที่ผ่านการแสกนแล้วส่งเข้า Google Forms
  • รูปของสัตว์ที่ถูกส่งเข้า Google Forms จะถูกนำไปปรากฏบน Interactive Virtual Aquarium
  • ผู้ใช้สามารถมีปฏิสัมพันธ์กับสัตว์ที่อยู่บน Interactive Virtual Aquarium ได้

วิธีการเล่น

  1. ผู้เล่นเลือกภาพสัตว์ทะเลที่ชอบตามที่ได้เตรียมไว้มา 1 ชนิดจากทั้งหมด 3 ชนิดแล้วให้ผู้เล่นระบายสี
  2. เมื่อผู้เล่นระบายสีเสร็จแล้ว ให้นำภาพนั้นเข้าสแกนเนอร์หรือจะใช้มือถือสแกนภาพด้วย CamScanner แล้วส่งเข้า google form
  3. หลังจากนั้นชมสัตว์ทะเล 3 มิติเคลื่อนไหวอย่างมีชีวิตบน Interactive Virtual Aquarium นอกจากนี้ผูเ้ล่นยังสามารถมีปฏิสัมพันธ์ภายนอกกับสัตว์ทะเลของตัวเอง และของผู้อื่นได้ โดยการยกมือไปแตะสัตว์ทะเลบน Interactive Virtual Aquarium

แผนการดำเนินงาน

การนำเสนอผลการออกแบบ

ส่วนประกอบของ Interactive Virtual Aquarium จะประกอบไปด้วย 2 ส่วนหลัก คือ

  • ส่วนทะเลเสมือน คือ การฉายภาพบนผนังด้วย short-throw projector
  • ส่วนปฏิสัมพันธ์ จะใช้กล้องสามมิติ (Kinect V2) ในการตรวจจับการเคลื่อนไหวของผู้เล่นเมื่อผู้เล่นระบายสีภาพเสร็จเรียบร้อย แล้วนำภาพไปเข้าสแกนเนอร์หรือส่งภาพเข้ามาผ่าน google form จากนั้นโปรเจคเตอร์จะฉายภาพสัตว์ทะเล 3 มิติที่ผู้เล่นระบายสีเคลื่อนไหวบนผนังเรียบหรือฉากรับภาพ ซึ่งกล้องสามมิติจะตั้งอยู่ด้านบนโปรเจคเตอร์เพื่อตรวจจับว่าผู้เล่นได้โต้ตอบกับ Interactive Virtual Aquarium ในพื้นที่ส่วนปฏิสัมพันธ์หรือไม่ โดยผู้เล่นสามารถเคลื่อนไหวไปมาได้ภายในพื้นที่นี้

การเตรียมภาพสัตว์ทะเลสำหรับระบายสี โดยจะนำโมเดล 3 มิติเข้าโปรแกรม MAYA หรือ Blender เพื่อสร้าง UV mapping ของโมเดล 3 มิตินั้น ๆ จากนั้นนำ UV mapping ที่ได้เข้าโปรแกรม Photoshop เพื่อจัดตำแหน่ง Aruco เฉพาะของโมเดลนั้น ๆ จะได้เป็นภาพสำหรับระบายสีพร้อมนำไปพิมพ์บนกระดาษ A4 ซึ่งสัตว์ทะเลแต่ละชนิดจะมี Aruco ไม่เหมือนกัน เพื่อให้ตัวระบบสามารถจำแนกได้ว่ารูปภาพนั้นคือของสัตว์ทะเลชนิดอะไร

การออกแบบการทำงานของระบบ

1.ส่วนการเตรียมรูปภาพด้วยภาษา python

  • เขียนโปรแกรมเพื่อรับรูปภาพที่ได้จากเครื่องสแกน เตรียมโฟลเดอร์สำหรับเก็บรูปภาพที่ได้มาจากเครื่องสแกน และเขียนโปรแกรมให้วนดูว่ามีไฟล์ภาพ(.jpg) เข้ามาใหม่ในโฟลเดอร์นั้นหรือไม่
  • เมื่อตรวจสอบว่ามีรูปเข้ามาแล้ว นำรูปภาพมาตรวจสัญลักษณ์ Aruco ทั้งสี่มุม เพื่อจำแนกประเภทของปลา
  • การปรับขนาดของรูปภาพเพื่อให้เหมาะสมกับโมเดลปลาสามมิติ

2.ส่วนการสื่อสารระหว่างภาษาโปรแกรม (ภาษา python และ C#)

  • การที่จะทำให้การส่งข้อมูลรูปภาพระหว่างฝั่ง python และ Unity เป็นไปได้อย่างราบรื่นโดยใช้คอมพิวเตอร์เครื่องเดียวจึงใช้ UDP socket ในการส่งและรับข้อมูลรูปภาพระหว่างกันซึ่งฝั่ง python จะเป็นฝ่ายส่งข้อมูล ส่วนฝั่ง Unity จะเป็นฝ่ายรับข้อมูล เมื่อฝั่ง python ส่งข้อมูล แล้วทางฝั่ง Unity ได้รับข้อมูลเรียบร้อยแล้ว ฝั่ง Unity จึงค่อยส่งสัญญาณไปบอกฝั่ง python ว่าได้รับข้อมูลเรียบร้อยแล้วซึ่งฝั่ง python จะไม่ส่งข้อมูลชุดใหม่จนกว่าฝั่ง Unity จะส่งสัญญาณมาว่าได้รับข้อมูล

3.ส่วนปฏิสัมพันธ์ภายใน

  • การเขียนโปรแกรมการว่ายน้ำของฝูงปลาด้วกฎของ boids [13]
  • การใช้ทฤษฎีสำหรับสร้างการเคลื่อนไหวของปลาด้วย shaders
  • การเขียนโปรแกรมเพื่อให้ปลาหลบสิ่งกีดขวาง
  • การสร้าง physics สำหรับจำลองการว่ายของปลา

4.ส่วนปฏิสัมพันธ์ภายนอก

  • ในส่วนนี้จะใช้กล้อง 3 มิติ ตรวจจับมือของผู้เล่นว่าสัมผัสตำแหน่งไหนในโลกจริง แล้วนำตำแหน่งนั้นไปประมาณเป็นตำแหน่งจุดสามมิติใน Interactive Virtual Aquarium เพื่อส่งสัญญาณให้สัตว์ทะเลในน้ันมีการปฏิสัมพันธ์กับผู้เล่น

ผลการทดลอง

วิดีโอการเล่น Interactive Virtual Aquarium

0:00

0:00

กิจกรรมพิเศษที่ อ.บ้านฉาง จ.ระยอง

  • 1
  • 2
  • 3
  • 4

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

การประเมินประสิทธิภาพของระบบ การประเมินความสามารถของการใช้งานระบบ และการประเมินคุณค่าของงานเฉพาะทาง เก็บข้อมูลจากการที่ผู้เข้าร่วมการทดลองแก้ไขปัญหาตามโจทย์ที่ผู้วิจัยกำหนดไว้ให้ โดยผู้เข้าร่วมการทดลองมีจำนวนทั้งหมด 22 คน อายุ 16 – 37 ปี ผู้ร่วมทำการทดลองให้ความเห็นเกี่ยวกับการใช้งานระบบว่าระบบนี้สนุกและใช้งานงานง่าย รวมถึงส่วนใหญ่เห็นด้วยว่าระบบช่วยให้เติมเต็มจินตนาการของภาพที่ระบายสีได้มากขึ้น และช่วยสร้างความบันเทิงแก่ผู้เล่นมากขึ้น

ข้อเสนอแนะ

  • การแสดงผลจากที่ฉายภาพผ่านโปรเจคเตอร์พัฒนาเป็นแบบ stereoscopic หรือระบบ VR ให้ผู้เล่นได้เข้าถึงและดื่มด่ำกับภาพที่ตัวเองสร้างขึ้น
  • พัฒนาให้สามารถวาดรูปภาพหรือระบายสีโดยไม่ต้องกำหนดรูปแบบของภาพเพื่อให้ผู้เล่นได้รู้สึกสนุกและเติมเต็มจินตนาการมากขึ้น
  • เพิ่มพื้นที่ในการเล่นรวมถึงลูกเล่นของระบบที่มากขึ้น