﻿1
00:00:04,260 --> 00:00:05,190
‫Xin chào và chào mừng.

2
00:00:05,190 --> 00:00:10,170
‫Trong bài giảng này, chúng ta sẽ theo dõi người chơi của chúng ta từ kẻ thù

3
00:00:10,170 --> 00:00:17,100
‫để chúng ta, với tư cách là người chơi, có thể ẩn nấp sau các chướng ngại vật và không bị kẻ thù theo dõi.

4
00:00:17,100 --> 00:00:22,560
‫Tiếp tục nhắm vào chúng tôi cho đến khi chúng tôi bật ra và hiển thị cho họ.

5
00:00:22,560 --> 00:00:25,890
‫Vì vậy, bạn có thể thấy ở đây tôi đã ẩn sau một góc và anh ta không thể tìm thấy tôi.

6
00:00:25,890 --> 00:00:29,400
‫Hãy đi sâu vào và xem điều này có thể được thực hiện như thế nào bằng cách sử dụng các công cụ không có thực.

7
00:00:30,470 --> 00:00:35,120
‫Vì vậy, không phải là lý tưởng mà kẻ thù A này. TÔI. hiện có thể theo dõi chúng tôi góc tròn.

8
00:00:35,120 --> 00:00:40,720
‫Bất kể chúng ta đi ra ngoài bao xa, cho dù chúng ta trốn sau những cây cột bao nhiêu, nó vẫn sẽ tìm thấy chúng ta.

9
00:00:40,720 --> 00:00:43,430
‫Nó vẫn sẽ đến và tiếp tục nhắm vào chúng ta.

10
00:00:43,430 --> 00:00:47,990
‫Chúng tôi muốn sửa điều đó và chúng tôi sẽ làm điều này bằng cách kiểm tra đường ngắm từ kẻ thù

11
00:00:47,990 --> 00:00:48,680
‫đến người chơi.

12
00:00:48,680 --> 00:00:55,610
‫Bây giờ, giống như nhiều thứ ở đây trong Unreal, đã có một chức năng cho điều này trong bộ điều khiển mắt

13
00:00:55,610 --> 00:00:57,260
‫được gọi là đường ngắm.

14
00:00:57,260 --> 00:01:01,430
‫Và nếu bạn đi và tìm kiếm điều đó, bạn có thể thấy rằng có một hàm trả về boolean.

15
00:01:01,430 --> 00:01:06,440
‫Vì vậy, cho chúng tôi biết liệu chúng tôi có đường ngắm hay không và sau đó

16
00:01:06,440 --> 00:01:12,800
‫tác nhân cần cố gắng kiểm tra đường nhìn và nó sẽ tự động tính đến những thứ như vị trí mắt

17
00:01:12,800 --> 00:01:14,900
‫của con tốt được đề cập.

18
00:01:14,900 --> 00:01:20,300
‫Tất cả những thứ này đã được mã hóa thành Unreal thực sự rất tuyệt, vì vậy nó sẽ khá đơn giản.

19
00:01:20,300 --> 00:01:28,250
‫Nếu chúng ta chuyển sang DHCP bộ điều khiển AI của mình, về cơ bản những gì chúng ta muốn làm là thay đổi mọi thứ

20
00:01:28,250 --> 00:01:32,630
‫trong TIC để trước hết chúng ta thực hiện một đường nhìn if.

21
00:01:33,420 --> 00:01:43,050
‫Sau đó, những gì chúng ta muốn làm nếu chúng ta có tầm nhìn, là chúng ta muốn di chuyển đến và chúng ta muốn đặt tiêu điểm.

22
00:01:43,380 --> 00:01:48,960
‫Tuy nhiên, nếu chúng ta không làm như vậy ở khía cạnh khác, điều chúng ta muốn làm là tập trung rõ ràng.

23
00:01:48,960 --> 00:01:57,630
‫Hãy nhớ rằng, chúng tôi đã thấy chức năng đó trước đây và chúng tôi muốn thực hiện việc xem chuyển động dừng lại, về cơ bản.

24
00:01:58,560 --> 00:02:01,470
‫Và đó là một chức năng khác tồn tại mà chúng ta chưa thấy.

25
00:02:01,590 --> 00:02:08,220
‫Vì vậy, những gì tôi sẽ làm ở đây là tôi có thể thách thức bạn tự mình thực hiện toàn bộ điều này nếu bạn cảm

26
00:02:08,220 --> 00:02:09,000
‫thấy tự tin.

