‫Merhaba ve tekrar hoş geldiniz.
‫Şimdi bu videoda, tankımızı nasıl hareket ettirebileceğimizi konuşmaya başlayacağız.
‫Yani tankı hareket ettirmek için bir çeşit ofset ve gerçek dışı bir motor eklememiz gerekecek.
‫Bir ofset ekleme söz konusu olduğunda, ofseti yerel uzayda mı yoksa dünya uzayında mı yapacağımıza
‫karar vermemiz gerekir.
‫Şimdi bu iki şey arasındaki farkı tartışalım.
‫Şimdi, burada editörde -- tankını seçtim ve bunu seçer seçmez, bir gizmo olduğunu
‫fark edeceksiniz.
‫Bu şeyin adı bu. Gizmo.
‫Üç oku var ve her biri farklı renkte.
‫Şimdi, eğer fark etmediyseniz, ekranın sol alt kısmında daha küçük bir aygıt daha var.
‫Bu da seçtiğimiz aktörün üzerindeki gizmo'ya benziyor.
‫Yani herhangi bir aktörü seçersem, her zaman bu gizmoyu alırız.
‫Ve elbette, çevirme modundan döndürme moduna ve ölçekleme moduna geçtiğimizde gizmo değişir.
‫Görüntü alanının sağ üst köşesindeki en soldaki simgeden veya W tuşuyla erişebileceğimiz çevirme
‫özelliğinde olduğumuz sürece, gizmo üzerindeki oklardan birini sürükleyerek nesneleri taşıma veya çevirme olanağına
‫sahibiz.
‫Ve renkler eksenlere karşılık gelir kırmızı x ekseni yeşil y ekseni ve mavi z eksenidir.
‫Şimdi, görünümümüzü döndürür ve farklı bir yöne bakarsak, gizmo'nun hala aynı orijinal
‫yönü gösterdiğini göreceğiz.
‫Ve biz dönerken, görüntü alanının sol alt tarafındaki gizmo dönüyor çünkü dünyanın
‫yönü değişmiyor.
‫Şimdiye kadar çok iyi.
‫Şimdi baktığımız şey dünya uzayı yönleridir, ancak dünyadaki her aktör için yerel bir yön
‫vardır.
‫Dünyaya benzeyen ve açılır pencerede döngüler yazan bu simgeye tıkladığımızda, transform gizmo'nun
‫sistemleri dünya ve yerel uzay arasında koordine ettiğini görebiliriz.
‫Burada bir dünya gördüğümüzde, bu dünya uzayına baktığımız anlamına gelir, ancak
‫üzerine tıklarsak, şimdi bir küpe dönüşür ve şimdi seçtiğimiz belirli aktör için yerel uzaya bakarız.
‫Görüntü alanının sol alt tarafındaki gizmo bize hala dünya alanını gösteriyor.
‫Ancak bu aktörü alıp döndürme moduna geçersem ve döndürürsem, öteleme moduna geri döndüğümde,
‫gizmo'nun artık farklı bir yönü gösterdiğini göreceksiniz.
‫Aktörün kendi yerel x ekseni vardır.
‫Aktör için x eksenini ileri vektörü olarak düşünebiliriz.
‫Şimdi ekranın sol alt kısmında gizmo'nun hala aynı yönü gösterdiğine dikkat edin.
‫Ancak buradaki aktör, yani piyon tankı, kendi yerel X yönüne sahip ve farklı bir yönü işaret
‫ediyor.
‫Şimdi, buradaki küpün üzerine tıklar ve onu tekrar dünyaya çevirirsem, tankın gizmosu
‫dünya ekseni yönüyle eşleşir ve hizalanır, böylece herhangi bir aktör için dünya ve yerel uzay arasında
‫geçiş yaparak yerel yönünü dünya yönüne karşı görebiliriz.
‫Böylece, dünyamızda seçtiğimiz herhangi bir aktörün kendi yerel yönüne sahip olduğunu gördük.
‫Ve bu, buradaki resimde gösterildiği gibi dünya yönünden farklı olabilir veya olmayabilir.
‫Yani Unreal Engine'de nesneleri hareket ettirmek söz konusu olduğunda bu çok önemlidir.
‫Nesneleri hareket ettirmek için fonksiyonlar vardır ve dünya uzayı ile yerel uzayda hareket etmek
‫için farklı fonksiyonlar vardır.
‫Diyelim ki tankımız bu tarafa bakıyor ve x ekseni, burada tankın üzerine çizdiğim okla gösterildiği
‫gibi hafifçe sola bakıyor.
‫Şimdi, sol alttaki bu gizmo'ya dayanarak, dünyanın x ekseni yönünün sağa dönük olduğunu görebiliriz.
‫Yani tank dünya uzayı yönüne göre hizalanmamıştır.
‫Şimdi, bu tankı dünya uzayında pozitif X yönünde hareket ettirdiğimizi varsayalım.
‫O zaman tank sola dönük olsa bile, yine de o dünya x yönünde hareket edecek ve geriye doğru hareket
‫ediyormuş gibi görünecektir.
‫Yani istediğimiz bu değil.
‫Öte yandan, diyelim ki tankı kendi yerel alanında hareket ettirmek için tasarlanmış bir fonksiyon kullanıyoruz.
‫Bu, tankı kendi yerel X yönünde hareket ettirirsek, beklediğiniz yönde ilerleyeceği anlamına
‫gelir.
‫Bizim istediğimiz davranış da budur.
‫Şimdi Unreal Engine'de.
‫Bunu bizim için yapabilecek fonksiyonun adı Add Actor Local Offset'tir.
‫Bu fonksiyon aktörü yerel bir yönde hareket ettirir.
‫Şimdi tek bir hareket olan bir ofset uygular.
‫Esasen, ona hangi yöne ve ne kadar uzağa hareket edeceğini söyleriz ve o nesneyi bir kez hareket ettirir, bu da tankı
‫hareket ettirmek istediğimiz her karede bu işlevi çağıracağımız anlamına gelir.
‫Bu yüzden her karede bir fonksiyon çağırdığımız için onu küçük artışlarla hareket ettireceğiz.
‫Tankımızın kendi yerel X ekseninin ileri yönü olduğu anlamına geliyor.
‫Yani bu, yerel bir ofset eklediğimizde kullanacağımız eksendir.
‫İşte ADD aktör yerel ofseti için unreal engine belgeleri.
‫Bunun aktör sınıfına ait bir fonksiyon olduğunu görüyorsunuz.
‫Bu yüzden şimdi aktör yerel ofseti ekle olarak adlandırılıyor çünkü aktör sınıfında var.
‫Piyonlar bu fonksiyonu miras alır, böylece onu kullanabiliriz.
‫İşte söz dizimi.
‫Dört giriş parametresi vardır.
‫Bunlardan ilki delta konumu adı verilen bir F vektörüdür.
‫Dolayısıyla, bu aktör yerel ofset ekleme işlevine aktarabileceğimiz bir F vektörü oluşturmamız gerekecek.
‫Bu yüzden aktör yerel ofsetini eklediğimizi biliyoruz.
‫Ve nasıl çalıştığını görmek için bunu denemek istiyorum, böylece bunu tik fonksiyonunda yapabiliriz.
‫Şimdi burada tank sınıfında tic fonksiyonunun üzerine yazmıyoruz, ancak temel pong sınıfında
‫var.
‫Eğer temel gölet CP'ye gidersek burada tik fonksiyonumuz var ve burada hiçbir şey yapmıyoruz ve bu bazı
‫deneyler yapmak için mükemmel.
‫Şimdi yapacağım şey, aynen bu şekilde, add, actor, local offset yazmak.
‫Ve sağ tıklayıp tanıma git'i seçeceğim.
‫Şimdi burada aktör CP dosyasında, ADD Aktör Yerel Ofseti için bir tanımımız var.
‫Şimdi ilginç bir şeye dikkat edin.
‫Kök bileşenin null olup olmadığını kontrol eder ve null değilse, yerel ofset eklemek için bu işlevi çağırır.
‫Yani aslında yaptığımız şey kök bileşene bir ofset eklemek.
‫Ve diğer tüm bileşenler kök bileşene bağlı olduğundan, onunla birlikte hareket edeceklerdir.
‫Bu nedenle, yerel bir ofset eklediğimizde, kök bileşeni hareket ettirdiğimizi ve diğer her şeyin onunla birlikte
‫hareket ettiğini unutmamak önemlidir.
‫Şimdi, yerel ofset ekle seçeneğinin üzerine gelirsek, dört giriş parametresinin de burada listelendiğini görürüz.
‫Ve bir F vektörü olan ilki dışında, diğerlerinin varsayılan değerleri vardır.
‫Bool B süpürmesine dikkat edin, eşittir yanlış diyor.
‫Üçüncü ve dördüncü giriş parametreleri de bu varsayılan değerlere sahiptir.
‫Bu, bu fonksiyonu çağırırsak ve son üç girdi parametresi için girdi girmezsek, varsayılan olarak bu değerlere
‫ayarlanacakları anlamına gelir.
‫Şimdi aktör CP'yi kapatacağım ve burada temel pond tick işlevinde, nasıl çalıştığını görmek için her karede aktör
‫yerel ofseti ekle'yi çağırmak istiyorum.
‫Şimdi ilk giriş parametresinin bir F vektörü olduğunu biliyoruz.
‫Buna delta konumu deniyor.
‫Bu, bu fonksiyonu her çağırdığımızda eklemek istediğimiz hareket miktarıdır.
‫Bu yüzden delta konumu adında bir F vektörü oluşturacağım.
‫Yani F vektör delta konumu.
‫Şimdi bu vektörü sıfırlamak istiyorum.
‫Başka bir deyişle, tüm sıfırlarla başlatıldığından emin olun.
‫Şimdi sıfır vektör istiyorum, sıfır f geçebilirim, x, y ve z'nin hepsi sıfır f alacaktır.
‫Yani bu benim amaçlarıma gayet iyi hizmet edecek.
‫Şimdi Delta Konumu X'i alacağım ve bunu iki nokta F olarak değiştireceğim.
‫Bu şekilde Y ve Z sıfıra, x ise ikiye ayarlanmış bir vektörümüz olur.
‫Bu yüzden devam edeceğim ve Delta konumunu bir tür deneme olarak aktör yerel ofseti eklemeye geçireceğim.
‫Şimdi add actor local offset'i çağırarak ve diğer üçü isteğe bağlı olduğu için sadece ilk giriş parametresini
‫geçirerek kurtulabilirim.
‫Bunu derleyeceğim ve ne olacağını göreceğim.
‫Şimdi devam edip oynat tuşuna basarsak, birkaç şeye dikkat edin.
‫Öncelikle, bakın, kule de hareket ediyor.
‫Bunun nedeni, bunu temel piyon için tick işlevine koymamız ve bu bağların her ikisinin de temel piyondan miras almasıdır.
‫Yani aslında tüm bu göletler hareket ediyordu.
‫Ve ilginç olan şey, hepsinin kendi x ekseni yönlerinde hareket ediyor olması.
‫Bu bakış açısından her şeyin aynı anda hareket ettiğini görebiliriz.
‫Oynat seçeneğinin yanındaki açılır menüye tıklar ve simüle et seçeneğini seçersek, bu oyunu herhangi bir gölete sahip olmadan
‫oynamamızı sağlar.
‫Simüle Et'e tıklarsam, şuna bakın.
‫Her havuz kendi x ekseni yönünde hareket etmektedir.
‫Bu aslında oldukça garip ve oldukça havalı.
‫Bu da bize reklam aktörünün yerel ofsetinin nasıl çalıştığını gösteriyor.
‫Nesneleri kendi yerel yönlerinde hareket ettirir.
‫Şimdi açılır menüye tıklayıp seçili görüntü alanını seçerek simülasyon modundan çıkabiliriz
‫ve bu da normal oyun modunda oynamamızı sağlayacaktır.
‫Pekala, bunu durduracağım ve tabana geri dönebiliriz -- ve bu deneysel kodu kaldırabiliriz.
‫Devam edeceğim ve bunu tick fonksiyonundan sileceğim, böylece artık aktör yerel ofseti eklemenin nasıl çalıştığını
‫biliyoruz.
‫Şimdi Tank CP'ye geri dönelim ve burada TAŞIMA işlevine sahibiz.
‫Bu fonksiyonun her bir karede çağrıldığını ve değerin bire eşit olduğunu biliyoruz.
‫W tuşuna basıyorsak ve negatif bir ise, tuşa basıyorsak ve sıfır ise, her ikisine de basıyorsak veya
‫hiçbirine basmıyorsak.
‫Göreviniz için, aktör yerel ofseti ekleyerek tankı hareket ettireceksiniz.
‫Yani MOV fonksiyonunda delta konumu adında bir F vektörü oluşturacaksınız.
‫Şimdi X, Y ve z'yi sıfırladığınızdan emin olun.
‫Bunu, çeşitli f vektör kurucularından birini kullanmak gibi herhangi bir yolla yapabilirsiniz.
‫Şimdi tüm bileşenleri sıfırladıktan sonra, x değerini MOV işlevindeki float giriş parametresinin
‫değerine ayarlayın.
‫Bunu yaptıktan sonra, devam edin ve delta konumunu geçerek aktör ekle yerel ofsetini çağırın.
‫Videoyu duraklatın ve bunu şimdi yapın.
‫Tamam.
‫Ben de tank CP dosyasına geri döndüm.
‫Şimdi, artık bu EWI günlüğüne ihtiyacım yok, bu yüzden onu çıkaracağım ve Delta konumu adında
‫bir F vektörü oluşturacağım.
‫Şimdi F vektör kurucularından birini kullanabilirim.
‫Tüm sıfırları içeren yeni bir vektörün nasıl oluşturulacağını zaten göstermiştim.
‫Size başka bir yol göstereceğim, bu da bunu f vektörüyle, sıfır vektörüyle başlatmaktır.
‫Ve bu tam olarak göründüğü gibidir, her bileşeni sıfır olan bir vektör.
‫Bu sadece size alternatif bir yol göstermek içindir.
‫Yani bir sıfır vektörümüz var.
‫Şimdi X delta konumunu alacağım ve bunu değere eşit olarak ayarlayacağım.
‫Ve son olarak delta konumunu geçerek aktör ekle yerel ofsetini çağırabilirim.
‫Şimdi bunu derleyelim ve burada editörde, tankımı alacağım ve dünya X yönüne bakacak şekilde
‫yönlendireceğim ve sonra oynat düğmesine basabilirim ve şimdi görüntü alanına tıklayabilirim.
‫W tuşuna basarsam ileri gidiyorum ve tuşa basarsam geri gidiyorum.
‫Eğer ikisine birden basarsam, birbirlerini iptal ediyorlar ve hiç hareket etmiyorum.
‫Ve tabii ki, hiçbir şeye basmazsam, ben de hareket etmem.
‫Artık tankımız için hareket var, ancak biraz yavaş, bu yüzden bazı ayarlamalar yapmamız gerekecek.
‫Ayrıca tankımızla bu hareket mekaniğini ince ayarlamak hakkında konuşacağız.
‫Özet olarak, ADD Actor, yerel ofset ve dünya uzayı ile yerel uzay arasındaki farkı
‫öğrendik.
‫Bir sonraki videoda, tankımızla bu hareket mekaniğini mükemmelleştirmeye devam edeceğiz.
‫Yakında görüşürüz.