Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 54 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
54
Dung lượng
1,02 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 HÚA VĂN TUẤN ANH – NGUYỄN DU PHÚC NGÂN KHÓA LUẬN TỐT NGHIỆP NGHIÊN CỨU VÀ PHÁT TRIỂN GAME 3D, VIRTUAL REALITY Adventure-Survival VIRTUAL REALITY Game: Labyrinth Breaker KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM TP HỒ CHÍ MINH, 2021 ĐẠ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 HỨA VĂN TUẤN ANH – 17520232 NGUYỄN DU PHÚC NGÂN – 17520792 KHÓA LUẬN TỐT NGHIỆP NGHIÊN CỨU VÀ PHÁT TRIỂN GAME 3D, VIRTUAL REALITY Adventure-Survival VIRTUAL REALITY Game: Labyrinth Breaker KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM GIẢNG VIÊN HƯỚNG DẪN NGUYỄN THỊ THANH TRÚC TP HỒ CHÍ MINH, 2021 THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ngày Hiệu trưởng Trường Đại học Công nghệ thông tin – Chủ tịch – Thư ký – Ủy viên – Ủy viên ĐHQG TP HỒ CHÍ MINH TRƯỜNG ĐẠI TP HCM, ngày tháng năm HỌC CƠNG NGHỆ THƠNG TIN CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ HƯỚNG DẪN) Tên khóa luận: NGHIÊN CỨU VÀ PHÁT TRIỂN GAME 3D, VIRTUAL REALITY Nhóm SV thực hiện: Cán hướng dẫn: Hứa Văn Tuấn Anh 17520232 Nguyễn Du Nguyễn Thị Thanh Trúc Phúc Ngân 17520792 Đánh giá Khóa luận Nguyễn Hà Giang Về báo cáo: Số liệu trang Số Số tài bảng liệu số tham khảo Số chương Số hình vẽ Sản phẩm Một số nhận xét hình thức báo cáo: Về nội dung nghiên cứu: Về chương trình ứng dụng: Về thái độ làm việc sinh viên: Đánh giá chung: Khóa luận đạt/khơng đạt u cầu khóa luận tốt nghiệp kỹ sư/ cử nhân, xếp loại Giỏi/ Khá/ Trung bình Điểm sinh viên: Hứa Văn Tuấn Anh: ./10 Nguyễn Du Phúc Ngân: ./10 Người nhận xét (Ký tên ghi rõ họ tên) ĐHQG TP HỒ CHÍ MINH TRƯỜNG ĐẠI TP HCM, ngày tháng năm HỌC CÔNG NGHỆ THÔNG TIN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ PHẢN BIỆN) Tên khóa luận: NGHIÊN CỨU VÀ PHÁT TRIỂN GAME 3D, VIRTUAL REALITY Nhóm SV thực hiện: Cán phản biện: Hứa Văn Tuấn Anh 17520232 Nguyễn Du Phúc Ngân 17520792 Đánh giá Khóa luận Về báo cáo: Số liệu trang Số Số tài bảng liệu số tham Số chương Số hình vẽ Sản phẩm khảo Một số nhận xét hình thức báo cáo: Về nội dung nghiên cứu: Về chương trình ứng dụng: Về thái độ làm việc sinh viên: Đánh giá chung: Khóa luận đạt/khơng đạt yêu cầu khóa luận tốt nghiệp kỹ sư/ cử nhân, xếp loại Giỏi/ Khá/ Trung bình Điểm sinh viên: Hứa Văn Tuấn Anh: ./10 Nguyễn Du Phúc Ngân: ./10 Người nhận xét (Ký tên ghi rõ họ tên) LỜI CẢM ƠN Khóa luận tốt nghiệp với đề tài “Nghiên cứu phát triển game 3D, virtual reality” kết quả, tâm huyết tích lũy kiến thức nhóm chúng em suốt năm học đại học trường Đại học Công nghệ thông tin Đại học Quốc gia TP Hồ Chí Minh Nhóm chúng em xin chân thành cảm ơn tập thể Quý thầy cô trường Đại học Công nghệ thông tin, đặc biệt Quý thầy cô khoa Công nghệ phần mềm trao cho chúng em nhiều kiến thức để chúng em thực đề tài Đặc biệt, nhóm chúng em xin gửi lời cảm ơn chân thành trân trọng đến cô Nguyễn Thị Thanh Trúc, giáo viên hướng dẫn tận tình dẫn, góp ý, hỗ trợ đưa lời khuyên quý giá cho chúng em trình thực đề tài Cảm ơn giảng viên phản biện thầy cô hội đồng chấm luận văn cho chúng em lời nhận xét, góp ý thật q báu bổ ích giúp cho luận văn chúng em trở nên hoàn thiện Chúng em xin gửi lời cảm ơn tới cộng đồng gamer cho chung em nhìn thực tế game virtual reality động viên chúng em trình thực đề tài Cuối cùng, chúng em xin gửi lời cảm ơn chân thành đến gia đình, bạn bè ủng hộ, giúp đỡ động viên chúng em suốt trình thực khóa luận TP Hồ Chí Minh, 2021 Sinh viên Hứa Văn Tuấn Anh Nguyễn Du Phúc Ngân ĐHQG TP HỒ CHÍ MINH TRƯỜNG ĐẠI CƠNG NGHỆ THƠNG TIN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT HỌC NAM Độc lập – Tự – Hạnh phúc ĐỀ CƯƠNG CHI TIẾT Tên đề tài: Nghiên cứu phát triển game 3D, VIRTUAL REALITY Cán hướng dẫn: ThS Nguyễn Hà Giang, ThS Nguyễn Thị Thanh Trúc Thời gian thực hiện: Từ ngày 08/03/2021 đến ngày 30/06/2021 Sinh viên thực hiện: Hứa Văn Tuấn Anh – 17520232 Nguyễn Du Phúc Ngân – 17520792 Nội dung đề tài: Mục Tiêu: Ước tính có khoảng 30,4 tỷ người tiêu dùng chi tiêu chuyển sang ngành cơng nghiệp trị chơi điện tử vào năm 2016 (ESA, 2017) Theo Hiệp hội phần mềm giải trí (2017) 65% hộ gia đình Hoa Kỳ có người chơi game thường xuyên (3 trở lên tuần) khoảng 67% hộ gia đình Hoa Kỳ sở hữu máy chơi game chun dụng Tuổi trung bình người chơi trị chơi điện tử 35 37% người chơi trò chơi nữ Rõ ràng, có lượng lớn đa dạng khán giả người sẵn sàng mua chơi trò chơi điện tử Hiện 92% người mua trị chơi thơng qua phân phối kỹ thuật số vào năm 2013 (Chalk, 2014) Ví dụ: Steam, tảng phân phối kỹ thuật số lớn cho video trò chơi, phát hành 2.964 trò chơi vào năm 2015 4.240 trò chơi năm 2016 (Sarkar, 2016) Một lời giải thích cho số lượng phát hành trò chơi cao nhiều tai nghe thực tế ảo (VIRTUAL REALITY) có gần phát hành Khoảng 16% video trò chơi phát hành Steam vào năm 2016 hỗ trợ VIRTUAL REALITY tai nghe 83% số thiết bị hỗ trợ VIRTUAL REALITY yêu cầu Tai nghe VIRTUAL REALITY để chơi (Sarkar, 2016) Nắm bắt tình hình đề tài Nghiên cứu phát triển game 3D, VIRTUAL REALITY mong muốn thực game môi trường thực tế ảo VIRTUAL REALITY Phạm vi đề tài: 2.1 Phạm vi công nghệ: - Ngơn ngữ lập trình: C++ - Framework: Unity, Google Cardboard 2.2 Phạm vi đối tượng: - VIRTUAL REALITY Game - 3D model Phương pháp thực hiện: - Khảo sát yêu cầu thực tế - Xây dựng ý tưởng ban đầu, đánh giá, cải thiện - Xây dựng dựng ban đầu - Xây dựng tính bổ sung, hồn thiện đồ họa game Hồn tất q trình xây dựng game, nhận xét, đánh giá Đối tượng sử dụng: - Người chơi game lứa tuổi, giới tính có sỡ hữu thiết bị e Oculus Rift, HTC Vive, PlayStation VIRTUAL REALITY Kết mong đợi: - Xây dựng game VIRTUAL REALITY góc nhìn thứ Kế hoạch thực hiện: STT Nội dung công việc Thời gian dự kiến Lựa chọn đề tài 8/3/2021 -14/3/2021 Viết mơ tả đề tài Tìm hiểu tốn game VIRTUAL REALITY Tìm hiểu kiến thức liên quan đến Unity 15/3/2021 Game VIRTUAL REALITY -18/3/2021 Áp dụng lib thiết kế map cho game 19/3/2021 -30/3/2021 Thiết kế nhân vật, chế điều khiển, cốt truyện 31/3/2021 cho game -15/4/2021 Thiết kế qi vật thêm tính (hịm 16/4/2021 kho báu, đạn, …) hoàn thành tổng quan -19/5/2021 game Kiểm thử đánh giá hiệu suất 20/5/2021 Fix bug -8/6/2021 Viết document Tối ưu code 9/6/2021 -30/6/2021 Xác nhận CBHD TP HCM, ngày tháng (Ký tên ghi rõ họ tên) năm Sinh viên (Ký tên ghi rõ họ tên) Mục Lục: TÓM TẮT KHÓA LUẬN CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI Hình 16 Màn hình screenflow Giải thích hình screenflow: • Người chơi mở trị chơi đưa vào hình (Main menu) • Khi nhấn chơi người chơi chuyển hình chơi game (Gameplay) • Trong q trình chơi người chơi chuyển qua lại hình chơi hình dừng (Pause menu) • Sau game kết thúc người chơi chuyển qua hình gameover tiếp menu game over • Nếu người chơi chọn thử lại game quay lại hìn Gameplay • Nếu người chơi chọn thoát game, Game hỏi xác nhận trước thoát • Khi hình tạm dừng người chơi lại hình • Ở hình người chơi game game hỏi để xác nhận 28 3.5 Các áp dụng framework/lib đề tài vào ứng dụng: 3.5.1 Google VIRTUAL REALITY • GVirtual RealityEditorEmulator: Là Prefab để mô lại hệ thống thực tế ảo điện thoại chia hình smartphone thành hình riêng biệt Đồng thời sử dụng cảm biến chuyển động cụ thể quay hồi chuyển để biến chuyển động đầu thành chuyển động camera game Trong dự án GVirtual RealityEditorEmulator sử dụng để khởi tạo môi trường thực tế ảo game Project khởi tạo Unity 3D khởi chạy với GVirtual RealityEditorEmulator hình hiển thị hình người ta sử dụng Alt + chuột để mô chuyển động đầu sử dụng kính thực tế ảo Ctrl + chuột để mô chuyển động xoay nghiêng đầu Khi build dự án chạy thiết bị moblie hình chia làm đồng chuyển động đầu ghi nhận bới cảm biến quay hồi chuyển • GVirtual RealityEventSystem: Là Prefab để người dùng tương tác với vật phẩm môi trường thực tế ảo Prefab giúp gọi event người dùng nhìn vào vật phẩm nhấn tương tác với vật phẩm khơng cịn nhìn vào vật phẩm Trong dự án GVirtual RealityEventSystem sử dụng để kiểm tra tương tác người dùng với vật phẩm game Các vật phẩm mà người chơi tương tác có thêm Component gọi Event Trigger, Event Trigger có Event Type Pointer Click (Khi người chơi nhìn vào vật phẩm click) • GVirtual RealityReticlePointer: Là Prefab gắn vào Camera để hiển thị pointer người chơi người chơi nhìn vào vật phẩm Pointer hướng vật phẩm GVirtual RealityEventSystem ghi nhận lại kiện 29 Hì nh 17 Pointer khơng hướng vào object tương tác Hình 18 Pointer hướng vào object tương tác 30 Khi khơng có vật phẩm GVirtual RealityReticePointer co lại thành dấu chấm đứng cạnh vật phẩm tương tác khoảng cách đủ gần GVirtual RealityReticlePointer nở thành vòng tròn Trong trò chơi GVirtual RealityReticlePointer Crosshair để người chơi ngắm bắn 3.5.2 Nav Mesh Agent Hình 19 Hệ thống khu vực đánh dấu sau Map bake Khu vực màu xanh nơi mà NPC khu vực “baked” Unity Chỉ cần khu vực màu xanh NPC tự tính tốn đường ngắn từ vị trí đến điểm định sẵn Trong project NPC Monster gắn Component Nav Mesh Agent hàm Update() cần gán cho vị trí người chơi NPC Monster tìm đường nhanh ngắn đến vị trí người chơi 31 3.5.3 Raycast Hình 20 Áp dụng Raycast project Raycast hàm dùng để vẽ đường thẳng từ điểm a hướng định khoảng cách định sẵn đường thẳng có qua điểm thơng tin điểm lưu vào biến hit Trong project Raycast sử dụng để tính toán va chạm đường đạn, người chơi bắn trung vật phẩm thường có hiệu ứng đạn va chạm nơi người chơi bắn vào Nếu ngi chơi bắn vào NPC gửi lệnh bắn trung cho NPC trừ vào điểm máu 32 Hình 21 Mơ ngun lý hoạt động raycast 3.6 Q Trình Hồn thiện (các vấn đề hướng giải quyết) 3.6.1 Di chuyển người chơi: Hình 22 Áp dụng thuật toán vào di chuyển người chơi 33 Game liên tục kiểm tra xem người chơi hết máu hay chưa khơng sử dụng hàm GetButton() để lấy giá trị ngang dọc từ input người chơi chuyển giá trị thành tốc độ, hướng di chuyển người chơi Cuối giá trị chuyển vào Component CharacterController để di chuyển theo giá trị 3.6.2 Di chuyển NPC: Hình 23 Áp dụng thuật tốn vào di chuyển NPC Như nói NPC sử dụng Nav Mesh Agent tích hợp sẵn Unity để tính tốn đường tới vị trí người chơi Các Monster liên tục kiểm tra xem thân có cịn máu hay khơng tính tốn khoảng cách từ vị trí tới người chơi đủ gần NPC bắt đầu di chuyển 34 Hình 24 Mơ hình logic trạng thái NPC Giải thích mơ hình trạng thái NPC: • Ban đầu NPC khởi tạo với map • Sau phát người chơi NPC bắt đầu di chuyển cơng • Nếu người chơi chết người chơi khỏi tầm nhìn NPC, NPC quay trạng thái idle • Nếu q trình cơng mà NPC hết máu NPC chết • Sau chết NPC biến • Khi người chơi khỏi map NPC biến 35 3.6.3 Thiết kế Map: Hình 25 Áp dụng thuật toán vào quản lý map game Các map trò chơi thiết kế với độ khó tăng dần Vì giới hạn phần cứng nên nhóm phải tìm giải pháp để tối ưu phần cứng tối giản Object xuất game Ý tưởng Game load level mà người chơi đứng load trước level người chơi qua level level load lên level trước bị xóa 36 Hình 26 Mô tả cách tải quản lý map game 3.6.4 Tương tác GameObject: Các objects game người chơi tương tác thông qua GVirtual RealityEventSystem Event Trigger Component Object Khoảng cách tối đa để chơi tương tác với vật phẩm vật phẩm Health, Key, 37 Gun sau tương tác biến người chơi nhận vật phẩm hay hồi máu tùy thuộc vào loại vật phẩm 38 CHƯƠNG 4: THỬ NGHIỆM VÀ ĐÁNH GIÁ 4.1 Thử nghiệm 4.1.1 Môi trường thử nghiệm • Unity: Chạy Project trực tiếp Unity • VIRTUAL REALITY Chat game • Android: phiên 9.0 chạy điện thoại Xiaomi thơng qua Google Cardboard • Controller: Wireless Bluetooth 3.0 Gamepad Grips VR Remote Control For Android IOS 4.1.2 Q trình thử nghiệm • Đầu tiên game chạy mơi trường Unity để kiểm tra lỗi logic, code: o Kiểm tra xem nhân vật có di chuyển người dùng điểu khiển controller hay không o Kiểm tra xem nhân vật có xun qua vật thể hay khơng o Kiểm tra xem nhân vật có tương tác với game object tương ứng hay không o Kiểm tra xem nhân vật có máu bị cơng hay khơng o Kiểm tra xem nhân vật công ngược lại NPC hay không o Kiểm tra hiệu ứng va chạm đạn lên vật thể khác • Sau game build file apk để cài đặt thiết bị di động kết nối với cần điều khiển để kiểm tra độ tương thích: o Kiểm tra xem chạy thiết bị di động game có bị giật lag hay tải chơi hay không o Kiểm tra người đùng điều khiển nhấn nút bắn nhân vật game có di chuyển mong muốn hay khơng, nhân vật có bắn mong muốn? o Chơi lại toàn game để kiểm tra lại lỗi nhỏ phát sinh chơi 39 4.1.3 Kết thử nghiệm • Khi chạy thử nghiệm mơi trường Unity: chương trinh chạy ổn định có tượng dựt lag nhẹ số phân đoạn số lượng objects game tăng đột ngột ko ảnh hưởng nhiều đến trải nghiệm, Ngoài khơng có tượng bị crash game Bản build cuối ko bị rơi vào lỗi exception • Khi chạy thử nghiệm môi trường thiết bị di động: Game tối ưu tốt với phần cứng library hộ trợ, Game không gặp tượng giật lag chạy thử môi trường Unity 4.2 Đánh giá kết sản phẩm • Sản phẩm cuối gần hoàn thiện game chơi trên mơi trường Unity Android Tuy nhiên game đơn giản cịn nhiều điểm làm tốt ví dụ kẻ địch có đường bay linh hoạt hơn, tạo thêm nhiều loại đạn khác với đường đạn đa dạng hơn, loại PowerUp đa dạng cho người chơi 40 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết đạt 5.1.1 Về mặt kiến thức: • Hiểu thư viện module hỗ trỡ tảng Unity • Nắm kiến thức tổng quan game 3D • Học cách làm việc nhóm hiệu • Cải thiện việc viết cốt truyện cho game • Biết cách sử dụng công cụ Google Cardboard 5.1.2 Về mặt sản phẩm: • Game hồn thiện tốt chạy ổn định có số trường đoạn bị giựt lag nhẹ nhiên khơng đáng kể • Game port thành cơng lên mơi trường Android • Game truyền tải thơng điệp đến cho người chơi • Game mang tính chất giải trí cao 5.2 Hạn chế hướng phát triển 5.2.1 Về mặt hạn chế: • Game cịn đơn giản • Nhiều khía cạnh game cịn phát triển tốt • Cịn nhiều bất đồng trình phát triển định ý tưởng cho game • Thuật tốn hành vi cho AI game cịn hạn chế dễ đốn • Độ khó game chưa cao 41 5.2.2 Về hướng phát triển game: • Từ đầu bọn em muốn đưa game lên thành map trò chơi VR Chat để dễ dàng tiếp cận người chơi VR sau áp dụng nhận xét họ để phát triển game tốt • Bọn em dự tính mở thêm map câu truyện đời nhân vật game • Game thêm chế độ nhiều người chơi (multiplayer) truy tìm kho báu ẩn dấu mê cung • Bọn em muốn phát triển thêm nhiều mức độ khó khác • Mở thêm chức mod cho người chơi tự tạo map cho bạn bè 42 TÀI LIỆU THAM KHẢO Tài liệu tiếng Anh [1] “Unity – Manual 2020.3 (LTS)”, Available: https://docs.unity3d.com/Manual/index.html [2] Brackeys, “Unity NavMesh Tutorial”, 2018, Available: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&ua ct=8&ved=2ahUKEwj xtDbnrzxAhWHyzgGHcn3DqsQwqsBMAB6BAgHEAE&url=https%3A%2F%2Fww w.youtube.com%2Fwatch%3Fv%3DCHV1ymlw P8&usg=AOvVaw0jQjIDfWujPy4Ryby0CDQd [3] Unity VIRTUAL REALITY for beginners FREE project (Feb 27 2020) , Available: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&ua ct=8&ved=2ahUKEwiapf Mn7zxAhVLQH0KHcYgBt8QwqsBMAB6BAgGEAE&url=https%3A%2F%2Fwww youtube.com%2Fwatch%3Fv%3DRkGHadlkjZQ&usg=AOvVaw3g8dLwlHhp HoYPGLBFN2P [4] FIRST PERSON MOVEMENT in Unity (Oct 28 2019) , Available: https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=video&cd=&cad=rja&u act=8&ved=2ahUKEwjXivvMoLzxAhXIFLcAHacsDJ0QtwJ6BAgLEAI&url=https% 3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D_QajrabyTJc&usg=AOvVaw01T TqqownZn-dK7MvefvNy 43 ... – 17520232 NGUYỄN DU PHÚC NGÂN – 17520792 KHÓA LUẬN TỐT NGHIỆP NGHIÊN CỨU VÀ PHÁT TRIỂN GAME 3D, VIRTUAL REALITY Adventure-Survival VIRTUAL REALITY Game: Labyrinth Breaker KỸ SƯ NGÀNH KỸ THUẬT... NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ HƯỚNG DẪN) Tên khóa luận: NGHIÊN CỨU VÀ PHÁT TRIỂN GAME 3D, VIRTUAL REALITY Nhóm SV thực hiện: Cán hướng dẫn: Hứa... NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (CỦA CÁN BỘ PHẢN BIỆN) Tên khóa luận: NGHIÊN CỨU VÀ PHÁT TRIỂN GAME 3D, VIRTUAL REALITY Nhóm SV thực hiện: Cán phản biện: Hứa