27
00:02:09,120 --> 00:02:14,970
‫Mặt khác, đây là phần phức tạp hơn mà chúng tôi chưa từng thấy trước đây bởi vì hai phần kia, chúng tôi đã chuyển sang diễn viên, chúng

28
00:02:14,970 --> 00:02:18,480
‫tôi đã thực hiện xong trọng tâm của mình, chúng tôi đã làm điều đó trước đây.

29
00:02:18,480 --> 00:02:22,500
‫Và chỉ có điều này nếu đường nhìn, mà chúng ta vừa thấy.

30
00:02:22,500 --> 00:02:23,460
‫Nó khá đơn giản.

31
00:02:23,460 --> 00:02:24,420
‫Bạn có thể thực hiện điều đó.

32
00:02:24,420 --> 00:02:25,620
‫Nhưng làm thế nào về điều này khác?

33
00:02:25,620 --> 00:02:29,070
‫Hãy thử thực hiện mệnh đề ELT.

34
00:02:29,070 --> 00:02:34,830
‫Nó sẽ không biên dịch bởi vì bạn rõ ràng cần một if trước một else, nhưng chúng ta hãy bắt đầu và chỉ cần viết

35
00:02:34,830 --> 00:02:35,820
‫ra mệnh đề ELT.

36
00:02:36,180 --> 00:02:42,060
‫Vì vậy, điều đầu tiên là xóa tiêu điểm, về cơ bản chúng tôi đang nói rằng hãy ngừng cố gắng theo dõi trình phát vì bạn không

37
00:02:42,060 --> 00:02:43,110
‫thể nhìn thấy trình phát.

38
00:02:43,110 --> 00:02:47,610
‫Bạn không nên tạo ấn tượng rằng bạn biết người chơi ở đâu, mặc dù mắt rõ ràng là có

39
00:02:47,610 --> 00:02:51,000
‫thể, bởi vì nó có thể truy cập vị trí của người chơi, v.v.

40
00:02:51,000 --> 00:02:56,160
‫Nhưng chúng ta cần tạo ra ảo tưởng rằng AI chỉ biết càng nhiều càng tốt những gì nó có thể nhìn thấy.

41
00:02:56,370 --> 00:02:59,550
‫Vì vậy, những gì chúng tôi sẽ làm là chúng tôi sẽ kêu gọi để xóa tập trung.

42
00:02:59,550 --> 00:03:04,890
‫Và nếu chúng ta đi đến bộ điều khiển AI H và xem xét tiêu điểm rõ ràng, bạn có thể thấy rằng nó

43
00:03:04,890 --> 00:03:07,410
‫có mức độ ưu tiên mà chúng ta cần xóa.

44
00:03:07,410 --> 00:03:13,620
‫Bây giờ, xin nhắc lại rằng những ưu tiên này về cơ bản là các mức độ tập trung khác nhau.

45
00:03:13,620 --> 00:03:20,820
‫Vì vậy, chúng tôi thường đặt lối chơi di chuyển và lối chơi mặc định là ưu tiên cao nhất.

46
00:03:20,820 --> 00:03:24,270
‫Và những gì chúng tôi đặt theo mặc định là ưu tiên lối chơi.

47
00:03:24,270 --> 00:03:29,580
‫Vì vậy, những gì chúng tôi muốn làm là xóa ưu tiên chơi trò chơi, có nghĩa là nếu chúng tôi đã

48
00:03:29,580 --> 00:03:37,080
‫tập trung dựa trên chuyển động, chẳng hạn như nếu mắt của chúng tôi sau đó muốn di chuyển trở lại điểm bảo vệ của nó, thì tiêu điểm đó sẽ

49
00:03:37,080 --> 00:03:41,070
‫không bị xóa và nó sẽ di chuyển trở lại điểm canh gác của nó.

50
00:03:41,430 --> 00:03:43,440
‫Vì vậy, đó là cách hoạt động của tiêu điểm.

51
00:03:43,440 --> 00:03:45,660
‫Đó là cách hệ thống ưu tiên hoạt động ở đó.

52
00:03:45,660 --> 00:03:53,040
‫Vì vậy, những gì chúng tôi chỉ muốn làm là sao chép mã ưu tiên tập trung vào trò chơi dấu hai chấm và đó là mức độ ưu tiên mà

53
00:03:53,040 --> 00:03:55,440
‫chúng tôi muốn làm rõ trên dòng này ở đây.

54
00:03:55,440 --> 00:03:58,020
‫Và sau đó điều còn lại là dừng chuyển động.

55
00:03:58,020 --> 00:04:03,150
‫Vì vậy, chúng tôi muốn xem xét lại RH được điều khiển bởi AI và xem xét chuyển động dừng.

