Đăng ký Đăng nhập
Trang chủ Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game ...

Tài liệu Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game

.PDF
125
1
73

Mô tả:

ĐẠI HỌC QUỐC GIA TPHCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC THIẾT KẾ MÔ HÌNH TRI GIÁC VÀ NHẬN THỨC CHO CÁC NPCS TRONG STEALTH GAME NGÀNH: KHOA HỌC MÁY TÍNH HỘI ĐỒNG: Khoa học Máy tính 3 GVHD: ThS. Vương Bá Thịnh GVPB: ThS. Băng Ngọc Bảo Tâm —o0o— SVTH 1: Phạm Phước Hoài (1711371) ĐẠI HỌC QUỐC GIA TPHCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC THIẾT KẾ MÔ HÌNH TRI GIÁC VÀ NHẬN THỨC CHO CÁC NPCS TRONG STEALTH GAME NGÀNH: KHOA HỌC MÁY TÍNH HỘI ĐỒNG: Khoa học Máy tính 3 GVHD: ThS. Vương Bá Thịnh GVPB: ThS. Băng Ngọc Bảo Tâm —o0o— SVTH 1: Phạm Phước Hoài (1711371) ĈҤ,+Ӑ&48Ӕ&*,$73+&0 ---------75ѬӠ1*ĈҤ,+Ӑ&%È&+.+2$ KHOA:KH & KT Máy tính ____ %Ӝ0Ð1 KHMT ___________ &Ӝ1*+Ñ$;­+Ӝ,&+Ӫ1*+Ƭ$9,ӊ71$0 ĈӝFOұS- 7ӵGR- +ҥQKSK~F 1+,ӊ09Ө/8Ұ1È17Ӕ71*+,ӊ3 +Ӑ9¬7Ç1 3KҥP3KѭӟF+RjL ______________________ MSSV: 1711371 ______ NGÀNH: .KRDKӑFPi\tính ___________________ /Ӟ3 _____________________ ĈҫXÿӅOXұQiQ 7KLӃWNӃP{KuQKWULJLiFYjQKұQWKӭFFKRFiF13&VWURQJ6WHDOWKJDPH 1KLӋPYө \rXFҫXYӅQӝLGXQJYjVӕOLӋXEDQÿҫX  - 7uPKLӇXYӅFiFP{KuQKWULJLiF QJKHQKuQ - TuPKLӇXYӅ8QLW\ - ĈӅ[XҩWYjKLӋQWKӵFFiFP{Kình tri giác cho các NPC - +LӋQWKӵFJDPHKRjQFKӍQK 1Jj\JLDRQKLӋPYөOXұQiQ 01/02/2021 1Jj\KRjQWKjQKQKLӋPYө 30/07/2021 +ӑWrQJLҧQJYLrQKѭӟQJGүQ 3KҫQKѭӟQJGүQ 1) 9ѭѫQJ%i7KӏQK 1ӝLGXQJYj\rXFҫX/971ÿmÿѭӧFWK{QJTXD%ӝP{Q 1Jj\WKiQJQăP &+Ӫ1+,ӊ0%Ӝ0Ð1 *,Ҧ1*9,Ç1+ѬӞ1*'Ү1&+Ë1+ .êYjJKLU}K͕WrQ .êYjJKLU}K͕WrQ 3*676+XǤQK7ѭӡQJ1JX\rQ 3+̮1'¬1+&+2.+2$%͠0Ð1 1JѭӡLGX\ӋW FKҩPVѫEӝ ________________________ ĈѫQYӏ _______________________________________ 1Jj\EҧRYӋ __________________________________ ĈLӇPWәQJNӃW _________________________________ 1ѫLOѭXWUӳOXұQiQ _____________________________ 9ѭѫQJ%i7KӏQK 75ѬӠ1*ĈҤ,+Ӑ&%È&+.+2$ KHOA KH & KT MÁY TÍNH &Ӝ1*+Ñ$;­+Ӝ,&+Ӫ1*+Ƭ$9,ӊ71$0 ĈӝFOұS- 7ӵGR- +ҥQKSK~F ---------------------------Ngày 10 tháng 08 QăP 2021 3+,ӂ8&+Ҩ0%Ҧ29ӊ/971 'jQKFKRQJ˱ͥLK˱ͣQJG̳Q) +ӑYjWrQ69 3KҥP3KѭӟF+RjL(MSSV: 1711371) Ngành (chuyên ngành): .KRDKӑFPi\WtQK ĈӅWjL 7KLӃWNӃP{KuQKWULJLiFYjQKұQWKӭFFKRFiF13&VWURQJ6WHDOWKJDPH +ӑWrQQJѭӡLKѭӟQJGүQ: 9ѭѫQJ%i7KӏQK 7әQJTXiWYӅEҧQWKX\ӃWPLQK 6ӕWUDQJ 6ӕFKѭѫQJ 6ӕEҧQJVӕOLӋX 6ӕKuQK YӁ 6ӕWjLOLӋXWKDPNKҧR 3KҫQPӅPWtQKWRiQ +LӋQYұW VҧQSKҭP 7әQJTXiWYӅFiFEҧQYӁ - 6ӕEҧQYӁ %ҧQ$ %ҧQ$ .KәNKiF - 6ӕEҧQYӁYӁWD\ 6ӕEҧQYӁWUrQPi\WtQK 1KӳQJѭXÿLӇPFKtQKFӫD/971 - 6LQKYLrQÿmWuPKLӇXcác game liên quan - 7uPKLӇXYjÿӅ[XҩWP{KuQKWULJLiFYjQKұQWKӭFFKRJDPH - 3KkQWtFKKLӋQWKӵFVҧQSKҭPFyNLӇPWKӱ - ĈӗKӑD'JDPHSOD\ҩQWѭӧQJ 1KӳQJWKLӃXVyWFKtQKFӫD/971 - &KѭDFyQKLӅXPjQFKѫL ĈӅQJKӏĈѭӧFEҧRYӋ† %әVXQJWKrPÿӇEҧRYӋ† 9. 0 FkXKӓL69SKҧLWUҧOӡLWUѭӟF+ӝLÿӗQJ ĈiQKJLiFKXQJ EҵQJFKӳJLӓLNKi7%  .K{QJÿѭӧFEҧRYӋ† ĈLӇP9.0 /10 .êWrQ JKLU}KӑWrQ 9ѭѫQJ%i7KӏQK TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KH & KT MÁY TÍNH CỘNG HÒA Xà HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc ---------------------------Ngày 08 tháng 08 năm 2021 PHIẾU CHẤM BẢO VỆ LVTN (Dành cho người phản biện) 1. Họ và tên SV: Phạm Phước Hoài MSSV: 1711371 Ngành (chuyên ngành): Khoa học Máy tính Họ và tên SV: Phan Tấn Quốc MSSV: 1712855 Ngành (chuyên ngành): Khoa học Máy tính 2. Đề tài: Thiết kế mô hình tri giác và nhận thức cho các NPCs trong Stealth game 3. Họ tên người phản biện: ThS. Băng Ngọc Bảo Tâm 4. Tổng quát về bản thuyết minh: Số trang: Số chương: Số bảng số liệu Số hình vẽ: Số tài liệu tham khảo: Phần mềm tính toán: Hiện vật (sản phẩm) 5. Tổng quát về các bản vẽ: - Số bản vẽ: Bản A1: Bản A2: Khổ khác: - Số bản vẽ vẽ tay Số bản vẽ trên máy tính: 6. Những ưu điểm chính của LVTN:  Nắm bắt được các phương pháp, kỹ thuật để đưa cách con người nhìn nhận, lắng nghe về thế giới vào nhân vật trong game.  Có xây dựng một trò chơi để thực nghiệm cho các lý thuyết được đề cập trong luận văn.  Luận văn được trình bày cụ thể, rõ ràng, bố cục hợp lý, tài liệu tham khảo đầy đủ. 7. Những thiếu sót chính của LVTN:  Chưa đưa ra được các hạn chế cũng như nhược điểm của các mô hình hiện tại để từ đó đề xuất ra mô hình mới. 8. Đề nghị: Được bảo vệ √ Bổ sung thêm để bảo vệ  Không được bảo vệ  9. 3 câu hỏi SV phải trả lời trước Hội đồng: a. Điểm khác nhau giữa mô hình tri giác và nhận thức cho các NPCs của nhóm so với các mô hình NPCs hiện tại là gì? b. Làm thế nào để mô phỏng quá trình lắng nghe trong thực tế (hoặc trong không gian 3D) vào NPCs? c. Đánh giá mô hình hành vi cho NPC so với mô hình Finite state machine? 10. Đánh giá chung (bằng chữ: giỏi, khá, TB): Giỏi Điểm: 8.5/10 MSSV 1711371 1712855 Họ và Tên Phạm Phước Hoài Phan Tấn Quốc Điểm 8.5 0 Ký tên (ghi rõ họ tên) Băng Ngọc Bảo Tâm Trường Đại Học Bách Khoa TP.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính Lời cam đoan Em xin cam đoan luận văn này là công trình nghiên cứu của riêng của em, do em tự nghiên cứu, đọc, dịch tài liệu, tổng hợp và thực hiện. Nội dung lý thuyết trong luận văn có sử dụng một số tài liệu tham khảo như đã trình bày trong phần tài liệu tham khảo. Các chương trình phần mềm và những kết quả trong luận văn là trung thực và do em tự mình làm ra. Người thực hiện Phạm Phước Hoài Luận văn tốt nghiệp - Niên khóa 2020-2021 i Trường Đại Học Bách Khoa TP.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính Lời cảm ơn Trong quá trình thực hiện luận văn này, em đã có sự giúp đỡ tận tình từ nhiều nguồn khác nhau mà rất xứng đáng để được nhắc đến ở đây. Trước hết, em xin được tỏ lòng biết ơn và gửi lời cảm ơn chân thành đến ThS. Vương Bá Thịnh, người trực tiếp hướng dẫn luận văn, đã tận tình chỉ bảo và hướng dẫn em tìm ra hướng nghiên cứu, tiếp cận thực tế, tìm kiếm tài liệu, giải quyết vấn đề. . . nhờ đó em mới có thể hoàn thành tốt luận văn của mình. Tiếp theo, em xin cảm ơn bố mẹ đã luôn ủng hộ em về cả sức mạnh tinh thần và vật chất, những người luôn bên cạnh an ủi và động viên. Cha mẹ và những người thân trong gia đình đã hỗ trợ, tạo điều kiện thuận lợi cho em trong suốt thời gian qua và đặc biệt trong thời gian theo học tại trường Và cuối cùng, em đã không thể hoàn thành luận văn này nếu không có sự hỗ trợ của những người bạn, những người đã cung cấp những cuộc thảo luận đầy hứng khởi cũng như những lời khuyên vô cùng hữu ích cho nghiên cứu của em. Luận văn tốt nghiệp - Niên khóa 2020-2021 ii Trường Đại Học Bách Khoa TP.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính Tóm tắt Trong vài thập kỷ qua, trò chơi điện tử (computer game) đã có sự phát triển vượt bậc và chúng ta đã thấy những cải tiến lớn về cả đồ họa và âm thanh. Bên cạnh đó, sự phát triển của trí tuệ nhân tạo (AI) cũng dần chiếm vị trí quan trọng trong việc mang đến những trải nghiệm thực tế cho người chơi. Nhiều vấn đề với những nhân vật không chơi được (non-playable character hay NPC) bắt nguồn từ việc chúng không đạt được mức độ thực tế và thông minh đủ lớn. Điều này chủ yếu liên quan đến việc các NPC đó không hoạt động theo sự mong đợi của người chơi. Người chơi mong muốn có một trải nghiệm thực tế khi chơi game và mong muốn rằng những NPC sẽ hành động và cư xử như những con người thật chứ không phải như những con robot. Vì thế việc các NPC hành động không thực tế làm giảm đi sự thích thú mà người chơi có thể nhận được từ game. Do đó, điều cần làm ở đây là thiết kế của NPC phải phù hợp với thực tế mà người chơi kỳ vọng. Sự phát triển của AI đã cải thiện đáng kể mức độ thực tế của các NPC bằng cách cung cấp cho chúng các hành vi phức tạp và "con người" hơn. Để đạt được sự phức tạp này trong hành vi, cần có cách để NPC thu thập thông tin về ngữ cảnh hiện tại, đó là môi trường xung quanh, những gì đang xảy ra và trạng thái của nó. NPC có thể khảo sát môi trường xung quanh bằng cách sử dụng thị giác, thính giác và các giác quan khác đã được mô phỏng và sau đó có thể đưa ra lựa chọn hay hành động dựa trên thông tin mới thu thập được. Một điều cần quan tâm nữa là một NPC phải nhận biết được sự hiện diện của các NPC khác và sự hiện diện của người chơi. Những điều vừa nói ở đây lại càng trở nên quan trọng hơn trong thể loại game Stealth, nơi mà người chơi sẽ ẩn nấp trong bóng tối và những NPC này cần có cơ chế phát hiện người chơi một cách thực tế nhất, để người chơi có được cảm giác công bằng như ngoài đời thực để từ đó mang lại trải nghiệm phong phú và thực tế cho người chơi. Trong luận văn này em sẽ tìm hiểu về tri giác của con người để từ đó đưa ra thiết kế mô hình tri giác cho những NPC cụ thể là thị giác và thính giác để chúng có thể nhận biết được thế giới xung quanh như con người từ đó dẫn tới sự nhận thức như con người và đưa ra những hành động phù hợp như con người, từ đó đem lại trải nghiệm thực tế cho người chơi. Luận văn tốt nghiệp - Niên khóa 2020-2021 iii Trường Đại Học Bách Khoa TP.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính Mục lục Lời cam đoan i Lời cảm ơn ii Tóm tắt iii Danh sách hình vẽ vii Danh sách bảng xi 1 Giới thiệu 1 1.1 NPC là gì? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Stealth game là gì? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 Bối cảnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 Động cơ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.5 Câu hỏi nghiên cứu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.6 Mục tiêu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.7 Phương pháp nghiên cứu và cấu trúc luận văn . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 3 Các nghiên cứu liên quan 4 2.1 Thị giác cho NPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Mô phỏng sự lan truyền của âm thanh và thính giác cho NPC . . . . . . . . . . . . . . . . . . . . 5 2.2.1 Region Sense Manager (RSM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.2 Finite Element Model Sense Manager (FEMSM) . . . . . . . . . . . . . . . . . . . . . . 7 2.2.3 Sonic Virtuality (SV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Mô tả trạng thái và việc đưa ra quyết định cho NPC bằng Finite State Machine (FSM) . . . . . . . 8 2.4 Những thiếu sót của các nghiên cứu trên . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Mô hình tìm đường đi (path-finding) cho NPC Luận văn tốt nghiệp - Niên khóa 2020-2021 11 iv Trường Đại Học Bách Khoa TP.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính 4 5 3.1 NavMesh và tìm đường đi ngắn nhất trong Unity . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2 Né tránh vật cản và RVO (Reciprocal Velocity Obstacles) . . . . . . . . . . . . . . . . . . . . . . 15 Thiết kế mô hình nhận thức thị giác (visual perception) cho NPC 24 4.1 Nhận thức thị giác ở con người . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.2 Mô hình đề xuất cho nhận thức thị giác ở con người . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.2.1 Mô hình thị giác cơ bản . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2.2 Mô hình thị giác đề xuất . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Thiết kế mô hình nhận thức thính giác (auditory perception) cho NPC 28 5.1 Nhận thức thính giác ở con người . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.1.1 Sự suy giảm cường độ của âm thanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.1.2 Sự nhiễu xạ của âm thanh (Diffraction) . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.1.3 Sự phản xạ âm thanh và âm vang (Reflection and Reverberation) . . . . . . . . . . . . . . 30 5.1.4 Binaural sound cues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.1.5 Định vị nguồn âm thanh dựa vào sự lan truyền của âm thanh (propagation based sound localisation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Mô hình đề xuất cho nhận thức thính giác của NPC . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.2.1 33 5.2 Mô hình truyền tín hiệu âm thanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1.a Biểu diễn tín hiệu âm thanh . . . . . . . . . . . . . . . . . . . . . . . . 33 5.2.1.b Emitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.2.1.c Broadcaster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.2.1.d Listener . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.2.1.e Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.2.2 Mô phỏng sự lan truyền của âm thanh trong môi trường . . . . . . . . . . . . . . . . . . . 36 5.2.3 Khả năng xác định vị trí nguồn âm của NPC . . . . . . . . . . . . . . . . . . . . . . . . 37 5.2.3.a Xác định một NPC có thể nghe được âm thanh phát ra hay không . . . . 37 5.2.3.b Ước tính hướng của nguồn âm . . . . . . . . . . . . . . . . . . . . . . . 38 5.2.3.c Ước tính vị trí nguồn âm . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Luận văn tốt nghiệp - Niên khóa 2020-2021 v Trường Đại Học Bách Khoa TP.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính 5.2.3.d 6 7 41 6.1 Cây hành vi (Behaviour tree) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.2 Behavior Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Ứng dụng mô hình vào game cụ thể 48 7.1 Quá trình thiết kế . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7.1.1 High Concept Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 7.1.2 Game Design Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Quá trình phát triển . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 7.2.1 Main Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 7.2.2 Nhân vật . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 7.2.3 Mô hình nhận thức thị giác . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 7.2.4 Mô hình nhận thức thính giác . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 7.2.5 Quân địch (NPC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Một số hình ảnh trong game . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 7.3 9 41 Thiết kế mô hình hành vi (behavior) cho NPC 7.2 8 Tổng hợp quá trình hoạt động của mô hình . . . . . . . . . . . . . . . . Kiểm thử (Testing) 91 8.1 Kiểm thử mô hình thị giác . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 8.2 Kiểm thử mô hình thính giác . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 8.3 Kiểm thử mô hình hành vi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Đánh giá và hướng phát triển 103 9.1 Đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 9.2 Hướng phát triển . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Tài liệu Luận văn tốt nghiệp - Niên khóa 2020-2021 106 vi Trường Đại Học Bách Khoa TP.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính Danh sách hình vẽ 1 Hình nón tầm nhìn (Vision cone) (Chaudhari, 2018). . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Các vùng hình cầu của RSM được biểu diễn dưới dạng 2D. (Millington & Funge, 2016, trang 607) 6 3 Một đồ thị FEMSM với các vùng rời rạc. Cường độ tín hiệu được biểu thị bằng màu nền của vùng không gian, với màu tối thể hiện cường độ cao hơn (Millington & Funge, 2016, trang 776). . . . . 7 4 Một ví dụ về FSM (Bevilacqua, 2013). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5 Vấn đề ở vision cone (McIntosh, 2015). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 6 Một ví dụ về "spaghetti" FSM (Estrada, 2014). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 7 NavMesh (lớp màu xanh nằm trên bề mặt của bản đồ) (Unity Technologies, 2018). . . . . . . . . . 11 8 Đường đi của nhân vật AI (Unity Technologies, 2018). . . . . . . . . . . . . . . . . . . . . . . . 13 9 String Pulling Algorithm (gamedev, 2018). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 10 Các bước thực hiện của String Pulling Algorithm (gamedev, 2018). . . . . . . . . . . . . . . . . . 14 11 Hai nhân vật AI, A và B đang di chuyển. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 12 Nhân vật A đang di chuyển và nhân vật B hình tròn. . . . . . . . . . . . . . . . . . . . . . . . . . 16 13 Một ví dụ về Minskowski Sum (Bonagiri, 2018). . . . . . . . . . . . . . . . . . . . . . . . . . . 17 14 Môi trường làm việc (workspace) của một nhân vật hình tam giác và môi trường cấu hình (configuration space) của cùng nhân vật đó khi xem nhân vật đó là một điểm (Mount & Eastman, 2018, trang 3). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 15 C-obstacle của vật cản P (Mount & Eastman, 2018, trang 4). . . . . . . . . . . . . . . . . . . . . 18 16 C-obstacle và Minskowski Sum (Mount & Eastman, 2018, trang 5). . . . . . . . . . . . . . . . . 18 17 Vật cản vận tốc của nhân vật hình tròn B đang di chuyển với vận tốc vB đối với một nhân vật hình tròn A di chuyển với vận tốc vA (van den Berg et al, 2008, trang 142). . . . . . . . . . . . . . . . 19 18 Vật cản vận tốc và hai nửa mặt phẳng trái, phải (van den Berg et al, 2008). . . . . . . . . . . . . . 20 19 Quỹ đạo của hai nhân vật AI sau khi đã tính toán vật cản vận tốc (Bonagiri, 2018). . . . . . . . . 20 20 Vật cản vận tốc tương hỗ của nhân vật B đối với nhân vật A (van den Berg et al, 2008). . . . . . . 21 21 Quỹ đạo khi áp dụng VO (trái) và RVO (phải). Quỹ đạo khi áp dụng RVO mượt hơn và ít có những vị trí chuyển hướng đột ngột (Bonagiri, 2018). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 22 Mô hình thị giác cơ bản (Rabin & Delp, 2008) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 23 Mô hình thị giác đề xuất . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Luận văn tốt nghiệp - Niên khóa 2020-2021 vii Trường Đại Học Bách Khoa TP.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính 24 Tầm nhìn đi qua vật cản chắn ngang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 25 Sự suy giảm cường độ của âm thanh (Viện nghiên cứu âm thanh và rung động - Đại học SouthAmpton, n.d). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 26 Sự nhiễu xạ của âm thanh qua góc tường (Wave Behaviour RAFT, n.d). . . . . . . . . . . . . . . . 29 27 Sự nhiễu xạ của âm thanh trong phòng (Pinterest, n.d). . . . . . . . . . . . . . . . . . . . . . . . 30 28 Âm thanh trực tiếp và bị phản xạ đến tai người nghe (Cowan, 2020, trang 12). . . . . . . . . . . . 31 29 ILD và ITD được gây ra bởi hướng của đầu người nghe so với nguồn âm thanh (Cowan, 2020, trang 8). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Nguồn âm thanh và người nghe được đặt trong các phòng riêng biệt được kết nối bằng một khe hở. Người nghe sẽ cảm nhận được âm thanh phát ra từ hướng của khe hở. Âm thanh cũng được cảm nhận là xa hơn vì sự suy giảm dựa trên độ dài quãng đường mà sóng âm thanh đã đi (Cowan, 2020, trang 16). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 31 Lược đồ phân lớp mô tả mô hình truyền tín hiệu âm thanh. . . . . . . . . . . . . . . . . . . . . . 33 32 Đường đi ngắn nhất mà tín hiệu âm thanh đã đi từ nguồn phát đến người nghe (Cowan, 2020, trang 114) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 33 Trong trường hợp này NPC sẽ dự đoán được nguồn âm ở trước mặt mình (Cowan, 2020, trang 138). 38 34 Do có vật cản trên đường đi nên người nghe sẽ dự đoán hướng của nguồn âm sai lệch với hướng thực sự của nguồn âm (Cowan, 2020, trang 177). . . . . . . . . . . . . . . . . . . . . . . . . . . 40 35 Một ví dụ của cây hành vi cho hành động NPC sẽ bắn khi nhìn thấy kẻ địch (Opsive, n.d). . . . . . 42 36 Các loại nút trong cây hành vi (Simpson, 2014). . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 37 Một ví dụ về nút chuỗi (Sequence) (Simpson, 2014). . . . . . . . . . . . . . . . . . . . . . . . . 44 38 Một ví dụ khác về nút chuỗi (Sequence) (Simpson, 2014). . . . . . . . . . . . . . . . . . . . . . . 44 39 Một ví dụ về nút chọn (Selector)(Simpson, 2014). . . . . . . . . . . . . . . . . . . . . . . . . . . 45 40 Cửa sổ editor của Behavior Designer (Opsive, n.d). . . . . . . . . . . . . . . . . . . . . . . . . . 47 41 Màn hình chơi game. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 42 Class diagram của CameraController. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 43 Class diagram của MouseControls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 44 Class diagram của CharacterControlling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 45 Cách tổ chức game object của nhân vật Doc McCoy trong Unity Editor. . . . . . . . . . . . . . . 66 46 Class diagram của CharacterAction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 47 Các class CharacterAction con. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 30 Luận văn tốt nghiệp - Niên khóa 2020-2021 viii Trường Đại Học Bách Khoa TP.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính 48 Hai vùng nhìn của NPC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 49 Người chơi đang nằm trong vùng nhìn (gần) của NPC. . . . . . . . . . . . . . . . . . . . . . . . 70 50 Chấm đen là vị trí NPC, các chấm trắng là vị trí cuối của các ray. . . . . . . . . . . . . . . . . . . 72 51 Sự khác biệt khi thực hiện ít raycast và nhiều raycast. . . . . . . . . . . . . . . . . . . . . . . . . 72 52 Vùng nhìn gần của NPC (Zombie). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 53 Vùng nhìn gần khi có vật cản cao hơn tầm mắt của NPC (Zombie). . . . . . . . . . . . . . . . . . 73 54 Chấm đen là NPC, các chấm trắng là các điểm có được từ việc raycast. . . . . . . . . . . . . . . . 74 55 Hai vùng nhìn của NPC (Zombie) khi không có vật cản. . . . . . . . . . . . . . . . . . . . . . . . 74 56 Các vùng nhìn của NPC (Zombie) khi có vật cản thấp hơn tầm mắt. . . . . . . . . . . . . . . . . 75 57 Các thành phần của mô hình thính giác. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 58 Class diagram của Message. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 59 Class diagram của Broadcaster và Main Broadcaster. . . . . . . . . . . . . . . . . . . . . . . . . 76 60 Class diagram của Emitter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 61 Class diagram của Listener. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 62 Class diagram của Filter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 63 Class diagram của AgeFilter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 64 Class diagram của Enemy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 65 Class diagram của ListenerNPC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 66 Class diagram của Cognition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 67 Cây hành vi của Zombie được thiết kế trong Behaviour Designer. . . . . . . . . . . . . . . . . . . 85 68 Cây hành vi của Decayer được thiết kế trong Behaviour Designer. . . . . . . . . . . . . . . . . . . 86 69 Cây hành vi của Leader Decayer được thiết kế trong Behaviour Designer. . . . . . . . . . . . . . . 87 70 Main menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 71 Doc McCoy (trái) và John Cooper (phải). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 72 Bọn Decayer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 73 Zombie đang đi tuần tra. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 74 Vùng tầm nhìn (viewcone) của Zombie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Luận văn tốt nghiệp - Niên khóa 2020-2021 ix Trường Đại Học Bách Khoa TP.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính 75 Zombie bị thu hút bởi tiếng ồn của máy phát điện. . . . . . . . . . . . . . . . . . . . . . . . . . . 90 76 Nhân vật bị phát hiện khi đứng trong vùng nhìn gần của NPC. . . . . . . . . . . . . . . . . . . . 91 77 Nhân vật bị phát hiện khi ngồi trong vùng nhìn gần của NPC. . . . . . . . . . . . . . . . . . . . . 92 78 Nhân vật bị phát hiện khi đứng trong vùng nhìn xa của NPC. . . . . . . . . . . . . . . . . . . . . 92 79 Nhân vật không bị phát hiện khi ngồi trong vùng nhìn xa của NPC. . . . . . . . . . . . . . . . . . 93 80 Nhân vật không bị phát hiện khi đứng sau vật cản (thùng rác) cao hơn tầm mắt của NPC. . . . . . 93 81 Nhân vật không bị phát hiện khi ngồi sau vật cản (thùng rác) cao hơn tầm mắt của NPC. . . . . . . 94 82 Nhân vật bị phát hiện khi đứng sau vật cản (rào chắn) thấp hơn tầm mắt của NPC. . . . . . . . . . 94 83 Nhân vật không bị phát hiện khi ngồi sau vật cản (rào chắn) thấp hơn tầm mắt của NPC. . . . . . . 95 84 Nhân vật bắn súng gần NPC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 85 NPC nghe và dự đoán khá chính xác nguồn âm của tiếng súng do nhân vật phát ra. . . . . . . . . . 96 86 Nhân vật bắn súng cách xa NPC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 87 NPC nghe nhưng dự đoán không chính xác nguồn âm của tiếng súng do nhân vật phát ra. . . . . . 97 88 Nhân vật bắn súng cách xa NPC có ảnh hưởng của tiếng ồn từ máy phát điện. . . . . . . . . . . . 97 89 NPC không nghe được tiếng súng do nhân vật phát ra do ảnh hưởng của tiếng ồn từ máy phát điện. 98 90 Nhân vật ném đồng tiền về phía NPC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 91 NPC thành công nghe được âm thanh đồng tiền và quay mặt về phía nó. . . . . . . . . . . . . . . 99 92 NPC không nghe được âm thanh đồng tiền. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 93 NPC kêu gọi đồng bọn và rượt đuổi nhân vật. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 94 NPC tấn công nhân vật bằng súng. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 95 NPC thực hiện tìm kiếm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 96 NPC phát hiện xác chết. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 97 NPC thực hiện tìm kiếm sau khi phát hiện xác chết. . . . . . . . . . . . . . . . . . . . . . . . . . 102 98 NPC phát hiện Bait Bag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 99 NPC bị làm mù khi lại gần Bait Bag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 100 NPC vẫn có thể thấy người chơi ở khoảng cách xa kể cả khi người chơi ngồi sau vật cản thấp hơn tầm nhìn NPC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Luận văn tốt nghiệp - Niên khóa 2020-2021 x Trường Đại Học Bách Khoa TP.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính Danh sách bảng 1 Hệ số suy giảm âm thanh dựa trên tần số. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2 Mức độ suy giảm âm thanh theo các mức độ tập trung. . . . . . . . . . . . . . . . . . . . . . . . 36 3 Bảng emitterID của các đối tượng trong màn chơi. . . . . . . . . . . . . . . . . . . . . . . . . . . 78 4 Mô tả Message tương ứng với các âm thanh được phát ra trong màn chơi . . . . . . . . . . . . . . 79 Luận văn tốt nghiệp - Niên khóa 2020-2021 xi Trường Đại Học Bách Khoa TP.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính 1 Giới thiệu 1.1 NPC là gì? NPC là một nhân vật không được điều khiển bởi người chơi. Thay vào đó, nó thường được điều khiển bởi máy tính thông qua các chương trình được viết sẵn. NPC có thể được chia thành ba nhóm tùy theo hành vi của nó đối với người chơi: (1) thù địch, (2) thân thiện, (3) trung lập. Thông thường, thuật ngữ NPC chỉ đề cập đến các nhân vật không thù địch với người chơi con người, tức là các nhân vật thân thiện hoặc trung lập, có thể giúp đỡ và dẫn dắt người chơi trong game hoặc không có bất kỳ tác động nào đến nhân vật của người chơi và được tạo ra để lấp đầy môi trường trong game ví dụ như là các người dân trong một thành phố. Luận văn này chủ yếu tập trung vào các NPC thù địch, chẳng hạn như các loại kẻ thù (binh lính, lính canh, kẻ cướp, quái vật) có nhiệm vụ đe dọa, săn lùng hoặc tiêu diệt nhân vật của người chơi. Hành vi của NPC trong hầu hết các trường hợp, đều được viết theo kịch bản đặt trước hoặc tự động và nó có thể được kích hoạt bởi một số điều kiện nhất định. Các hành vi này không thể bị thay đổi nếu ta không thay đổi chương trình được viết cho nó. Tuy nhiên, kể từ cuối những năm 1980, trí tuệ nhân tạo để điều khiển NPC đã được được tích hợp vào thiết kế của game để làm cho các hành vi linh hoạt và đa dạng hơn. 1.2 Stealth game là gì? Stealth là một thể loại game mà trong đó người chơi chủ yếu sử dụng các tính năng hỗ trợ cho việc lẩn tránh hoặc vượt qua kẻ địch ví dụ như tàng hình hoặc giả dạng. Ý tưởng cơ bản của yếu tố stealth trong game là ẩn nấp và tránh tiếp xúc với kẻ thù có mặt trong game. Các game thể loại này thường cho phép người chơi không bị phát hiện bằng cách ẩn nấp, lén lút hoặc sử dụng biện pháp cải trang, giả dạng. Một số game cũng cho phép người chơi lựa chọn giữa cách tiếp cận lén lút hoặc tấn công trực tiếp đối thủ nhưng thưởng nhiều hơn cho người chơi khi sử dụng khả năng stealth. Thể loại game này thường sử dụng các chủ đề gián điệp, chống khủng bố và giả mạo với các nhân vật chính là lực lượng đặc nhiệm, đặc vụ, gián điệp, tên trộm, ninja hoặc sát thủ. Một số game cũng đã kết hợp yếu tố stealth với các thể loại khác, chẳng hạn như game bắn súng góc nhìn thứ nhất và platformer. Một số ví dụ về các game có yếu tố stealth đó là: Pac Man, Metal Gear Solid, Thief: The Dark Project, Dishonored, Hitman, Splinter Cell,... Luận văn tốt nghiệp - Niên khóa 2020-2021 Trang 1/109 Trường Đại Học Bách Khoa TP.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính 1.3 Bối cảnh Một NPC cần phải biết về môi trường của nó, chẳng hạn như chướng ngại vật ở đâu, kẻ thù ở đâu, đồng đội ở đâu, v.v. Chất lượng NPC của chúng ta hoàn toàn phụ thuộc vào thông tin mà nó có thể nhận được từ môi trường. Dựa trên thông tin mà NPC thu thập được, nó có thể quyết định hành động nào sẽ được thực thi để phản hồi lại dữ liệu đó. Mà chất lượng này của NPC lại tác động trực tiếp đến người chơi, ví dụ: trải nghiệm và sự thích thú của người chơi sẽ bị ảnh hưởng một cách tiêu cực ngay khi nhìn thấy NPC bị mắc kẹt sau một bức tường. Giác quan là thứ duy nhất giúp con người nhận thức về môi trường. Điều này cũng đúng đối với các NPC. Hành động nhìn thấy một vật, cảm nhận một âm thanh, phân tích nội dung và dự đoán vị trí nguồn phát của âm thanh đó cung cấp một lượng dữ liệu phong phú về môi trường xung quanh. Các dữ liệu từ giác quan là rất quan trọng để mô phỏng các hành vi tương tự như con người trong game. Hầu hết những phát triển gần đây về nhận thức môi trường của NPC có xu hướng mô phỏng các giác quan một cách đơn giản hóa để tập trung tài nguyên vào phần đồ họa và hiệu ứng, ít quan tâm đến bản chất thực tế của các giác quan cũng như là khả năng và hạn chế riêng của từng NPC. Trong CRYENGINE, công cụ phát triển game của Crytek, các nhà phát triển game có thể điều chỉnh độ nhạy thị giác và thính giác của một NPC thông qua một biến scaling, sau đó biến này được thêm vào việc tính toán xem một nhân vật NPC có thể nhìn thấy hay nghe thấy hay không, nhưng những tính toán này không tính đến trạng thái tâm lý và sinh lý hiện tại của nhân vật đó. Phương pháp này cũng loại bỏ mọi ảnh hưởng của các âm thanh khác hoặc chướng ngại vật trong môi trường mà những điều này lại có ảnh hưởng không nhỏ đối với sự nhận thức của con người trong thực tế. 1.4 Động cơ Trong các game cổ điển như Pong, sự đơn giản của bối cảnh và môi trường không cung cấp nhiều thông tin để đưa ra một hành vi như con người đối với thanh đánh bóng (paddle) của đối phương, vì các biến duy nhất ở đây là vị trí của quả bóng và vị trí thanh đánh bóng. Trong các game gần đây, sự hiện thực của môi trường đã tăng lên rất nhiều, làm cho số lượng các biến được khảo sát bởi NPC cũng tăng lên. Trong tựa game Farcry, sử dụng phiên bản sửa đổi của CRYENGINE, Dunia, NPC nhận phản hồi từ môi trường bằng cách quét tất cả các nhân vật và đối tượng có liên quan bằng tầm nhìn, xác định tất cả các âm thanh mà chúng nghe thấy và thông qua một hệ thống phụ trợ được gọi là mưa đạn (bullet rain) để cung cấp thông tin về những viên đạn đi qua gần những NPC này. Sự phát triển của ngành công nghiệp game đã dẫn đến nhu cầu về độ tin cậy cũng như tính thực tế cao hơn đối với các hành vi và khả năng của các NPC. Sự tiến hóa này dẫn đến việc tạo ra các cơ chế để nâng cao nhận thức của NPC về môi trường. Trong thế hệ game hiện nay, khả năng nhìn và cảm nhận âm thanh của NPC thường được đơn giản hóa. Điều này dẫn đến việc mô phỏng thực tế kém trung thực, ảnh hưởng đến độ chân thực của NPC và thế giới trong game. Trong Source engine, âm thanh được phát ra thông qua một thực thể trong game được gọi là ai_sound, cho phép tất cả các NPC nghe thấy âm thanh nếu chúng nằm trong phạm vi nhất định đối với nguồn phát, với yếu tố quyết định duy nhất khác là một nhãn (tag) cho biết NPC có phải thuộc một lớp kẻ thù cụ thể hay không, lớp này có thể không nghe được âm thanh. Phương pháp này hoàn toàn không quan tâm đến vật lý và các Luận văn tốt nghiệp - Niên khóa 2020-2021 Trang 2/109 Trường Đại Học Bách Khoa TP.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính yếu tố tâm lý, chẳng hạn như NPC bị phân tâm khi thực hiện một nhiệm vụ nhất định hoặc sự tồn tại của âm thanh lớn che đi các âm thanh có cường độ thấp hơn, cả hai yếu tố này trong thực tế đều có thể khiến NPC không thể cảm nhận âm thanh được phát ra. Nhận thức được sự không hoàn hảo kể trên là rất quan trọng để mô phỏng chính xác nhất khả năng thị giác và thính giác như con người. Do hạn chế về khả năng xử lý của các nền tảng chơi game và những hạn chế khác mà sự không hoàn hảo trong các giác quan của NPC trong những game hiện nay thường bị gạt sang một bên để có lợi hơn cho các khả năng khác đáng chú ý bởi người chơi, như tìm đường đi trong môi trường đông đúc hoặc lựa chọn lộ trình hành động tốt nhất để hoàn thành một công việc nhất định. Vì vậy, có một sự cần thiết để tìm ra cách mô phỏng tốt hơn khả năng nhìn và cảm nhận âm thanh giống như con người đối với thế hệ game hiện tại. Một trong những thách thức chính là sử dụng hiệu quả tài nguyên tính toán sao cho không làm tổn hại đến hiệu suất của game bởi sự tính toán của các giác quan. Gánh nặng tính toán này sẽ thậm chí lớn hơn đối với môi trường với nhiều NPC cùng tồn tại, vì vậy sự truyền các tín hiệu giác quan từ môi trường và việc phân tích các tín hiệu đó cần được thực hiện một cách hiệu quả. 1.5 Câu hỏi nghiên cứu Trong bước chuẩn bị cho luận văn này, em đã có nghiên cứu sơ lược về cách mà thị giác và thính giác của con người hoạt động, đồng thời cũng tìm hiểu về các game hiện nay họ giải quyết vấn đề này như thế nào. Trong quá trình nghiên cứu đó đã có nhiều câu hỏi nảy sinh. Những câu hỏi này cung cấp động lực cốt lõi của toàn bộ quá trình nghiên cứu và phát triển, góp phần hoàn thiện mô hình kết quả. Các câu hỏi có liên quan như sau: • Làm sao để NPC có thể di chuyển được trong môi trường đồng thời né các vật cản hoặc NPC khác trên đường đi? • Có cách nào để áp dụng cách con người nhìn thế giới xung quanh vào NPC mà ít ảnh hưởng đến hiệu suất của game nhất có thể? • Làm sao để mô phỏng sự lan truyền của âm thanh trong thế giới của game để từ đó có thể mô phỏng thính giác của NPC một cách thực tế nhất có thể? • NPC xử lý các thông tin từ môi trường như thế nào và chúng sẽ hành động như thế nào để phản hồi lại những thông tin đó? 1.6 Mục tiêu Mục tiêu chính của luận văn này là thiết kế một mô hình cung cấp các cơ chế để cảm nhận và nhận thức môi trường cho NPC. NPC sẽ có thể quan sát được môi trường và nhận biết được âm thanh phát ra và thông qua việc phân tích những thông tin đó và tùy thuộc vào trạng thái tâm lý và thể chất, mà các thông tin trên được xem là cảm nhận được hoặc loại bỏ đi. Trên việc nhận thức được thông tin, NPC có thể đưa ra một hành động hợp lý trong ngữ cảnh đó. Luận văn tốt nghiệp - Niên khóa 2020-2021 Trang 3/109 Trường Đại Học Bách Khoa TP.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính Ngoài ra mô hình còn cho phép tùy chỉnh các thông số của mô hình sao cho phù hợp với tựa game đang được phát triển hoặc đối với từng đối tượng NPC để đem lại sự phong phú và đa dạng cho game. Mô hình này sẽ hiện thực và phát triển bằng Unity engine, là công cụ phát triển game có thị phần và cộng đồng nhà phát triển lớn nhất hiện nay. 1.7 Phương pháp nghiên cứu và cấu trúc luận văn Phương pháp nghiên cứu Khoa học Thiết kế (Design Science research methodology) đã được áp dụng trong quá trình nghiên cứu, phát triển và đánh giá mô hình. Phương pháp này có thể được mô tả bằng các bước sau: • Xác định vấn đề và động lực. • Định nghĩa các mục tiêu của giải pháp. • Thiết kế và phát triển. • Chạy thử (demo). • Đánh giá. • Kết luận và hướng phát triển. Bước chính, liên quan đến việc xác định vấn đề và động lực đã được trình bày trong các phần 1.1 và 1.2. Các mục tiêu đã được đề ra trong phần 1.4, dựa trên câu trả lời cho các câu hỏi đặt ra trong phần 1.3. Phần 2 sẽ đề cập đến những nghiên cứu có liên quan đến mô hình cần thiết kế. Từ phần 3 đến phần 6 sẽ phản ánh việc thiết kế và phát triển của từng module trong mô hình: module tìm đường (path-finding), module thị giác, module thính giác và module đưa ra quyết định và hành động. Bước áp dụng mô hình đề xuất vào một tựa game cụ thể sẽ được trình bày trong phần 7. Phần 8 sẽ trình bày những kết quả thu được sau khi kiểm thử mô hình trong tựa game đã phát triển và cuối cùng kết luận và định hướng phát triển sẽ được nhắc đến trong phần 9. 2 Các nghiên cứu liên quan 2.1 Thị giác cho NPC Trong các tựa game như Splinter Cell, Deus Ex, Dishonored hay Mark of the Ninja thị giác hay trường tầm nhìn (field of vision) đều được mô phỏng dưới dạng hình nón tầm nhìn (vision cone). Như hình dưới minh họa, trường tầm nhìn được mô hình hóa bằng cách sử dụng một hình nón. Hình nón này có thể ở dạng 2D hoặc 3D, tùy theo từng tựa game. Luận văn tốt nghiệp - Niên khóa 2020-2021 Trang 4/109
- Xem thêm -

Tài liệu liên quan