Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
İki Kamera Arasında Geçiş Yapmak
#1

Merhabalar, burada ve Discord kanalında gördüğüm en çok sorunlardan biri de iki kamera arasında geçiş yapmak ve smooth (pürüzsüz) bir geçiş sağlamak. Bu geçişlerin farklı versiyonlarını da göstereceğim. Smooth geçişler sırasından Timeline ve Lerp anlatımlarıyla olacaktır. 

Bu ders kullanıcın temel blueprintler bilgisi olduğunu varsayıyor.

1. Karakteri Third Person Kamera Açısı ve First Person Kamera Açısı Arasında Geçiş Sağlamak

Karakter Blueprints içerisinden +Add Component ile Spring Arm (CameraBoomFP) ve Camera ekleyeceğiz. Daha sonrasında Camera Spring Arm içerisine, Spring Arm'ı ise Mesh içine atacağız çünkü head üzerinden oynatacağız. Head socketine eklememizin nedeni True First Person olması yani en gerçek birinci şahıs görüntüsünü elde etmiş olacağız. CameraBoomFP Target Arm default kısmı 300 fakat biz 0 getireceğiz çünkü First Person kamera için Camera ile Spring Arm arasında mesafe olmasını istemiyoruz.

PCfATw.gif  IiYcsc.gif

Daha sonrasında Follow Camera'nın yani Third Person kameranın Auto Active kısmını False yapıyoruz. 'C' tuşuna her basışta kameralar arasında dönüşümlü olarak kullanılan FlipFlop isimli node kullanarak kontrol ettiğimi görebilirsiniz. Bunun yerine OnBeginOverlap tetikleyicilerle veya Custom Event'la bile kullanılabilir.

5q5sVz.png

6H4LD1.png

Sonuç:

Z9QbJ0.gif


2. Karakteri Third Person Kamera Açısı ve First Person Kamera Açısı Arasında Pürüzsüz Geçiş Sağlamak.

İlk yaptığımız kamera geçişinde anında kamera değişikliği olacaktır fakat şimdi yapacağımızda hareketli ve pürüzsüz (smooth) bir geçiş olacaktır. Timeline ve Lerp kullanımını göreceğiz.

Not: Blueprint esnasında tek bir kamera kullanılmıştır fakat siz üst kısımdaki sistem ile bir kullanabilirsiniz. Pürüzsüz geçiş sağlandıktan sonra diğer kamerayı aktif ederek onu da kullanabilirsiniz.

'C' tuşuna her basışta kameralar arasında dönüşümlü olarak kullanılan FlipFlop isimli node kullanarak İlk Timeline'nımıza bağlıyoruz. First Person kamera açısına geçtiğimizden Target Arm Length 0 olmak zorundadır. 

Timeline ayarlarımızın genel mantığı şöyledir. Bir Float track oluşturuyoruz ismi NewTrack_9 fakat siz istediğiniz ismi koyabilirsiniz. Length uzunluğumuz 1 saniye ve 2 adet key ekliyoruz. Time=Zaman, Value=Değer. İlk key de Time 0 ve Value 300 olacak ikinci key de ise Time 1, Value 0 olacak. Burada yaptığımız Time 0 yani 0. saniyede değer 300 yani Target Arm Length default değeri. 2. key de ise Time 1 yani 1. saniyede değeri sıfıra düşürüyoruz. Not: Eğer Time'ı uzatırsanız o kadar yavaş geçiş olacaktır.

YnLfdh.gif

CameraBoom (SpringArm) ile Set Target Arm seçiyoruz ve Timeline da oluşturduğumuz New Track kısmını Target Arm Length'in input kısmına bağlıyoruz. Daha sonra bir Timeline daha oluşturuyoruz bu Timeline ise kameranın lokasyonunu lerp ile pürüzsüz şekilde değiştirmemizi sağlayacak. 

2. Timeline ayarları ise yine Float Track ekliyoruz ve ilk key 0. saniyede 0 değerinde Time=0, Value=0. İkinci key 1.saniye 1 değerinde Time=1, Value=1. Length yine 1 değerinde çünkü 1 saniyede gerçekleşmesini istediğimden dolayı. Not: Length değeri genel olarak en son Time değerini alması gerekir yoksa belirlediğiniz değerde timeline sona erecektir.