56
00:04:03,150 --> 00:04:10,230
‫Và chắc chắn, không có một hàm đơn giản không có đối số nào được gọi là dừng chuyển động, cho phép chúng ta

57
00:04:10,230 --> 00:04:11,730
‫thực hiện điều đó.

58
00:04:11,910 --> 00:04:12,780
‫Vậy là xong.

59
00:04:12,780 --> 00:04:16,020
‫Về cơ bản đó là tuyên bố được viết.

60
00:04:16,020 --> 00:04:23,070
‫Vì vậy, bây giờ chỉ cần nhắc nhở nó vẫn còn là một thách thức đối với bạn để triển khai phần if với đường nhìn if

61
00:04:23,070 --> 00:04:25,170
‫và di chuyển đến và đặt tiêu điểm.

62
00:04:25,170 --> 00:04:27,750
‫Và về cơ bản bạn muốn loại bỏ mã này ở đây.

63
00:04:27,750 --> 00:04:33,000
‫Tôi chỉ sẽ bình luận nó ra và sắp xếp vị trí bạn muốn.

64
00:04:33,000 --> 00:04:33,870
‫Vì vậy, hãy tạm dừng video.

65
00:04:33,870 --> 00:04:35,130
‫Không có thách thức, trượt ở đây.

66
00:04:35,130 --> 00:04:38,190
‫Chỉ cần đi và thực hiện ba dòng này cho chính bạn.

67
00:04:39,210 --> 00:04:39,690
‫Được chứ.

68
00:04:39,690 --> 00:04:40,270
‫Chào mừng trở lại.

69
00:04:40,290 --> 00:04:42,150
‫Vì vậy, hãy bắt đầu với điều đó.

70
00:04:42,150 --> 00:04:51,660
‫Nếu vậy, nếu mở ngoặc đơn và chúng ta muốn hướng tầm nhìn đến tác nhân, đó là người chơi tốt mà chúng

71
00:04:51,660 --> 00:04:54,360
‫ta muốn có quyền truy cập.

72
00:04:54,360 --> 00:05:00,900
‫Vì vậy, chúng ta hãy bỏ ghi chú người chơi đó cầm đồ ở đây và nó sẽ làm thụt lề của chúng ta một chút.

73
00:05:00,900 --> 00:05:02,160
‫Hãy khắc phục điều đó.

74
00:05:02,490 --> 00:05:10,320
‫Và sau đó chúng tôi muốn các dấu ngoặc nhọn, dấu ngoặc nhọn của chúng tôi ở đây và chúng tôi muốn chuyển sang diễn viên.

75
00:05:10,320 --> 00:05:14,460
‫Trên thực tế, chúng ta có thể sao chép và bỏ ghi chú chuyển sang diễn viên ở đây.

76
00:05:15,230 --> 00:05:18,380
‫Và chúng tôi muốn bỏ ghi chú nó.

77
00:05:18,380 --> 00:05:19,100
‫Vâng, chúng tôi đi.

78
00:05:19,100 --> 00:05:22,490
‫Và trọng tâm, chúng ta cũng có thể di chuyển nó.

79
00:05:22,520 --> 00:05:28,070
‫Bây giờ, trọng tâm, không quan trọng cho dù bạn làm điều đó trước hay sau khi chuyển sang diễn viên, bởi vì trong

80
00:05:28,070 --> 00:05:34,280
‫khi chuyển sang diễn viên thực hiện đặt tiêu điểm, nó đặt mức độ ưu tiên thấp hơn, trọng tâm chuyển động hơn là trọng tâm chơi trò

81
00:05:34,280 --> 00:05:34,640
‫chơi.

82
00:05:34,640 --> 00:05:38,900
‫Vì vậy, không quan trọng chúng ta thực hiện hai thao tác đó theo thứ tự nào.

83
00:05:38,990 --> 00:05:44,030
‫Và cuối cùng, chúng tôi có thể xóa dòng bình luận này nơi chúng tôi đang bắt người chơi bắt đầu chơi

84
00:05:44,030 --> 00:05:49,280
‫vì chúng tôi không còn cần nó nữa và mọi thứ đã sẵn sàng để chúng tôi có thể xóa bắt đầu chơi.

85
00:05:49,280 --> 00:05:53,840
‫Tôi sẽ để lại nó trong trường hợp chúng ta cần nó sau này chỉ để giúp tôi đỡ rắc rối khi thêm lại

86
00:05:53,840 --> 00:05:54,170
‫nó.

