1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

125 13 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

Tiêu đề Thiết Kế Mô Hình Tri Giác Và Nhận Thức Cho Các NPCs Trong Stealth Game
Tác giả Phạm Phước Hoài
Người hướng dẫn ThS. Vương Bỏ Thịnh, ThS. Băng Ngọc Bảo Tõm
Trường học Đại học Bách Khoa
Chuyên ngành Khoa học máy tính
Thể loại luận văn tốt nghiệp đại học
Năm xuất bản 2021
Thành phố TPHCM
Định dạng
Số trang 125
Dung lượng 2,85 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ữngNPC cụ thể là thị giác và thính giác để chúng có thể nhận biết được thế giớ

Trang 1

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)

Trang 2

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)

Trang 3

KHOA: KH & KT Máy tính PJK烏O"X影"NW一P"èP"V渦V"PIJK烏R

Trang 4

- Ukpj"xk‒p"8«"v·o"jk吋w"các game liên quan

- V·o"jk吋w"x "8隠"zw医v"o»"j·pj"vtk"ik e"x "pj壱p"vj泳e"ejq"icog

Trang 5

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

Họ và tên SV: Phan Tấn Quốc

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:

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.

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?

Trang 6

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àiliệ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ìnhbà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

Trang 7

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ônbê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 emtrong 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ữngngườ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êncứu của em

Trang 8

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ữngcả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úngkhô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à mongmuố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ảosá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ộtNPC 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 ở đâylạ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ữngNPC 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ữngNPC 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ẫntớ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

Trang 9

Mục lục

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 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

Trang 10

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

4 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

5 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

5.2 Mô hình đề xuất cho nhận thức thính giác của NPC 33

5.2.1 Mô hình truyền tín hiệu âm thanh 33

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

Trang 11

5.2.3.d Tổng hợp quá trình hoạt động của mô hình 41

6 Thiết kế mô hình hành vi (behavior) cho NPC 41 6.1 Cây hành vi (Behaviour tree) 41

6.2 Behavior Designer 46

7 Ứ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

7.2 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

7.3 Một số hình ảnh trong game 88

8 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

9 Đánh giá và hướng phát triển 103 9.1 Đánh giá 103

9.2 Hướng phát triển 106

Trang 12

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 (config-uration 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

Trang 13

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 SouthAmp-ton, 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

30 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

Trang 14

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

Trang 15

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

Trang 16

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

Trang 17

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áytí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ó đốivớ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ácnhâ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 độngnà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 trongmộ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 đổichươ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

Trang 18

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ủangườ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ườngcủ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 xemmộ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áitâ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áchoặ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ủacon người trong thực tế

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 đốivớ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ứccủ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ồnphá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ể haykhô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

Trang 19

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 thanhlớ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ảmnhậ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ácnhấ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ạtsang 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ánsao 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ôitrườ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 conngườ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ấtcủ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ínhgiá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ữngthô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ôitrườ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ệcphâ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ảmnhậ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 đó

Trang 20

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 đượcphá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 đồngnhà 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 trongquá 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:

• 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ácmụ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ìnhbà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áttriể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ầmnhì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ùytheo từng tựa game

Trang 21

Hình 1: Hình nón tầm nhìn (Vision cone) (Chaudhari, 2018).

Hình trên minh họa khái niệm hình nón tầm nhìn Ở đây, bắt đầu từ nguồn, tức là mắt nhân vật, hình nón todần, nhưng trở nên kém chính xác hơn theo khoảng cách, thể hiện bằng màu mờ dần của hình nón

Sự hiện thực của hình nón này trên thực tế có thể đơn giản từ việc xét có nhìn thấy hay không đến một mô hìnhthực tế phức tạp hơn, bắt chước thị lực của con người Trong một cách hiện thực đơn giản, chỉ cần kiểm tra xemmột đối tượng có nằm trong hình nón tầm nhìn hay không, bỏ qua yếu tố khoảng cách hoặc tầm nhìn ngoại vi Mộthiện thực phức tạp mô phỏng thị lực của mắt gần thực tế hơn, đó là khi hình nón mở rộng ra khỏi nguồn, trườngnhìn sẽ tăng lên, nhưng cơ hội nhìn thấy những thứ về phía các cạnh của hình nón giảm đi so với những vật ở gầntrung tâm

2.2 Mô phỏng sự lan truyền của âm thanh và thính giác cho NPC

Hiện tại, có hai cách triển khai chính của việc truyền âm thanh và nhận thức âm thanh: Region Sense Manager(RSM) và Finite Element Model Sense Manager (FEMSM) Cả hai cách triển khai đều cung cấp các cơ chế khácnhau để truyền âm thanh và mô phỏng nhận thức thính giác Bên cạnh việc truyền âm thanh, sự biểu diễn của âmthanh cũng được khám phá trong các khái niệm như Sonic Virtuality (SV), trong đó việc nhận biết âm thanh baogồm cả sự biểu diễn của âm thanh nhận được và trạng thái tâm lý và thể chất của người nghe

Trang 22

2.2.1 Region Sense Manager (RSM)

RSM hiện thực việc nhận thức bằng giác quan bằng các vùng hình cầu Việc truyền tín hiệu (ở phương phápnày, có thể là một âm thanh hoặc một mùi hương), xảy ra trong ba giai đoạn riêng biệt

Trong giai đoạn tổng hợp (aggregation phase), phạm vi tiếp cận tối đa của tín hiệu được tính bằng cách sử dụngcường độ tín hiệu ban đầu và sau đó áp dụng một giá trị suy giảm, giá trị này xác định cường độ của âm giảm đibao nhiêu hoặc cường độ của mùi suy yếu đi bao nhiêu theo khoảng cách Tất cả các đối tượng trong phạm vi đóđều có tiềm năng để nhận biết được âm thanh hay mùi hương đó

Hình 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)Trong giai đoạn kiểm tra (testing phase), mọi đối tượng tiềm năng đều được kiểm tra xem đối tượng đó có thểcảm nhận được tín hiệu hay không Các kiểm tra này giảm dần cường độ của tín hiệu, ở những khoảng cách xácđịnh, từ đó tạo ra các vùng khác nhau xung quanh nguồn Hình 2 biểu diễn một NPC đang được kiểm tra (với mộtngưỡng cảm nhận tín hiệu của nó) nằm trong một trong các khu vực mà nó có thể nhận biết tín hiệu Vùng có màuđậm hơn là vùng có cường độ của tín hiệu cao hơn Việc kiểm tra này dựa trên cường độ của tín hiệu ở khu vực

