﻿1
00:00:04,260 --> 00:00:05,070
‫Merhaba ve hoş geldiniz.

2
00:00:05,070 --> 00:00:08,490
‫Bu derste AI Focus üzerinde çalışacağız.

3
00:00:08,490 --> 00:00:14,850
‫Bu, Unreal'da bizi dünyanın dört bir yanında takip eden yapay zeka karakterlerimizin nereye gidersek gidelim bize nişan

4
00:00:14,850 --> 00:00:19,560
‫alabilmelerini sağlamak için kullanabileceğimiz bazı yerleşik işlevlerdir.

5
00:00:19,560 --> 00:00:22,080
‫İçeri dalalım ve odaklanmanın nasıl çalıştığını görelim.

6
00:00:23,190 --> 00:00:26,220
‫Yani şu anda pek bir şey yapmıyorum.

7
00:00:26,220 --> 00:00:33,690
‫Ve bence bir şey yapabilmesi için ilk başlangıç noktası dönüp oyuncumuza doğru bakması olacaktır.

8
00:00:33,990 --> 00:00:40,640
‫Şimdi bunu yapmak için, yapay zekanın bazı yerleşik işlevlerini kullanabiliriz, bu da bir odak noktası belirlemektir.

9
00:00:40,650 --> 00:00:47,120
‫AI kontrolüne bakarsanız ve odak ayarını ararsanız, burada ilgili birkaç yöntem vardır.

10
00:00:47,130 --> 00:00:52,380
‫Biri ayarlanmış odak noktaları, diğeri ayarlanmış odak ve bunun hemen altındaki de net odak.

11
00:00:52,770 --> 00:00:59,340
‫Buradaki fikir, yapay zeka denetleyicisine belirli bir noktaya odaklanmaya çalışması gerektiğini veya belirli

12
00:00:59,340 --> 00:01:03,830
‫bir aktöre odaklanmaya çalışması gerektiğini söyleyebilmenizdir.

13
00:01:03,840 --> 00:01:08,910
‫İkincisini seçerseniz, bir aktöre odaklanmayı seçerseniz, o aktör hareket

14
00:01:08,910 --> 00:01:12,540
‫ettikçe siz de o aktöre odaklanmaya devam edersiniz.

15
00:01:12,540 --> 00:01:17,310
‫Oysa belirli bir noktaya odaklanmayı seçerseniz, o noktaya odaklanmaya devam edersiniz.

16
00:01:17,310 --> 00:01:23,600
‫Ancak bu nokta bir aktörün konumuysa, aktör hareket ettiğinde bu nokta güncellenmez.

17
00:01:23,610 --> 00:01:28,620
‫Yani tipik olarak odak noktaları dünyada sabit olan şeyler içindir, hareket eden şeyler için aktörler bu tür

18
00:01:28,620 --> 00:01:29,700
‫bir anlam ifade eder.

19
00:01:29,700 --> 00:01:35,970
‫Ve sonra burada bize bir şeye odaklanmayı bırakmamız gerektiğini söyleyen net odak fonksiyonumuz

20
00:01:35,970 --> 00:01:36,360
‫var.

21
00:01:36,360 --> 00:01:37,110
‫İşte böyle çalışıyor.

22
00:01:37,110 --> 00:01:39,030
‫Bir odak belirlersiniz, bir odağı temizlersiniz.

23
00:01:39,120 --> 00:01:45,090
‫Şimdi burada birazdan değineceğimiz bir öncelik değişkeni var.

24
00:01:45,090 --> 00:01:48,360
‫Ancak buradaki fikir, farklı öncelik seviyelerine sahip olmanızdır.

25
00:01:48,360 --> 00:01:55,470
‫Burada, odağı ayarla ve odak noktasını ayarla seçeneklerinin varsayılan olarak oyun olarak ayarlandığı bir enumumuz var.

26
00:01:55,470 --> 00:02:02,460
‫Bu enumun tanımına bakacak olursak, varsayılan bir hareket ve oyun olduğunu ve bunların temelde öncelik sırasına

27
00:02:02,460 --> 00:02:05,340
‫göre listelendiğini görebilirsiniz.

28
00:02:05,340 --> 00:02:07,500
‫Bu yüzden oyun en yüksek önceliğe sahip olacaktır.

29
00:02:07,500 --> 00:02:09,960
‫Bir şeyi oyun olarak ayarlarsanız, bakacağı şey de o olacaktır.

