Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 68 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
68
Dung lượng
10,9 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỜ ÁN TÌM HIỂU CÁC FRAMEWORK HỖ TRỢ LÀM GAME 3D TƯƠNG TÁC, THỰC THỂ ẢO AR Giảng viên hướng dẫn: Ths Nguyễn Thị Thanh Trúc Sinh viên thực hiện: Lương Lý Công Thắng - 18520357 Hồ Công Thành - 18520359 TP Hồ Chí Minh, tháng 12 năm 2011 Mục lục Chương 1: Giới thiệu đề tài 1.1 Lý chọn đề tài 1.2 Mô tả đề tài 1.3 Mục tiêu đề tài 5 5 Chương 2: Cơ sở lý thuyết 2.1 Công nghệ Augment Reality 2.1.1 Lịch sử 2.1.2 Các thiết bị dùng cho AR 2.1.3 Cách thức hoạt động 2.1.4 Công nghệ SLAM 2.1.5 Một số ứng dụng Game AR 2.2 Dòng game giải đố 2.2.1 Định nghĩa lối chơi 2.2.2 Lịch sử 2.2.3 Dịng game phụ 2.3 Finger tracking (theo dõi ngón tay) 2.3.1 Các kiểu tracking: 2.3.2 Các công nghệ hỗ trợ 2.3.3 Ứng dụng 6 12 13 15 15 16 21 25 25 28 29 Chương 3: Các công nghệ sử dụng 3.1 Vuforia 3.1.1 Tổng quan 3.1.2 Kiến trúc và các nền tảng hỗ trợ 3.1.2.1 Kiến trúc API 3.1.2.2 Các nền tảng hỗ trợ 3.1.3 Các chức 3.1.3.1 Camera 3.1.3.2 Tracker 3.1.3.3 Target 3.1.3.4 Object Trackable API 29 29 29 30 30 31 33 33 34 35 35 3.1.5 Cách sử dụng 3.1.5.1 Tài khoản license key 3.1.5.2 Download Setup 3.1.5.3 Sử dụng tính Tracking Image 3.1.5.4 Sử dụng tính Tracking Object 3.1.5.5 Sử dụng tính Tracking Environment 3.1.6 Ưu nhược điểm 3.2 Tổng quan Unity 3.2.1 Các thành phần giao diện 3.2.2 Các thành phần tài nguyên 3.3 Tổng quan ManoMotion SDK 3.3.1 Tín hiệu đầu vào 3.3.2 Tính 41 41 42 46 47 52 54 54 54 60 62 62 63 Chương 4: Thiết kế game 4.1 Mô tả lối chơi 4.1.1 Tổng quan 4.1.2 Các hệ thống trò chơi 4.1.2.1 Màn chơi: 4.1.2.2 Quan sát: 4.1.2.3 Tay: 4.1.2.4 Thao tác hình: 4.1.3 Cơ chế, cách chơi 4.1.4 Các yếu tố hấp dẫn 65 65 65 65 65 65 66 66 66 67 Chương 5: Hướng phát triển 68 Chương 1: Giới thiệu đề tài 1.1 Lý chọn đề tài Ngành công nghiệp phát triển game phát triển cực kỳ mạnh mẽ thế giới, và xu hướng đó đã bắt đầu ở Việt Nam Đặc biệt, những năm gần đây, thị phần game mobile gia tăng mạnh, kèm theo đó là xu hướng làm game AR nổi bật là Pokemon Go phát triển Nhóm em muốn thông qua môn này có thể tìm hiểu thêm về lĩnh vực phát triển này 1.2 Mô tả đề tài Tìm hiểu về AR, cách thức vận hành, sử dụng các framework hỗ trợ làm game AR 1.3 Mục tiêu đề tài Mục tiêu đề tài mà nhóm đặt hiểu được công nghệ AR, biết được cách sử dụng, các chức năng, điểm mạnh, điểm yếu của các framework hỗ trợ làm game tương tác AR để lựa chọn và áp dụng phù hợp các dự án sắp tới Chương 2: Cơ sở lý thuyết 2.1 Công nghệ Augment Reality Augmented Reality trải nghiệm mà trải nghiệm giới thực hòa trộn với vật thể giới ảo máy tính tạo ra, người dùng cảm nhận vật thể giới ảo thông qua giác quan thị giác, xúc giác, vị giác, thính giác, mùi hương, nhiệt độ, … , đồng thời cho phép người dùng tương tác với vật thể ảo thiết bị hỗ trợ đặc biệt Người dùng có cảm nhận (nghe, nhìn, ngửi, ) vật thể ảo máy tính tạo thực giới thực, chậu bàn khủng long chạy đường Nói ngắn gọn, Augmented Reality giúp tăng trải nghiệm người, xóa nhịa ranh giới thực ảo 2.1.1 Lịch sử Tuy khái niệm AR lên gần với đại đa số công chúng thông qua phim khoa học viễn tưởng ứng dụng AR, khái niệm ứng dụng AR có lịch sử hình thành lâu đời cách 50 năm trước Năm 1901, Lyman Frank Baum, nhà văn, đưa ý tưởng hình điện tử mà hiển thị hình ảnh người lên giới thật, ơng gọi thiết bị đánh dấu người (character marker) Năm 1968, Ivan Sutherland, giáo sư khoa học máy tính, tạo cỗ máy tên gọi The Sword of Damocles, máy cho phép thay đổi hình ảnh đầu dựa vào vị trí góc quay đầu người đeo Năm 1975, Myron Krueger tạo nên video cho phép người dùng tương tác với vật thể ảo realtime Năm 1980, Steve Mann, tạo máy tính đeo Năm 1990, từ Augmented Reality định nghĩa lần Thomas P Caudell, nhà nghiên cứu cho hãng Boeing Từ năm 1990 đến nay, Augmented Reality liên tục phát triển, chủ yếu sử dụng mục đích nghiên cứu, huấn luyện quân đội, du hành vũ trụ Mãi tới năm 2000, game đời dựa công nghệ AR với tên gọi ARQuake, đánh dấu bước phát triển AR tới với người dùng phổ thông (https://youtu.be/RiH0IXQQpio) Năm 2001, công cụ để phát triển ứng dụng AR ARToolkit công bố dạng mã nguồn mở phịng thí nghiệm HIT đại học Washington tiếp tục phát triển tới ngày Năm 2013, Google công bố dự án Google Glass, kính AR Năm 2015, Microsoft cơng bố kính AR hãng với tên gọi Hololens Microsoft gọi công nghệ Mixed Reality tính tương tự AR Từ 2015 đến nay, có hàng trăm ứng dụng có sử dụng cơng nghệ AR công nghệ filter ảnh realtime Instagram, Tiktok, hay ứng dụng mạng xã hội khác, Game bật game Pokemon Go, với việc cho phép pokemon xuất đời thật 2.1.2 Các thiết bị dùng cho AR a) Thiết bị đeo qua đầu (Head-Mounted Display - HMD) Hình 2.1 Hình minh hoạ thiết bị đeo qua đầu Mợt dạng màn hình hiển thị được đeo qua đầu một dạng nón (ảnh), bên chứa một màn hình hiển thị cho mỗi mắt HMD được sử dụng nhiều lĩnh vực, bao gồm gaming, y tế, quân đội, hàng không, giáo dục Mặc dù HMD có thể sử dụng cho AR gaming, theo đa phần thị trường hiện chỉ cung cấp loại HMD cho VR b) Mắt kính AR Hình dạng giống một chiếc mắt kính mà mọi người hay đeo, được trang bị thêm một camera để theo dõi thế giới thực, một thiết bị để xử lý hình ảnh, và một máy chiếu để hiển thị các hình ảnh tăng cường vào mắt người sử dụng thông qua sự phản xạ bề mặt kính Hình 2.2 Hình minh hoạ kính AR c) Kính áp tròng Các thành phần và cách thức hoạt động tương tự một chiếc mắt kính AR, được tích hợp vào một chiếc kính áp tròng Công nghệ này được phát triển lần đầu vào năm 1999 bởi Steve Mann, và nó cần phải kết hợp với một chiếc kính AR khác để hoạt động Một bản Prototype chưa hoàn thiện đã được giới thiệu ở CES 2020 bởi công ty Mojo Vision, thiết bị này có khả hoạt động độc lập mà không cần mợt chiếc kính AR khác hỡ trợ Hình 2.3 Kính áp trịng AR d) Thiết bị cầm tay Mợt thiết bị hiển thị có kích thước vửa với tay người thiết bị cầm tay hỗ trợ AR phổ biến nhất hiện là chiếc điện thoại di động, nó sử dụng các cảm biến có sẵn của một chiếc điện thoại để đưa các vật thể ảo vào thế giới thực, các cảm biến có thể bao gồm la bàn, GPS, cảm biến gia tốc, cảm biến khoảng cách, Hiện nay, các thiết bị điện thoại vẫn còn hạn chế về mặt hiệu cũng hạn chế về sự hỗ trợ đến từ các công ty làm thư viện AR Google hay Apple nên số lượng các thiết bị có hỗ trợ AR thuần chưa được phổ biến thị trường, hiện có khoảng 80% thiết bị iOS và 35% thiết bị Android có hỗ trợ e) Thiết bị chiếu Một cách để đưa các vật thể ảo vào thế giới thật mà không cần các thiết bị HMD, mắt kính, hay điện thoại Thiết bị chiếu sẽ map một đoạn video hoặc một bức ảnh vào một vật thể ở thế giới thực, điều này có thể ngược với các thiết bị vừa rồi vì chúng map một vật thể 3d ảo vào mắt chúng ta (một bức ảnh 2D) Điều này cho phép các vật thể ảo này là độc lập với người xem, mọi người đều nhìn thấy vật thể ảo này ở cùng một địa điểm, cùng một kích thước Hình 2.4 Bức ảnh chụp việc map mợt đoạn video lên một tòa nhà f) Các thiết bị Input Bao gồm các thiết bị cung cấp các thông tin cần thiết về thới giới thực cho máy tính xử lý Các thiết bị này có thể bao gồm camera, thiết bị nhận dạng giọng nói, thiết bị nhận dạng chuyển động thể người, các tay cầm để điều khiển, 2.1.3 Cách thức hoạt động Quá trình hoạt động của một hệ thống AR thường được chia là phần chính Gia đoạn đầu tiên: Hệ thống sẽ lấy các bức ảnh từ camera, cũng các thông tin nhận được từ các cảm biến Sau lấy được thông tin ảnh, hệ thống sẽ tiến hành xử lý những bức ảnh đó, có kỹ thuật chính để xử lý ảnh: Marker tracking: ở đây, hệ thống sẽ tìm kiếm những hình ảnh đã được định trước (marker) những bức ảnh đó và đánh dấu chúng và bắt đầu theo dõi những hình ảnh đó Ví dụ chúng ta có bức ảnh một bình và chúng ta set up cho hệ thống tìm bức ảnh đó, hệ thống sẽ thông qua camera để tìm kiếm hình ảnh bình đó các bức ảnh mà camera gửi tới để đánh dấu Hình 2.5 Một số mẫu Marker Markerless tracking (Instant tracking): Không sử dụng marker, thay vào đó, hệ thống sẽ sử dụng các cảm biến để track vị trí , hướng nhìn của người dùng, cũng detect được môi trường thực tại xung quanh người sử dụng (tường, đất, ánh sáng) Markerless có thể sử dụng các công nghệ nhận diện môi trường xung quanh SLAM (2.5) để nhận biết môi trường xung quanh Giai đoạn hai: hệ thống sử dụng các thông tin đã được sử lý ở giai đoạn để đưa các vật thể ảo vào ảnh và hiển thị màn hình cho người dùng Ví dụ đối với marker, thì hệ thống sẽ hiển thị một vật thể là bình lên phía marker, với markerless thì người dùng có thể chọn đặt vật thể lên mặt đất Ở giai đoạn này, các phương pháp toán học có thể áp dụng để map vật thể vào ảnh bao gồm Phép chiếu, phép transformation, giải tích vector, thuật toán Kalman Filter (dùng để lọc nhiễu), Nonlinear Optimization, 3.1.6 Ưu nhược điểm ● Ưu điểm: ○ Hỗ trợ đồng thời Android iOS ○ Hỗ trợ đa dạng loại thiết bị di động khác ○ Hoạt động dựa điểm đánh dấu thấy hình ảnh AR, cần tính tốn ○ Có Vuforia Fusion giúp app tương thích với ARCore ARKit ● Nhược điểm: ○ Hầu hết tính hoạt động dựa marker ○ Kém hiệu ARCore việc tự nhận diện mơi trường vật lí 3.2 Tổng quan Unity Unity game engine đa tảng đời năm 2005, hỗ trợ lập trình game 2D lẫn 3D, hầu hết chức viết C# Môi trường phát triển Unity Windows MacOS, trò chơi viết Unity chạy nhiều tảng Windows, Mac, Xbox360, Playstation, Android, Ios web Unity bao gồm trình biên tập (editor) dùng để phát triển thiết kế nội dung build cho nhiều phiên Unity cung cấp nhiều phiên khác tuỳ thuộc vào nhu cầu quy mô nhà phát triển, bao gồm Personal (không lợi nhuận lợi nhuận ròng mức quy định), Plus Pro Phiên Personal kèm theo số hạn chế slash scene mặc định, hạn chế khả tiếp cận source code, lưu trự đám mây hay phân tích liệu Đồng thời, phiên Plus bị giới hạn khỏi chức hỗ trợ kĩ thuật (từ phía Unity), ưu tiên hàng đợi cần hỗ trợ Bản Pro cung cấp đầy đủ chức với quyền tiếp cận đầy đủ Mọi phiên Unity hỗ trợ trình build riêng cho tảng hồn tồn miễn phí 3.2.1 Các thành phần giao diện a) Scene Là cửa sổ cho phép người dùng chọn, kéo thả bố trí đối tượng (gameObject) trị chơi người chơi, camera, vật thể cảnh quan, kẻ địch, Đây phần quan trọng Unity Các chế độ tương tác với scene: ● Hand tool: cho phép người dùng kéo thả hình scene để thay đổi vị trí nhìn vào vật thể hình ● Move tool: cho phép người dùng chọn thay đổi vị trí vật thể chọn tự do, theo mặt phẳng theo hướng ● Rotate tool: cho phép người dùng chọn xoay vật thể theo hướng ● Scale tool: cho phép người dùng chọn thay đổi kích thước vật thể ● Rect tool: cho phép người dùng thay đổi hình chữ nhật xác định vật thể theo hướng nhìn ● Move, Rotate, Scale: tổng hợp chức ● Editor tool: có chức khác tuỳ vào thành phần gameObject chọn b) Game Là cửa sổ cho phép người dùng xem thành phần hiển thị trò chơi, dùng để thử nghiệm nhanh xác nhận lại yếu tố thêm vào scene c) Hierachy Thể game oject scene tại, gameObject bao gồm nhiều thành phần khác transform (chứa thơng tin vị trí, hướng xoay kích thước) Các đối tượng thuộc trực tiêp scene đối tượng khác Đối tượng phụ thuộc vào thông tin transform đối tượng cha, ngoại trừ chúng thiết lập thủ công code d) Project Là phần cửa sổ hiển thị thư mục sử dụng project, tài nguyên đánh dấu khác dựa theo định dạng chúng, ví dụ script, hình ảnh, âm thanh, hiệu ứng, prefab, asset, Phần project hỗ trợ nhiều kiểu xem theo mục đích người lập trình Đây nơi để người lập trình khởi tạo thành phần trò chơi script, animation controller,… Bên cạnh việc duyệt qua thư mục cửa sổ hỗ trợ việc tìm kiếm theo từ khoá, loại file, nhãn số loại tài nguyên đặc biệt e) Inspector Là cửa số tập hợp component thuộc game object prefab, bao gồm thơng số đính kèm, hỗ trợ việc điều chỉnh số thuộc tính mà khơng cần đụng tới phần code bên Các thuộc tính kéo thả cách dễ dàng cửa sổ inspector, giúp giảm phần việc reference rắc rối code f) Các nút chức năng: ● Các nút thay đổi chế độ xem scene (đã giới thiệu trước đó) ● Nút pivot/center: chỉnh vị trí hiển thị dấu tương tác với object scene vị trí trục (pivot) hay trung tâm vật thể (center) ● Nút Local/Global: chỉnh hướng dấu tương tác theo hướng xoay cục object theo khơng gian chung scene ● Nút chạy Play/Pause/Step: dùng trình chơi thử game, giúp việc kiểm tra lỗi ● Thanh Layer: chọn lớp cần hiển thị, dùng chạy thử cần thiết kế số layer định 3.2.2 Các thành phần tài nguyên a) Asset: Asset đại diện cho file sử dụng dự án unity, chúng file import vào từ bên ngoài, tải xuống từ asset store tạo bới Unity (như animation controller) Khi file thêm vào bên thư mục Asset, Unity phát thay đổi gán cho id độc Unity hỗ trợ việc import trực tiếp asset khởi tạo từ nhiều phần mềm khác nhau, bao gồm model, sprite, âm thanh, hiệu ứng chuyển động đổ bóng Unity hỗ trợ công cụ khởi tạo partical system dùng cho hiệu ứng cháy nổ thật bớt tiêu hao tài nguyên cho model lớn b) Scene: Là chơi hay hình game (menu, shop,…) Một scene chứa thành phần mà cần, chứa manager để gọi tới thiết lập môi trường cần thiết cho game c) Game object: Là đối tượng game, đại diện cho thứ trò chơi, từ thành phần giao diện 2D vật thể trò chơi hay thành phần trừu tượng pool Một game object chứa transform (xác định vị trí, góc quay scale quan hệ cha-con) d) Component Là thành phần cấu thành hoạt động game, component có chức riêng biệt lưu trữ thông số riêng theo game object Bản chất game object lớp vỏ rỗng, cịn component thành phần bên định chức game object e) Script Các scripts có kế thừa Mono Behavior xem component Tất tương tác, quản lí trị chơi từ nhỏ cần thực thông qua code Script viết ngôn ngữ C# cần editor riêng để code Unity tự động compile chạy code script chỉnh sửa lưu f) Prefab Prefab game object lưu trữ lại phục vụ nhu cầu tái sử dụng lại sau Các game object nhân tạo từ prefab có thuộc tính giống ngoại trừ phần transform Một prefab lưu cách kéo game object từ scene vào cửa sổ project 3.3 Tổng quan ManoMotion SDK Mục đích SDK cung cấp giải pháp cho việc theo dấu tay người phân tích cử người dùng theo chiều chiều 3.3.1 Tín hiệu đầu vào Manomotion yêu cầu đầu vào hình ảnh RGB tiêu chuẩn để hoạt động cách xác Hệ thống theo dấu nhận bàn tay với độ phân giải hình ảnh, nhiên hình ảnh rõ nét thời gian xử lí Theo mặc định, ManoMotion mở camera điện thoại với RGB Frames 3.3.2 Tính a) Hộp bao quanh: xác định vị trí top-left, chiều rộng cao hộp bao quanh phần tay tracking b) Trung tâm: xác định vị trí trung tâm lịng mu bàn tay c) Điểm chạm: xác định vị trí điểm focus vào d) Cử chỉ: ● Xác định cử theo nhiều nhóm: véo (giữ ngón tay), nắm (cầm bàn tay), trỏ (chỉ ngón tay) ● Xác định trạng thái bàn tay: bàn tay mở rộng tăng dần đến 13 trạng thái nắm chặt bàn tay ● Cử liên tiếp: dùng để xác định xem người dùng có giữ cử liên tục hay không ● Cử kích hoạt: dùng để xác định thời điểm bắt đầu kết thúc cử nhằm kích hoạt chức khác ● Tuỳ chỉnh: tự tạo cử cách kết hợp thơng tin khác Chương 4: Thiết kế game 4.1 Mô tả lối chơi 4.1.1 Tổng quan Pandora Cube (tên tạm đặt) trò chơi AR thể loại giải đố thiết bị di động áp dụng công nghệ finger tracking để bắt cử tay người chơi giúp trò chơi sinh động Mỗi hộp yêu cầu cách mở khố khác người chơi chơi hợp tác với nhiều người để mở khố bí mật hộp Trị chơi kích thích suy luận logic, khả tìm tịi sáng tạo giải vấn đề tư đột phá 4.1.2 Các hệ thống trò chơi 4.1.2.1 Màn chơi: ● Mỗi chơi cube ● Mỗi cube chứa đừng câu đố nhiều mặt ● Mỗi cube có hình lập phương, có chi tiết chìm mặt ● Mỗi chơi bao gồm dụng cụ phụ xung quanh cube ● Người chơi cần thành công mở khoá cube để sang chơi ● Người chơi lưu tiến độ chơi chơi lại chơi vượt qua lúc 4.1.2.2 Quan sát: ● Cube chơi đặt cố định mặt phẳng quét o Người chơi muốn đổi cube sang mặt phẳng khác cần thực thao tác cất Cube lấy lại sau quay camera sang mặt phẳng định ● Cube sau đặt không di chuyển theo camera, người chơi muốn quan sát nhiều mặt Cube cần di chuyển điện thoại sang mặt tương ứng dùng thao tác tay xoay vật thể 4.1.2.3 Tay: ● Người chơi tương tác với cube thông qua hệ thống finger tracking, người chơi cần đặt tay tầm camera để quan sát ● Hầu hết thao tác người chơi tương tác với cube thơng qua finger tracking, trừ việc kích hoạt, tạm ngưng kết thúc chơi ● Thao tác tay người chơi điểm tương tác người chơi khơng gian ảo, từ xác định loại tương tác mà người chơi thực Cube ● Người chơi xoay cube, cầm lên, thả xuống, chạm, nhấn nút, kéo cần gạt, ấn cơng tắc, ấn phím, xoay núm vặn,… 4.1.2.4 Thao tác hình: ● Người chơi tương tác với thành phần bên trị chơi thơng qua thao tác trực tiếp hình thiết bị di động ● Người chơi đặt cube (bắt đầu chơi), cất cube (tạm dừng lưu lại), restart (chơi lại chơi từ nguyên bản) ● Người chơi điều chỉnh âm thanh, tìm kiếm gợi ý thơng qua thao tác hình thiết bị 4.1.3 Cơ chế, cách chơi ● Mỗi chơi bao gồm từ tới câu đố Cube Một số câu đố yêu cầu giải đồng thời hai nhiều mặt lúc ● Người chơi sử dụng tay cầm điện thoại để quan sát vật thể, tay lại tương tác với vật thể ảo nhằm mục đích mở khố ● Người chơi tương tác với nút Hint hình thiết bị để tìm kiếm thêm gợi ý 4.1.4 Các yếu tố hấp dẫn ● Sử dụng công nghệ AR yêu cầu sử dụng tay để tương tác vật thể khiến trị chơi sinh động có nhiều tương tác lối chơi point-and-click thông thường ● Kết hợp yếu tố thực tế tăng cường cho phép diễn giải nhiều câu đố theo cách hơn, không đụng hàng ● Dễ dàng tiếp cận khả dụng thiết bị di động so với game giải đố AR VR khác (thường khả dụng kính yêu cầu thêm thiết bị ngoại vi) Chương 5: Hướng phát triển ● Áp dụng cử nâng cao làm tăng độ đa dạng khác biệt câu đố trò chơi so với trị chơi giải đố truyền thống ● Tích hợp cơng nghệ AR để quét tạo câu đố không gian thực ● Phát triển nhiều kiểu câu đố lạ mà AR hỗ trợ trực quan ... ứng dụng Game AR 2.2 Dòng game giải đố 2.2.1 Định nghĩa lối chơi 2.2.2 Lịch sử 2.2.3 Dịng game phụ 2.3 Finger tracking (theo dõi ngón tay) 2.3.1 Các kiểu tracking: 2.3.2 Các công nghệ hỗ trợ 2.3.3... xu hướng làm game AR nổi bật là Pokemon Go phát triển Nhóm em muốn thông qua môn này có thể tìm hiểu thêm về lĩnh vực phát triển này 1.2 Mô tả đề tài Tìm hiểu về AR, cách... tower tiêu diệt heo xanh Lối chơi game không việc áp dụng công nghệ AR cách khéo léo giúp game trở nên thú vị lạ c) AR Dragon Hình 2.11 Hình minh hoạ game AR Dragon Game cho phép nuôi chơi với rồng