mà NPC đang đứng có cao hơn giá trị ngưỡng của NPC đó hay không Nếu cường độ cao hơn ngưỡng, thì NPC cóthể nhận biết tín hiệu Các kiểm tra khác cũng có thể được thực hiện trong giai đoạn này, có thể xem xét thêm cácchướng ngại vật có thể có giữa nguồn của tín hiệu và NPC hoặc các yếu tố môi trường khác có thể ảnh hưởng đếnviệc truyền tín hiệu Nếu việc kiểm tra thành công đối với một cặp tín hiệu/NPC nhất định, thông tin liên quan đếncặp này sẽ được lưu trữ trong một hàng đợi Thông tin này mô tả về tín hiệu, NPC và khi nào tín hiệu sẽ được nhậnbởi NPC đó Thời gian nhận được tín hiệu của NPC được tính dựa trên thời gian di chuyển từ nguồn tín hiệu đếnmục tiêu, giá trị này sẽ thay đổi đối với các loại tín hiệu khác nhau

Các thông tin được lưu trữ trong hàng đợi sẽ được gửi đi trong giai đoạn thông báo (notification phase) Tronggiai đoạn này, các tín hiệu sẽ được gửi đến các NPC đích dựa trên thời gian đã được tính toán ở trên

Trang 23

2.2.2 Finite Element Model Sense Manager (FEMSM)

Phương pháp FEMSM chia môi trường ảo thành các vùng rời rạc Các vùng này của môi trường được mô tảtrong một đồ thị, với mỗi nút mô tả các thuộc tính truyền tín hiệu của vùng đó và các vùng nào là các vùng lân cận.Điều này cho phép mô phỏng sự lan truyền tín hiệu giữa mỗi vùng rời rạc bằng cách duyệt qua đồ thị

Khi tín hiệu được phát ra, tín hiệu đó bắt đầu ở nút biểu thị vùng không gian, nơi mà nguồn phát đang ở Tínhiệu sau đó được sao chép sang các nút lân cận và cường độ của tín hiệu sẽ suy giảm tương ứng với đặc tính củatừng vùng Tín hiệu sẽ ngừng truyền khi cường độ tín hiệu giảm xuống dưới một giá trị ngưỡng xác định Nếu mộtNPC ở một vùng bất kỳ, nơi tín hiệu có cường độ trên ngưỡng của NPC thì tín hiệu đó được cảm nhận và chuyểnđến NPC Hình 3 biểu thị một đồ thị với các vùng không gian riêng biệt và tín hiệu được phát ra trong vùng A Tínhiệu truyền đến vùng B, nơi nó bị suy giảm theo giá trị suy giảm của vùng đó Tín hiệu truyền đến các vùng lâncận, vùng C, nơi nó bị suy giảm hơn nữa Nó ngừng lan truyền ra ngoài vùng C bởi vì khi đến các khu vực lân cận,

sự suy giảm làm cho tín hiệu không thể được cảm nhận nữa Có một NPC trong vùng C và nếu cường độ tín hiệulớn hơn mức ngưỡng của NPC, thì tín hiệu được cảm nhận bởi NPC đó

Hình 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ônggian, với màu tối thể hiện cường độ cao hơn (Millington & Funge, 2016, trang 776)

Fabio Zambetta (Zambetta, 2007) đã mô tả một mô hình tương tự như FEMSM nhưng xoay quanh việc tạo ra

đồ thị mỗi khi NPC cần nhận thức hay cảm nhận môi trường Đồ thị được tạo ra dựa trên đồ thị của môi trường banđầu, với vị trí của NPC là nút đầu tiên và với các nút lá là các vị trí được tính toán dựa trên khoảng cách tối đa màNPC có thể cảm nhận được tín hiệu

Khi có nhu cầu nhận thức hay cảm nhận về môi trường, việc tìm kiếm trên đồ thị sẽ được thực hiện cho bất kỳtín hiệu nào nằm trong đồ thị nhận thức của NPC Mỗi NPC sẽ có một tập hợp các thuộc tính để mô phỏng các khảnăng nghe khác nhau cho từng NPC

Trang 24

2.2.3 Sonic Virtuality (SV)

Mark Grimshaw và các cộng sự (Grimshaw, M et al, 2015) và sau đó là Tom Garner và các cộng sự (Garner,

T et al, 2016) đã mô tả sự biểu diễn của âm thanh cho các môi trường ảo khác xa cách biểu diễn âm thanh cổ điển.Thay vì mô tả âm thanh dưới dạng sóng, SV mô tả âm thanh vừa là một vật thể vừa là một sự kiện Trong thínhgiác, con người liên hệ âm thanh nghe được với nguồn phát của nó, liên hệ trực tiếp giữa âm thanh với đối tượngphát ra nó, bỏ qua các tính chất vật lý của quá trình truyền âm Định nghĩa này là cơ sở cho SV Trong SV, âm thanhtồn tại trong não và cơ thể của người nghe, với sự nhận thức xuất hiện khi có sự tương tác giữa các kích thích bênngoài với trạng thái tâm lý và khả năng của người nghe

Mô tả âm thanh trong SV có tính đến cả các yếu tố bên trong và bên ngoài, chia các thuộc tính của âm thanhthành hai nhóm riêng biệt Nhóm đầu tiên, biểu diễn bởi các yếu tố vật lý như môi trường, cơ thể và não của ngườinghe, được gọi là exosonus Nhóm thứ hai, được gọi là endosonus, liên quan đến các thuộc tính phi vật chất củatrạng thái tâm lý của NPC, được tạo nên bởi cảm xúc và ký ức Sự mô tả này nhằm mục đích phân loại âm thanh đểphân tích chúng, xét đến tất cả các tính chất endosonus và exosonus Bằng cách xác định loại của âm thanh ngheđược, người nghe có thể dựa vào đó mà có những hành động phù hợp

2.3 Mô tả trạng thái và việc đưa ra quyết định cho NPC bằng Finite State Machine (FSM)

FSM là một mô hình tính toán dựa trên một giả định là một cỗ máy được tạo ra từ một hoặc nhiều trạng thái.Chỉ một trạng thái duy nhất có thể hoạt động cùng một lúc, vì vậy cỗ máy phải chuyển từ trạng thái này sang trạngthái khác để thực hiện các hành động khác nhau

