‫Merhaba.
‫Hoş geldiniz.
‫Bu derste, bir denetleyici kullanarak hareket edebilmemiz için denetleyici
‫hareketini ekleyeceğiz, burada gördüğünüz şey de bu.
‫Bunu, yukarı bakma oranı ve sağa bakma oranı için farklı bir eksen seti kullanarak yapacağım ve bunun neden gerekli
‫olduğunu göreceğiz.
‫Hadi içeri dalalım ve nedenini öğrenelim.
‫Bu yüzden denetleyiciyi kullanarak sahnemizde hareket edebilmek istiyorum.
‫Oyun modunda değilken bunu zaten yapabiliyorum.
‫Bu nedenle, sağ çubukla kaydırma ve sol çubuğumuzla sola ve sağa hareket
‫etme ile aynı tür hareketi yapabilmek istiyoruz.
‫Ayrıca yukarı ve aşağı da gidebiliriz.
‫Ama bu rakibimizin yapabileceği bir şey değil, çünkü o uçan bir piyon değil.
‫Yapmak isteyeceğimiz şey, her şeyden önce, hareketin haritasını çıkarmaktır.
‫Tek yapmamız gereken proje ayarlarımıza gitmek, girişin olduğu yere gitmek, motor girişi ve ileri hareket
‫eksenimiz var ve ayrıca sağ hareket eksenimiz var.
‫Ve bu, W ve S'nin yanı sıra başka bir eşleme eklemek için oldukça basittir, gamepad'imizi ekleyebiliriz.
‫Gamepad'in altına bakarsak, ileriye doğru hareket etmek için y eksenini istediğimiz sol başparmak çubuğunu görebilirsiniz.
‫Sağa hareket için, yine gamepad'i ekleyeceğiz ve bu gamepad, hala sol çubuk.
‫Ancak bu kez x ve y eksenlerini kullanıyoruz ve bunun doğru hareket türü olup olmadığını görebiliyoruz.
‫O yüzden devam edin ve oynat tuşuna basın.
‫Bunun için kısayol olarak alt p'yi kullanıyorum.
‫O zaman sol ve sağ ileriye doğru çalışır ve geriye doğru beklediğimiz gibi çalışır.
‫Ama belli ki dönmek işe yaramıyor çünkü henüz bunun haritasını çıkarmadık.
‫O zaman bir deneyelim.
‫Ayarlara, proje ayarlarına ve girişe tekrar gidersek, bir göz atalım, bakalım.
‫Şu anda y faresini kullanıyoruz.
‫Buraya eklemenin nesi yanlış olabilir?
‫Örneğin, gamepad, sağ çubuk ve bu sefer y ekseni?
‫İlk denemede gidip biraz oynayabiliriz.
‫Bu aslında iyi gibi görünebilir.
‫İçeri giriyoruz ve hareket edebildiğimizi görüyorsunuz.
‫Evet, tabii.
‫Biraz hızlı ama iyi sayılır, değil mi?
‫Bu iyi değil mi?
‫Pek sayılmaz.
‫Bunun nedeni de nihayetinde kare hızları ve bu eksenlerin nasıl çalıştığına dayanıyor.
‫Saniyede 30 kare hızında bir oyun oynarken, faremizi ekranda soldan sağa doğru eşit
‫bir hızda hareket ettirdiğimizde, eksen değerlerinin on, sonra on, sonra on gibi
‫bir şey olduğunu görebiliriz.
‫Bu da bize farenin her seferinde on birim sağa hareket ettiğini ve bunu her karede aynı şekilde
‫yaptığını söylüyor.
‫Kare hızımızı iki katına çıkarırsak ne olur?
‫Birdenbire fare hala aynı hızda hareket ediyor çünkü oyuncu elini hala aynı hızda
‫hareket ettiriyor.
‫Ancak kareleri daha sık gösterdiğimiz için, daha sık tik işaretleri alıyoruz, o zaman ne olacak,
‫eksenlerden gelen girdi aslında her beşte beş veya beşte beş veya beş aldığımızda yarıya
‫inecek.
‫Bu harika, çünkü bu, hızlı veya yavaş bir bilgisayara sahip olsak da ekranımızda
‫aynı hızda kaydırma yapacağımız anlamına geliyor.
‫Faremizi belirli bir miktarda hareket ettirirsek, aynı miktarda hareketi fark edeceksiniz, ki istediğimiz
‫de bu.
‫Şimdi kontrol cihazına baktığımızda işler biraz değişiyor, diyelim ki analog kontrol cihazımızla
‫sağa doğru tam gaz gidiyoruz ve saniyede 30 kare.
‫Bir tane alırız, sonra bir tane, sonra bir tane.
‫Mantıklı, değil mi?
‫Peki ya saniyede 60 kare ise?
‫Hala bir tane, sonra bir tane, sonra bir tane, sonra bir tane alıyoruz.
‫Ama daha fazla çerçeve aldığımız için daha fazla alıyoruz.
‫Bunu doğrudan piyonunuzun hareketini etkilemek için kullanırsanız, iki kat daha hızlı, iki kat daha yüksek kare
‫hızında hareket ettiğini göreceksiniz, istediğimiz bu değil.
‫Yani burada yapmak istediğimiz şey kare hızından bağımsızlık sağlamak.
‫Bunu yapmak için delta zamanı ile çarpabilmemiz gerekir.
‫Dönüş hızını modüle etmemize yardımcı olması için giriş eksenini kullanmak istiyoruz.
‫Yani bunu biraz düşünmek gerekiyor.
‫Ama demek istediğim, rotasyon oranı değişkeni gibi bir şeye ihtiyacımız var.
‫Bunun için yeni bir özellik oluşturacağız, bu özellik herhangi bir yerde bir düzenleme olacak
‫ve bunun bir kayan değer olmasını sağlayacağız ve dönüş oranı olacak.
‫Şimdi hem yukarı hem de sol ve sağ için aynı dönüş oranını kullanacağım.
‫Devam edebilir ve her ikisi için de ayrı bir değişkene sahip olabilirsiniz.
‫Ve burada iyi bir rotasyon oranının ne olacağını gerçekten bilmiyorum.
‫Ben sadece uçan bir gaz hex vereceğim.
‫Burada söz konusu olan birimlerin ne olduğundan emin değilim, bu yüzden sadece on diyeceğim.
‫Ama göreceğiz.
‫Belki de bu çok hızlı.
‫Belki de bu çok yavaş.
‫Bunu planımızda ayarlayabiliriz, böylece devam edebilir ve kaydedebiliriz.
‫Bu arada, C++'yı değiştirmek için C++ Alt O'ya gideceğim ve hareket arasında ayrım yapabilmemiz
‫için yeni bir eksen türüne sahip olmak isteyeceğiz.
‫Doğru, fare olan, harekete karşı doğrudan bir hareket.
‫Değil mi?
‫Daha doğrusu üzgünüm, bakış.
‫Doğru, bu da oran.
‫Bu yüzden proje ayarlarımıza giderek ve bu gamepad sol başparmak çubuğunu hareketle eşleştirmek
‫yerine bunu yapacağız.
‫Doğru, pardon, sol başparmak çubuğu değil, sağdaki yukarı bakmak için eşlenmiş.
‫Bu hatayı yapmaya devam ediyorum, bunu o eksenden kaldırın ve görünüm olacak yeni bir eksen
‫ekleyin.
‫Yukarı.
‫Doğru.
‫Bu da gamepad'imizi alacak, değil mi?
‫Yani bir gamepad, doğru.
‫Y ekseni çünkü bu bir yukarı bakıştır ve pozitif olanın kullandığımız eksen olması gerektiğini söylüyoruz.
‫O halde yapabileceğimiz şey, bunu eşlememiz gerektiği ve doğrudan reklam denetleyicisine eşlemek istemediğimizdir.
‫Çünkü oranları hesaplamak ve bu oranları kare hızından bağımsız hale getirmek için biraz matematik yapmamız
‫gerekiyor.
‫Yapacağımız şey alt zero'ya gitmek ve kendimize bir look up oluşturmak, ki zaten elimizde
‫var.
‫Ve bunu sağa bak olarak oluşturacağım ve devam edip bu kontrol kaymasını oluşturacağım.
‫P Ve uygulama eklentimi kullanıyorum.
‫Devam edelim ve bir oran uygulaması yapalım.
‫Bir eksen değeri geliyor.
‫Bu harika.
‫Daha sonra, oyuncu giriş bileşenini kurarken çağırdığımız şeyin bu olduğundan emin olmak istiyoruz.
‫Burada yeni bir satır oluşturalım ve görünümü çoğaltalım.
‫Pekala, ben buna bak diyeceğim.
‫Sağ, bu şekilde ve ardından kopyalayıp yapıştırın.
‫Arama oranımızı çağıracak fonksiyona tam nitelikli referans.
‫Günün sonunda esasen çağırmak istediğimiz şey kontrolör girişi, perde, kontrolör, perde girişi
‫eklemektir.
‫Ancak bunu birkaç şeyle çarpmak istiyoruz.
‫Dolayısıyla erişim değerimiz sıfır ile bir arasında bir değer olarak gelir.
‫Eğer bunu çarparsak, yani eksen değeri dönme hızı ile çarpılırsa.
‫O zaman elde edeceğimiz şey bir hızdır, ancak istediğimiz şey aslında bir mesafedir.
‫Faremizi hareket ettirdiğimizde, her karede belirli bir mesafede hareket etmemiz gibi.
‫Gelen buydu.
‫Bu hızı mesafeye dönüştürmek istiyoruz.
‫Çok eskiden, puslu bir matematik dersinde, hızdan mesafeye ulaşmak için zaman miktarıyla çarpmamız
‫gerektiğini hatırlarsanız.
‫Bunu da Delta saniyelerimizi dünyadan alarak yapıyoruz.
‫Şimdi Delta saniye nedir?
‫Bu, son kare için geçen süredir.
‫Yani kare hızının tersi gibi bir şey.
‫Bize bir karenin ne kadar sürdüğünü söylüyor, bu harika çünkü bu hareketi uygulamamız
‫gereken süre bu kadar.
‫Yani düşünecek olursanız, bir hızımız var ve bu hızı uygulamamız gereken
‫bir süre var.
‫Bu bize esasen kontrolör perde girişimize uygulamak istediğimiz bir hareket miktarı verir.
‫Bizim istediğimiz de bu.
‫Her şeyden önce Dünya'yı alın, çünkü seviyeyi almak istiyoruz, etrafımızdaki dünyayı alacağız.
‫Daha sonra ok fonksiyonunu kullanarak Delta saniye değerini elde ederiz, bu da bize son karede geçen süreyi
‫elde etmek istediğimizi söyler, bu da bize o andaki kare hızımızın yaklaşık
‫değerini verir.
‫Şimdi aynı şeyi neden hareket girdisi için yapmadığımızı merak ediyor olabilirsiniz ve bunun nedeni,
‫hareket girdisinin, orada bir reklam girdisi yaptığınızda, bunun gerçek bir hareket miktarı
‫değil, bir oran olduğunu varsaymasıdır.
‫Yani bu hesaplamayı bizim için zaten yapıyor, esasen kaputun altında, dosyaları kaydedin, unreal'e gidin ve
‫derleyin ve bunlardan herhangi birinin buna değip değmeyeceğini görün.
‫Şimdi oyuna geçelim ve kumanda girişimi kullanmaya çalışacağım.
‫İşte oldu.
‫Oldukça yavaş bir şekilde inip çıkıyoruz.
‫Ancak bu delta süresini kullandığımız için bunun kare hızından tamamen bağımsız olacağını umuyoruz.
‫Bu yüzden sizden yapmanızı istediğim şey, devam etmeniz ve doğru oranı uygulamanız.
‫Bu nedenle, yukarı bakmak için yaptığı gibi sağa bakmak için de aynı yöntemi tekrarlayın ve hızı çok yavaş gitmeyecek şekilde
‫ayarlayın ve aslında seviye etrafında hareket etmek için kullanabilirsiniz, videoyu duraklatın ve
‫deneyin.
‫Tamam.
‫Tekrar hoş geldiniz.
‫İlk adım olarak proje ayarlarımızda yeni bir eksen eşlemesi oluşturduk.
‫Bunu tekrar yapmamız gerekecek, bu sefer görünüş için.
‫Değil mi?
‫Doğru.
‫Ne kadar da ağız dolusu.
‫Sonra da gidip gamepad'i alacağız.
‫Bu kez sağ ve x ekseni, eşleyeceğimiz eksen budur.
‫Ve sonra bu sefer atıcı başlık dosyamıza gideceğiz.
‫Arama oranını çoğaltacağız.
‫Sol tarafta nerede olduğumu görebilmeniz için size dosyaları göstereyim.
‫Dolayısıyla, yukarı bakma oranı yerine doğru bakma oranı
‫kontrolü shift p create uygulamasına sahip olacağız ve bizi yine bir hızdan taşınan mesafe
‫miktarına götüren aynı çarpma ile hemen hemen aynı koda sahip olacağız.
‫İşte böyle.
‫Doğru, doğru.
‫Bu nedenle, denetleyici aralığı eklemek yerine, bu kez girişinizi yapmamız gerekir ve doğru bakma oranının
‫ayarlanmış oyuncu girişi bileşenimizden çağrılması veya eksen gerçekten manipüle edildiğinde
‫çağrılması gerekir.
‫Bu yüzden buraya arama oranı yerine başka bir eksen ekleyeceğiz.
‫Bu doğru oran olacak.
‫Ve sonra bu referansı işleve kopyalamak isteyeceğiz, önce ve işaretini ve ardından karaktere tam nitelikli
‫sorunu hatırlayarak.
‫Kolon.
‫Colon, sağa bak.
‫Devam edelim ve hem bunu hem de dosya başını kaydedelim.
‫Projeye geri dönün ve burada derle düğmesine basarak bıraktığım play'den çıkın.
‫İçeri dalıp etrafta bir oyun oynayabilmeliyiz.
‫Evet.
‫Yukarı ve aşağı yavaş çalışıyor, sol ve sağ.
‫Beklediğim gibi gitmiyor.
‫Proje ayarlarımızı kontrol edelim.
‫Yani bizim bakışımız.
‫Doğru.
‫İyi görünüyor.
‫Başparmak çubuğu sağa.
‫Parmak çubuğu x ekseni.
‫Şunu kontrol edelim.
‫Bunların hepsi C++ doğru bağlama ekseni görünümüne giriyor.
‫Doğru, doğru.
‫Girişinizi olması gerektiği gibi çağırmak için doğru oran işlevini veya dikişlerini çağırıyor.
‫Dana, orada ne oldu?
‫Sadece yeniden derle tuşuna basıp tekrar oynat tuşuna bastım.
‫Bazen bunu yapmak zorundasınız.
‫Ama şimdi sağa sola bakma, yukarı ve aşağı bakma çok çok yavaş bir hızda da olsa çalışıyor.
‫Bu yüzden karakter planımızla biraz oynayacağız.
‫Gidip VP nişancı karakterimizi bulalım.
‫Planını aç.
‫Sonra aşağıya inelim ve sadece on ile çarpacağım dönüş oranını bulalım.
‫On kat daha hızlı gitmeyi deneyin, o zaman arada bir yerde mantıklı bir değer bulacağız.
‫Bu her zaman deneyebileceğiniz ve değerleri bulabileceğiniz bir yoldur, sadece gidip önce büyüklük sırasını değiştirmektir.
‫Bu çok daha doğru bir yaklaşım.
‫Belki biraz fazla hassas, bu yüzden belki de bunu yarı yarıya azaltabilirim.
‫Bu sefer 50 tane dene.
‫500 değil, 50.
‫Şunu bir deneyelim.
‫Oynat tuşuna bas ve çubuğumu hareket ettir.
‫Bu çok daha doğal hissettiriyor.
‫Bu ikisinin arasında bir yere gitmek isteyebilirsiniz.
‫Bu yüzden ikisinin arasında git.
‫Yine, 170'e kadar çıkmak yerine bu sefer yaklaşık 70'in doğru oran olabileceğini söyleyeceğim.
‫Bakalım altını bulmuş muyuz?
‫Evet, sanırım öyle.
‫Sanırım 70 benim hareket etmem için doğru oran olacak.
‫Açıkçası, bu genellikle oyunların ayarlarda ince ayar yapmanıza veya oyuncunun ince ayar yapmasına izin verdiği türden
‫bir şeydir.
‫Bunu araştırmayacağız.
‫Bu, bu bölümün kapsamı dışındadır, ancak potansiyel olarak kendi oyunlarınızdaki kullanıcılara göstermek
‫isteyebileceğiniz bir şeydir.
‫Güzel.
‫Bu derste kontrolör girişi ile fare girişi arasındaki farkı ve mutlak hareketler yerine
‫oranlarla nasıl başa çıkmamız gerektiğini gördük.
‫Bir sonraki derste, sürekli ima ettiğim üçüncü şahıs kamerasına bakacağız.
‫Orada görüşürüz.