﻿1
00:00:04,770 --> 00:00:05,940
‫Merhaba ve hoş geldiniz.

2
00:00:05,940 --> 00:00:11,610
‫Bu derste, A'mızı alacağız. I. Devriye gezmek için yerlerimiz arasında gidip geliyoruz.

3
00:00:11,610 --> 00:00:17,070
‫Bu yüzden orijinal başlangıç konumuma gideceğim, sonra onun başlangıç konumuna geri döneceğim, biraz bekleyeceğim

4
00:00:17,070 --> 00:00:18,600
‫ve sonra tekrar gideceğim.

5
00:00:18,600 --> 00:00:21,570
‫Bunu davranış ağaçları aracılığıyla gerçekleştireceğiz.

6
00:00:21,570 --> 00:00:23,760
‫O halde nasıl yapıldığını görelim.

7
00:00:24,720 --> 00:00:27,750
‫Şu anda davranış ağacımızı pek kullanmıyoruz.

8
00:00:27,750 --> 00:00:28,890
‫Hadi bunu düzeltelim.

9
00:00:28,890 --> 00:00:36,570
‫Başladığımız yerden oyuncunun bulunduğu yere gitmemizi ve ardından orijinal başlangıç

10
00:00:36,570 --> 00:00:42,570
‫konumumuza geri dönmemizi sağlayan bir davranış oluşturacağız.

11
00:00:42,930 --> 00:00:46,140
‫Şimdi, bunu yapmanın yolu aşağıdakileri kullanmaktır.

12
00:00:46,140 --> 00:00:53,190
‫Dolayısıyla, davranış ağaçlarında görevler ve bileşik düğümler olarak adlandırılan şeyler arasında bir ayrım

13
00:00:53,190 --> 00:00:57,120
‫vardır veya bu durumda, bileşik düğüm örneği bir dizidir.

14
00:00:57,120 --> 00:01:01,320
‫Öyleyse dizileri ve görevleri kulağa geldiği şekliyle anlayalım.

15
00:01:01,530 --> 00:01:03,330
‫Görev, yaptığınız bir şeydir.

16
00:01:03,450 --> 00:01:09,030
‫Bir dizi, bu tür görevlerin bir dizisidir ve tüm görevleri sırayla çalıştıracaktır.

17
00:01:09,660 --> 00:01:16,320
‫Sağ tıklayıp buradaki görevleri genişletirsek, neyin görev olarak kullanılabileceğine dair bir örnek görebilirsiniz.

18
00:01:16,470 --> 00:01:21,630
‫Örneğin, doğrudan taşınan bir konuma da taşınan iki numaralı hamleye sahip olabiliriz.

19
00:01:21,630 --> 00:01:23,700
‫Kullanacağımız ayrımdan tam olarak emin değilim.

20
00:01:23,700 --> 00:01:24,390
‫İkinci hamle.

21
00:01:24,420 --> 00:01:27,660
‫Burnunuzu kaşıyın animasyonu gibi bir animasyon oynatabilirsiniz.

22
00:01:27,660 --> 00:01:30,990
‫Onlara "Hey sen" gibi bir ses çaldırabilirsiniz, bu tür şeyler.

23
00:01:30,990 --> 00:01:34,770
‫İsterseniz başka bir hayvan davranışını çalıştırmasını sağlayabilirsiniz.

24
00:01:35,130 --> 00:01:39,690
‫Burada ayrıca davranışınıza bazı duraklamalar eklemek için çok yararlı olan bir ağırlık vardır.

25
00:01:39,930 --> 00:01:46,080
‫Şimdi bu görevlerle ilgili ilginç olan şey, birden fazla kare için, birden fazla tik için çalışabilmeleridir.

26
00:01:46,080 --> 00:01:53,250
‫Yani Move two, bir konuma taşındığınız süre boyunca çalışacak ve yalnızca siz oraya vardığınızda

27
00:01:53,250 --> 00:01:54,540
‫bitecektir.

28
00:01:54,930 --> 00:02:03,690
‫Eğer biz de bir hareket yaptıysak, bunu sekans düğümünden aşağı sürükleyerek burada bir sekansa yapıştırabiliriz.

29
00:02:03,930 --> 00:02:08,880
‫O zaman elde edeceğiniz şey, her şeyden önce, hedefe gitmeye çalışmak olacaktır.

30
00:02:09,000 --> 00:02:16,530
‫Ve sonra beklemesini söyleyen ikinci bir görev düğümü ekleyebiliriz ve sonra üçüncü bir görev görev düğümü ekleyebiliriz.