FSM có thể được sử dụng để định nghĩa các hành vi của NPC nhất định, chẳng hạn như tấn công, né tránh hoặcchạy FSM đã được sử dụng để điều khiển các hành vi của các hồn ma (ghosts) trong game Pac Man Chúng nó chỉ

có thể có một chế độ hoạt động tại một thời điểm, đó là săn, bị đuổi, chết hoặc chờ được hồi sinh Sau này, các tròchơi hiện đại hơn, fuzzy logic đã được đưa vào một nền tảng vững chắc là FSM để làm cho người chơi không thểđoán trước hành động của các nhân vật này và làm cho các nhân vật ít "robot" và cứng nhắc hơn

Ví dụ như trong các game hành động lén lút (stealth) như Commandos, Assassin’s Creed hoặc loạt game MetalGear nổi tiếng, bất cứ khi nào kẻ thù hay NPC phát hiện ra người chơi, NPC sẽ chuyển từ trạng thái nhàn rỗi sangtrạng thái cảnh báo Sau một vài giây, nếu người chơi rời khỏi tầm nhìn của NPC, thì NPC sẽ bắt đầu chủ độngtìm kiếm anh ta bằng cách chuyển sang trạng thái hung hăng Sự ngẫu nhiên ở đây thể hiện ở các đường đi của cácNPC khi họ đi lang thang xung quanh hoặc những nơi mà các NPC này sẽ tìm kiếm người chơi khi người chơi bịphát hiện hoặc quyết định sử dụng một loại vũ khí bất kỳ chứ không phải vũ khí khác

Có một dạng hiệu quả hơn của FSM là Hierarchical Finite State Machine (HFSM) Sự khác biệt duy nhất giữaHFSM và FSM là trong HFSM có một hệ thống phân cấp các trạng thái hay lựa chọn, nghĩa là các trạng thái được

Trang 25

xem xét ở mức cao trước khi đi vào các trạng thái ở mức thấp hơn.

Ví dụ thay vì các hành vi Tấn công (attack), Chạy (run) và Nhàn rỗi (idle), chúng ta sẽ có một hệ thống phâncấp bắt đầu với hai trạng thái là Tìm thấy kẻ địch (EnemyFound) và Không tìm thấy kẻ địch (EnemyNotFound).Tấn công và Chạy sẽ là con của trạng thái Tìm thấy kẻ địch, trong khi Nhàn rỗi sẽ là con của trạng thái Không tìmthấy kẻ địch Vì chúng ta bắt đầu từ cấp trên cùng mỗi khi xét, nên chúng ta có thể loại bỏ quá trình chuyển đổisang Nhàn rỗi từ trạng thái Tấn công và Chạy, và chuyển quá trình chuyển đổi này lên trạng thái cha (chỉ viết mộtlần) Điều này cho phép tổ chức tốt hơn các quá trình chuyển đổi, loại bỏ nhiều code được viết lại, v.v

Hình 4: Một ví dụ về FSM (Bevilacqua, 2013)

2.4 Những thiếu sót của các nghiên cứu trên

Có một vấn đề đã nảy sinh khi sử dụng hình nón tầm nhìn (vision cone) để mô phỏng vùng tầm nhìn của NPC.Khi người chơi ngay bên cạnh NPC người chơi vẫn không bị nhìn thấy, trong khi người chơi cách xa NPC lại bịphát hiện như được minh họa ở hình 5

Còn đối với RSM và FEMSM thì cả RSM và FEMSM đều có thiếu sót RSM ít đòi hỏi hơn khi nói về tốc độ xử

lý, nhưng nó không cung cấp cơ chế để tính toán sự tương tác của âm thanh với các chướng ngại vật Trong RSM,

âm thanh vẫn có thể cảm nhận được qua các bức tường và các vật thể khác mà trong thực tế các vật thể này có thểcản không cho âm thanh đi qua Điều này có thể được giải quyết bằng cách sử dụng một tia (raytrace) để phát hiệnchướng ngại vật giữa nguồn và đích và sau đó áp dụng sự suy giảm độ lớn của âm thanh theo số lượng chướng ngạivật và độ cản âm của chúng

Ngoài ra, các phương pháp tiếp cận RSM và FEMSM đều không xem xét đến tâm lý của con người tại thờiđiểm đó, cũng như những hạn chế về khả năng nghe của người đó Trong các phương pháp này, để xác định xemNPC có nghe thấy một âm thanh cụ thể hay không, cường độ của nó được kiểm tra với ngưỡng của NPC Tuy nhiên,

Trang 26

Hình 5: Vấn đề ở vision cone (McIntosh, 2015).

âm thanh có thể được đặc trưng bởi nhiều thuộc tính (cường độ, tần số, v.v .), vì vậy việc kiểm tra dựa trên cường

độ khá đơn giản và, do đó, mô phỏng không thực tế về nhận thức thính giác của con người

SV, so với RSM và FEMSM, mặc dù với một mục đích khác, nhưng biểu diễn âm thanh theo hướng thực tếhơn, có tính đến trạng thái tâm lý của người nghe Nhưng cách SV biểu diễn âm thanh đã nằm ngoài tầm vực củaluận văn này, vì nó nhằm mục đích giải thích âm thanh hơn là nhận thức âm thanh, đồng thời có nhu cầu khá cao

về sức mạnh xử lý Sự mô tả của SV về âm thanh siết chặt các mối quan hệ giữa các khía cạnh môi trường, thể chất

và tâm lý Việc đơn giản hóa sự mô tả này có thể đóng vai trò là nguồn cảm hứng cho việc mô tả âm thanh trongluận văn này trong tương lai, giúp em chuẩn bị tốt hơn để có thể đưa ra một mô hình nhận thức thực tế hơn.Cuối cùng, đối với FSM nếu số trạng thái của NPC lớn thì việc quản lý các trạng thái và quá trình chuyển đổigiữa các trạng thái đó trở nên rất phức tạp và cồng kềnh và kết quả là tạo nên một "spaghetti" FSM như được minhhọa ở hình dưới

Trang 27

sẽ phải cập nhật ngữ cảnh để chuyển trạng thái trên tất cả các code của các trạng thái khác Ví dụ nếu chúng ta sửađổi code của trạng thái Nhàn rỗi để nhân vật thở gấp sau khi chạy khỏi kẻ thù, thì nếu nó không được gọi từ trạngthái Chạy thì nó sẽ không hợp lý.

3 Mô hình tìm đường đi (path-finding) cho NPC