30
00:02:09,960 --> 00:02:15,690
‫Oynanış önceliğini temizlediğiniz için oynanış ayarlanmamışsa, nereye gittiğine

31
00:02:15,690 --> 00:02:22,230
‫bakacak ve hiçbir yere hareket etmiyorsa, sadece uzakta bir yerde olabilecek varsayılan önceliğe

32
00:02:22,230 --> 00:02:24,210
‫bakacaktır.

33
00:02:24,210 --> 00:02:29,490
‫Dolayısıyla, devriye gezme davranışına sahip bir gardiyanınız varsa, oraya vardığında bir sonraki hareket edeceği

34
00:02:29,490 --> 00:02:31,290
‫yere bakmayı varsayacaktır.

35
00:02:31,290 --> 00:02:34,140
‫Bakması için varsayılan bir nokta belirleyebilirsiniz.

36
00:02:34,140 --> 00:02:40,260
‫Yani, bilmiyorum, belki de kendi bölgesine giriş yoluna ya da buna benzer bir şeye bakıyordur.

37
00:02:40,260 --> 00:02:43,020
‫Her neyse, önceliklerin hepsi bununla ilgili.

38
00:02:43,020 --> 00:02:47,460
‫Dediğim gibi, bunları çok fazla kullanmamız gerekmeyecek çünkü çoğunlukla bu oyun

39
00:02:47,460 --> 00:02:51,840
‫işlevselliğini "Hey, şurada ilginç bir şeyler oluyor" demek için kullanacağız.

40
00:02:51,840 --> 00:02:54,690
‫İşte oyuncu, o yüzden devam edip ona bakalım.

41
00:02:54,960 --> 00:03:00,630
‫Yapacağımız ilk şey, odağı Oyuna Başla'ya ayarlayabilmek için AI denetleyicimize bir

42
00:03:00,630 --> 00:03:02,820
‫oyuna başlama uygulamak olacak.

43
00:03:02,820 --> 00:03:05,880
‫Bu sadece bize bu fonksiyonun nasıl çalıştığını göstermek için olacak.

44
00:03:05,880 --> 00:03:09,810
‫Dolayısıyla, muhtemelen daha önce de gördüğümüz gibi, Begin Play korumalı bir işlevdir.

45
00:03:09,810 --> 00:03:15,150
‫Bu yüzden korumalı bir bölüm oluşturmamız gerekiyor ve ardından sanal boşluğumuzun oynamaya başlamasını istiyoruz.

46
00:03:15,150 --> 00:03:20,970
‫Override anahtar sözcüğünü sadece güvenlik için buraya koyacağız ve sonra devam edip C++'da

47
00:03:20,970 --> 00:03:23,130
‫uygulamayı oluşturacağız.

48
00:03:23,250 --> 00:03:28,650
‫Ve süper başlangıç oyununu çağırmak isteyeceğiz çünkü bu her zaman iyi bir uygulamadır çünkü aksi takdirde planlarda

49
00:03:28,650 --> 00:03:30,030
‫işler ters gider.

50
00:03:30,030 --> 00:03:35,310
‫Bunu yapmayı unutursanız, bir başlangıç oyunu oluşturduktan sonra planlarla ilgili bir sorun yaşarsanız, super'e çağrı

51
00:03:35,310 --> 00:03:37,380
‫yaptığınızı kontrol ettiğinizden emin olun.

52
00:03:37,710 --> 00:03:44,730
‫Ve bu noktada, yapmak istediğimiz şey piyon aktörünü ele geçirmek ve odağı ona ayarlamaktır.

53
00:03:45,930 --> 00:03:52,710
‫Bir piyon aktörü ele geçirmek için, oynanış istatistikleri başlığından bir işlev kullanabiliriz; bunun üzerine gelirseniz veya kontrol p'de

54
00:03:52,710 --> 00:03:58,170
‫oynanış istatistiklerini bulmak için arama yaparsanız, bunun kismet ileri eğik çizgi oynanış istatistikleri altında

55
00:03:58,170 --> 00:03:59,940
‫olduğunu görebilirsiniz.

56
00:03:59,940 --> 00:04:04,530
‫Bu yüzden atıcı I kontrolörü CP'ye geri döneceğiz ve bunu dahil edeceğiz.

57
00:04:04,530 --> 00:04:11,730
‫Yani hash include ve sonra kismet forward slash gameplay statics olacak ve sonra U gameplay statics'imizi