31
00:02:16,530 --> 00:02:21,120
‫Buradaki sekanstan aşağı çekip bıraktığıma dikkat edin, bu da sekans düğümünün altına oldukça hızlı

32
00:02:21,120 --> 00:02:23,340
‫bir şekilde bir görev eklememe olanak tanıyor.

33
00:02:23,340 --> 00:02:24,060
‫Ve sonra anlatabilirim.

34
00:02:24,060 --> 00:02:26,580
‫Başka bir yere taşınmak istiyorum ve sonra bunu söyleyebilirim.

35
00:02:26,580 --> 00:02:29,880
‫Belli bir süre daha beklemek istiyorum.

36
00:02:29,880 --> 00:02:35,850
‫Şimdi bu, oyuncuya geçmenin ve sonra başladığımız yere geri dönmenin temelleri.

37
00:02:35,850 --> 00:02:38,460
‫Ve burada sıra düğümünün nasıl çalıştığını görebilirsiniz.

38
00:02:38,460 --> 00:02:40,080
‫Şimdi bir de rota düğümü var.

39
00:02:40,080 --> 00:02:44,460
‫Rota düğümünün yalnızca bir alt düğümü olabilir, bu nedenle bunun altına başka şeyler eklemeye çalışmayın.

40
00:02:44,460 --> 00:02:49,800
‫Yani burada rota olan bir sıra düğümümüz var ve bu temel olarak, biri başarısız olana kadar tüm

41
00:02:49,800 --> 00:02:56,310
‫bu görevleri sırayla çalıştıracağımı ve işimiz bittiğinde süreci yeniden başlatabileceğimizi söylüyor.

42
00:02:57,090 --> 00:03:02,010
‫Burada dikkat edilmesi gereken bir diğer husus da, bu düğümlerden herhangi birine tıkladığınızda, buradaki ayrıntıların

43
00:03:02,010 --> 00:03:05,580
‫bize o düğümün nasıl çalıştığına dair bazı etkiler sağlamasıdır.

44
00:03:05,700 --> 00:03:13,440
‫Örneğin, hareketimiz de şu anda kendi ayrıntıları bölmesinin karatahta bölümündeki bir karatahta anahtarını aktif hale

45
00:03:13,440 --> 00:03:17,340
‫getiriyor, ancak bunu oyuncu konumuna değiştirebiliriz.

46
00:03:17,340 --> 00:03:22,380
‫Yani temel olarak Node'a yapılan bu taşıma işleminin artık oyuncu konumumuza taşınacağını söylüyor.

47
00:03:22,380 --> 00:03:27,480
‫Daha sonra varsayılan olarak 5 saniye bekleyeceğiz, ancak bunu tekrar değiştirerek 2 saniye beklemek

48
00:03:27,480 --> 00:03:34,170
‫isteyebileceğimizi ve 1/2'lik rastgele bir sapmaya sahip olmak isteyebileceğinizi söyleyebiliriz, böylece temelde 1/2 ile 3 saniye

49
00:03:34,170 --> 00:03:36,450
‫arasında bir yerde bekleyecektir.

50
00:03:36,690 --> 00:03:41,610
‫Daha sonra farklı bir konuma geçmek istiyoruz ve bu konum şu anda sahip olmadığımız bir konum,

51
00:03:41,610 --> 00:03:43,290
‫yani başlangıç konumumuz.

52
00:03:43,380 --> 00:03:44,760
‫Böylece devam edebilir ve bunu ekleyebiliriz.

53
00:03:44,760 --> 00:03:51,780
‫Tahtamıza gidelim, yeni bir anahtar ekleyelim, bir vektör ekleyelim ve bunu başlangıç konumumuz olarak belirleyelim.

54
00:03:52,110 --> 00:03:56,820
‫Ardından davranış ağacına geri dönebilir ve ayrıntılar bölmesine giderseniz bir düğüme taşımamızın artık

55
00:03:56,820 --> 00:04:03,030
‫bir seçenek olarak başlangıç konumuna sahip olduğunu görebiliriz ve ardından 5 saniye beklemek istediğimizi söyleyebiliriz ve ardından

56
00:04:03,030 --> 00:04:07,320
‫işlem yeniden başlayacaktır çünkü sıra düğümümüzü başarıyla tamamlamış olacağız.

57
00:04:07,320 --> 00:04:08,430
‫İşte böyle işliyor.

58
00:04:08,430 --> 00:04:13,560
‫Sıra düğümüne iniyorsunuz, sıra düğümü diyor ki, tamam, peki ben neredeyim?