Vì trong luận văn này, em sẽ tập trung nghiên cứu và thiết kế mô hình nhận thức, thị giác và thính giác choNPC, nên mô hình tìm đường đi này em sẽ sử dụng hệ thống dẫn đường (navigation system) dựa trên NavMeshđược xây dựng sẵn trong Unity Hệ thống này sẽ giúp cho một nhân vật AI hay NPC có thể tìm đường đi trong mànchơi đồng thời tránh các vật cản và các nhân vật khác

3.1 NavMesh và tìm đường đi ngắn nhất trong Unity

Hệ thống tìm đường trong Unity cần một cấu trúc dữ liệu riêng để biểu diễn các khu vực mà các nhân vật AI cóthể đứng và di chuyển được Trong Unity, các nhân vật AI được mô tả như một hình trụ Khu vực có thể di chuyểnđược xây dựng tự động từ hình dạng của môi trường trong game bằng cách thử nghiệm các vị trí mà nhân vật AI

có thể đứng Sau đó, các vị trí này được kết nối với một bề mặt nằm trên bề mặt của môi trường Bề mặt này đượcgọi là Navigation Mesh (viết tắt là NavMesh) NavMesh lưu trữ bề mặt này dưới dạng các đa giác lồi Đa giác lồi

là một biểu diễn hiệu quả, vì chúng ta biết rằng không có sự cản trở nào giữa hai điểm bất kỳ bên trong một đa giáclồi Ngoài việc lưu trữ các biên của đa giác, Unity còn lưu trữ thông tin về đa giác nào là hàng xóm của nhau Điềunày cho phép biểu diễn toàn bộ khu vực có thể di chuyển được bởi các nhân vật AI

Hình 7: NavMesh (lớp màu xanh nằm trên bề mặt của bản đồ) (Unity Technologies, 2018)

Để tìm đường đi giữa hai vị trí trong màn chơi, trước tiên Unity sẽ chuyển đổi vị trí xuất phát và vị trí đíchthành đa giác gần nhất của chúng Sau đó, Unity sẽ bắt đầu tìm kiếm từ vị trí bắt đầu, thăm tất cả các đa giác hàng

Trang 28

xóm cho đến khi đến được đa giác đích Trong quá trình này Unity cũng lưu lại các đa giác đã thăm cho phép chúng

ta tìm được chuỗi các đa giác từ điểm bắt đầu đến điểm đích Thuật toán tìm chuỗi đa giác mà Unity sử dụng là A∗

Vì A∗hoạt động trên một đồ thị gồm nhiều nốt, nhưng NavMesh trong Unity lại được biểu diễn bởi một lưới đagiác, cho nên để A∗hoạt động được trên NavMesh thì việc Unity cần làm là với mỗi đa giác, Unity sẽ chọn một vịtrí trong đa giác đó để làm vị trí của nốt trong đồ thị Unity không đề cập về cách chọn vị trí này nhưng cách thôngdụng nhất là chọn tâm của đa giác

Giải thuật A*

A∗là một giải thuật tìm kiếm có thông tin (informed-search) và còn gọi là tìm kiếm ưu tiên tốt nhất (best-firstsearch) A∗hoạt động trên đồ thị có trọng số: bắt đầu từ một nốt bắt đầu cụ thể trên đồ thị, nó sẽ tìm đường dẫn đếnnút mục tiêu đã cho với chi phí nhỏ nhất (quãng đường di chuyển ít nhất, thời gian ngắn nhất, v.v.) Nó thực hiệnđiều này bằng cách xây một cây của các đường đi bắt đầu từ nút xuất phát và mở rộng các đường đi đó mỗi lần mộtcạnh cho đến khi điều kiện kết thúc của nó được thỏa mãn

Tại mỗi vòng lặp chính, A∗cần xác định đường đi nào cần mở rộng Việc làm này dựa trên chi phí của đường

đi và ước tính chi phí cần thiết để mở rộng đường đi cho đến khi chạm mục tiêu Cụ thể, A∗chọn đường đi tối thiểuphương trình:

f(n) = g(n) + h(n)Trong đó, n là nốt tiếp theo trên đường đi, g(n) là chi phí của đường đi từ nốt bắt đầu đến nốt n và h(n) là mộthàm heuristic ước tính chi phí của đường đi tốt nhất từ nốt n đến nút đích A∗kết thúc khi đường đi mà nó chọn

để mở rộng là đường đi từ nốt bắt đầu đến nốt mục tiêu hoặc nếu không có đường đi nào đủ điều kiện để được

mở rộng Việc lựa chọn hàm heuristic phụ thuộc vào vấn đề cần giải quyết Nếu hàm heuristic là chấp nhận được(admissible), nghĩa là nó không bao giờ đánh giá quá cao chi phí thực tế để đến được nốt mục tiêu, A∗sẽ đảm bảotrả về một đường đi có ít chi phí nhất từ nốt đầu đến nốt mục tiêu

Các hiện thực thường thấy của A∗sử dụng hàng đợi ưu tiên (priority queue) để thực hiện việc lựa chọn các nốt

có chi phí (ước tính) tối thiểu để mở rộng Hàng đợi ưu tiên này được gọi là open set hoặc fringe Tại mỗi bước củagiải thuật, nốt có giá trị f(x) thấp nhất bị xóa khỏi hàng đợi, các giá trị f và g của các nốt lân cận của nó cũng đượccập nhật tương ứng và các nốt lân cận này được thêm vào hàng đợi Giải thuật tiếp tục cho đến khi một nốt bị loại

bỏ (nốt có giá trị f thấp nhất trong số tất cả các nốt trong hàng đợi) là nốt mục tiêu Giá trị f của nốt mục tiêu nàycũng là chi phí của đường đi ngắn nhất, vì h tại nốt mục tiêu là 0 khi hàm heuristic là chấp nhận được (admissible).Giải thuật được mô tả đến đây chỉ cho chúng ta độ dài của đường đi ngắn nhất Để tìm ra trình tự của các bước

để đến được nốt mục tiêu, giải thuật có thể dễ dàng sửa đổi để mỗi nốt trên đường đi lưu thông tin về các nốt trước(predecessor) của nó Sau khi giải thuật được chạy, nốt kết thúc sẽ trỏ đến nốt phía trước của nó và cứ như thế, chođến khi nốt trước của một nốt là nốt bắt đầu

