Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 104 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
104
Dung lượng
12,35 MB
Nội dung
Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine MỤC LỤC -1- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine DANH MỤC HÌNH ẢNH Hình Mô hình Humanoid Hình Mô hình Legacy Hình 3 Mô hình Generic Hình Nạp hiển thị mô hình Hình Diễn hoạt Unity Hình Diễn hoạt thay đạn Hình Hệ thống diễn hoạt Hình Điều chỉnh diễn hoạt Hình Thành phần trạng thái hệ thống diễn hoạt Hình 10 Chuyển trạng thái hệ thống diễn hoạt Hình 11 Paramaters hệ thống diễn hoạt Hình 12 Layer hệ thống diễn hoạt Hình 13 Công cụ nâng địa hình Hình 14 Công cụ hạ địa hình Hình 15 Công cụ tạo độ mượt địa hình Hình 16 Công cụ tạo bề mặt địa hình Hình 17 Công cụ tạo Hình 18 Công cụ tạo cỏ, đá Hình 19 Công cụ tùy chỉnh địa hình Hình 20 Địa hình trò chơi Hình 21 Hệ thống hạt Hình 22 Hiệu ứng bắn Hình 23 Mô hình chức plugin giao diện Hình 24 Các thành phần plugin NGUI -2- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine Hình 25 Giao diện trò chơi Hình 26 Thành phần script nhân vật Hình 27 Thành phần Camera nhân vật góc nhìn thứ Hình 28 Xa/gần Camera Hình 29 Mô người chơi góc nhìn thứ Hình 30 Vị trí trang bị thẻ Inspector Hình 31 Giao diện túi trang bị Hình 32 Mô tả Ray Casting Hình 33 Mô tả va chạm Hình 34 Bản đồ nhìn cao xuống Hình 35 Bản đồ dạng lưới 2D Hình 36 Các ô bên cạnh cần xét Hình 37 Tính vị trí G Hình 38 Tính vị trí H Hình 39 Vị trí bắt đầu Hình 40 Bước Hình 41 Bước Hình 42 Tìm đến mục tiêu Hình 43 Tìm ngược lại để ô cha Hình 44 Hệ thống lưới tìm đường Hình 45 Cờ báo hiệu trạng thái Hình 46 Hệ thông máy trạng thái Hình 47 Tài nguyên âm Hình 48 Mô tả âm Hình 49 Đánh dấu đối tượng Hình 50 Thẻ Object Bake Occlusion Hình 51 Thẻ Visualization Occlusion -3- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine Hình 52 Hiệu ứng sau sử dụng kỹ thuật tối ưu Hình 53 Hướng dẫn người chơi Hình 54 Hai chế độ bắn Hình 55 Giao diện Menu Hình 56 Chế độ chiến đấu Hình 57 Minh họa thiết kế trò chơi -4- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine DANH MỤC BẢNG Bảng Thuộc tính trang bị vũ khí Bảng Trang bị, vũ khí, hiệu ứng thuộc tính Bảng 3 Thuộc tính, chức quái vật -5- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine KÍ HIỆU VÀ VIẾT TẮT THUẬT NGỮ STT Thuật ngữ / Từ viết tắt Giải Thích CSDL Cơ sở liệu GUI Graphic User Interface (Giao diện người dùng) GLSL The OpenGL Shading Language (Ngôn ngữ đổ bóng OpenGL) LOD Level of detail (cấp độ chi tiết) FPS First Person Shooter (Bắn súng góc nhìn thứ nhất) FPC First Person Controller (Điều khiển góc nhìn thứ nhất) -6- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine TÓM TẮT Trong xã hội đại, với phát triền mạnh mẽ khoa học công nghệ, hình thức giải trí ngày trở nên đa dạng phong phú để đáp ứng nhu cầu giải trí người Trong đó, game hình thức giải trí tốt với nhiều thể loại game đặc sắc khác Tuy nhiên, để thiết kế game cần tốn nhiều thời gian, công sức Chính vậy, để đáp ứng cho phát triền game, nhà khoa học công nghệ game cho đời Game Engine để giảm thời gian thiết kế tăng hiệu chất lượng game, đặc biệt nhóm phát triền game không chuyên Hiện nay, có nhiều Game Engine phổ biến như: Cry Engine, Unreal, X-Ray, Vision, … Trong đó, Unity3D Game Engine đánh giá tốt nhiều người lựa chọn Đặc biệt Unity3d hỗ trợ nhiều tảng: PC, Adroid, Windows Phone, Mac, …và trình duyệt Web Player với chất lượng hình ảnh tốt đặc sắc Đây lý em chọn đề tài Từ khóa: Game Engine, nhu cầu giải trí, Unity3D -7- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine ABSTRACT In the modern society, beside the growing up of techonology, many kinds of entertaiment also develop to reponse human needed and game become more and more popular in the world Inside of intertaiment, game is more diversity and plentiful with a lot of type gameplay However, to build a good game, it isn’t easy and has to spend to time and efford To solve this problem, a lot of Game Engines were created to help the game developing easier especially for amateurs Nowadays, there are many popular Game Engines such as: Cry Engine, Unreal, X-Ray, Vision, …In these, Unity3D is the most Game Engines and many people are chosen and good review The special things of Unity is it suporting multi-platform such as: PC, Adroid, Windows Phone, Mac, … and web brower with Unity Web Player with high quaility game This is reason why I choose Unity to perform this topic Key Word: Game Engine, entertaiment, Unity3D -8- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine CHƯƠNG 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Ở kỉ XXI, công nghệ vi xử lý card đồ họa dần tiên tiến cho đời nhiều sản phẩm Game với cách chơi hình ảnh sinh động, đưa giới ảo Game đời thực Ngành công nghiệp Game phát triển mạnh mẽ hấp dẫn người chơi với nhiều lối chơi khác Có nhiều nhà phát hành game thân thuộc với gamer giới như: Clover Studios, Konami, Nintendo, Capcom , hãng game cho đời nhiều game với công nghệ đột phá nhiều thiết bị tảng khác nhau: PC, mobile, tablet Phía sau Game nhà phát hành Game điều có Game Engine - công cụ hỗ trợ cho nhà sản xuất Game, giúp lập trình viên Game viết Game nhành chóng, hiệu cao Tại Việt Nam, ngành công nghiệp Game phát triển theo hình thức phát hành Game Đa số công ty Việt Nam phát triển Game với dự án nhỏ, đồ họa hấp dẫn không lôi nhiều game thủ Với xã hội ngày nhu cầu giải trí ngày trọng Sau thời gian học tập làm việc mệt mỏi, chơi game cách giải trí hiệu tốt Chơi game giúp cho tư thân người trở nên nhạy bén, nhanh nhẹn Và game cộng đồng game Việt Nam giới yêu thích game “Thể loại hành động bắn súng góc nhìn thứ nhất” -9- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine 1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ Với vấn đề nêu thi có nhiều công cụ hỗ trợ tiếng giúp cho việc phát triển Game nhiều lập trình viên sử dung Game 3D như: Blender, Cinema4D hay 3DsMax.Từ việc tạo khối câu, khối lập phương đơn giản đến hình ảnh phức tạp cách xử lý ghép khối hình đơn giản lại.Có nhiều công cụ hỗ trợ phát triển : Unreal, X-Ray, Vision, Unity 3D, Trong công cụ ưa chuộng giúp cho việc viết Game trở tiết kiệm thời gian, hiệu Unity 3D.Công cụ hỗ trợ đa tảng Windows, Adroid, IOS, Xbox, Wii Ngoài ra, phần mềm Unity 3D tương tác với nhiều chương trình đồ họa 3D khác giúp cho việc thiết kế đồ họa trở sống động, chân thực 1.3 HƯỚNG GIẢI QUYẾT VẤN ĐỀ Từ xu hướng bất cập trên, em khảo sát nghiên cứu Engine Game, Unity Engine Unity Game engine phổ biến, có khả phát triển trò chơi đa tảng Unity tạo nhiều thể loại game với nhiều góc nhìn khác nhau, có hỗ trợ mô hình trực tiếp, với nguồn tài liệu hấp dẫn cộng đồng lập trình viên ưa chuộng Unity đến cho đời phiên bản: Unity Pro (có tính phí) Unity Free (không tính phí) Unity không dành cho công ty phát triển Game chuyên nghiệp mà dành cho tất giới làm game nghiệp dư dễ dàng -10- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine 3.13 NGHIÊN CỨU VỀ TRÒ CHƠI THEO THỂ LOẠI HÀNH ĐỘNG BẮN SÚNG 3.13.1 Giới thiệu tổng quát trò chơi Thể loại trò chơi hành động bắn súng góc nhìn thứ (FPS – First Person Shooter) loại trò chơi người chơi nhập vai vào nhân vật trò chơi Với lối chơi nhập vai người chơi cảm thấy hấp dẫn lôi đời thật Xuất vào 1980, thể loại trò chơi FPS trờ thành gió công nghiệp trò chơi “nóng” thị trường trò chơi điện tử giới Cốt truyện trò chơi lấy tưởng từ phim khoa học diễn tưởng loài người trang bị vũ khí tối tân để chống lại quái vật ngăn chặn chúng công trái đất Trò chơi đòi hỏi người chơi phải tư linh hoạt, khéo léo xử lý tình trò chơi Với thể loại nhập vai nhân vật trò chơi người chơi di chuyển không gian thực, quan sát góc nhìn từ thị giác người giới trò chơi Với âm đặc sắc, mô chân thật thực tết hiệu ứng trò chơi, tất cộng hưởng tạo nên cảm giác “trãi nghiệm, phiêu lưu, phá đảo giới ảo” -90- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine 3.13.2 Cách chơi Người chơi nhập vai vào nhân vật di chuyển, nhặt vũ khí trang bị, công kẻ địch, phải thật khéo léo để né tránh đòn công từ kẻ địch để giảm tối đa sát thương từ chúng Mục tiêu trước tiên người chơi phải công quái vật bình thường, sau tiêu diệt hết chúng đối mặt với “trùm cuối” (BOSS), tiêu diệt thành công Boss người chơi chiến thắng Nếu trình chơi người bị hết máu người chơi phải chơi lại từ đầu Hình Hướng dẫn người chơi -91- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine 3.13.3 Một số đặc điểm trò chơi Giống đa số tựa Game bắn súng, Game FPS đại diện loại vũ khí tầm xa đa dạng số lượng kẻ địch Vì xây dựng môi trường 3D, thể loại Game cần thiết kế sát với thực tế Game 2D, Game FPS cần mô xác trọng lực, ánh sáng, âm va chạm Game FPS thường chơi máy tính cá nhân thông qua kết hợp bàn phím chuột hay thông qua cần nút điều khiển tích hợp controller hệ máy console Cách điều khiển Game FPS bao gồm thao tác phổ biến đi, chạy, ngắm bắn Trong Game FPS, đối tượng phổ biến hiển thị hình đôi tay vũ khí nhân vật, bên cạnh hệ thống HUD hiển thị thông tin sức khỏe, đạn dược vị trí nhân vật địa hình Các loại trang bị, vũ khí, hiệu ứng, thuộc tính, chức trò chơi: Tên Hình ảnh Thuộc tính, chức Súng Scifi +Nhãn: Item, Weapon +Tầm bắn: 400 +Sát thương: +Số lượng đạn tối đa hộp tiếp đạn: 30 +Số lượng đạn mang theo tối đa: 300 +Tốc độ bắn: 0.2 +Thời gian nạp đạn: giây +Chức năng: Tấn công tầm xa Súng AK +Nhãn: Item, Weapon +Tầm bắn: 300 +Sát thương: 10 +Số lượng đạn tối đa hộp tiếp đạn: 20 +Số lượng đạn mang theo tối đa: 300 +Tốc độ bắn: 0.4 +Thời gian nạp đạn: giây -92- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine +Chức năng: Tấn công tầm xa Súng ngắm AWM +Nhãn: Item, Weapon +Tầm bắn: 500 +Sát thương: 25 +Số lượng đạn tối đa hộp tiếp đạn: +Số lượng đạn mang theo tối đa: 50 +Tốc độ bắn: 0.2 +Thời gian nạp đạn: giây +Chức năng: Tấn công tầm xa Búa +Nhãn: Item, Weapon +Sát thương vật lý: 25 +Tốc độ công: 0.5 +Chức năng: Tấn công cận chiến Hộp tiếp đạn +Nhãn: Item +Số lượng đạn hộp: 50 +Chức năng: tiếp đạn cho nhân vật Nhân vật (đồng đội) +Nhãn: Player, Friendly +Tốc độ di chuyển: 4.5 +Hình thức công: cận chiến, tầm xa(nếu trang bị súng), tuần tra, theo sau nhân vật +Máu: 100 Hộp đạn +Nhãn: Player +Chức năng: hiển thị số lượng đạn -93- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine Máu +Nhãn: Player +Chức năng: hiển thị số lượng máu nhân vật Thùng Xăng +Nhãn: Item +Chức năng: nổ gây sát thương diện rộng Hiệu ứng súng +Nhãn: Item +Chức năng: gây hiệu ứng bắn Nòng ngắm +Nhãn: Player +Chức năng: xác định tầm ngắm Hiệu ứng lửa +Nhãn: Mặc định +Chức năng: tạo hiệu ứng cho môi trường Cờ biến đổi trạng thái +Nhãn: Player +Chức năng: cờ biến trạng thái (tuần tra, theo sau, công cận chiến, tầm xa, …) -94- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine Môi trường +Nhãn: Mặc định +Chức năng: tạo môi trường cho trò chơi Ra-đa +Nhãn: Player +Chức năng: xác định mục tiêu xung quanh Bảng Trang bị, vũ khí, hiệu ứng thuộc tính Thuộc tính, chức quái vật: Tên Người đá Hình ảnh Thuộc tính, chức +Nhãn: Enemy +Tốc độ di chuyển: 2.5 +Hình thức công: cận chiến +Máu: 300 Hiệu ứng +Nhãn: Enemy +Chức năng: tạo hiệu ứng cho quái vật Robot Nhện +Nhãn: Enemy +Tốc độ di chuyển: 2.5 +Hình thức công: cận chiến, tầm xa +Máu: 200 -95- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine Tên lửa +Nhãn: Enemy +Máu: 100 +Sát thương:20 +Bán kính sát thương:15 +Lực tác dụng:500 +Chức năng: gây sát thương cho người chơi Hai chế độ chiến đấu góc nhìn thứ trò chơi: Hình Hai chế độ bắn Giao diện Menu trò chơi: -96- Bảng Thuộc tính, chức quái vật Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine Hình Giao diện Menu 3.13.4 Yếu tố chiến đấu Thông thường Game FPS liệt kê vào thể loại hành động với yếu tố hành động nhịp độ nhanh có tính chất bạo lực Thỉnh thoảng có khác tựa Game thiên yếu tố khám phá, giải đố chơi thực chiến đấu cận chiến đối thủ đến gần hay vũ khí tầm xa không hiệu lực (như hết đạn, kẹt đạn) Bên cạnh Game bắn súng mang yếu tố hành động nhịp độ nhanh với xu hướng điện ảnh -97- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine số tựa Game theo xu hướn chiến thuật mô tả sát với thực tế cách chiến đấu chiến thuật pha hành động Vũ khí đối tượng quan trọng Game FPS, chúng thường thiết kế chi tiết với đầy đủ phận mô đầy cảm giác đặc điểm sử dụng sức nặng, độ xác, mức độ sát thương, rung giật, … Hình Chế độ chiến đấu -98- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine 3.13.5 Phong cách thiết kế chơi Game FPS thông thường tuyến tính với chơi kết nối với thiết kế riêng biệt nhằm tối ưu hóa chi tiết môi trường, giảm tải xử lí máy tính đồng thời phân đoạn nội dung Bên cạnh phong cách đó, nhiều tựa Game FPS áp dụng công nghệ đại cho phép giảm bớt tuyến tính tăng mức độ rộng lớn môi trường Game Hình Minh họa thiết kế trò chơi -99- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine 3.13.6 Phần chơi Multiplayer Multiplayer phần chơi cho phép nhiều người chơi trò chơi, họ trải nghiệm câu chuyện trò chơi chế độ gọi Co-op hay phân chia đội thử thách kỹ qua việc chiến đấu đối đầu với Phần chơi thường trải nghiệm cách cho phép Game thủ tạo kênh, server kết nối với thông qua mạng LAN hay đường truyền Inernet 3.13.7 Một số tựa game tiêu biểu Series Game FPS đề tài khoa học viễn tưởng trở thành huyền thoại: Half Life Series Game FPS lấy đề tài chiến tranh thành công nhất: Call Of Duty Series Game FPS có đồ họa đẹp nay: Crysis Series Game đề cao tính chiến thuật, tính đồng đội phần chơi mạng ưa chuộng: Battlefield -100- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine 3.14 THẢO LUẬN KẾT QUẢ VÀ NÊU VẤN ĐỀ HẠN CHẾ 3.14.1 Thảo luận kết Về mặt thiết kế: • Nắm kỹ thuật xây dựng môi trường nhân vật góc nhìn thứ • Học yếu tố cốt lõi để tạo diễn hoạt cho nhân vật trò chơi • Áp dụng số plugin cho phép tạo giao diện người dùng (NGUI) • Áp dụng kỹ thuật tối ưu trò chơi thông qua công cụ Unity hỗ trợ cho phép mức khung hình giây ổn định Về mặt lập trình: • Áp dụng hầu hết kỹ thuật thường sử dụng trò chơi trò chơi bắn súng góc nhìn thứ (FPS) nói riêng như: va chạm vật lý, Ray Casting, hệ thống tự động tìm đường đi, … • Nắm quy trình xây dựng trí thông minh qua đặc tả • Hiểu xử lý số trường hợp lập trình game -101- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine 3.14.2 Các vấn đề chưa giải Về mặt thiết kế: • Chưa khai thác hết khả thiết kế Unity phần mềm khác hỗ trợ • Các kỹ thuật dựng cảnh tiên tiến chuyên nghiệp chưa vận dụng • Khả tối ưu hóa tài nguyên đồ họa (môi trường, mô hình, …) chưa tốt • Về đồ họa chưa bắt kịp trò chơi đại thiếu nhân lực cấu hình máy tính hỗ trợ chưa tốt • Vẫn phải sử dụng nhiều tài nguyên mô hình miễn phí, có sẵn mạng Internet Về mặt lập trình: • • • • Mất nhiều thời gian để nghiên cứu xây dựng mã nguồn Chưa áp dụng kỹ thuật tối ưu lẫn truyền thống Mất nhiều thời gian để fix bug trình xây dựng AI Các giáo trình lập trình game Tiếng Việt nên phải thời gian để tìm hiểu, thông dịch • Nghiên cứu lâu, chậm gây không đuổi kịp xu hướng công nghệ, kỹ thuật lập trình toàn cầu -102- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN A KẾT LUẬN Qua trình nghiên cứu, em xây dựng cho thân tảng lập trình game hoàn thành tương đối đề tài “Lập trình trò chơi bắn súng với Unity3D Engine” Kết cuối Game Demo để chứng tỏ điều B HƯỚNG PHÁT TRIỂN Em mong muốn dự định xây dựng nhiều tính năng, nhiều đồ nội dung trò chơi ngày hoàn thiện Sau đó, em phát hành trực tuyến dạng Game Demo lên cộng đồng game thủ Việt Nam nhằm tiếp thu ý kiến xây dựng tảng vững đường học tập làm việc sau -103- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine TÀI LIỆU THAM KHẢO [1] http://www.unity3dstudent.com [2] https://unity3d.com [3] https://docs.unity3d.com [4] http://vietunity3d.blogspot.com/2013/10/ai-11-gioi-thieu-ve-ai.html [5] Kênh youtube Gamer To Game Developer, Series video hướng dẫn làm game FPS [6] Và tài liệu hướng dẫn khác mạng internet -104- ... biến với lập trình viên như: C#, Java Scrip Boo -18- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine 2.2.9 Networking Networking cho phép tạo trò chơi trực tuyến (online) – thể loại trò. .. bén, nhanh nhẹn Và game cộng đồng game Việt Nam giới yêu thích game “Thể loại hành động bắn súng góc nhìn thứ nhất” -9- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine 1.2 LỊCH SỬ... Testing Hình Minh họa cửa sổ trò chơi -30- Đề tài: Lập trình trò chơi bắn súng với Unity3D Game Engine 2.4 TỔNG QUAN KIẾN TRÚC GAME ENGINE UNITY 3D 2.4.1 Kiến trúc tổng quan Engine Unity hỗ trợ cho