﻿1
00:00:04,260 --> 00:00:05,190
‫Merhaba ve hoş geldiniz.

2
00:00:05,190 --> 00:00:10,170
‫Bu derste, oyuncumuza düşmandan bir görüş hattı alacağız, böylece oyuncu olarak

3
00:00:10,170 --> 00:00:17,100
‫engellerin arkasına saklanabileceğiz ve düşman takipçilerinin buna sahip olmamasını sağlayabileceğiz.

4
00:00:17,100 --> 00:00:22,560
‫Tekrar ortaya çıkıp onlar için görünür olana kadar bize nişan almaya devam edin.

5
00:00:22,560 --> 00:00:25,890
‫Gördüğünüz gibi bir köşeye saklandım ve o beni bulamıyor.

6
00:00:25,890 --> 00:00:29,400
‫Şimdi gerçek dışı araçlar kullanarak bunun nasıl yapılabileceğini görelim.

7
00:00:30,470 --> 00:00:35,120
‫Yani bu düşman A'nın I. şu anda bizi köşelerde takip edebiliyor.

8
00:00:35,120 --> 00:00:40,720
‫Ne kadar uzağa gidersek gidelim, sütunların arkasına ne kadar saklanırsak saklanalım, yine de bizi bulacaktır.

9
00:00:40,720 --> 00:00:43,430
‫Yine de gelecek ve bize nişan almaya devam edecek.

10
00:00:43,430 --> 00:00:47,990
‫Bunu düzeltmek istiyoruz ve bunu düşmandan oyuncuya olan görüş hattını kontrol ederek

11
00:00:47,990 --> 00:00:48,680
‫yapacağız.

12
00:00:48,680 --> 00:00:55,610
‫Şimdi, Unreal'daki birçok şeyde olduğu gibi, göz denetleyicisinde bunun için görüş hattı adı verilen

13
00:00:55,610 --> 00:00:57,260
‫bir işlev zaten var.

14
00:00:57,260 --> 00:01:01,430
‫Ve eğer gidip bunu ararsanız, boolean döndüren bir fonksiyon olduğunu görebilirsiniz.

15
00:01:01,430 --> 00:01:06,440
‫Yani bize görüş hattımız olup olmadığını söylüyor ve sonra görüş hattını kontrol

16
00:01:06,440 --> 00:01:12,800
‫etmeye çalışmamız gereken aktörü alıyor ve söz konusu piyonun göz konumu gibi şeyleri otomatik

17
00:01:12,800 --> 00:01:14,900
‫olarak hesaba katıyor.

18
00:01:14,900 --> 00:01:20,300
‫Tüm bu şeyler zaten Unreal'a kodlanmış durumda, bu yüzden oldukça basit olmalı.

19
00:01:20,300 --> 00:01:28,250
‫AI kontrolörümüz DHCP'ye gidersek, temelde yapmak istediğimiz şey TIC'deki şeyleri değiştirmektir,

20
00:01:28,250 --> 00:01:32,630
‫böylece her şeyden önce bir if görüş hattı yaparız.

21
00:01:33,420 --> 00:01:43,050
‫Sonra görüş hattımız varsa yapmak istediğimiz şey şuraya gitmek ve odağı ayarlamaktır.

22
00:01:43,380 --> 00:01:48,960
‫Ancak, eğer böyle yapmazsak, yapmak istediğimiz şey net bir şekilde odaklanmaktır.

23
00:01:48,960 --> 00:01:57,630
‫Hatırlayın, bu işlevi daha önce görmüştük ve temel olarak durdurma hareketini görmek istiyoruz.

24
00:01:58,560 --> 00:02:01,470
‫Bu da henüz görmediğimiz başka bir işlev.

25
00:02:01,590 --> 00:02:09,000
‫Burada yapacağım şey, eğer kendinize güveniyorsanız tüm bunları kendi başınıza uygulamanız için size meydan okuyabilirim.

