1. Trang chủ
  2. » Tất cả

Nghiên cứu, tìm hiểu unity để ứng dụng vào phát triển game

60 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 60
Dung lượng 2,29 MB

Nội dung

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN -& - BÁO CÁO BÀI TẬP LỚN HỌC PHẦN: CÔNG CỤ PHÁT TRIỂN PHẦN MỀM ĐỀ TÀI: Nghiên cứu, tìm hiểu Unity để ứng dụng vào phát triển game Giảng viên: Nguyễn Thái Cường MỤC LỤC LỜI MỞ ĐẦU LỜI CẢM ƠN Chương I: TỔNG QUAN Giới thiệu đề tài Unity AutoDesk 3DsMax Giới thiệu Unity A Lịch sử Unity: B Tổng quan Unity: C Một số thống kê Unity: D Một số tính Unity: Giới thiệu 3DsMax Tính 3DsMax Sử dụng Unity Chương II: PHÂN TÍCH VÀ THIẾT KẾ 11 18 2.1.Giới thiệu tổng quan game : 18 2.2 Các bước chung để phát triển tựa game: 18 Xác định mục tiêu game 18 Xác định đối tượng game hướng tới 19 Xác định tảng để phát triển game 19 Xác định thể loại game 19 Xác định options game 20 Phác thảo thách thức chơi game 20 2.3 Khảo sát môi trường 21 2.4 Đánh giá trạng 34 2.5 Giải pháp 35 2.6 Thiết kế kịch 35 Chương III: KẾT QUẢ NGHIÊN CỨU 37 3.1 Mơ hình tịa nhà A1 37 3.1.1 Các đối tượng đồ họa thiết kế tịa nhà A1 trường đại học công nghiệp Hà Nội 37 3.1.2 Mô hình trường học mơ tịa nhà A1 HAUI 38 3.1.3 Phòng lễ tân 39 3.1.4 Văn phòng khoa cơng nghệ thơng tin 40 3.2 Mơ hình ngoại thành phố 41 3.2.1 Bao quát khu vực 41 3.2.2 Các đồ vật nhà 41 3.3 Mơ hình qi vật 43 3.3.1 Zombie thường 43 3.3.2 Zombie thợ đánh cá 44 3.3.3 Hiện thân ác mộng 45 3.4 Lập trình điều khiển 46 3.3.1 Điều khiển nhân vật game 46 3.3.1 Điều khiển xe ô tô 49 3.3.3 Script cho quái vật 51 3.3.4 Script cho Trigger, Event 53 3.5 Giao diện menu 55 Chương IV: KẾT LUẬN 57 Kết luận chung 57 Những điều đạt được: 57 Những điều chưa đạt 58 Phát triển tương lai 58 Tài liệu tham khảo 59 Chương V: PHỤ LỤC 59 LỜI MỞ ĐẦU ESports - Thể thao điện tử thuật ngữ để tựa game mang tính chất đối kháng người chơi với Tổng doanh thu toàn cầu eSports rơi vào 1,1 tỷ USD, tăng 26,7% so với năm trước Việc tạo trò chơi bắt đầu giới ảo hồn tồn tạo nhiều việc làm đưa hướng cho công nghệ thông tin Mọi người tạo trò chơi để giới thiệu cho người khác giới ảo, nơi bạn làm điều muốn mà khơng cần phải lo pháp luật dành cho người thưởng thức trị chơi điện tử sau làm việc dài Hiện , có nhiều tảng phát triển game : Unity, Construct , Game Maker: Studio ,… Nhóm sử dụng Unity Unity gần miễn phí, chất lượng cực cao, hỗ trợ tảng tuyệt vời có cộng đồng khổng lồ tích cực tham gia đóng góp gồm chuyên gia người có sở thích đóng góp vào sở kiến thức tài nguyên học tập kho liệu Hệ thống Unity để lập trình nội dung công cụ hệ thống linh hoạt mở rộng có, cho phép trị chơi 2D 3D cho phép bạn xây dựng quy trình làm việc riêng Trong thời gian làm đề tài em nhận dạy giúp đỡ bạn đặc biệt Thầy Nguyễn Thái Cường Em xin chân thành cảm ơn Nhóm sinh viên Nhóm 12 LỜI CẢM ƠN Em xin chân thành cảm ơn thầy cô khoa công nghệ thông tin trường đại học công nghiệp Hà Nội, đặc biệt em xin cảm ơn thầy Nguyễn Thái Cường - giảng viên môn “Công cụ phát triển phần mềm” dạy tận tình giúp đỡ em thời gian vừa qua Qua thời gian em học nhiều kiến thức bổ ích khơng học tập kiến thức lớp, sách mà em học thêm kỹ phong cách làm việc chuyên nghiệp phẩm chất tốt đẹp khác Mặc dù cịn nhiều thiếu sót, phần chưa làm yêu cầu em cố gắng để hoàn thành phát triển đề tài Trong thời gian làm việc với thầy cô em không tránh khỏi bất cẩn thiếu sót em mong thầy bỏ qua tiếp tục bảo động viên em Nhóm 12 xin chân thành cảm ơn Chương I: TỔNG QUAN 1.1 1.2 Giới thiệu đề tài 1.1.1 Tổng quan 1.1.2 Ứng dụng Unity AutoDesk 3DsMax 1.2.1 Giới thiệu Unity A Lịch sử Unity: - Unity thành lập Copenhagen Nicholas Francis, Joachim Ante David Helgason diễn đàn OpenGL vào tháng năm 2002, nơi Francis đăng lời kêu gọi cộng tác viên trình biên dịch shader mã nguồn mở (cơng cụ đồ họa) cho nhóm nhà phát triển trò chơi dựa Mac - Unity game engine khởi động năm 2005, nhằm mở rộng phát triển game cách cung cấp cho nhiều nhà phát triển - Unity ban đầu phát hành cho Mac OS X, sau bổ sung hỗ trợ cho Microsoft Windows trình duyệt Web - Unity 2.0 mắt năm 2007 với khoảng 50 tính Bản phát hành bao gồm công cụ địa hình tối ưu hóa cho mơi trường 3D, realtime dynamic shadows, directional lights spotlights, phát lại video tính khác Bản phát hành bổ sung tính nhờ nhà phát triển cộng tác dễ dàng Nó bao gồm Networking Layer để nhà phát triển tạo game nhiều người chơi dựa User Datagram Protocol, cung cấp Network Address Translation - Unity 3.0 mắt tháng năm 2010 với tính mở rộng tính đồ họa engine cho máy tính để bàn video game Ngồi hỗ trợ Android, Unity cịn có tính tích hợp cơng cụ Beast Lightmap Illuminate Labs, deferred rendering, built-in tree editor, kết xuất phông chữ gốc, ánh xạ UV tự động lọc âm thanh, nhiều thứ khác - Vào tháng 12 năm 2016, Unity Technologies thông báo họ thay đổi hệ thống số phiên Unity từ định theo thứ tự sang năm phát hành để xếp phiên với nhịp cập nhật thường xuyên B Tổng quan Unity: - Unity hỗ trợ đồ họa 2D 3D, chức viết chủ yếu qua ngôn ngữ C# Hai ngôn ngữ lập trình khác hỗ trợ: Boo, bị loại với việc phát triển Unity UnityScript bị loại vào tháng năm 2017 sau phát hành Unity 2017.1 UnityScript ngơn ngữ lập trình độc quyền có cú pháp tương tự JavaScript Phần mềm nhắm mục tiêu đồ họa APIs sau: Direct3D Windows Xbox One, OpenGL Linux, macOS, Windows; OpenGL ES Android iOS; WebGL web; APIs độc quyền máy chơi video game Ngoài ra, Unity hỗ trợ APIs cấp thấp Metal iOS macOS Vulkan Android, Linux, Windows, Direct3D 12 Windows Xbox One Trong 2D games, Unity cho phép nhập sprites renderer giới 2D tiên tiến Đối với 3D games, Unity cho phép thiết lập đập điểm kỹ thuật kết cấu độ phân giải mà cơng cụ trị chơi hỗ trợ, cung cấp hỗ trợ cho bump mapping, reflection mapping, parallax mapping, cảnh không gian hiệu ứng bóng đổ cách sử dụng shadow maps, render thiết lập toàn cảnh đến hiệu ứng Unity cung cấp dịch vụ cho nhà phát triển, bao gồm: Unity Ads, Unity Analytics, Unity Certification, Unity Cloud Build, Unity Everyplay, Unity API, Unity Multiplayer, Unity Performance Reporting and Unity Collaborate C Một số thống kê Unity: - Tính đến quý năm 2016 có tỉ lượt download game ứng dụng phát triển Unity - 2,4 tỉ thiết bị di động tải ứng dụng unity - Trong top 1000 game Mobiles miễn phí số lượng game tạo Unity chiếm tới 34% Hình 1.1: Xếp hạng engine top 1000 game Mobiles miễn phí Nguồn: https://viblo.asia - Số lượng người dùng Unity đạt tới số 770 triệu, số người thường xuyên sử dụng Twitter 310 triệu người - Sự thay đổi cách thức chơi game người chơi hay nói cách khác xu hướng người tập trung vào game di động nhiều D Một số tính Unity: Unity cơng cụ chơi game phổ biến nhà phát triển khắp giới sử dụng - lý đáng Nó có giao diện trực quan mạnh mẽ để tạo trò chơi, phát triển đa tảng cộng đồng đóng góp tích cực Unity cơng cụ trị chơi đa tảng chủ yếu sử dụng để phát triển trò chơi điện tử mô cho PC, bảng điều khiển, thiết bị di động trang web Nó phát triển Unity Technologies lần công bố dành cho OS X, Hội nghị nhà phát triển toàn cầu Apple vào năm 2005, kể từ mở rộng cho hầu hết tảng có sẵn Dưới danh sách số tính Unity theo quan điểm kỹ thuật Đó là: + Tạo phá hủy đối tượng trò chơi + Truy cập thành phần + Sự kiện cho GameObject + Xử lý biến vectơ biến thời gian + Sự kiện hướng vật lý + Các loại hành trình trở lại 1.2.2 Giới thiệu 3DsMax Autodesk 3Dsmax phần mềm mơ hình 3D phổ biến sử dụng rộng rãi giới, cho phép bạn tạo cảnh thú vị hấp dẫn Bạn phát triển hoạt hình, sản xuất hình ảnh 3D chuyên nghiệp với phần mềm 3ds Max Ngồi ra, cịn công cụ hiệu để giúp bạn tạo nội dung 3D thực tế ảo (VR) tốt khoảng thời gian ngắn Phần mềm 3ds Max hãng công nghệ tiếng Autodesk cung cấp nhằm mang đến cho người dùng giải pháp mô phỏng, hoạt hình với chất liệu 3D, mơ dựng hình tồn diện cho nghệ sĩ đồ họa, phim, trị chơi hay đồ họa chuyển động Nó cung cấp cho người dùng công cụ hiệu quả, tăng hiệu suất làm việc phân luồng công việc hiệu để giúp người dùng dễ dàng sản xuất sản phẩm thiết kế Tính 3DsMax - Sử dụng Keyframe công cụ hoạt hình để xem trước hình ảnh trực tiếp - Tạo hiệu ứng hạt nước, lửa, phun tuyết dễ dàng Animate mô liệu CFD, CSV OpenVDB khác - Mô thực tốc độ, độ, độ sâu hình ảnh, độ phơi sáng - Chỉnh sửa 3ds Max Interactive trực tiếp VR xem cập nhật theo thời gian thực - Tích hợp đồng hóa với số cơng cụ Python / NET - Tạo không gian làm việc tùy chỉnh với giao diện đáp ứng nhu cầu bạn DPI chí cịn khả dụng - Các công cụ CivilView hỗ trợ hoạt động vật lý 3ds Max, giảm chuyển đổi đơn giản hóa hiển thị - Chuyển từ nhà cung cấp sang nhà cung cấp khác mà khơng có vấn đề - Tạo hình ảnh động cách sử dụng công cụ spline nâng cao - Chuyển động tóc lơng khung chọn làm phương tiện cắt tỉa, đánh - Tạo đồ OSL trình soạn thảo tài liệu đơn giản 45 Hình 3.6.3: Mơ hình zombie thợ đánh cá 3.3.3 Hiện thân ác mộng Hình 3.6.4: Mơ hình thân ác mộng 45 46 3.4 Lập trình điều khiển 3.3.1 Điều khiển nhân vật game Hình 3.7: Nhân vật game Ta sử dụng Input Unity3D để thực phát lệnh điều khiển unity Để kiểm tra thiết lập ta vào Edit -> Project Setting –>Input manager 46 47 Hình 3.8: Thiết lập Input Unity3D Tại ta kiểm tra thiết lập cụ thể tùy chỉnh theo cách riêng Để di chuyển nhân vật ta cần quan tâm đến “Horizontal” “Vertical” thuộc tính kiểm tra nút WASD để xác định hướng cho nhân vật Tiếp theo ta kiểm tra Script C# cho nhân vật chính: 47 48 Hình 3.10: Các script C# nhân vật - Để lấy hướng di chuyển ta cần sử dụng câu lệnh sau : Hình 3.11: Xác định hướng cho nhân vật Thiết lập mặc định là: A: sang trái mang giá trị âm D: sang phải mang giá trị dương S: lùi lại mang giá trị âm W: tiến lên mang giá trị dương 48 49 3.3.1 Điều khiển xe ô tô - Điều khiển xe game dùng phím WASD để điều chỉnh hướng cho xe, nhóm dùng package Car Controller để điều khiển phương tiện Hình 3.11.1: Người chơi lái xe - Hành động: Khi người chơi đến gần xe, nhấn nút F người chơi vào xe điều khiển phím WASD - Ý tưởng: Kiểm tra khoảng cách từ người chơi đến xe, khoảng cách < mét nút F nhấn, chuyển máy quay sang xe, người chơi ẩn theo xe Khi nhấn nút F lần nữa, chuyển lại máy quay sang người chơi 49 50 Hình 3.11.2: Kiểm tra event điều khiển xe - Để đa dạng việc chọn xe để điều khiển, thêm nhiều loại xe vào game xe địa hình, xe khách đón giáo viên Hình 3.11.3: Các phương tiện điều khiển 50 51 3.3.3 Script cho quái vật - Các quái vật dùng Nav Mesh Agent Unity cung cấp để tự tìm đường đến người chơi Hình 3.12: Component NavMeshAgent gán cho quái - Hàm setDestination để định vị trí mà quái vật di chuyển đến - Để quái vật tự đuổi theo người chơi, đơn giản ta viết script C# để - Ý tưởng: khung hình ta tìm vị trí người chơi, sau bỏ vào hàm setDestination để quái vật cập nhật vị trí định 51 52 Hình 3.13: Script để quái vật tự đuổi người chơi - Ngoài ra, ta thêm hiệu ứng quái vật bị trúng đạn/ bị đánh, hiệu ứng quan trọng bắn máu, Unity store public asset free BloodFX gồm khoảng 17 hiệu ứng tóe máu - Ta tạo thêm script C# để bắt event trúng đạn qi vật: Hình 3.14: Script để qi vật tóe máu trúng đạn 52 53 - Bên trong, ta viết hàm OnDamage để xuất hiệu ứng 17 hiệu ứng, vị trí hiển thị tâm ngắm người chơi thời điểm bắn vào qi vật Hình 3.14.1: Script để qi vật tóe máu trúng đạn 3.3.4 Script cho Trigger, Event Trigger Collider, Event thiếu game, Event game hành động hay việc xuất bạn làm đó, ta thêm Event: - Kích hoạt dialog text người dùng bước qua cánh cửa đầu tiên, hộp thoại xuất để trò chuyện với người chơi, yếu tố làm nên cốt truyện cho game - Khi người chơi chạm điểm cách quái vật khoảng 5-10 mét, quái vật phát đuổi theo người chơi - Khi người chơi chạm đến điểm cuối (CheckPoint), hình Scoreboard xuất thơng báo người chơi hoàn thành chơi Để làm nên cốt truyện cho game, hệ thống tương tác với NPC thiếu, ta cần tạo vài hội thoại Dialogue System để tạo hướng cho mạch game: 53 54 Hình 3.14.2: Một đoạn hội thoại Player NPC Tiếp tạo game object thêm trigger collider, người chơi chạm vào nó, hội thoại bắt đầu, hội thoại người chơi vào trường học nói chuyện với Nancy, NPC game: Hình 3.14.3: Xử lý người dùng chạm vào box collider 54 55 Hình 3.14.4: Đối thoại với Nancy, NPC đợi người chơi đến 3.5 Giao diện menu - Đối với game bắn súng sinh tồn, giao diện game cần mang phong cách hành động pha lẫn chết chóc để tăng kịch tính cho game 55 56 Hình 3.15.1: Giao diện chính - Bên cạnh cịn có menu cài đặt game bao gồm : độ khó, âm thanh, đồ họa… Hình 3.15.2: Giao diện cài đặt đồ họa - Một game cần có thơng tin nhóm / thành viên làm game: 56 57 Hình 3.15.3: Giao diện thơng tin nhóm Chương IV: KẾT LUẬN Kết luận chung Sau sử dụng Unity để phát triển game “Evil Slayer”, nhóm 12 thấy Unity phần mềm làm game đa tảng, tảng hỗ trợ Android, IOS, Linux, macOS, Windows, Windows Phone, Bên cạnh cịn cung cấp hệ thống tồn diện cho lập trình viên, từ soạn thảo mã nguồn, xây dựng cơng cụ tự động hóa đến trình sửa lỗi nên dễ sử dụng Unity tận dụng chức thư viện phần mềm engine mô vật lý PhysicX Nvidia, OpenGL Direct3D để kết xuất hình ảnh 3D, OpenAL cho âm thanh, …hay 3DsMax mà nhóm sử dụng nên có hỗ trợ mạnh cho cơng việc lập trình game Những điều đạt được: - Hiểu cách dựng hình, tạo mô đồ vật, đối tượng - Xây dựng đầy đủ mơ hình tịa nhà A1 vài tính 57 58 - Biết cách phối cảnh, ánh sáng, âm cho phù hợp - Nâng cao thêm kiến thức ngành đa phương tiện -Biết cách xây dựng game FPS hoàn chỉnh Những điều chưa đạt - Tòa nhà nhiều phần chưa giống với thực tế - Còn vài điểm thừa, collider chưa tối ưu - Dung lượng dự án nặng - Nhân vật chưa có nhiều tính -Chưa có chế độ Multiplayer Phát triển tương lai - Tăng thêm tính - Chỉnh sửa chất liệu chuẩn hơn, âm hay - Tối ưu code loại bỏ đối tượng không cần thiết - Thêm chế độ Multiplayer, đăng nhập đăng ký tài khoản… - Nhân vật có nhiều tùy biến hành động - Thêm tính đọc sách - Hiển thị chi tiết đồ vật có phịng, cầm vứt trang bị / đồ vật 58 59 Tài liệu tham khảo [1] https://docs.unity3d.com/2020.2/Documentation/Manual/index.html [2] https://learn.unity.com/courses [3] YouTube [4] FIRST PERSON MOVEMENT in Unity - FPS Controller - YouTube [5] https://cnttqn.com/threads/share-giao-trinh-hoc-lap-trinh-game-trenunity-3d.3842.html [6] https://opsive.com/support/documentation/ultimate-character- controller/ Chương V: PHỤ LỤC ● Slide trình bày đề tài: https://docs.google.com/presentation/d/1711nCAxHr1K5S_tIX6NYDlbv QyeaWX30/edit#slide=id.p23 ● Source Code Google drive (mở Unity 2020.2.1f1): https://drive.google.com/file/d/1DihWGqnW2PxSvkmFClZMAJU5gL5X bB9K/view?fbclid=IwAR0Kl7cXTCS7I6uI8TBW_2tzIJokZWmu8dc7a7Q0ceTabiBcjdO28Onbic ● Folder drive tổng hợp: https://drive.google.com/drive/folders/1GpwNzs7mFaLYUvlIGxnTJOj7 ZOQlqL4Y?fbclid=IwAR2wNxQJrqw89Wc5wNJzK8Gc1m8YeT7omx VAd8Fpq5eB74QR2314Nsk8ObK 59 ... tổng quan game : 18 2.2 Các bước chung để phát triển tựa game: 18 Xác định mục tiêu game 18 Xác định đối tượng game hướng tới 19 Xác định tảng để phát triển game 19 Xác định thể loại game 19 Xác... đồ họa) cho nhóm nhà phát triển trò chơi dựa Mac - Unity game engine khởi động năm 2005, nhằm mở rộng phát triển game cách cung cấp cho nhiều nhà phát triển - Unity ban đầu phát hành cho Mac OS... Build, Unity Everyplay, Unity API, Unity Multiplayer, Unity Performance Reporting and Unity Collaborate C Một số thống kê Unity: - Tính đến quý năm 2016 có tỉ lượt download game ứng dụng phát triển

Ngày đăng: 18/02/2023, 11:28

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w