Ví dụ, khi tìm kiếm tuyến đường ngắn nhất trên bản đồ, h(x) có thể đại diện cho khoảng cách đường thẳng(straight-line distance) đến mục tiêu, vì đó là khoảng cách nhỏ nhất có thể có giữa hai điểm bất kỳ Đối với bản đồdạng lưới (grid) việc sử dụng khoảng cách Manhattan hoặc khoảng cách ô vuông trở nên tốt hơn tùy thuộc vào các

Trang 29

bước di chuyển có thể có (4 hướng hoặc 8 hướng).

Nếu hàm heuristic h thỏa mãn thêm điều kiện h(x) ≤ d(x,y) + h(y) với mọi cạnh (x, y) của đồ thị (trong đó d

là độ dài của cạnh đó) thì h được gọi là nhất quán (consistent) Với một heuristic nhất quán, A∗sẽ đảm bảo tìm rađường đi tối ưu mà không cần xử lý bất kỳ nốt nào nhiều hơn một lần

Sau khi đã tìm được chuỗi các đa giác và các điểm đại diện cho chúng từ vị trí đầu đến vị trí mục tiêu, các nhânvật AI sẽ không đi theo các điểm này mà Unity sẽ "làm gọn" lại đường đi đó để đạt được sự di chuyển tự nhiên hơn,không giống như robot Chuỗi các đa giác mô tả đường đi từ đa giác đầu đến đa giác đích được gọi là hành lang(corridor) Nhân vật AI sẽ đến đích bằng cách luôn hướng về phía góc có thể nhìn thấy tiếp theo của hành lang nhưđược mô tả ở hình dưới

Hình 8: Đường đi của nhân vật AI (Unity Technologies, 2018)

Sau khi tìm hiểu, em đã phát hiện ra một giải thuật làm gọn đường đi thông dụng khi làm việc với navigationmesh và cho ra kết quả tương tự như những gì mà Unity đã mô tả, giải thuật có tên là "String Pulling Algorithm".Giải thuật này giúp chúng ta tìm được đường đi ngắn nhất (danh sách các điểm cần phải đi qua) từ danh sách cáctam giác đã tìm được khi áp dụng giải thuật A∗(các đa giác lồi đều có thể được xây dựng từ các tam giác) Danhsách các tam giác này còn được gọi là "corridor"

Hình 9: String Pulling Algorithm (gamedev, 2018)

Trang 30

Ở hình chữ thập trên, nếu chúng ta dùng một sợi dây bao xung quanh chữ thập này và kéo căng nó thì lúc nàysợi dây sẽ tạo ra đường đi ngắn nhất và tự nhiên nhất khi đi xung quanh chữ thập này Hình bên dưới giúp chúng tahiểu rõ hơn về giải thuật này.

Hình 10: Các bước thực hiện của String Pulling Algorithm (gamedev, 2018)

Chúng ta có thể thấy ở bước A, giải thuật bắt đầu bằng việc tạo ra một "funnel" với 1 đỉnh là vị trí bắt đầu trênđường đi và 2 cạnh trái và phải nối từ đỉnh đến 2 đầu mút cạnh chung của tam giác bắt đầu và tam giác liền kề nó,cạnh chung này được gọi là "portal" Các bước từ B đến D là sự di chuyển của 2 cạnh funnel men theo rìa (border)của corridor đến các portal tiếp theo Chú ý rằng sự di chuyển này luôn làm cho 2 cạnh của funnel gần nhau hơn

Ở bước E chúng ta có một vấn đề là nếu cạnh màu cam (cạnh trái) di chuyển về portal tiếp theo thì nó sẽ làmcho 2 cạnh funnel cách xa nhau hơn so với bước trước đó Trong trường hợp này chúng ta sẽ không di chuyển cạnhmàu cam nữa mà thay vào đó di chuyển cạnh màu xanh ở bước F

Thật không may, lúc này chúng ta gặp một vấn đề nữa đó là nếu di chuyển cạnh màu xanh đến portal tiếp theothì sẽ làm cho 2 cạnh funnel chéo nhau và lúc này chúng ta phát hiện có một góc (corner) trong corridor Lúc nàychúng ta cần thêm một điểm vào đường đi cuối cùng của mình đó là đầu mút của cạnh màu cam Ở bước G, chúng

ta dời vị trí của funnel sao cho đỉnh của nó trùng với vị trí mà ta vừa thêm vào đường đi và khởi tạo lại 2 cạnh như

Trang 31

bước đầu Giải thuật cứ tiếp tục cho đến khi 1 cạnh bất kỳ chạm đến vị trí đích.

Để tóm tắt lại, giải thuật gồm có các bước sau:

• Di chuyển 2 cạnh funnel sao cho 2 cạnh càng gần nhau hơn

• Nếu di chuyển 1 cạnh mà làm cho 2 cạnh xa nhau thì không di chuyển cạnh đó nữa

• Nếu di chuyển 1 cạnh mà làm cho 2 cạnh chéo nhau thì cần thêm đầu mút của cạnh còn lại vào đường đi cầntìm và khởi tạo lại funnel ở vị trí vừa thêm

Sau khi chạy giải thuật thì chúng ta đã thành công tìm được đường đi ngắn nhất từ danh sách các đa giác đãtìm được Và bây giờ chỉ cần cho nhân vật AI của chúng ta di chuyển theo đường đi vừa mới tìm được thì việc dichuyển đã hoàn tất

3.2 Né tránh vật cản và RVO (Reciprocal Velocity Obstacles)

Trên đường đi của nhân vật AI, Unity sẽ lấy vị trí cần đến (corner) tiếp theo và dựa trên đó tìm ra hướng mongmuốn và tốc độ cần thiết để đến đó Việc sử dụng vận tốc mong muốn (desired velocity) để di chuyển các nhân vật

AI có thể dẫn đến va chạm giữa các nhân vật với nhau Tính năng tránh chướng ngại vật sẽ chọn một vận tốc mớisao cho cân bằng giữa việc di chuyển theo hướng mong muốn và ngăn ngừa việc va chạm trong tương lai với cácnhân vật khác Unity sử dụng Reciprocal Velocity Obstacles (RVO) (van den Berg, J et al, 2008) để dự đoán vàngăn chặn va chạm Để hiểu về RVO đầu tiên chúng ta cần tìm hiểu về Velocity Obstacles

Velocity Obstacles (VO)