26
00:02:09,120 --> 00:02:14,970
‫Aksi takdirde, bu daha önce görmediğimiz daha karmaşık bir kısım çünkü diğer ikisi, zaten oyuncuya geçiş

27
00:02:14,970 --> 00:02:18,480
‫yaptık, set odağımızı zaten yaptık, bunu daha önce yaptık.

28
00:02:18,480 --> 00:02:22,500
‫Ve sadece az önce gördüğümüz görüş hattı var.

29
00:02:22,500 --> 00:02:23,460
‫Oldukça basit.

30
00:02:23,460 --> 00:02:24,420
‫Bunu uygulayabilirsiniz.

31
00:02:24,420 --> 00:02:25,620
‫Peki ya buna ne dersiniz?

32
00:02:25,620 --> 00:02:29,070
‫Sadece ELT maddesini uygulamaya çalışalım.

33
00:02:29,070 --> 00:02:34,830
‫Derlenmeyecektir çünkü açıkça bir else'den önce bir if'e ihtiyacınız vardır, ancak gidip sadece ELT cümlesini

34
00:02:34,830 --> 00:02:35,820
‫yazalım.

35
00:02:36,180 --> 00:02:42,060
‫Odaklanmayı temizleyen ilk şey, temelde oyuncuyu izlemeye çalışmayı bırakmanızı söylüyoruz çünkü oyuncuyu

36
00:02:42,060 --> 00:02:43,110
‫göremiyorsunuz.

37
00:02:43,110 --> 00:02:47,610
‫Oyuncunun nerede olduğunu bildiğiniz izlenimini vermemelisiniz, göz açıkça bilse bile,

38
00:02:47,610 --> 00:02:51,000
‫çünkü oyuncunun konumuna erişebilir ve bu böyle devam eder.

39
00:02:51,000 --> 00:02:56,160
‫Ancak yapay zekanın yalnızca görebildiği kadarını bildiği yanılsamasını vermemiz gerekiyor.

40
00:02:56,370 --> 00:02:59,550
‫Şimdi yapacağımız şey, net odaklanma çağrısında bulunmak.

41
00:02:59,550 --> 00:03:04,890
‫AI denetleyicisi H'ye gidip net odağa bakarsak, temizlememiz gereken önceliği

42
00:03:04,890 --> 00:03:07,410
‫aldığını görebilirsiniz.

43
00:03:07,410 --> 00:03:13,620
‫Şimdi, bu önceliklerin temelde farklı odak seviyeleri olduğunu hatırlatmak isterim.

44
00:03:13,620 --> 00:03:20,820
‫Dolayısıyla, tipik olarak varsayılan hareket ve oyun oynanışı en öncelikli şeydir.

45
00:03:20,820 --> 00:03:24,270
‫Ve varsayılan olarak ayarladığımız şey oyun önceliğidir.

46
00:03:24,270 --> 00:03:29,580
‫Yapmak istediğimiz şey oyun önceliğini temizlemektir, yani harekete göre

47
00:03:29,580 --> 00:03:37,080
‫odaklandıysak, örneğin gözümüz daha sonra koruma noktasına geri dönmek isterse, bu odak temizlenmeyecek

48
00:03:37,080 --> 00:03:41,070
‫ve koruma noktasına geri dönmeyecektir.

49
00:03:41,430 --> 00:03:43,440
‫Odaklanma bu şekilde gerçekleşir.

50
00:03:43,440 --> 00:03:45,660
‫Orada öncelik sistemi bu şekilde işliyor.

51
00:03:45,660 --> 00:03:53,040
‫Yapmak istediğimiz şey, bu odak önceliği kodunu iki nokta üst üste oyununa kopyalamaktır ve bu, buradaki satırda temizlemek

52
00:03:53,040 --> 00:03:55,440
‫istediğimiz önceliktir.

53
00:03:55,440 --> 00:03:58,020
‫Diğer bir şey de hareketi durdurmaktır.