Oluşturduğumuz Timeline'da bulunan New Track float kısmını Lerp (Vector) isimli node Alpha kısmına bağlıyoruz. Lerp'de bulunan A kısmı CameraBoom (Spring Arm) bulunduğu mevcut lokasyon (location) değeri çünkü diyoruz ki A lokasyonundan B lokasyonuna git. B kısmı ise karakterimizin kafasının bulunduğu kısımı yani kameranın, benim karakterim X ekseninde 30, Y ekseninde 0 ve Z ekseninde 60 değerinde ki bir noktaya denk geliyor. Bu değeri de girdikten sonra Lerp (Vector) isimli node Return Value kısmını CameraBoom'dan çektiğimiz SetRelativeLocation isimli node New Location kısmına bağlıyoruz. Artık CameraBoom lokasyonu belirlediğimiz noktalarla (A ve B) ilerlemiş olacak. 

C tuşuna tekrar bastığımız da ise First Persondan Third Person haline dönmesini istiyorsak FlipFlop A çıkısındakileri kopyalayıp B çıkışına yapıştırmalıyız. Bazı değişiklikler yapmamız gerekiyor onlar ise şunlardır; ilk Timeline'ı Reverse veya Reverse from end ile çalıştırmalıyız çünkü Time 0 da Value 300 iken ve Time 1 de Value 0 iken Reverse dediğimiz zaman tersini alacaktır ve 1. saniyede 300 olacaktır. Lerp kısmıda tam tersi şeklinde olmalıdır çünkü First Persondan Third Person bakış açısına geçmiş olacağından Kafa noktasında olan kısmı tekrardan X:0 Y:0 Z:0 çekmemiz gerekiyor.

Not: Lerp node birden çok değişik versiyonları vardır. Lerp (Vector), Lerp (Rotator), Lerp (Float) vb gibi fakat hepsi aynı mantık çerçevesinde çalışır.


roKPWm.png

Sonuç: 

Z9QbJz.gif

3. Karakter ve Level Üzerindeki Kamera Arasında Pürüzsüz Geçiş Sağlamak.

Haritamıza bir kamera atıyoruz ve istediğimiz gibi konumunu ayarlıyoruz. Daha sonrasında üstüne tıkladığımız şekilde Level Blueprint içerisine giriyoruz. Event Graph kısmında boş bir yere sağ tıklıyoruz ve referansı çağrıyoruz.

XUrjuC.png

MKzQsN.png

'C' tuşuna her basışta kameralar arasında dönüşümlü olarak kullanılan FlipFlop isimli node kullanarak A çıkışına Get Player Controller ile Set View Target with Blend çekiyoruz. New View Target kısmına ise referansını çektiğimiz level içerisindeki kamerayı bağlıyoruz. Blend Time size kalmış ne kadar sürede geçiş sağlamasını istiyorsanız o değeri girebilirsiniz. Eğer 0 girerseniz direkt bir geçiş sağlayacaktır. Blend Func. kısmında ise VTBlend Ease in Out bence en iyi smooth sağlamakta ve Blend Exp float değerini kullanabilirsiniz. B çıkışına ise Pawn'a dönüşünü sağlayabilirsiniz. Alternatif olarak Get Player Character ile Cast to CharacterBP seçtiğiniz ve bağladığınız zamanda aynı çözüme ulaşırsınız.

g3WF7O.png

Sonuç:

lOrarl.gif

Umarım soranlar ve kamera geçişini anlamayanlar için yararlı bir ders olmuştur.
Ara
Cevapla
#2
ozzy çoook teşekkür ederim. Gerçekten çok faydalı bir paylaşım oldu. İhtiyaç duyduğum bir konuydu doğrusu. Benzer bir şekilde ili konu hakkında da böyle ders hazırlarsan emin ol teşekkürlerim katlanarak artacak. 