87
00:05:54,170 --> 00:05:58,280
‫Hãy chuyển sang Unreal và biên dịch và khi hoàn tất, chúng ta hãy chơi.

88
00:05:58,280 --> 00:06:00,710
‫Vậy chúng ta hãy xem liệu chúng ta có thể trốn diễn viên này không nhé.

89
00:06:00,710 --> 00:06:04,370
‫Tôi sẽ cố gắng di chuyển xung quanh các góc một cách hợp lý một cách nhanh chóng.

90
00:06:04,760 --> 00:06:09,170
‫Điều này hơi phức tạp một chút vì chúng có thể di chuyển nhanh như bạn có thể, nhưng nếu bạn đi đến một

91
00:06:09,170 --> 00:06:11,570
‫góc như thế, chúng sẽ đi, Anh ấy đã mất dấu tôi.

92
00:06:11,570 --> 00:06:13,310
‫Anh ấy đã ngừng cố gắng đuổi theo tôi.

93
00:06:13,310 --> 00:06:16,550
‫Tôi chỉ có thể nhìn quanh góc và thấy điều đó khi tôi đang di chuyển.

94
00:06:16,550 --> 00:06:20,150
‫Anh ấy không thay đổi mục tiêu bởi vì chúng tôi đã xóa tiêu điểm.

95
00:06:20,210 --> 00:06:22,370
‫Có thể nhìn quanh góc từ phía bên kia.

96
00:06:22,640 --> 00:06:23,180
‫Hãy xem nào.

97
00:06:23,180 --> 00:06:24,560
‫Chọn vòng ở đây.

98
00:06:24,590 --> 00:06:25,070
‫Của bạn đây.

99
00:06:25,070 --> 00:06:27,770
‫Bạn có thể thấy anh ấy vẫn đang nhắm đến vị trí cuối cùng nơi tôi ở.

100
00:06:27,770 --> 00:06:34,220
‫Nhưng nếu tôi xuất hiện trong tầm nhìn, thì anh ta tiếp tục nhắm và di chuyển trong bán kính chấp nhận.

101
00:06:34,400 --> 00:06:38,900
‫Nói về điều này, tôi muốn nhà thiết kế có thể định cấu hình bán kính chấp nhận đó.

102
00:06:38,900 --> 00:06:41,120
‫Vì vậy, hãy chuyển nó vào một tài sản mới.

103
00:06:41,240 --> 00:06:45,350
‫Tôi sẽ tạo một phần riêng tư ở đây với một thuộc tính mới.

104
00:06:46,260 --> 00:06:48,330
‫Đó sẽ là một chỉnh sửa ở bất cứ đâu.

105
00:06:48,780 --> 00:06:58,830
‫Và chúng tôi muốn đó là một float được gọi là bán kính chấp nhận và cung cấp cho nó giá trị mặc định là 200.

106
00:06:59,100 --> 00:07:04,530
‫Và sau đó bán kính chấp nhận này, chúng ta có thể tiếp tục và sử dụng trong quá trình chuyển sang diễn viên.

107
00:07:04,530 --> 00:07:08,340
‫Và nếu bạn biên dịch nó, nó sẽ cung cấp cho bạn chính xác hành vi tương tự, ngoại trừ

108
00:07:08,340 --> 00:07:11,940
‫bây giờ bạn có thể thay đổi điều đó trong bản thiết kế bộ điều khiển AI.

109
00:07:11,940 --> 00:07:13,320
‫Vì vậy, đó là nó cho bài giảng này.

110
00:07:13,320 --> 00:07:18,900
‫Chúng tôi đã phát hiện ra chức năng của đường nhìn, cho phép chúng tôi kiểm tra xem mắt có thể hoặc không thể nhìn thấy một thứ

111
00:07:18,900 --> 00:07:19,740
‫gì đó hay không.

112
00:07:19,740 --> 00:07:25,740
‫Và chúng tôi đã triển khai chức năng ẩn cơ bản này để AI không theo dõi chúng tôi khi nó không thể nhìn thấy chúng

113
00:07:25,770 --> 00:07:26,220
‫tôi.

114
00:07:26,250 --> 00:07:26,850
‫Bài giảng tiếp theo.

115
00:07:26,850 --> 00:07:33,570
‫Chúng tôi sẽ nâng cao mọi thứ từ AI được lập trình tùy chỉnh này và sử dụng cây hành vi.

116
00:07:33,570 --> 00:07:39,000
‫Một công cụ thực sự mạnh mẽ trong thực tế để làm cho AI của chúng ta trở nên tuyệt vời hơn nhiều.

