Unity Cinemachine ve Zaman Çizelgesi Eğitimi

Cinemachine, geliştiricilere profesyonel kamera kontrolü sağlayan ve sinematik ara sahneler oluşturma yeteneğini geliştiren bir Unity paketidir.

Bu eğitim aşağıdaki konuları kapsayacaktır:

  • Sinema Makinesi Kurulumu
  • Üçüncü Kişi Kamera Kurulumu
  • Zaman Çizelgesi Ara Sahne Oluşturma

Sinema Makinesi Kurulumu

Cinemachine'i kurmak için aşağıdaki adımları izleyin:

  • Unity'de Pencere -> Paket Yöneticisi'ne gidin

Unity Paket Yöneticisi Menüsü

  • Paketleri "Unity Kayıt Defteri" olarak değiştirin

Unity Paket Yöneticisi Kaydı

  • Listeden "Cinemachine"'yi seçin ve ardından tıklayın "Install"

Cinemachine artık kullanıma hazırdır.

Üçüncü Kişi Kamera Kurulumu

Aşağıda Cinemachine'in Sanal Kamerasını kullanarak 3. şahıs kamera kurulumunun nasıl yapılacağını göstereceğim.

Sanal Kamera, Unity kameranın hafif bir versiyonudur; kendi başına görüntü oluşturmaz, yalnızca Ana Kamera için bir referans noktası olarak kullanılır.

Bu eğitime örnek olarak, Kamera çarpışmasını ayarlamadan ve Kamerayı oynatıcı hiyerarşisi içinde hareket ettirmeden Üçüncü şahıs denetleyici kullanacağım:

Sharp Coder Video oynatıcı

Gördüğünüz gibi oyuncu hareket ediyor ancak kamera takip etmiyor.

Cinemachine'i kullanarak üçüncü şahıs kamerasını ayarlamak gerçekten çok kolaydır:

  • Yeni bir sanal kamera oluşturmak için GameObject -> Cinemachine -> Virtual Camera'ya gidin

Cinemachine sanal kamera oluştur

  • Sanal kamerayı adlandırın "TPS Camera"
  • TPS Kamera'yı seçin ve CinemachineVirtualCamera'da Follow değişkenini atayın (benim durumumda bu, bir oynatıcı hiyerarşisinin içinde yer alan ve dikey görünüm rotasyonunu temsil eden "CameraParent" nesnesi olacaktır)
  • Gövde değerini şu şekilde ayarlayın: "3rd Person Follow"
  • Etiketi Yoksay'ı "Player" olarak ayarlayın ve ayrıca oynatıcı kök nesnesini seçin ve etiketini "Player" olarak ayarlayın (oynatıcı hiyerarşisinde herhangi bir alt çarpıştırıcı varsa, bunların etiketlerini de "Player" olarak değiştirdiğinizden emin olun)
  • Sonuçtan memnun kalana kadar CinemachineVirtualCamera'da Kamera Mesafesi, Kamera Tarafı, Omuz Ofseti ve Sönümleme gibi diğer değerleri değiştirin.
  • CameraParent'in Aim değerini şu şekilde ayarlayın: "Do nothing"

CinemachineVirtualCamera bileşen değerleri

Kamera artık oynatıcıyı takip etmelidir:

Sharp Coder Video oynatıcı

Zaman Çizelgesi Ara Sahne Oluşturma

Burada Unity's Zaman Çizelgesi'ni kullanarak nasıl ara sahne oluşturulacağını göstereceğim.

Zaman Çizelgesi, geliştiricilerin kamerayı hareketlendirerek ve ayrıca mevcut animasyonları (örneğin karakter yürüyüşü) kullanarak olayları ve sinyalleri sıralı bir şekilde düzenleyerek ara sahneler oluşturmasına olanak tanıyan yerleşik bir düzenleyicidir.

Cinemachine paketi, Zaman Çizelgesi düzenleyicisine Sanal Kameralar arasında geçiş yapma yeteneği gibi birkaç ekstra seçenek ekler.

Bir ara sahne oluşturmak için aşağıdaki adımları izleyin:

  • Yeni bir GameObject oluşturun ve onu çağırın "TimelineManager"
  • Pencere -> Sıralama -> Zaman Çizelgesi'ne giderek Zaman Çizelgesi penceresini açın

Birlik Penceresi Sıralama Zaman Çizelgesi Menüsü

  • "TimelineManager" Nesnesini seçin ve Zaman Çizelgesi penceresinde, Yönetmen bileşeni ve Zaman Çizelgesi varlığı oluşturma seçeneğini görmeniz gerekir, buna tıklayın.

Cinemachine, Yönetmen bileşeni ve bir Zaman Çizelgesi varlığı oluşturur

  • Director bileşenini ve Timeline varlığını oluşturduktan sonra boş Timeline penceresini görmelisiniz (düzenleyebilmek için TimelineManager nesnesinin seçildiğinden emin olun).

Sinema Makinesi Zaman Çizelgesi Penceresi

  • Artık pencereye sağ tıklayarak zaman çizelgesine bileşenler eklemeye başlayabiliriz.

Zaman Çizelgesi Bileşenleri Oluşturma