54
00:03:58,020 --> 00:04:03,150
‫Bu yüzden tekrar AI kontrollü RH'ye gitmek ve durdurma hareketine bir göz atmak istiyoruz.

55
00:04:03,150 --> 00:04:10,230
‫Ve elbette, tam da bunu yapmamızı sağlayan stop movement adında basit bir argümansız

56
00:04:10,230 --> 00:04:11,730
‫fonksiyon var.

57
00:04:11,910 --> 00:04:12,780
‫İşte böyle.

58
00:04:12,780 --> 00:04:16,020
‫Yazılan ifade temel olarak budur.

59
00:04:16,020 --> 00:04:23,070
‫Şimdi sadece if kısmını if görüş hattı ve move to ve set focus ile uygulamanın sizin için bir zorluk olmaya devam

60
00:04:23,070 --> 00:04:25,170
‫ettiğini hatırlatmak isterim.

61
00:04:25,170 --> 00:04:27,750
‫Ve temel olarak buradaki kodu kaldırmak istiyorsunuz.

62
00:04:27,750 --> 00:04:33,000
‫Ben sadece yorum yapacağım ve bunun nerede olmasını istediğinizi belirleyeceğim.

63
00:04:33,000 --> 00:04:33,870
‫O zaman videoyu durdur.

64
00:04:33,870 --> 00:04:35,130
‫Meydan okuma yok, buraya kaydır.

65
00:04:35,130 --> 00:04:38,190
‫Sadece gidin ve bu üç satırı kendiniz için uygulayın.

66
00:04:39,210 --> 00:04:39,690
‫Tamam.

67
00:04:39,690 --> 00:04:40,270
‫Tekrar hoş geldiniz.

68
00:04:40,290 --> 00:04:42,150
‫O zaman bununla başlayalım.

69
00:04:42,150 --> 00:04:51,660
‫Eğer öyleyse, parantezleri görüş hattına açarsak ve sonra erişmek istediğimiz oyuncu piyonu olan aktöre görüş

70
00:04:51,660 --> 00:04:54,360
‫hattı yapmak istiyoruz.

71
00:04:54,360 --> 00:05:00,900
‫O halde buradaki oyuncu piyonunu kaldıralım ve girintimizi biraz bozalım.

72
00:05:00,900 --> 00:05:02,160
‫Hadi bunu düzeltelim.

73
00:05:02,490 --> 00:05:10,320
‫Ve sonra parantezlerimizi, küme parantezlerimizi burada istiyoruz ve aktöre bir taşıma yapmak istiyoruz.

74
00:05:10,320 --> 00:05:14,460
‫Aslında, aktöre yaptığımız hamleyi buraya kopyalayıp yorumsuz bırakabiliriz.

75
00:05:15,230 --> 00:05:18,380
‫Ve bunu kaldırmak istiyoruz.

76
00:05:18,380 --> 00:05:19,100
‫Evet, işte oldu.

77
00:05:19,100 --> 00:05:22,490
‫Odak noktasını da değiştirebiliriz.

78
00:05:22,520 --> 00:05:28,070
‫Şimdi, odak, bunu aktöre taşımadan önce veya sonra yapmanız fark etmez, çünkü aktöre taşımak

79
00:05:28,070 --> 00:05:34,640
‫bir odak belirlerken, daha düşük bir öncelik belirler, oyun odağından ziyade hareket odağı.

80
00:05:34,640 --> 00:05:38,900
‫Dolayısıyla, bu iki işlemi hangi sırayla yaptığımız önemli değildir.

81
00:05:38,990 --> 00:05:44,030
‫Ve son olarak, oyuna başlarken oyuncu piyonunu aldığımız bu yorumlanmış satırı kaldırabiliriz çünkü

82
00:05:44,030 --> 00:05:49,280
‫artık buna ihtiyacımız yok ve artık her şey tik içinde, böylece oyuna başlamayı kaldırabiliriz.

83
00:05:49,280 --> 00:05:54,170
‫Daha sonra ihtiyacımız olursa diye, tekrar ekleme zahmetinden kurtarmak için etrafta bırakacağım.

