‫Merhaba ve hoş geldiniz.
‫Bu derste AI Focus üzerinde çalışacağız.
‫Bu, Unreal'da bizi dünyanın dört bir yanında takip eden yapay zeka karakterlerimizin nereye gidersek gidelim bize nişan
‫alabilmelerini sağlamak için kullanabileceğimiz bazı yerleşik işlevlerdir.
‫İçeri dalalım ve odaklanmanın nasıl çalıştığını görelim.
‫Yani şu anda pek bir şey yapmıyorum.
‫Ve bence bir şey yapabilmesi için ilk başlangıç noktası dönüp oyuncumuza doğru bakması olacaktır.
‫Şimdi bunu yapmak için, yapay zekanın bazı yerleşik işlevlerini kullanabiliriz, bu da bir odak noktası belirlemektir.
‫AI kontrolüne bakarsanız ve odak ayarını ararsanız, burada ilgili birkaç yöntem vardır.
‫Biri ayarlanmış odak noktaları, diğeri ayarlanmış odak ve bunun hemen altındaki de net odak.
‫Buradaki fikir, yapay zeka denetleyicisine belirli bir noktaya odaklanmaya çalışması gerektiğini veya belirli
‫bir aktöre odaklanmaya çalışması gerektiğini söyleyebilmenizdir.
‫İkincisini seçerseniz, bir aktöre odaklanmayı seçerseniz, o aktör hareket
‫ettikçe siz de o aktöre odaklanmaya devam edersiniz.
‫Oysa belirli bir noktaya odaklanmayı seçerseniz, o noktaya odaklanmaya devam edersiniz.
‫Ancak bu nokta bir aktörün konumuysa, aktör hareket ettiğinde bu nokta güncellenmez.
‫Yani tipik olarak odak noktaları dünyada sabit olan şeyler içindir, hareket eden şeyler için aktörler bu tür
‫bir anlam ifade eder.
‫Ve sonra burada bize bir şeye odaklanmayı bırakmamız gerektiğini söyleyen net odak fonksiyonumuz
‫var.
‫İşte böyle çalışıyor.
‫Bir odak belirlersiniz, bir odağı temizlersiniz.
‫Şimdi burada birazdan değineceğimiz bir öncelik değişkeni var.
‫Ancak buradaki fikir, farklı öncelik seviyelerine sahip olmanızdır.
‫Burada, odağı ayarla ve odak noktasını ayarla seçeneklerinin varsayılan olarak oyun olarak ayarlandığı bir enumumuz var.
‫Bu enumun tanımına bakacak olursak, varsayılan bir hareket ve oyun olduğunu ve bunların temelde öncelik sırasına
‫göre listelendiğini görebilirsiniz.
‫Bu yüzden oyun en yüksek önceliğe sahip olacaktır.
‫Bir şeyi oyun olarak ayarlarsanız, bakacağı şey de o olacaktır.
‫Oynanış önceliğini temizlediğiniz için oynanış ayarlanmamışsa, nereye gittiğine
‫bakacak ve hiçbir yere hareket etmiyorsa, sadece uzakta bir yerde olabilecek varsayılan önceliğe
‫bakacaktır.
‫Dolayısıyla, devriye gezme davranışına sahip bir gardiyanınız varsa, oraya vardığında bir sonraki hareket edeceği
‫yere bakmayı varsayacaktır.
‫Bakması için varsayılan bir nokta belirleyebilirsiniz.
‫Yani, bilmiyorum, belki de kendi bölgesine giriş yoluna ya da buna benzer bir şeye bakıyordur.
‫Her neyse, önceliklerin hepsi bununla ilgili.
‫Dediğim gibi, bunları çok fazla kullanmamız gerekmeyecek çünkü çoğunlukla bu oyun
‫işlevselliğini "Hey, şurada ilginç bir şeyler oluyor" demek için kullanacağız.
‫İşte oyuncu, o yüzden devam edip ona bakalım.
‫Yapacağımız ilk şey, odağı Oyuna Başla'ya ayarlayabilmek için AI denetleyicimize bir
‫oyuna başlama uygulamak olacak.
‫Bu sadece bize bu fonksiyonun nasıl çalıştığını göstermek için olacak.
‫Dolayısıyla, muhtemelen daha önce de gördüğümüz gibi, Begin Play korumalı bir işlevdir.
‫Bu yüzden korumalı bir bölüm oluşturmamız gerekiyor ve ardından sanal boşluğumuzun oynamaya başlamasını istiyoruz.
‫Override anahtar sözcüğünü sadece güvenlik için buraya koyacağız ve sonra devam edip C++'da
‫uygulamayı oluşturacağız.
‫Ve süper başlangıç oyununu çağırmak isteyeceğiz çünkü bu her zaman iyi bir uygulamadır çünkü aksi takdirde planlarda
‫işler ters gider.
‫Bunu yapmayı unutursanız, bir başlangıç oyunu oluşturduktan sonra planlarla ilgili bir sorun yaşarsanız, super'e çağrı
‫yaptığınızı kontrol ettiğinizden emin olun.
‫Ve bu noktada, yapmak istediğimiz şey piyon aktörünü ele geçirmek ve odağı ona ayarlamaktır.
‫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
‫oynanış istatistiklerini bulmak için arama yaparsanız, bunun kismet ileri eğik çizgi oynanış istatistikleri altında
‫olduğunu görebilirsiniz.
‫Bu yüzden atıcı I kontrolörü CP'ye geri döneceğiz ve bunu dahil edeceğiz.
‫Yani hash include ve sonra kismet forward slash gameplay statics olacak ve sonra U gameplay statics'imizi
‫yapabilmeliyiz ve buradan çok yararlı bulduğum bir fonksiyon kullanmalıyız, get player pawn, bir oyuncu
‫piyonuna bir işaretçi olarak dönecek.
‫Ve bunu bir dünya bağlamı nesnesi ve oyuncu indeksi alarak yapar.
‫Bizim durumumuzda sıfır oyuncuyu bulacağız.
‫Hadi bir piyon oynayalım ve bir dünya kuralım.
‫Ve sonra sıfır indeksini arayacağız ve bunu bir değişkene, bir piyona kaydedeceğiz.
‫Hangi oyuncu olacak?
‫İşte biz de buna odaklanmak istiyoruz.
‫Yani odağınızı belirlemeniz için meydan okuma zamanı.
‫Az önce oyun statiği fonksiyon çağrımızı kullanarak elde ettiğimiz oyuncuyu kullanın, ayarlayın, odaklayın ve farklı
‫karakterlerimizin etrafında hareket edip etmediğinizi görmek için dünyada test edin.
‫Seni takip edecekler mi?
‫Bakışları sizi takip edecek mi?
‫Videoyu duraklatın ve öğrenin.
‫Tamam.
‫Tekrar hoş geldiniz.
‫Umarım çok zor olmamıştır.
‫Odağı ayarla dememiz gerekir çünkü odağı ayarla bir ebeveyn üzerindedir.
‫Burada herhangi bir işaretçi bulmak zorunda değiliz.
‫Odaklanıyoruz ve elimizde ne var?
‫Temel olarak sadece aktörü koymamız gerekiyor çünkü öncelik zaten varsayılan olarak oyuna ayarlanmış
‫durumda, zaten istediğimiz de buydu, bu yüzden sadece oyuncu piyonumuzu geçirebiliriz ve odaklandığımız kişi
‫o olmalıdır.
‫Öyleyse devam edelim ve inşa edelim.
‫Bu iş bittikten sonra Unreal'a geçelim ve oynayalım.
‫Bazı nedenlerden dolayı burada hala sinir bozucu bir yumurtlama noktası var.
‫Devam edip bunu silelim ve göz karakterimizin yakınında ortaya çıktığımızdan emin olalım.
‫İşte başlıyoruz.
‫Gidip bir bakalım, bu karakterin etrafında biraz dolaşalım ve anında piyonum nereye götürürse
‫götürsün piyonumla yüzleşmeye döndüğünü görebiliyorum.
‫Yani bu, bazı yapay zekaların başlangıcıdır.
‫Çok fazla olmadığını biliyorum, ancak bir sonraki derste bunu daha da derinleştirmek için çalışacağız.
‫Orada görüşürüz.