Gördüğünüz gibi Zaman Çizelgesi penceresinin çeşitli seçenekleri vardır:

  • Takip Grubu - bu, zaman çizelgesi eylemlerini içerebilen ve organize etmek için yararlı olan bir gruptur.
  • Etkinleştirme Parçası - yalnızca belirli bir zaman dilimi boyunca etkin olması gereken nesneyi tanımlar.
  • Animasyon Parçası - bu, belirlenen bir zaman dilimi boyunca belirli bir animasyonu oynatır.
  • Ses Parçası - bu, belirlenen bir zaman dilimi boyunca belirli sesleri çalacaktır.
  • Kontrol Parçası - klipleri bir GameObject'teki zamanla ilgili öğeleri kontrol eden bir parça.
  • Signal Track - bu, belirli bir zamanda belirli bir oyun nesnesi üzerinde çok çeşitli eylemlerin gerçekleştirilmesine olanak tanır (örneğin, oyuncu hareket komut dosyasını etkinleştirme veya zaman çizelgesi belirli bir çerçeveye ulaştığında belirli bir işlevi çağırma vb.)
  • Oynatılabilir Parça - klipleri özel olarak oynatılabilen bir parça.
  • Cinemachine Track - bu, birden fazla sinema makinesi sanal kamerası arasında geçiş yapılmasına olanak tanır.

Bu eğitimin amacı doğrultusunda yalnızca Animation Track ve Signal Track kullanacağım.

Kurmak

  • Başka bir sanal kamera oluşturun ve onu "CutsceneCamera" olarak adlandırın ve "Priority" değerini "TPS Camera"'nin bir seviye üstüne ayarlayın (örn. 11)
  • Proje görünümünde sağ tıklayın -> Oluştur -> Signal ve adlandırın "DisablePlayer"

Birlik Zaman Çizelgesi Sinyali Oluştur

  • "DisablePlayer" sinyalini kopyalayın ve yeniden adlandırın "EnablePlayer"

Birlik Zaman Çizelgesi Sinyal Varlıkları

  • Sahnede yeni bir GameObject oluşturun ve adlandırın "SignalReceiver"
  • SignalReceiver bileşenini bir "SignalReceiver" Nesnesine ekleyin
  • "Add Reaction"'e 2 kez tıklayın
  • "DisablePlayer"'i birinci reaksiyona ve "EnablePlayer"'yi ikinci reaksiyona atayın

Birlik Zaman Çizelgesi Sinyal Ekleme Tepkisi

"DisablePlayer" ara sahne kamerasını etkinleştirecek, oyuncu kamerasını ve oyuncu kontrol komut dosyasını devre dışı bırakacak ve zaman çizelgesinin başına yerleştirilecektir.

"EnablePlayer" ara sahne kamerasını devre dışı bırakacak, oyuncu kamerasını ve oyuncu kontrol komut dosyasını etkinleştirecek ve zaman çizelgesinin sonuna yerleştirilecektir.

  • Bir reaksiyon yuvası eklemek için (+) öğesine tıklayın ve ardından komut dosyasının veya bileşeninin etkinleştirilmesi/devre dışı bırakılması gereken nesneyi atayın.

İpucu: Ters bir sinyal oluşturmak için "DisablePlayer" için reaksiyonları ayarlayabilir, ardından Dişli simgesi -> Çoğalt'a tıklayabilir, sinyali "EnablePlayer" olarak değiştirebilir ve onay kutularını ters çevirebilirsiniz.

Birlik Kopya Sinyali

Birlik Zaman Çizelgesi Sinyal Reaksiyonları Kurulumu

  • "TimelineManager" nesnesini seçin, ardından Zaman Çizelgesi penceresinde -> Sinyal İzi'ne sağ tıklayarak yeni bir sinyal izi ekleyin ve ardından buna "SignalReceiver" nesnesini atayın.
  • Zaman çizelgesinin başlangıcındaki "DisablePlayer" sinyal varlığını ve "EnablePlayer"'yi ara sahnenin bitmesini istediğiniz kareye sürükleyip bırakın:

Birlik Zaman Çizelgesi Sinyal Önizlemesi

Bu, oynatıcı kontrol komut dosyasının ve kameranın başlangıçta devre dışı bırakılmasını ve zaman çizelgesinin sonuna gelindiğinde yeniden etkinleştirilmesini sağlayacaktır.

Son olarak basit bir kamera animasyonu oluşturacağız.

  • Zaman Çizelgesi -> Animasyon Parçası'na sağ tıklayın ve ardından "CutsceneCamera" atayın (bu, eğer yoksa nesneye Animator bileşeninin eklenmesini isteyecektir)
  • Kayıt düğmesine tıklayın

Unity Zaman Çizelgesi Animasyon Klip Kaydı

  • "CutsceneCamera"'ü hafifçe hareket ettirerek ana karenin uygulanmasını sağlayın, ardından Zaman Çizelgesi çerçeve tutamacını sonuna kadar hareket ettirin ve son olarak kamerayı yeni bir konuma taşıyın ve ardından Kaydı durdur'a tıklayın.

Unity Cinemachine Ara Sahne Zaman Çizelgesi

Hadi play tuşuna basalım ve sonucu görelim:

Sharp Coder Video oynatıcı

Ara sahne oyunun başında oynanır.