59
00:04:13,560 --> 00:04:15,570
‫En baştan başlamak istiyorum.

60
00:04:15,570 --> 00:04:16,860
‫Ve bu numarayı görebilirsiniz.

61
00:04:16,860 --> 00:04:22,650
‫Buradaki şeyler bize yürütme sırasını söylüyor, sıfırdan başlıyoruz, bu sıra düğümü bire taşınıyor,

62
00:04:22,650 --> 00:04:29,220
‫sonra iki bir ağırlık üç dörde taşınıyor, vb. Böylece her bir görevi tamamlayana ya da başarısız olana kadar

63
00:04:29,220 --> 00:04:30,780
‫adım adım yerine getiririz.

64
00:04:30,780 --> 00:04:34,050
‫Eğer başarısız olursak, sıra düğümü bir bütün olarak başarısız olacaktır.

65
00:04:34,050 --> 00:04:40,020
‫Ancak bunların hiçbirinin başarısız olma ihtimali yoktur, bu yüzden her şeyi gözden geçireceğiz ve sonra sıra düğümü

66
00:04:40,020 --> 00:04:42,660
‫tamamlanacak ve rota yeniden başlayacaktır.

67
00:04:42,660 --> 00:04:47,430
‫Bu yüzden bir döngü içinde ilerleyeceğiz, oyuncu konumu ağırlıklandırmasına gideceğiz, başlangıç konumuna

68
00:04:47,430 --> 00:04:49,860
‫geri döneceğiz ve biraz daha bekleyeceğiz.

69
00:04:49,980 --> 00:04:54,000
‫İşte davranış ağaçlarının gücü budur ve bunları daha derine yerleştirmeye başlayabilirsiniz.

70
00:04:54,000 --> 00:04:58,380
‫Burada seçimleriniz olabilir, dekoratörleriniz olabilir, gelecek derslerde göreceğimiz her şey

71
00:04:58,380 --> 00:04:58,920
‫olabilir.

72
00:04:58,920 --> 00:05:00,810
‫Ama işin temeli bu.

73
00:05:00,810 --> 00:05:07,530
‫Yapay zekanızın çalıştırabileceği bir dizi talimat ve bunların tamamlanması birden fazla kare alabilir.

74
00:05:07,530 --> 00:05:13,380
‫Şimdi yapmak istediğimiz şey aslında bu başlangıç konumunu anlamlı bir şey olarak ayarlamak.

75
00:05:13,620 --> 00:05:16,650
‫Şimdi bu oldukça basit olmalı.

76
00:05:16,650 --> 00:05:23,460
‫Muhtemelen size nasıl yapacağınızı söylemek istediğim tek şey, kontrolünü elimizde tuttuğumuz şeyi nasıl ele geçireceğimizdir.

77
00:05:23,460 --> 00:05:24,060
‫Yani sadece.

78
00:05:24,140 --> 00:05:32,960
‫Burada kontrolör h'ye gidersek, hem oyuncu kontrolörleri hem de hava kontrolörleri

79
00:05:32,960 --> 00:05:41,240
‫için get -- ve get -- yöntemine bakabileceğimizi hatırlatmak isteriz.

80
00:05:41,240 --> 00:05:49,160
‫Böylece, başlangıç konumumuzu ayarlamak amacıyla -- kontrol edilen öğeyi almak ve oynatmaya başlarken konumunu

81
00:05:49,160 --> 00:05:51,700
‫almak için bunu kullanabilirsiniz.

82
00:05:51,710 --> 00:05:53,240
‫İşte size bir meydan okuma.

83
00:05:53,240 --> 00:05:59,060
‫Bir başlangıç konumu belirleyin, biraz önce bahsettiğimiz gibi --'in konumunu alın, doğru yazı tahtası anahtarını

84
00:05:59,060 --> 00:06:04,250
‫ayarlayın, bunun için şablon olarak daha önce kullandığımız oyuncu konumunu kullanın.

85
00:06:04,610 --> 00:06:09,680
‫Davranış ağacını derste anlattığım şekilde kurun ve test edin.

86
00:06:09,680 --> 00:06:17,480
‫Bu davranışın, oyuncunun veya düşmanın oyuncunun bulunduğu yere gitmesi ve ardından orijinal başlangıç konumuna geri dönmesi gibi istenen

87
00:06:17,480 --> 00:06:19,910
‫davranışı sağlayıp sağlamadığına bakın.

88
00:06:19,910 --> 00:06:21,860
‫Videoyu duraklatın ve deneyin.

89
00:06:23,000 --> 00:06:23,270
‫Tamam.