Vật cản vận tốc (Velocity Obstacles) của vật B đối với một nhân vật A là một tập hợp bao gồm tất cả các vậntốc của nhân vật A mà sẽ dẫn đến va chạm tại một thời điểm nào đó với vật B đang chuyển động với vận tốc nào

đó Với định nghĩa đó, mọi nhân vật AI trong môi trường sẽ có thông tin về những vận tốc sẽ dẫn đến va chạm vớicác nhân vật/chướng ngại vật khác Bằng cách này, nhân vật AI có thể tránh vật cản thành công và đi đến được mụctiêu

Xét một ví dụ đơn giản: có hai nhân vật AI A và B là hai điểm trong không gian với vị trí và vec tơ vận tốc nhưhình

Trang 32

Hình 11: Hai nhân vật AI, A và B đang di chuyển.

Trong ví dụ này, nếu A cứ tiếp tục di chuyển với vận tốc đó, A sẽ va chạm với B Nghĩa là, vật cản vận tốc của

B đối với A đúng bằng vận tốc của A hay: VOA(vB) = {vA} Và với bất kỳ vận tốc nào khác ngoài VO, A sẽ không

va chạm với B

Tiếp theo xét một ví dụ phức tạp hơn một chút, ở đây nhân vật AI B có dạng là một hình tròn Trong trườnghợp này, vật cản vận tốc sẽ bao gồm một dãy các vận tốc như hình dưới

Hình 12: Nhân vật A đang di chuyển và nhân vật B hình tròn

Dãy các vận tốc này là các giá trị sẽ dẫn đến sự cắt nhau giữa các vec tơ vận tốc và nhân vật B (hình tròn) và ởđây vật cản vận tốc của B đối với A sẽ là một tập hợp các vận tốc sẽ dẫn đến va chạm giữa A và B

Trước khi trình bày mô hình toán học của vật cản vận tốc cho các trường hợp thực tế (các nhân vật có hình dạngtùy ý), chúng ta nên tìm hiểu về Minkowski Sum và ý nghĩa của nó trong điều hướng và lập kế hoạch đường đi

Minskowki Sum: Trong hình học, tổng Minkowski (còn được gọi là sự giãn nở) của hai tập hợp vec tơ vị trí

(position vector) A và B trong không gian Euclide được xây dựng bằng cách cộng mỗi vec tơ trong A vào mỗi vec

tơ trong B

A⊕ B = {a + b|a ∈ A, b ∈ B}

Trang 33

Lấy ví dụ như hình dưới: hai tập hợp vec tơ vị trí Q1 và Q2.

Hình 13: Một ví dụ về Minskowski Sum (Bonagiri, 2018)

Ở đây, chúng ta lấy tổng vec tơ của tất cả các điểm trong hình vuông màu xanh lá cây với tất cả các điểm tronghình vuông màu đỏ Kết quả sẽ là hình vuông màu xanh lam Điều này cũng tương tự như việc trượt góc dưới bêntrái của hình vuông màu xanh lá cây dọc theo các cạnh của hình vuông màu đỏ

Trong các tình huống thực tế, hình dạng vật lý của các tác nhân không phải là một điểm Nhưng đối với việcthiết kế mô hình toán học, nên coi các nhân vật là các điểm, do đó sẽ đơn giản hơn để có được một mô hình tổngquát Lúc này chúng ta đã giảm thiểu bài toán tìm đường đi cho một nhân vật trong môi trường làm việc của nóxuống thành bài toán tìm đường đi cho một điểm trong môi trường cấu hình (configuration space) như được mô tảtrong hình dưới

Hình 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 (configurationspace) của cùng nhân vật đó khi xem nhân vật đó là một điểm (Mount & Eastman, 2018, trang 3)

Để có được môi trường cấu hình của một nhân vật ta phải đi tìm các vật cản cấu hình (configuration obstaclehoặc C-obstacle) ứng với các vật cản trong môi trường làm việc sao cho nếu nhân vật không giao với một vật cảnbất kỳ trong môi trường làm việc thì điểm mà sau khi đã biến đổi nhân vật đó thành điểm cũng sẽ không giao vớivật cản cấu hình tương ứng trong môi trường cấu hình Để đơn giản, chúng ta hãy giả sử rằng điểm tham chiếu chonhân vật R của chúng ta là tại gốc tọa độ Cho R(p) biểu thị sự dịch chuyển (translate) của nhân vật sao cho điểmtham chiếu của nó nằm tại điểm p Cho một vật cản P, C-obstacle tương ứng với nó được xác định là tập hợp các vị

Trang 34

trí của R giao với P:

C(P) = {p|R(p) ∩ P 6= /0}

Hình 15: C-obstacle của vật cản P (Mount & Eastman, 2018, trang 4)

Để tìm được C-obstacle của một vật cản P trong môi trường làm việc của một nhân vật R, ta sẽ áp dụngMinskowski Sum giữa tập vec tơ vị trí của P và tập đối của tập vec tơ vị trí của R (xem hình 14), tức là:

C(P) = P ⊕ (−R)

với −R = {−r|r ∈ R}

Chứng minh:

Ta thấy rằng q ∈ C(P) khi và chỉ khi R(q) giao với P, điều này đúng khi và chỉ khi tồn tại một điểm r ∈ R và

p∈ P sao cho p = r + q (xem hình 14 bên trái), điều này tương đương với q = p + (−r), mà −r ∈ −R và p ∈ P nên

q∈ P ⊕ (−R) (xem hình 14 bên phải) Đến đây ta có q ∈ C(P) khi và chỉ khi q ∈ P ⊕ (−R), vì vậy C(P) = P ⊕ (−R)

Hình 16: C-obstacle và Minskowski Sum (Mount & Eastman, 2018, trang 5)

Trang 35

Tiếp theo, chúng ta có một cách biểu diễn quỹ đạo của một nhân vật bằng toán học nếu biết trước vị trí p vàvec tơ vận tốc v của nó:

λ(p, v) = {p + tv,t > 0}

Ở đây, quỹ đạo là tập hợp các vị trí của nhân vật theo thời gian trên đường đi của nó

Và cuối cùng chúng ta có một định nghĩa chính thức của vật cản vận tốc của vật cản B so với nhân vật A nhưsau:

V OAB(vB) = {vA|λ (pA, vA− vB) ∩ B ⊕ (−A) 6= /0}

Ở đây, nếu vA∈ VOA

