Artık hedefler arasında gidip gelen varlıkları oluşturduğuna göre, kendi bölümünü hızla kurabilmek için kullanabileceğin bir prefab oluşturmanın zamanı geldi.
Prefab Oluşturma
Başlamak için, hareket eden varlığını oluşturan varlıkları tanımlaman gerekir. Her grupta birden fazla varlık olacaktır. Birinci varlık, platformun kendisini temsil ederken dieğr varlıklar platformun hareket edeceği varış noktalarını temsil eder. Sıfırlanan platform prefabını oluşturmak için şu adımları izle:
Sahnene
DisappearingPlatformadlı bir varlık ekle. Sahnene varlıkları ve bileşenleri nasıl ekleyeceğin hakkında bilgi edinmek için Varlıklar ve Bileşenler ile Çalışma bölümüne bakabilirsin.Sahnene
AnimatingBlockSetvarlığının bir alt öğesi olarakAnimatingBlockadlı başka bir varlık ekle. Bu varlığın dönüşümünü üst varlığın dönüşümüne ayarla. Animasyonu oluşturulacak varlık budur.AnimatingBlock'una bir
mesh_componentekle ve bunu küpe ata.AnimatingBlockvarlığına biranimate_to_targets_componentve birkeyframed_movement_componentekle. Bu, daha önce tanımladığın Verse bileşenidir.Sahneye
StartingTarget,Target2veTarget3adlı üç yeni varlık ekle ve bunlarıAnimatingBlockSetvarlığının alt varlıkları olarak ayarla. Bunların her birinemesh_componentekleyip küreye ayarla. Bu şekilde, varlığının dünyada nerede hareket ettiğini görselleştirebilirsin.Bu varlıkları yeniden konumlandırarak platformu farklı alanlara taşıyabilir ve oynanış sırasında kürenin görünmesini önleyecek şekilde bloku konumlandırdıktan sonra bunların
mesh_componentbileşenini devre dışı bırakabilirsin.StartingTarget'ıAnimatingBlockile aynı dönüşümde;Target2veTarget3'ü ise blokun hareket etmesini istediğin yerlerde konumlandır.Target2veTarget3'e farklı ölçekler ve dönüşler vermeyi dene. Böylece blokun her birine animasyon eklendikçe nasıl değiştiğini görebilirsin.Editörde
AnimatingBlockvarlığını seç. Ayrıntılar panelindesegmentlerdizisine üç öğe ekle.SegmentStartPositiondeğerini, blokun gitmesini istediğin sırayla her bir hedef varlığa ayarla. Blokun hareketini özelleştirmek içinPauseSeconds,AnimationDurationveEasingFunctiondeğerlerini de değiştirebilirsin.Son olarak Anahat Düzenleyicisi'nde
AnimatingEntitySet'e sağ tıklayıp Prefab Olarak Kaydet seçeneğine git. Bu prefabıanimating_entity_prefabolarak adlandır.
Daha önceki kurulumun kullanıldığı prefab örneği. Target2 ve Target3 farklı ölçek ve dönüşlere sahip olduğundan AnimatingBlock, onlara doğru ilerledikçe uygun şekilde ölçeklenecek ve dönecektir.
Bir Platform Bölümü Oluşturma
Hepsi bu kadar! Artık bütün altyapı işlerini bitirdiğine göre oyununu inşa etmeye başlama zamanı! Oluşturduğun prefabları kullanarak bir platform oyunu bölümünü hızlıca oluşturabilirsin!
Bölümün başlangıcında animating_entity_set_prefab kullanarak kendi kendini inşa eden bir köprü yapısı oluşturmayı dene. Her varlıkta mesh_component bileşenini kendi özel örgüleriyle geçersiz kılarak kendi stilini katabilirsin. Bloklar hareket etmeyi tamamladığında yerlerinde kaldıklarından emin olmak için tek atış animasyon modunu kullan.
Bloklar oyuncunun geçeceği bir köprü oluşturmak üzere yerine yavaşça hareket eder.
Sonrasında, yaptığın animating_entity_set_prefab prefablarından bazılarını yerleştirerek oyuncuların dikkatlice ilerlemesi gereken bir bölüm oluştur. Her platformu eşsiz kılmak ve oyuncuları diken üstünde tutmak için her segmentte AnimationDuration, PauseSeconds ve EasingFunction bileşenlerini çeşitlendirmeye çalış. Aşağıdaki kurulumda, oyuncunun her biri farklı animasyon sürelerine ve duraklama sürelerine sahip üç platformu geçmesi gerekir.
Atlayışlar lav üzerinden olduğunda çok daha heyecanlı hale gelir.
Bütün varlıkların neredeyse aynı anda simülasyona başlayacağı için platformların da aynı anda hareket etmeye başlayacak. Özellikle aynı yönde hareket eden birden fazla platformun varsa platformlarını yerleştirirken bunu aklında bulundur çünkü AnimationDuration ve PauseSeconds özelliklerini çeşitlendirmezsen bazı atlayışlar imkânsız hale gelir.
Peki döngü halinde kaybolan platformlara ne dersin? Disappearing_entity_prefab'ı kullanarak oyuncuların farklı zamanlarda kaybolan ve tekrar beliren platformların üzerinden atlaması gerektiği bir bölüm oluştur. Bunların üzerinde Duration değerini çeşitlendirerek oyuncuların için aldatıcı durumlar yarat.
Oyuncuların bu bölümü geçmek için her bir varlığın zamanlamasına dikkat etmesi gerekir.
Son olarak, animating_entity_prefab öğesini oyuncuların kaçınması gereken bir engel olarak kullanmayı dene. Aşağıdaki kurulumda oyuncunun, dev bir blok tarafından kovalanırken bir gölet üzerindeki bir dizi platformu geçmesi gerekir. Blok, göletten karşıya geçmeyi heyecanlı ama yine de mümkün hale getirmek için farklı animasyon ve duraklama sürelerine sahiptir.
Dev bir küp tarafından kovalanırken gölet kenarında dinlenmek kolay değildir.
Kendi Kendine Yapabileceklerin
Hepsi bu kadar! Bu kılavuzu tamamlayarak, kendi platform oyununu oluşturmak için özel Verse bileşenlerini nasıl kullanacağını öğrendin. Öğrendiklerini kullanarak aşağıdakileri yapmayı dene:
İlgi çekici senaryolar yaratmak için aynı platformda birden fazla Verse bileşeni kullanabilir misin? Aynı zamanda hem hareket edip hem de kaybolan bir platform nasıl olurdu?
Bir platform oyununda kullanabileceğin diğer bileşen türlerini düşün. Üzerine çıktığında sinyal vermek için ışık bileşenini kullanan bir platform ya da platformun sana hasar verebileceğini söyleyen bir parçacık sistemi bileşeni nasıl olur?
Yeni engel türleri oluşturmak için başka özel Verse bileşenleri oluşturmayı dene. Sadece doğru renkte olduğunda içinden geçebileceğin bir varlığa ne dersin? Peki bir oyuncunun nerede olduğunu tespit eden ve onu yavaşça takip eden güdümlü bir varlık?
Tam Kod
Bu eğitimde oluşturulan kodun tamamı aşağıdaki gibidir:
disappear_on_loop_component.verse
using { /Verse.org }
using { /Verse.org/Native }
using { /Verse.org/Simulation }
using { /Verse.org/SceneGraph }
# Loops between hiding and showing the entity by enabling and disabling
# its static mesh and collision components.
disappear_on_loop_component := class<final_super>(component):
animate_to_targets_component.verse
using { /Verse.org }
using { /Verse.org/Native }
using { /Verse.org/Random }
using { /Verse.org/Simulation }
using { /Verse.org/SpatialMath }
using { /Verse.org/SceneGraph }
using { /Verse.org/SceneGraph/KeyframedMovement }
using { /UnrealEngine.com }
# Editor Tool Tips