Kameralar bir oyunun görünüm ve hissiyatında önemli bir rol oynar. Üçüncü şahıs kameraları oyunculara daha geniş bir alan hissi verirken, birinci şahıs kameraları oyunculara oyun dünyalarına daha yakından bakma imkanı verir. Oyun sırasında kamera değiştirmek farklı duygular uyandırabilir ve birden fazla kamera arasında geçiş yapmak yaşadığın deneyime önemli bir çeşitlilik katabilir. Örneğin, yandan kaydırmalı bir bölüm oluşturmak için sabit bir kamera kullanarak eğlenceli bir platform mücadelesi oluşturabilirsin.
UEFN’de kamera değişikliklerini yönetmek için Verse’ü kullanabilirsin. Olayları dinlemek için cihazları kullanarak, olay tetiklendiğinde görünümlerini değiştirmek için bir oynatıcıya bir kamera ekleyebilirsin. Bu örnekte, bir sinematiğin sonunda oyuncuya Yörünge Kamerası cihazı ekleyeceksin. Birinci şahıs görünümünü simüle etmek için bir yörünge kamerasının ayarlarını değiştirebilir ve kamerayı bir sinematik görüntünün sonuna ekleyerek üçüncü şahıstan birinci şahsa yumuşak bir geçiş oluşturabilirsin. Daha fazla oynanış için, bu örnekte oyuncu bir silah alır ve sinematiği tetiklemek için kapıya doğru sallar. Bu örneği kendi ihtiyaçlarına göre uyarlayabilirsin; örneğin bir oyuncunun arızalı bir gemi kapısını onarmak için İngiliz anahtarı sallaması veya bir kayayı parçalayıp gizli bir alanı ortaya çıkarmak için çekiç sallaması gibi. Ayrıca bu kavramları daha geniş bir şekilde uygulayarak yeni bir bölgeye girerken geniş bir çekim yapmak, oyuncunun bir bulmacayı çözmesi gerektiğinde yukarıdan aşağıya bir görünüme geçmek veya ürkütücü bir korku deneyiminde birinci şahıs görünümü gibi harika oyun anları yaratabilirsin.
Bir oyuncu bir kapıyı açtığında sinematik bir sekans kullanarak üçüncü şahıstan birinci şahsa geçiş yapan bir Verse cihazının nasıl oluşturulacağını öğrenmek için bu eğitim videosunu izle.
Bu örnekte aşağıdaki dil özellikleri kullanılıyor:
Sınıf: Bu örnek, oyuncu bir kapıyı açtığında sinematiği etkinleştiren bir Verse sınıfı oluşturur.
Seçenek: Bağlanılabilen olayları seçenek değişkenlerinde saklayabilir ve bu olaylara bağlanmaları daha sonra iptal edebilirsin.
Bu örnek aşağıdaki API’leri kullanır:
Bağlanılabilir: Bir oyuncunun kapının yanındaki bölgeye girdiğini öğrenmek için olaylara bağlanırsın ve oyunculara bir butonla etkileşime girdiklerinde bir eşya verirsin.
Bölümü Kurmak
Bu örnekte aşağıdaki cihazlar kullanılır:
1 adet Buton cihazı: Oyuncu butonla etkileşime girdiğinde, eşya verici cihazından bir kılıç alır.
1 adet Eşya Verici cihazı: Eşya verici, oyuncuya kapıdan geçmesi için gereken kılıcı verir.
1 adet Koşullu Buton cihazı: Gerekli silah, koşullu butonun anahtar eşyası olarak ayarlanır, böylece oyuncu gerekli kılıca sahip olmadığı sürece kapıdan geçemez.
1 adet Girdi Tetikleyici cihazı: Oyuncu ateş girdisi eylemini dinleyerek saldırdığında kapıyı açar. Bu yalnızca oyuncu bölge cihazının içindeyken, oyuncu kılıca sahipse ve kapı zaten açık değilse gerçekleşir.
1 adet Etki aktörü cihazı: Kapıyı açmak için kılıçla herhangi bir saldırının tetiklenmesini istemediğin için, etki aktörü cihazı oyuncunun kapıyı açmak için kapının hemen yanında olmasını sağlar.
1 adet Sinematik Sekans cihazı: Üçüncü şahıstan birinci şahsa yumuşak bir geçiş oluşturmak için, kapının açıldığını gösteren bir sinematik oynatman ve kamerayı, oyuncunun birinci şahıs bakış açısıyla aynı hizaya gelecek şekilde yeniden konumlandırman gerekir.
1 adet Yörünge Kamerası cihazı: Oyuncu için birinci şahıs görüşü oluşturmak amacıyla birinci şahıs bakış açısını taklit etmek üzere karakterin göğsünün içine yerleştirilmiş bir yörünge kamerası kullanman gerekir. Bu görünüm değişikliği yalnızca oyuncu kapıyı açtığında sinematik oyunculardan sonra gerçekleşir.
1 adet Kilit cihazı: Oyuncunun gerekli silaha sahip olmadan önce kapıyı açmasını önlemek için kapıyı kilitli tutar.
1 adet Harita Göstergesi cihazı: Bu cihaz, oyuncu silahı eline aldığında mini haritada kapının yerini gösterir.
Bölümünü ayarlamak için şu adımları izle:
Eşya Verici ve Buton
Oyuncuya kapıyı açmak için ihtiyaç duyduğu silahı vermek için bir eşya vericisi ve bir düğme cihazı kullanırsın. Oyuncu butonla etkileşime girdiğinde, eşya vericisi ona silah verir. Bu öğeleri eklemek için aşağıdaki adımları izle:
Bölümüne bir Eşya Verici cihazı ekle.
Anahat Düzenleyicisi’ne bir adet eşya verici ekle. Ayrıntılar panelinde, Kullanıcı Seçenekleri altında değerleri aşağıdakilere ayarla:
seçenek Değer Açıklama Eşya Açıklaması
Kılıç
Oyuncunun kapıyı açmak için kullandığı silahtır.
Verilen Eşyayı Kuşan
Açık
Bu örnekte, oyuncu silahı alır ve hemen kuşanır.
Bölümüne bir Buton cihazı ekle.
Anahat Düzenleyicisi’nde butonu seç. Ayrıntılar panelinde, Kullanıcı Seçenekleri altında değerleri aşağıdakilere ayarla:
seçenek Değer Açıklama Etkileşim Metni
“Al”
Oyuncuya butonla etkileşime girmesini bildiren metindir.
Kaç Kez Tetiklenebilir
1
Bu örnekte, oyuncu silahı yalnızca bir kez alabilir.
Girdi Tetikleyicisi
Bir oyuncunun bir silahı ne zaman salladığını anlamak için, belirli bir eylemi dinleyen bir girdi tetikleyicisi kullanabilirsin. Bir oyuncu silahı salladığında, girdi tetiği etkinleşir. Bir girdi tetikleyicisi eklemek için aşağıdaki adımları izle:
Bölümüne bir Girdi Tetikleyicisi cihazı ekle.
Anahat Düzenleyicisi’nde girdi tetikleyicisini seç. Ayrıntılar panelinde, Kullanıcı Seçenekleri altında değerleri aşağıdakilere ayarla:
seçenek Değer Açıklama Girdi Türü
Standart Eylem
Ateş, girdi tetikleyicisinin bir oyuncunun silahı ne zaman salladığını anlamak için dinlemesi gereken bir Standart Eylemdir.
Standart Girdi
Ateş Etme
Ateş, bir oyuncunun silahını ne zaman salladığını anlamak için girdi tetikleyicisinin dinlemesi gereken eylemdir.
Gösterge Panelinde Göster
Hayır
Bu eylemi Gösterge Paneli üzerinde göstermene gerek yok.
ses düzeyi ve bölge
Bir oyuncunun kapıyı açmak için kapının yanında olması gerektiğinden emin olmak için, oyuncunun içeride olup olmadığını kontrol etmek amacıyla kapının yanında bir bölge cihazı kullanabilirsin. Bir bölge cihazı eklemek için aşağıdaki adımları izle
Bölümünde bir yerlere bir kapı ekle. Bu, oyuncunun silahı kullanarak açtığı kapıdır.
Bölümüne bir Bölge cihazı ekle. Bu ses cihazının kapının önündeki küçük bir alanla veya senin oyuncunun saldırmasını istediğin alanla çakışması gerekir.
Etki aktörü cihazının boyutunu, Gizmoyu Dönüştür kullanarak, oyuncunun saldırı yaparken bulunmasını istediğin alana uyacak şekilde ayarla. Girdi tetikleyicisi yalnızca oynatıcı bu birimin içindeyken ateş olayını dinler, bu nedenle kendi deneyim ihtiyaçlarına uygun olduğundan emin ol.
Kilit
Bir oyuncunun silahı almadan önce kapıyı açamayacağından emin olmak için, bir kilit cihazı kullanarak kapıyı kilitleyebilirsin. Bir kilit cihazı eklemek için aşağıdaki adımları izle:
Kapına takılı bir Kilit cihazı ekle.
Anahat Düzenleyicisi’nde kilidi seç. Ayrıntılar panelinde, Kullanıcı Seçenekleri altında Oyunda Görünür fonksiyonunu false olarak ayarla.
Harita Göstergesi
Bir oyuncunun ulaşması gereken yer, silahı aldığı yerden çok uzakta olduğunda, oyunculara bir harita göstergesi kullanarak nereye gideceklerini göstermek yararlı olur. Bu, haritalarında ve mini haritalarında bir görüntü gösterir ve oyuncuları doğrudan kapıya yönlendiren bir hedef darbesini etkinleştirebilir. Bir harita göstergesi eklemek için aşağıdaki adımları izle:
Bölümüne, kapının altına gizlenmiş bir Harita Göstergesi cihazı ekle.
Anahat Düzenleyicisi’nde harita göstergesini seç. Ayrıntılar panelinde Kullanıcı Seçenekleri altında:
seçenek Değer Açıklama Oyun Başlangıcında Etkin
yanlış
Harita göstergesi, yalnızca oyuncu silahı eline aldıktan sonra etkinleşir.
Küçük Simge
Simge Seç
Mini haritada gösterilmesini istediğin bir simge seç.
Büyük Simge
Simge Seç
Haritada gösterilmesini istediğin bir simge seç.
Koşullu Eşya Butonu
Bir oyuncunun kapıyı açmak için ihtiyaç duyduğu doğru silahı salladığından emin olmak için, sallarken tuttukları silahı kontrol etmek için koşullu bir eşya düğmesi kullanabilirsin. Bir koşullu eşya düğmesi eklemek için bu adımları izle:
Bölümüne bir Koşullu Eşya Butonu cihazı ekle.
Anahat Düzenleyicisi’nde koşullu eşya butonunu seç. Ayrıntılar panelinde, Kullanıcı Seçenekleri altında değerleri aşağıdakilere ayarla:
seçenek Değer Açıklama Anahtar Eşyaları Kullan
Hayır
Oyuncu kapıyı açtığında silahını tüketmek istemezsin.
Anahtar Eşya 1 Eşya Açıklaması
Silah
Oyuncunun kapıyı açmak için ihtiyaç duyduğu silahtır.
Yörünge Kamerası
Birinci şahıs görüş açısını simüle etmek amacıyla oyuncunun perspektifini değiştirmek için bir yörünge kamerası kullanabilirsin. Bir yörünge kamerası eklemek için aşağıdaki adımları izle:
Bölümüne bir Kamera: Yörünge cihazı ekle.
Anahat Düzenleyicisi’nde yörünge kamerası butonunu seç. Ayrıntılar panelinde, Kamera altında değerleri aşağıdakilere ayarla:
seçenek Değer Açıklama Mesafe
0,0 cm
Birinci şahıs görüş açısı için ihtiyaç duyulan parametreler
Ofset X
27,0 cm
Birinci şahıs görüş açısı için ihtiyaç duyulan parametreler
Ofset Y
0,0 cm
Birinci şahıs görüş açısı için ihtiyaç duyulan parametreler
Ofset Z
76,0 cm
Birinci şahıs görüş açısı için ihtiyaç duyulan parametreler
Yatay Hız
0,0 cm/sn
Birinci şahıs görüş açısı için ihtiyaç duyulan parametreler
Ayrıntılar panelinde, Geçiş altında değerleri aşağıdakilere ayarla:
seçenek Değer Açıklama Giriş Geçişi Süresi
0,0 sn
Birinci şahıs görüş açısı için ihtiyaç duyulan parametreler
Çıkış Geçişi Süresi
0,1 sn
Birinci şahıs görüş açısı için ihtiyaç duyulan parametreler
Çıkış Geçişi Türü
Dışarı Yavaşlatma
Birinci şahıs görüş açısı için ihtiyaç duyulan parametreler
Sinematik Sekans
Kapıyı açarken bir sinematik tetiklemek için, onu oynatacak bir sinematik sekans cihazına ihtiyacın vardır. Bir si̇nemati̇k sekans eklemek için aşağıdaki adımları izle:
Bölümüne bir Sinematik Sekans cihazı ekle.
İçerik Tarayıcısı’nda bölümünde kullanmak istediğin bir si̇nemati̇k sekans oluştur. Sinematik sekans, daha önce ayarladığın yörünge kamerasını kullanır ve kamerayı başlangıç açısından birinci şahıs görünümüne geçirirken kapının açılışını göstermelidir. Kendi sinematik sekanslarını oluşturma hakkında daha fazla bilgi edinmek için Sinematikler ve Ara Sahneler Oluşturma kısmına bakabilirsin.
Anahat Düzenleyicisi’nde, sinematik sekansı seç. Ardından, Ayrıntılar panelinde, Kullanıcı Seçenekleri altında Sekansı sinematik sekansına ata.
Büyütmek için görsele tıkla.
Verse Kullanılarak Oluşturulan Kapı Açma Sinematiği
Sinematik oynatma ve kapı açma mantığını yönetmek için bir Verse cihazı kullanman gerekir. Cihaz, ses cihazının içinde silahını sallayan bir oyuncuyu dinler, ardından sinematik bir sekans oynatır, kapıyı açar ve oyuncuyu birinci şahsa geçirir.
Alanları Kurma
Verse cihazını oluşturmak için:
Verse Gezgini’ni kullanarak yeni bir Verse cihazı oluştur ve
door_open_cinematic_managerolarak adlandır.door_open_cinematic_managersınıf tanımının üzerine, bu cihaza özel mesajlar yazdırmak için bir günlük kanalı ekle. Ardından, günlük kanalıyla birlikte kullanmak için sınıf tanımına bir günlük kaydedici ekle.Versedoor_open_channel := class(log_channel){} # A Verse-authored creative device that can be placed in a level door_open_cinematic_manager := class(creative_device): Logger:log = log{Channel := door_open_channel}Aşağıdaki alanları
door_open_cinematic_managersınıf tanımına ekle:DoorVolumeadlı düzenlenebilir bir Bölge cihazı. Bu, kapıyı açmak için oyuncunun içeride olması gereken bölgedir.Verse# The volume the player needs to be inside of to open the door. @editable DoorVolume:volume_device = volume_device{}FireTriggeradlı düzenlenebilir bir Girdi Tetikleyici cihazı.DoorVolumeiçindeyken silahını kullanan oyuncuyu dinler.Verse# The input trigger that listens for the player swinging their weapon # when inside the DoorVolume. @editable FireTrigger:input_trigger_device = input_trigger_device{}ConditionalButtonadlı düzenlenebilir bir Koşullu Buton cihazı. Bu, oyuncunun bölge cihazının içindeyken doğru silahı kuşanıp kuşanmadığını kontrol eder.Verse# The Conditional Item Button that checks that the player has the correct weapon. @editable ConditionalButton:conditional_button_device = conditional_button_device{}DoorLockadlı düzenlenebilir bir Kilit Cihazı. Bu, oyuncunun doğru silaha sahip olmaması durumunda kapıyı kilitli tutar.Verse# The lock device that prevents the door from being opened. @editable Door:lock_device = lock_device{}CinematicSequenceadlı düzenlenebilir bir Sinematik Sekans cihazı. Bu, kapıyı açarken kamera geçişine yönlendirilen sinematiği oynatır.Verse# The cinematic sequence device that plays the cinematic when opening the door. @editable CinematicSequence:cinematic_sequence_device = cinematic_sequence_device{}ObjectiveMarkeradlı düzenlenebilir bir Harita Göstergesi cihazı. Bu, silahı alındıktan sonra mini haritada kapının yerini gösterir.Verse# The map indicator device that shows the location of the door. @editable ObjectiveMarker:map_indicator_device = map_indicator_device{}ItemGranteradlı düzenlenebilir bir Eşya Verici cihazı. Oyuncuya ilerlemek için ihtiyaç duyduğu silahı verir.Verse# The item granter device that grants the player the weapon they need. @editable ItemGranter:item_granter_device = item_granter_device{}ItemGrantButtonadlı düzenlenebilir bir Buton cihazı. Bu, oyuncuya ihtiyaç duyduğu silahı vermek içinItemGranteröğesini etkinleştirir.Verse# The button that activates the ItemGranter granter. @editable ItemGrantButton:button_device = button_device{}FPSCameraadlı düzenlenebilir bir Yörünge Kamerası cihazı. Bu, birinci şahıs görüşünü simüle eder ve sinematik bittikten sonra oyuncuya eklenir.Verse# The orbit camera that simulates a first-person view. @editable FPSCamera:gameplay_camera_orbit_device = gameplay_camera_orbit_device{}IsDoorOpenadlı birmantıkdeğişkeni. Bu alan kapının zaten açık olup olmadığını izler, bu nedenle açıksa sekans oynatılmaz.Verse# A variable that tracks whether the door is already open. var IsDoorOpen:logic = falseFireSubscriptionadlı birseçenekiptal edilebilirdeğişken. Bu, bağlanırlığıFireTriggerPressedEventöğesine saklar. Si̇nemati̇k sekans yalnızca oyuncu kapının hemen yanında olduğunda tetiklemelidir. Bu iptal edilebilir bağlanırlık, çok uzaklaşırlarsa oyuncununFireTriggerkaydınıSilmeyisağlar.Verse# A cancelable subscription to the FireTrigger device. var FireSubscription:?cancelable = false
Sinematiği Oynatma
Kapı açıldığında, kapının açıldığını gösteren ve oyuncuların görüşünü üçüncü şahıstan birinci şahsa geçiren bir sinematik oluşur. Bir oyuncu kapıyı açtığında sinematiğini etkinleştirmek için aşağıdaki adımları izle.
door_open_cinematic_managersınıf tanımınaPlayCinematic()adlı yeni bir metot ekle.door_open_cinematic_managersınıf tanımınaPlayCinematic()adlı yeni bir metot ekle. Bu fonksiyon kapıyı açan oyuncuyu alır. Daha sonra sinematiği oynatır ve Kilit cihazını kullanarak kapıyı açar.Verse# Plays a cinematic and unlocks the door. PlayCinematic(Agent:agent):void=PlayCinematic()içinde ilk olarakCinematicSequenceöğesinden sinematik sekansını oynat, daha sonra kapının kilidini aç ve kapıyı açarken sırasıylaUnlock()veOpen()öğelerini kullan.Verse# Plays a cinematic and unlocks the door. PlayCinematic(Agent:agent)<suspends>:void= Logger.Print("Player is holding item, playing cinematic...") CinematicSequence.Play() # Unlock the door, then open it. Door.Unlock(Agent) Door.Open(Agent)Son olarak,
AddTo()kullanarak yörünge kamerasını ekleyerek oyuncunun görüşünü üçüncü şahıstan birinci şahsa değiştir, ardından Hedef İşaretini devre dışı bırak. TamamlanmışPlayCinematic()fonksiyonun şu şekilde görünmelidir:Verse# Plays a cinematic and unlocks the door. PlayCinematic(Agent:agent)<suspends>:void= Logger.Print("Player is holding item, playing cinematic...") CinematicSequence.Play() # Unlock the door, then open it. Door.Unlock(Agent) Door.Open(Agent) set IsDoorOpen = trueSinematik yalnızca oyuncu gerekli eşyayı tutarken oynatılmalı ve kapı zaten açıldıktan sonra tekrar oynatılmamalıdır. Bu mantığı yönetmek için
door_open_cinematic_managersınıf tanımınaCheckCinematic()adlı yeni bir metot ekle. Bu fonksiyon,DoorVolumeiçindeki oyuncuyu alır ve gerekli eşyalara sahip olup olmadığını kontrol eder.Verse# Check if the player has the required item and the door isn't already open. CheckCinematic(Agent:agent):void=CheckCinematic()içinde,IsHoldingItem[]kullanarak oyuncununConditionalButtonüzerinde kayıtlı eşyayı tuttuğundan ve kapının kilidinin açılmadığından emin olmak içinIsDoorOpendeğerinin false olarak ayarlandığından emin ol. Bu koşulları doğruladıktan sonra kapıyı açan oyuncuyu geçirerekPlayCinematic()fonksiyonunuspawn{}ile çağır. TamamlanmışCheckCinematic()fonksiyonun şu şekilde görünmelidir:Verse# Check if the player has the required item and the door isn't already open. CheckCinematic(Agent:agent):void= if: ConditionalButton.IsHoldingItem[Agent] and not IsDoorOpen? then: spawn{PlayCinematic(Agent)}
Oyuncunun Takip Edilmesi ve Eşyaların Verilmesi
Oyuncu kapıyı açmak için DoorVolume içindeyken silahını sallamaya ihtiyaç duyduğu için, girdi tetikleyici cihazının bu etkinliği dinlemesi gerekir. Oyuncun bir silah salladığında giriş tetikleyicinin bunu dinlemesini sağlamak için aşağıdaki adımları izle.
door_open_cinematic_managersınıf tanımınaOnPlayerEntersVolume()adlı yeni bir metot ekle. Bu fonksiyon bir Aracı alır ve kişiDoorVolumealanına girdiklerinde onlarıFireTriggerile kaydeder.Verse# Registers the Agent with the FireTrigger when they enter the DoorVolume. OnPlayerEntersVolume(Agent:agent):void= Logger.Print("Agent entered DoorVolume")OnPlayerEntersVolume()içinde aracıyıRegister()komutunu çağırarakFireTriggerile kaydet. ArdındanFireSubscriptionfonksiyonunu,FireTrigger.PressedEventöğesiniPlayCinematic()öğesine kaydetmenin sonucuna ayarla. TamamlanmışOnPlayerEntersVolume()fonksiyonun aşağıdaki gibi görünmelidir:Verse# Registers the Agent with the FireTrigger when they enter the DoorVolume. OnPlayerEntersVolume(Agent:agent):void= Logger.Print("Agent entered DoorVolume") FireTrigger.Register(Agent) # Subscribe the PressedEvent to PlayCinematic, and store that subscription in FireSubscrition. set FireSubscription = option{(FireTrigger.PressedEvent.Subscribe(PlayCinematic))}Bir oyuncu
DoorVolumealanından çıktığında,FireTrigger.PressedEventbağlanırlığını izlemeyi bırakman gerekir, çünkü oyuncu yalnızca bölgenin içinde değilse sinematiği etkinleştirebilmelidir. Bunu yönetmek içindoor_open_cinematic_managersınıf tanımınaOnPlayerExitsVolume()adlı yeni bir metot ekle.Verse# Unregister the Agent with the FireTrigger when they leave the DoorVolume. OnPlayerExitsVolume(Agent:agent):void=OnPlayerExitsVolume()içinde ilk olarak aracıyıUnregister()komutunu çağırarakFireTriggerile kaydet. ArdındanFireSubscriptioniçindeki bağlanırlığı al ve iptal et. TamamlanmışOnPlayerExitsVolume()metodun şu şekilde görünmelidir:Verse# Unregister the Agent with the FireTrigger when they leave the DoorVolume. OnPlayerExitsVolume(Agent:agent):void= Logger.Print("Agent exited DoorVolume") FireTrigger.Unregister(Agent) # Cancel the subscription to the FireSubscription. if (SubscriptionToCancel := FireSubscription?): SubscriptionToCancel.Cancel()Oyuncu,
ItemButtonile etkileşime girdiğinde ilerlemek için ihtiyaç duyduğu silah verilir. Ayrıca mini haritalarında, henüz bulamamış olmaları durumunda kapıya giden yolu gösteren bir hedef işareti belirir. Bunu yönetmek içindoor_open_cinematic_managersınıf tanımınaaracıalanGrantItem()adlı yeni bir metot ekle.GrantItem()içinde, aktarılan aracının üzerindeGrantItemçağrısı yap ve hedef işareti etkinleştir. TamamlanmışGrantItem()metodun aşağıdaki gibi görünmelidir:Verse# Grants the Agent an item when they interact with the ItemGrantButton # and enables the ObjectiveMarker. GrantItem(Agent:agent):void= ItemGranter.GrantItem(Agent) ObjectiveMarker.Enable()
Tümünü Birbirine Bağlama
Artık her olayı ilgili işlevine abone olabilir ve kodunu oyun içinde test edebilirsin.
OnBegin()içindeItemGrantButton.InteractedWithEventöğesiniGrantItem()fonksiyonuna bağla. Ardından hemDoorVolume.AgentEntersEventhem deDoorVolume.AgentExitsEventöğelerini kendileriyle ilişkili fonksiyonlara bağla.OnBegin()fonksiyonun şu şekilde görünmelidir:Verse# Runs when the device is started in a running game OnBegin<override>()<suspends>:void= # Subscribe each event to its associated function. ItemGrantButton.InteractedWithEvent.Subscribe(GrantItem) DoorVolume.AgentEntersEvent.Subscribe(OnPlayerEntersVolume) DoorVolume.AgentExitsEvent.Subscribe(OnPlayerExitsVolume)Kodunu kaydet ve derle.
UEFN içinde bölümünde DoorOpenCinematicManager cihazını seç. Anahat Düzenleyicisi’nde her düzenlenebilir referansı bölümdeki cihaza ata.
Büyütmek için görsele tıkla.
Bölümün oynanış testini yapmak için UEFN araç çubuğunda Oturumu Başlat fonksiyonuna tıkla. Bölümü test ettiğinizde, eşya düğmesi ile etkileşim geçmek oyuncuya ihtiyaç duyduğu silahı vermeli ve oyuncunun mini haritasına bir hedef işareti eklemelidir. Oyuncu silahı kapı bölgesinin içinde kullandığında, bir sinematik oynatılmalı, kapı açılmalı ve oyuncu birinci şahıs görünümüne geçmelidir.
Tam Kod
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
# See https://dev.epicgames.com/documentation/en-us/uefn/create-your-own-device-in-verse for how to create a verse device.
door_open_log := class(log_channel){}
door_open_cinematic_manager := class(creative_device):
Logger:log = log{Channel := door_open_log}
Kendi Kendine Yapabileceklerin
Bu kılavuzu tamamlayarak, bir oyuncu bir kapıyı açtığında sinematik oynatmak için Verse'i nasıl kullanacağını ve üçüncü şahıs kamerasından birinci şahıs kamerasına nasıl geçeceğini öğrendin.
Öğrendiklerini kullanarak aşağıdaki işlemleri yapmaya çalış:
Yan kaydırma görünümüne geçiş gibi başka türde kamera geçişleri yapabilir misin?
Kamera açısını değiştirmek için özel bir butona veya ilerlemek için birden fazla kamera açısı gerektiren bir bölüm tasarlamaya ne dersin?
Oyuncuları bir bölümü atlamadan geçmeye zorlamak ve başarısız olurlarsa bir sinematik oynatmak gibi negatif cezalar için girdi tetikleyicileri kullanabilir misin?