B(vB), A và B sẽ va chạm tại một thời điểm nào đó trong tương lai Nếu vAnằm ngoài vật cảnvận tốc của B, cả hai vật sẽ không bao giờ va chạm Nếu vAnằm trên ranh giới của vật cản vận tốc, nó sẽ chạm(touch) với B vào một lúc nào đó trong tương lai Vật cản vận tốc là một hình nón như được mô tả ở hình dưới

Hình 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)

Từ định nghĩa đó, ta có những tính chất của vật cản vận tốc như sau:

∈ VOA(vB) nếu vAnằm trong nửa mặt phẳng bên trái của VOA(vB) và vA

→/

∈ VOA(vB) nếu vA

nằm trong nửa mặt phẳng bên phải của VOA

B(vB) như được mô tả như hình 18 Dấu ∈ của các tính chất vừa

kể có thể được tự do thay thế bằng /∈,−→∈ ,/ ←∈ −/

Trang 36

Hình 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).

Từ đó ta có tính chất thứ ba (−→∈ có thể được tự do thay thế bằng/ ←∈ ): Tính lồi (Convexity)−/

vA−→/

cả thông tin về vị trí và vận tốc của các nhân vật khác do đó nhân vật này có thể di chuyển trong môi trường màkhông có bất kỳ va chạm nào Hình 19 mô tả một mô phỏng hai nhân vật AI có áp dụng vật cản vận tốc

Hình 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)

Trang 37

Tới đây, chúng ta đã có thể di chuyển và tránh va chạm Nhưng quỹ đạo của các nhân vật lại không được trơntru Dường như có một sự dao động khi các nhân vật dần tiếp cận nhau Mặc dù tránh được va chạm nhưng sựchuyển động không được tự nhiên Đây là một trong những hạn chế của vật cản vận tốc Hãy xem xét một nhân vật

đi tới mục tiêu của nó với một vận tốc cụ thể Khi nhân vật đó nhận ra vận tốc của nó nằm trong vật cản vận tốc tạimột bước thời gian nhất định, nó sẽ chọn một vận tốc bên ngoài vật cản vận tốc Bây giờ khi nó đã có vận tốc màkhông có sự va chạm với chướng ngại vật, trong bước thời gian tiếp theo, nó sẽ chọn một vận tốc mà sẽ đưa nó đếnmục tiêu và vận tốc này lại nằm trong vận cản vận tốc lúc trước và nó lại chọn một vận tốc nằm ngoài vận cản vậntốc đó và quá trình này tiếp tục xảy ra

Để giải quyết vấn đề đó của vật cản vận tốc van den Berg và các cộng sự của mình đã nghiên cứu ra phươngpháp sử dụng Vật cản vận tốc tương hỗ (Reciprocal Velocity Obstacle hay RVO) RVO được định nghĩa là trungbình vận tốc hiện tại của nhân vật và một vận tốc nằm bên trong VO (velocity obstacle) của chướng ngại vật Nếunhân vật chọn lại vận tốc trước đó, thì vận tốc này cũng sẽ rơi vào RVO và nhân vật sẽ không chọn vận tốc đó.Bằng cách này, sự dao động trong quỹ đạo sẽ không xảy ra nữa Ta có định nghĩa của RVO như sau:

RV OAB(vB, vA) = {v′A|2v′A− vA∈ VOAB(vB)}

Vật cản vận tốc tương hỗ RVOA

B(vB, vA) của nhân vật B đối với nhân vật A chứa tất cả các vận tốc cho nhân vật A

mà những vận tốc này là trung bình của vận tốc hiện tại vAvà vận tốc bên trong vật cản vận tốc VOA(vB) của tácnhân B Về mặt hình học nó có thể được biểu diễn bởi vật cản vận tốc VOA

B(vB) được dịch chuyển sao cho đỉnh của

nó nằm ởvA+v B

2 (xem hình 20)

Hình 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)

Trang 38

Từ định nghĩa đó, RVO sẽ đảm bảo một số điều dưới đây:

• Di chuyển không có va chạm (Collision-Free Navigation): Gọi vAlà vận tốc hiện tại của nhân vật A và gọi

vBlà vận tốc hiện tại của nhân vật B và cả A và B chọn các vận tốc mới (v′

Avà v′

B) bên ngoài vật cản vậntốc tương hỗ của nhau Định lý sau chứng minh rằng điều này sẽ làm hai nhân vật không va chạm với nhau,miễn là cả hai nhân vật chọn cùng phía để vượt qua nhau (dấu−→∈ có thể được tự do thay thế bằng/ ←∈ ):−/

v′A−→/

∈ RVOAB(vB, vA) ∧ v′B−→∈ RVO/ BA(vA, vB) ⇒ v′A−→∈ VO/ AB(v′B) ∧ v′B−→∈ VO/ BA(v′A)

Chứng minh:

v′A−→/

∈ VOAB(vB) ∧ vA

→/

A, vA+ u là vận tốc gần nhất với vAnằm ngoài vật cản vận tốc tương hỗ của B, thì đối với nhân vật B, vB− u

là vận tốc gần vBnhất nằm ngoài vật cản vận tốc tương hỗ của A (2) Nếu đối với nhân vật A, vận tốc gầnnhất này ở bên phải (hoặc bên trái) của vật cản vận tốc tương hỗ của B, thì vận tốc gần nhất của tác nhân B

là ở bên phải (hoặc bên trái) vật cản vận tốc tương hỗ của A Những dữ kiện này đều tuân theo bổ đề sau (/∈

có thể được tự do thay thế bằng−→∈ ,/ ←∈ hoặc ∈):−/

vA+ u /∈ RVOA

B(vB, vA) ⇔ vB− u /∈ RVOB

A(vA, vB)Chứng minh:

vA+ u /∈ RVOAB(vB, vA)

Từ định nghĩa của RVO:

⇔ 2(vA+ u) − vA∈ VO/ AB(vB)

Trang 39

Từ tính bất biến khi dịch chuyển và tính đối xứng của VO:

Điều này có nghĩa là vận tốc cũ vAcủa A sẽ nằm trong vật cản vận tốc tương hỗ mới của B, với vận tốc mới

vA+ u và vB− u tương ứng cho nhân vật A và B Điều tương tự cũng đúng cho nhân vật B Do đó, sau khichọn vận tốc mới, vận tốc cũ không còn hợp lệ nữa và sẽ không được chọn (ngược lại với khi vật cản vận tốcđược sử dụng) Bằng cách chọn vận tốc gần nhất ngoài vật cản vận tốc tương hỗ đối với cả A và B, các vậtcản vận tốc tương hỗ vẫn nằm ở vị trí cũ Do đó, các vận tốc vA+ u và vB− u vẫn là vận tốc gần nhất trong