İlki bir kapının açılıp kapanmasını sağlamak. Aynı zamanda yani aynı kapının istendiğinde sabit olan kısımlarıyla birlikte rengini değiştirmek. Olayı kapı olarak değil kutu olarak da düşünebilirsin. Kutunun kapağını açmanın yolunu biliyorum. Renk değiştirmenin de yolunu biliyorum. Ama ikisini aynı nesne üzerinde yapamıyorum. Mesela kutu hareket için actor kullanıyorsam bu actor sadece bir işi yapabiliyor. İkincisini yaptıramadım.

Diğeri ile bunların mobil sistemde kullanılabilmesi için butonlara bağlanması. Bu konuda bir arkadaş bazı bilgiler vermişti ama denemeye fırsatım olmamıştı. 

Umarım bu dersleri de en kısa zamanda okuruz.

Saygılar derin muhabbetler.
Ara
Cevapla
#3
Ellerinize sağlık (doğru bir kullanım oldu mu emin değilim), harika bir rehber olmuş. Bu tarz shooter oyunları üzerinde çalışan insanların göz bebeği olabilecek kadar mükemmel hazırlanmış. Teşekkürler!
Yarının korkusuyla bugünü nasıl yaşarsın?
Ara
Cevapla
#4
(29-01-2018, Saat: 08:02)yılmaz hoca Adlı Kullanıcıdan Alıntı:  ozzy çoook teşekkür ederim. Gerçekten çok faydalı bir paylaşım oldu. İhtiyaç duyduğum bir konuydu doğrusu. Benzer bir şekilde ili konu hakkında da böyle ders hazırlarsan emin ol teşekkürlerim katlanarak artacak. 

İlki bir kapının açılıp kapanmasını sağlamak. Aynı zamanda yani aynı kapının istendiğinde sabit olan kısımlarıyla birlikte rengini değiştirmek. Olayı kapı olarak değil kutu olarak da düşünebilirsin. Kutunun kapağını açmanın yolunu biliyorum. Renk değiştirmenin de yolunu biliyorum. Ama ikisini aynı nesne üzerinde yapamıyorum. Mesela kutu hareket için actor kullanıyorsam bu actor sadece bir işi yapabiliyor. İkincisini yaptıramadım.

Diğeri ile bunların mobil sistemde kullanılabilmesi için butonlara bağlanması. Bu konuda bir arkadaş bazı bilgiler vermişti ama denemeye fırsatım olmamıştı. 

Umarım bu dersleri de en kısa zamanda okuruz.

Saygılar derin muhabbetler.

Teşekkür ederim. İstediğiniz dersi tam anlayamadım. Hem kapı açılma hem de kapının materiallerini widget yardımı ile değiştirmek mi istiyorsunuz ?

(29-01-2018, Saat: 10:26)theysfkaan Adlı Kullanıcıdan Alıntı:  Ellerinize sağlık (doğru bir kullanım oldu mu emin değilim), harika bir rehber olmuş. Bu tarz shooter oyunları üzerinde çalışan insanların göz bebeği olabilecek kadar mükemmel hazırlanmış. Teşekkürler!

Teşekkür ederim umarım faydalı olur.
Ara
Cevapla
#5
Teşekkürler çok başarılı ve güzel bir anlatım
Ara
Cevapla
 


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Rainbow Oyunlarda ara sahne veya kamera ile sinematik yapımı! ShaNexx 0 347 10-08-2018, Saat: 05:41
Son Yorum: ShaNexx
  Kamera Lens Efekti - Su Damlaları Phyrexian 3 887 22-09-2015, Saat: 15:25
Son Yorum: Phyrexian
  Unreal Engine 4 Türkçe Videolu Ders | Blueprint Kamera Değişimi (TPS'den FPS Geçiş) | Phyrexian 1 1,686 07-07-2015, Saat: 18:39
Son Yorum: feridfm

Hızlı Menü:


Unreal Engine Türkiye

This forum is only for fans and support. It has nothing to do with Epic Games.

Bu site sadece fan ve destek amaçlıdır. Epic Games ile bir ilgisi yoktur.