84
00:05:54,170 --> 00:05:58,280
‫Unreal'a gidip derleyelim ve bu bittiğinde oynayalım.

85
00:05:58,280 --> 00:06:00,710
‫Bakalım bu aktörden saklanabilecek miyiz?

86
00:06:00,710 --> 00:06:04,370
‫Köşelerde oldukça hızlı hareket etmeye çalışacağım.

87
00:06:04,760 --> 00:06:09,170
‫Bu biraz zor çünkü onlar da en az sizin kadar hızlı hareket edebiliyor ama böyle bir köşeyi döndüğünüzde,

88
00:06:09,170 --> 00:06:11,570
‫"Beni gözden kaybetti" diyorlar.

89
00:06:11,570 --> 00:06:13,310
‫Beni kovalamayı bıraktı.

90
00:06:13,310 --> 00:06:16,550
‫Hareket ederken köşeden bakıp bunu görebiliyorum.

91
00:06:16,550 --> 00:06:20,150
‫Hedefini değiştirmiyor çünkü biz odağı temizledik.

92
00:06:20,210 --> 00:06:22,370
‫Diğer taraftan köşeden bakabilirsin.

93
00:06:22,640 --> 00:06:23,180
‫Bakalım.

94
00:06:23,180 --> 00:06:24,560
‫Burayı seç.

95
00:06:24,590 --> 00:06:25,070
‫Al bakalım.

96
00:06:25,070 --> 00:06:27,770
‫Hâlâ benim bulunduğum son yere nişan aldığını görebilirsiniz.

97
00:06:27,770 --> 00:06:34,220
‫Ama eğer görüş alanına girersem, o zaman nişan almaya devam ediyor ve kabul yarıçapı içinde hareket ediyor.

98
00:06:34,400 --> 00:06:38,900
‫Bundan bahsetmişken, kabul yarıçapının tasarımcı tarafından yapılandırılabilir olmasını istiyorum.

99
00:06:38,900 --> 00:06:41,120
‫O zaman bunu yeni bir mülke taşıyalım.

100
00:06:41,240 --> 00:06:45,350
‫Burada yeni bir özellik ile özel bir bölüm oluşturacağım.

101
00:06:46,260 --> 00:06:48,330
‫Bu da her yerde bir düzenleme olacak.

102
00:06:48,780 --> 00:06:58,830
‫Ve bunun kabul yarıçapı adında bir float olmasını ve varsayılan değer olan 200'ü vermesini istiyoruz.

103
00:06:59,100 --> 00:07:04,530
‫Ve sonra bu kabul yarıçapını devam edebilir ve aktöre geçişimizde kullanabiliriz.

104
00:07:04,530 --> 00:07:08,340
‫Ve bunu derlerseniz, size tam olarak aynı davranışı verecektir, ancak

105
00:07:08,340 --> 00:07:11,940
‫şimdi bunu AI denetleyici planında değiştirebilirsiniz.

106
00:07:11,940 --> 00:07:13,320
‫Bu ders için bu kadar.

107
00:07:13,320 --> 00:07:18,900
‫Gözün bir şeyi görüp göremediğini kontrol etmemizi sağlayan görüş hattı işlevini

108
00:07:18,900 --> 00:07:19,740
‫keşfettik.

109
00:07:19,740 --> 00:07:26,220
‫Ve bu temel gizleme işlevini uyguladık, böylece yapay zeka bizi göremediğinde bizi takip etmiyor.

110
00:07:26,250 --> 00:07:26,850
‫Sonraki ders.

111
00:07:26,850 --> 00:07:33,570
‫Bu özel programlanmış yapay zekadan bir adım öteye geçeceğiz ve davranış ağaçlarını kullanacağız.

112
00:07:33,570 --> 00:07:39,000
‫Yapay zekalarımızı çok daha havalı hale getirmek için gerçek dışı gerçekten güçlü bir araç.