90
00:06:23,270 --> 00:06:23,900
‫Tekrar hoş geldiniz.

91
00:06:23,900 --> 00:06:25,310
‫Umarım bu senin için işe yaramıştır.

92
00:06:25,310 --> 00:06:27,050
‫Şansımızı deneyelim.

93
00:06:27,050 --> 00:06:31,190
‫Bu yüzden oyuncu konumumuz için satırı kopyalayacağım.

94
00:06:31,250 --> 00:06:35,480
‫Ve oyuncu konumunu ayarlamak yerine, tahtaya gidip başlangıç konumumuza bir

95
00:06:35,480 --> 00:06:36,290
‫göz atıyoruz.

96
00:06:36,290 --> 00:06:39,770
‫Bu anahtar değeri buraya kopyalayacağız.

97
00:06:40,100 --> 00:06:45,530
‫Ve sonra oyuncunun konumunu almak yerine bir get -- ve ardından get actor

98
00:06:45,530 --> 00:06:52,640
‫location yapacağız, bu da şu anda kontrol ettiğimiz oyuncuyu alacak ve dünyadaki konumunu alacak,

99
00:06:52,640 --> 00:06:58,370
‫böylece devam edip editöre geri dönebilir ve bunu derleyebiliriz.

100
00:06:58,370 --> 00:07:03,170
‫Bu işlem tamamlandıktan sonra play tuşuna basın ve bize bir göz atın --.

101
00:07:03,170 --> 00:07:05,390
‫Yanımıza geldi, bize doğru ilerledi.

102
00:07:05,390 --> 00:07:10,780
‫3 saniye veya 2 saniye veya 1/2 bekler, sonra orijinal başlangıç konumuna geri döner.

103
00:07:10,830 --> 00:07:16,880
‫Sonra 5 saniye bekler ve ardından oyuncunun orijinal konumuna geri döner --.

104
00:07:16,880 --> 00:07:18,530
‫Yani bunu her kare güncellemiyor.

105
00:07:18,560 --> 00:07:19,040
‫Sorun değil.

106
00:07:19,070 --> 00:07:20,960
‫Şu anda bu şekilde tasarladık.

107
00:07:20,960 --> 00:07:23,360
‫Ama davranışların devam ettiğini görebilirsiniz.

108
00:07:23,360 --> 00:07:25,520
‫Bir ileri bir geri devriye geziyor.

109
00:07:25,520 --> 00:07:29,240
‫Şimdi tüm bunların nasıl işlediğine bir göz atalım.

110
00:07:29,240 --> 00:07:30,680
‫Davranış ağacımıza bir göz atın.

111
00:07:30,860 --> 00:07:34,940
‫Davranış ağacımıza gider ve söz konusu I'yı seçersek, nerede olduğunu görebilirsiniz.

112
00:07:34,970 --> 00:07:37,610
‫Çok fazla saniye beklemek için hareket ediyor.

113
00:07:37,610 --> 00:07:39,470
‫Sonra da başlangıç yerine taşınıyor.

114
00:07:39,470 --> 00:07:47,000
‫Bunu geri alabilmemiz ve oyunumuzda bu iki şeyin aynı anda gerçekleştiğini görebilmemiz için tekrar bekliyor.

115
00:07:47,000 --> 00:07:49,040
‫Oraya doğru gittiğini görebilirsiniz.

116
00:07:49,040 --> 00:07:52,880
‫Şu anda başlangıç konumuna geri dönmek için bekliyor.

117
00:07:52,880 --> 00:07:59,690
‫Dolayısıyla bu, özellikle bu davranışlar biraz daha karmaşık hale geldiğinde hata ayıklayabilmemiz için gerçekten kullanışlıdır.

118
00:07:59,690 --> 00:08:06,290
‫Ayrıca, unreal'ın davranış ağacını nasıl hesapladığını ve bu yürütme akışının davranış ağacımız

119
00:08:06,290 --> 00:08:09,530
‫içinde nasıl çalıştığını anlamanızı sağlar.

120
00:08:09,710 --> 00:08:10,340
‫Harika bir şey.

121
00:08:10,340 --> 00:08:15,050
‫Bir sonraki derste, bu davranışları daha da karmaşık hale getireceğiz ve bir oyuncuyu

122
00:08:15,050 --> 00:08:21,620
‫takip etmeyi mi yoksa olduğumuz yerde kalmayı mı seçeceğimize dair bazı karar unsurları ekleyeceğiz.

123
00:08:21,770 --> 00:08:23,330
‫O derste görüşürüz.