58
00:04:11,730 --> 00:04:19,530
‫yapabilmeliyiz ve buradan çok yararlı bulduğum bir fonksiyon kullanmalıyız, get player pawn, bir oyuncu

59
00:04:19,530 --> 00:04:24,270
‫piyonuna bir işaretçi olarak dönecek.

60
00:04:24,270 --> 00:04:29,190
‫Ve bunu bir dünya bağlamı nesnesi ve oyuncu indeksi alarak yapar.

61
00:04:29,190 --> 00:04:31,560
‫Bizim durumumuzda sıfır oyuncuyu bulacağız.

62
00:04:31,650 --> 00:04:36,150
‫Hadi bir piyon oynayalım ve bir dünya kuralım.

63
00:04:36,150 --> 00:04:42,060
‫Ve sonra sıfır indeksini arayacağız ve bunu bir değişkene, bir piyona kaydedeceğiz.

64
00:04:42,890 --> 00:04:46,040
‫Hangi oyuncu olacak?

65
00:04:46,040 --> 00:04:48,050
‫İşte biz de buna odaklanmak istiyoruz.

66
00:04:49,990 --> 00:04:53,250
‫Yani odağınızı belirlemeniz için meydan okuma zamanı.

67
00:04:53,260 --> 00:04:58,930
‫Az önce oyun statiği fonksiyon çağrımızı kullanarak elde ettiğimiz oyuncuyu kullanın, ayarlayın, odaklayın ve farklı

68
00:04:58,930 --> 00:05:03,370
‫karakterlerimizin etrafında hareket edip etmediğinizi görmek için dünyada test edin.

69
00:05:03,370 --> 00:05:04,870
‫Seni takip edecekler mi?

70
00:05:04,870 --> 00:05:06,150
‫Bakışları sizi takip edecek mi?

71
00:05:06,160 --> 00:05:07,840
‫Videoyu duraklatın ve öğrenin.

72
00:05:08,900 --> 00:05:09,200
‫Tamam.

73
00:05:09,200 --> 00:05:09,880
‫Tekrar hoş geldiniz.

74
00:05:09,890 --> 00:05:11,990
‫Umarım çok zor olmamıştır.

75
00:05:11,990 --> 00:05:16,850
‫Odağı ayarla dememiz gerekir çünkü odağı ayarla bir ebeveyn üzerindedir.

76
00:05:16,850 --> 00:05:19,310
‫Burada herhangi bir işaretçi bulmak zorunda değiliz.

77
00:05:19,310 --> 00:05:22,640
‫Odaklanıyoruz ve elimizde ne var?

78
00:05:22,640 --> 00:05:28,040
‫Temel olarak sadece aktörü koymamız gerekiyor çünkü öncelik zaten varsayılan olarak oyuna ayarlanmış

79
00:05:28,040 --> 00:05:33,830
‫durumda, zaten istediğimiz de buydu, bu yüzden sadece oyuncu piyonumuzu geçirebiliriz ve odaklandığımız kişi

80
00:05:33,830 --> 00:05:34,940
‫o olmalıdır.

81
00:05:34,940 --> 00:05:36,170
‫Öyleyse devam edelim ve inşa edelim.

82
00:05:37,440 --> 00:05:42,750
‫Bu iş bittikten sonra Unreal'a geçelim ve oynayalım.

83
00:05:43,970 --> 00:05:46,490
‫Bazı nedenlerden dolayı burada hala sinir bozucu bir yumurtlama noktası var.

84
00:05:46,520 --> 00:05:52,700
‫Devam edip bunu silelim ve göz karakterimizin yakınında ortaya çıktığımızdan emin olalım.

85
00:05:52,970 --> 00:05:53,840
‫İşte başlıyoruz.

86
00:05:53,870 --> 00:05:59,030
‫Gidip bir bakalım, bu karakterin etrafında biraz dolaşalım ve anında piyonum nereye götürürse

87
00:05:59,030 --> 00:06:02,780
‫götürsün piyonumla yüzleşmeye döndüğünü görebiliyorum.

88
00:06:02,780 --> 00:06:06,590
‫Yani bu, bazı yapay zekaların başlangıcıdır.

89
00:06:06,590 --> 00:06:11,280
‫Çok fazla olmadığını biliyorum, ancak bir sonraki derste bunu daha da derinleştirmek için çalışacağız.

90
00:06:11,300 --> 00:06:12,200
‫Orada görüşürüz.