số tất cả các vận tốc hợp lệ Kết quả là không có sự dao động nào xảy ra

Hình 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)

Trang 40

4 Thiết kế mô hình nhận thức thị giác (visual perception) cho NPC

4.1 Nhận thức thị giác ở con người

Thị giác của con người là một chức năng quan trọng và không thể thiếu Nó giúp chúng ta nhận biết được sựvật, sự việc xung quanh Nói về thị giác của người sẽ có rất nhiều khía cạnh khác nhau, nhưng ở đây sẽ chỉ nói đếnnhững đặc tính có thể sử dụng được trong mô hình

Điều tất nhiên mà ai cũng biết đó là con người có 2 mắt, nhờ vào 2 mắt này mà con người có thể nhìn đượctrong phạm vi 200◦ Mắt tập trung ánh sáng vào mặt sau của mắt, sử dụng các tế bào hình que và tế bào hình nón

để phát hiện ánh sáng và màu sắc Thị lực lớn nhất sẽ nằm ở vùng chính giữa phía trước và giảm dần khi cách rời

xa trung tâm Các tế bào hình nón tập trung dày đặc trong trung tâm võng mạc, nó chịu trách nhiệm phân biệt màusắc tạo nên tầm nhìn trung tâm (central vision) Ngược lại các tế bào hình que cho phép nhìn sự vật trong điều kiệnthiếu ánh sáng và nhận biết chuyển động tạo nên tầm nhìn ngoại vi (peripheral vision)

• Central Vision: là phần quan trọng nhất ở thị giác của con người Nó cho phép con người có thể nhìn thấyhình dạng, màu sắc, và các chi tiết một cách rõ ràng và sắc nét

• Peripheral Vision: là thị giác giúp con người có khả năng phát hiện chuyển động bên ngoài tầm nhìn trựctiếp Nó chịu trách nhiệm việc phát hiện sự vật ở điều kiện ánh sáng yếu, hoặc ban đêm nhưng lại khôngnhạy cảm với màu sắc - ngược lại với tầm nhìn trực tiếp

Central Vision sẽ được tập trung mô phỏng trong mô hình và Peripheral Vision sẽ không được mô phỏng Vì

để giảm tính phức tạp của mô hình và giảm sự nhập nhằng trong việc phát hiện người chơi của NPC Tức là nếu

mô phỏng Peripheral Vision thì NPC sẽ có thể phát hiện người chơi bằng những chuyển động nhỏ nhất kể cả khiNPC không thực sự nhìn thấy người chơi, điều này gây ra các trường hợp người chơi bị phát hiện nhưng không rõ

lý do, tạo cảm giác thiếu công bằng cho người chơi Ngoài ra, giác quan thứ sáu (khả năng cảm nhận có người saulưng) cũng sẽ được mô phỏng để khắc phục hạn chế như đã đề cập ở phần 2.4

4.2 Mô hình đề xuất cho nhận thức thị giác ở con người

Mô hình nhận thức thị giác được đề xuất nhằm giúp NPC có thể nhìn thấy các đối tượng Mô hình sẽ định nghĩacách làm thế nào để một NPC có thể nhận thấy được vật thể và người chơi (player), cũng như cải thiện những thiếusót từ các mô hình truyền thống

Ngày đăng: 12/05/2022, 12:34

HÌNH ẢNH LIÊN QUAN

THIẾT KẾ MÔ HÌNH TRI GIÁC VÀ NHẬN THỨC CHO CÁC NPCS TRONG STEALTH GAME - Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game
THIẾT KẾ MÔ HÌNH TRI GIÁC VÀ NHẬN THỨC CHO CÁC NPCS TRONG STEALTH GAME (Trang 1)
THIẾT KẾ MÔ HÌNH TRI GIÁC VÀ NHẬN THỨC CHO CÁC NPCS TRONG STEALTH GAME - Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game
THIẾT KẾ MÔ HÌNH TRI GIÁC VÀ NHẬN THỨC CHO CÁC NPCS TRONG STEALTH GAME (Trang 2)
Hình 1: Hình nón tầm nhìn (Vision cone) (Chaudhari, 2018). - Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game
Hình 1 Hình nón tầm nhìn (Vision cone) (Chaudhari, 2018) (Trang 21)
Hình 16: C-obstacle và Minskowski Sum (Mount & Eastman, 2018, trang 5). - Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game
Hình 16 C-obstacle và Minskowski Sum (Mount & Eastman, 2018, trang 5) (Trang 34)
Hình 39: Một ví dụ về nút chọn (Selector)(Simpson, 2014). - Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game
Hình 39 Một ví dụ về nút chọn (Selector)(Simpson, 2014) (Trang 61)
Hình 40: Cửa sổ editor của Behavior Designer (Opsive, n.d). - Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game
Hình 40 Cửa sổ editor của Behavior Designer (Opsive, n.d) (Trang 63)
Hình 42: Class diagram của CameraController. - Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game
Hình 42 Class diagram của CameraController (Trang 78)
Hình 44: Class diagram của CharacterControlling. - Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game
Hình 44 Class diagram của CharacterControlling (Trang 80)
Hình 46: Class diagram của CharacterAction. - Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game
Hình 46 Class diagram của CharacterAction (Trang 82)
Hình 59: Class diagram của Broadcaster và MainBroadcaster. - Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game
Hình 59 Class diagram của Broadcaster và MainBroadcaster (Trang 92)
Hình 58: Class diagram của Message. - Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game
Hình 58 Class diagram của Message (Trang 92)
Bảng 4: Mô tả Message tương ứng với các âm thanh được phát ra trong màn chơi - Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game
Bảng 4 Mô tả Message tương ứng với các âm thanh được phát ra trong màn chơi (Trang 95)
Hình 67: Cây hành vi của Zombie được thiết kế trong Behaviour Designer. - Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game
Hình 67 Cây hành vi của Zombie được thiết kế trong Behaviour Designer (Trang 101)
Hình 69: Cây hành vi của Leader Decayer được thiết kế trong Behaviour Designer. - Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game
Hình 69 Cây hành vi của Leader Decayer được thiết kế trong Behaviour Designer (Trang 103)
7.3 Một số hình ảnh trong game - Thiết kế mô hình tri giác và nhận thức cho các npcs trong stealth game
7.3 Một số hình ảnh trong game (Trang 104)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w