World Partition, içerik üreticilerinin büyük ve karmaşık adalar inşa etmesinin yolunu açar ve bunu yaparken bellek maliyetlerini iyileştirip farklı platformlarda sorunsuz performans elde etmelerini sağlar.
Akış ve Hiyerarşik Ayrıntı Seviyesi (HLOD), World Partition’ın bunu mümkün kılmak için kullandığı iki önemli bileşendir.
Akış
World Partition, bir oyuncunun etrafına ızgara hücreleri yüklemek için Akış özelliğini veya bellek içinde ve dışında akış kaynağını kullanır. Bu özellik sayesinde makinenin hatırlaması gereken tek veri, bir oyuncu karakterini çevreleyen hücrelerdir.
Adanın en geniş ekseni 1 kilometreyi aşarsa Akışı açmanı isteyen bir açılır pencere görürsün.
Akışı Etkinleştir seçeneği işaretlendiğinde birkaç istisna dışında yalnızca oyuncunun geçerli konumunun etrafındaki hücreler Geçerli Bellek Kullanımına dahil edilir.
Pencere > Dünya Ayarları bölümlerine tıklayarak Akışı Etkinleştir seçeneğinin etkin olup olmadığına bak.
Kutuya ilk kez tıkladığında seçimini onaylaman gerekecektir.
Projende şimdi akış etkinleştirilmiş olmalıdır.
Izgarayı adanda görüntülemek için Dünya Ayarları’nda Izgaraları Önizle seçeneğini işaretle.
Her bir hücrenin ve boyutunu ve yükleme aralığını değiştirebilirsin ancak varsayılan ayarların Fortnite Battle Royale boyutundaki adalar için optimize edilmiş olduğunu unutma.
Daha ayrıntılı bilgi için Unreal Engine 5 dokümantasyonunda World Partition sayfasına bak.
Hiyerarşik Ayrıntı Seviyeleri
Hiyerarşik Ayrıntı Seviyesi veya HLOD, yakındaki aktörlerden oluşan optimize edilmiş bir gruplandırmadır. Bu grup, akış kaynağından yeterince uzaklaştıktan sonra bir statik örgü halinde basitleştirilir.
HLOD’lar, öğenin en düşük doğruluktaki Ayrıntı Seviyesinden (LOD) oluşturulur. Özel öğelerin için ayarlanmış bir LOD yoksa HLOD tam çözünürlüklü öğelerden oluşturulacağı için çok maliyetli olacaktır.
LOD0 en yüksek doğruluktaki öğedir. LOD1 daha düşük doğruluktaki bir örgüdür ve LOD numarası yükseldikçe doğruluk düşmeye devam eder.
Soldaki görüntüde öğeler tam ayrıntıyla gösterilir, sağdaki ise o ızgara hücresinden oluşturulmuş bir HLOD öğesidir.
HLOD oluşturduğunda projene yeni öğeler eklenir. Bu öğeler, adanın toplam bellek kullanımına eklenir.
Akış ve Hiyerarşik Ayrıntı Seviyeleriyle ilgili kararına bağlı olarak bellek kullanımı aşağıdaki yönlerden etkilenir:
Akış KAPALI | Öğeler hiçbir zaman bellekten boşaltılmaz ve Hiyerarşik Ayrıntı Seviyeleri kullanılmaz. | En yüksek bellek kullanımı |
Akış AÇIK ve HLOD oluşturuldu | Öğeler yine bir mesafeden görünür ancak kamera uzaklaştıkça daha az ayrıntı gösterilir. | Orta düzeyde bellek kullanımı |
Akış AÇIK ve HLOD oluşturulmadı | Kamera uzaklaştıkça öğeler bir mesafeden itibaren kaybolur. | En düşük bellek kullanımı |
HLOD Oluştur
HLOD oluşturmak için projende Akış seçeneğinin etkinleştirildiğinden emin ol, sonra araç çubuğunda Oluştur seçeneğine giderek HLOD Oluştur’u seç.
Makinene ve dünyanın karmaşıklığına bağlı olarak HLOD’ları oluşturmak biraz vakit alabilir. Neyse ki bu işlemi tekrar çalıştırırsan yalnızca dünyanın değişen bölgeleri için HLOD oluşturulur ve işlem daha kısa sürer.
Hiyerarşik Ayrıntı Seviyelerinin nasıl çalıştığı hakkında daha fazla bilgi edinmek için Unreal Engine 5 dokümantasyonunda World Partition - Hiyerarşik Ayrıntı Seviyesi sayfasına göz at.
HLOD Oluştururken Öğeleri Hariç Tutma
Bazı öğeler HLOD gerektirmez. Dışarıda tutabileceğin öğelerin birkaç örneğini aşağıda görebilirsin:
İç mekân nesneleri ve bina öğeleri | Bir mesafeden görünmeyen öğeler için HLOD gerekli değildir. Mobilyalar, iç duvarlar, iç mekân zeminleri vb. örnekler arasında sayılabilir. |
Yeraltı öğeleri | Adanın yeraltında kalan ve hiçbir zaman oyuncunun görüş alanında olmayacak bölümleri. Bodrumlar, mağaralar, hendekler, sığınaklar vb. bunların örnekleridir. |
Küçük aktörler | Oyuncunun ekranının büyük bir bölümünü kaplamayan küçük aktörler için HLOD gerekli değildir. Kutular, bitkiler ve sokak lambaları bunların örnekleridir. |
Büyük aktörler | Gökdelenler veya dağlar gibi büyük arka plan aktörleri için HLOD gerekli değildir. Bunları Hiyerarşik Ayrıntı Seviyelerinin dışında tutarsan Ayrıntılar panelinde Mekânsal Olarak Yüklü seçeneğini işaretini kaldırarak her zaman yüklenmiş durumda kaldıklarından emin ol. |
HLOD gerektirmeyecek öğeleri seç. Ayrıntılar panelinde öğeye bağlı olarak Hiyerarşik Ayrıntı Seviyesinde Aktörü Dahil Et veya Hiyerarşik Ayrıntı Seviyesinde Bileşeni Dahil Et seçeneğinin işaretini kaldır.
Bir öğenin HLOD'lara dahil edilip edilmeyeceğine karar vermek için altın kural, editörde görüntüyü uzaklaştırıp önemli olmayan öğeleri HLOD oluşturma işleminin dışında tutmanın mantıklı olup olmadığına bakmaktır.
Yükleme Menzilini Geri Çekme
Hiyerarşik Ayrıntı Seviyelerinin kalitesi, beklenen çizim mesafesine bağlıdır. Akış kullanırken Hiyerarşik Ayrıntı Seviyelerinin görüleceği en kısa mesafe, World Partition ızgaran için yapılandırdığın yükleme menzilidir.
Hiyerarşik Ayrıntı Seviyeleri yalnızca oyuncunun ekranında küçük olduklarında yükleniyorsa daha az depolama alanı kullanır.
Yükleme menzilini değiştirmek için:
World Partition Kurulumu sekmesini seç.
Çalışma Zamanı Ayarları ve ardından Izgaralar seçeneğini genişlet.
Sayı değerine tıklayıp sola ya da sağa sürükleyerek veya tam değer girerek yükleme menzilini değiştir.
Daha İyi Editör Performansı İçin Yükleme Bölgelerini Kullanma
UEFN’de büyük projelerde çalışırken adan belirli bir boyuta ulaştığında performans sorunlarının ortaya çıktığını fark etmeye başlayabilirsin. Varsayılan olarak adanın tamamı belleğe yüklenir. Kare hızını ve görünüm penceresi duyarlılığını geliştirmek için adanın farklı alanlarında çalışırken bölgeleri yükleyebilir ve boşaltabilirsin.
UEFN editöründe büyük veya yoğun bir ada üzerinde çalışırken bu adanın bölümlerini yüklemek ve boşaltmak için World Partition mini haritasını kullanabilir ve yükleme sürelerini büyük ölçüde azaltabilirsin.
Bunu yapmak için:
Bölümünde Akış seçeneğinin olduğundan emin ol.
Menü Çubuğundan Düzenle ve ardından Editör Tercihleri... öğesini seç
World Partition bölümüne gidip “Editörde Yüklemeyi Devre Dışı Bırak” seçeneğinin işaretini kaldır.
Projeni yeniden yükle. Projen yeniden yüklenmezse bu özellik çalışmaz!
World Partition sekmesinde ekrana tıklayıp boşaltmak istediğin alanda sürükle.
Seçimin içine sağ tıkla ve Seçili Bölgeleri Boşalt seçeneğini belirle.
Bir bölgeyi yeniden yüklemek için istediğin bölgeye tıklayıp sürükle, sağ tıkla ve Seçimden Bölgeyi Yükle kısmını seç
Tüm manzara ve cihazların yükleme ve boşaltmadan etkilenmeyeceğini bil. Aynı durum, Kullanıcı Seçenekleri menüsünde “Mekânsal Olarak Yüklü” seçeneği işaretlenmemiş olan her öğe için geçerlidir.
UEFN’de Veri Katmanları
Veri Katmanları, UEFN’de Aktörlerini farklı katmanlar halinde düzenleyen bir sistemdir. Bu katmanlar; dünyanı düzenlemek, karmaşık seviyeleri yönetmek ve benzersiz oynanış deneyimleri oluşturmak için yüklenip boşaltılabilir. Rastgele bölümleri olan bir oyun hayal et. Farklı katmanlarda farklı bölüm yerleşimleri ayarlayarak ve oyun başladığında bir tanesini rastgele seçerek deneyimine çeşitlilik ve heyecan katabilirsin. Daha da büyük geçişler için veri katmanlarını kullanabilirsin. Örneğin tüm bölümü yazdan kışa değiştirebilir veya bir savaştan sonra bir kaleye hasar ekleyebilirsin.
Veri katmanları oluşturma ve yönetme hakkında daha ayrıntılı bilgi için Unreal Engine Dokümantasyon sitesindeki veri katmanları sayfasına bak
Sinematik Sekans Kullanarak Veri Katmanlarını Yönetme
UEFN’de Sinematik Sekans özelliğini kullanarak çalışma zamanında ve olaylara yanıt olarak veri katmanlarını yükleyebilir, etkinleştirebilir ve boşaltabilirsin.
Sequencer sekmesinde Parça düğmesine tıkla ve Veri Katmanı bölümünü seçerek Sequencer parçana var olan bir veri katmanı ekle.
Parça ayarlandıktan sonra Veri Katmanı parçasına sağ tıkla ve Bölümü Düzenle kısmını seç. Ardından Veri Katmanı Öğeleri sekmesi altında Öğe Ekle bölümüne tıkla ve si̇nemati̇k sekans ile kullanmak istediğin veri katmanını seç.
Zaman çizelgesinde veri katmanına sağ tıklarsan özelliklerini görüntüleyebilirsin. Burada, zaman çizelgesi değerlendirdiğinde katmanın içinde bulunmasını istediğin durumu ifade eden İstenen Durum’u seçebilirsin. Ayrıca Yayın Öncesi Durumu seçeneğini değiştirebilirsin. Yayın Öncesi durumu, parça başlamadan önce katmanın bulunduğu durumdur. Yayın Sonrası durumu ise parça sona erdikten sonraki durumdur. Örneğin bir veri katmanını etkinleştirmek istersen istenen durumunu Etkinleştirildi olarak, yayın öncesi durumunu ise Yüklü olarak ayarlarsın. Yayın öncesi durumu Yüklü olarak ayarlamak ve yayın öncesi kare sayısını artırmak, katmanına etkinleştirilmeden önce yüklenmesi için daha fazla zaman verir ve daha sorunsuz bir performans sağlayabilir.
Oynatma çizgisini hareket ettirerek, zaman çizelgesi ilerlediğinde katmanının durumunun nasıl olacağını önceden görebilirsin.
Sinematik sekans cihazının kullanımı hakkında daha fazla bilgi edinmek için Sinematik Sekans Cihazı sayfasına bak.
Editör Mini Haritası Oluşturma
Editör oturumunda yüksek doğrulukta bir mini harita oluşturmak, isteğe bağlı atılacak bir adımdır. Bunu yapmak, üzerinde çalışmak istediğin bölümün çeşitli alanlarını hızlıca bulmana yardımcı olabilir.
Menü Çubuğundan Oluştur ve ardından World Partition Editör Mini Haritası Oluştur’u seç.
Ekranında bir Oluşturma Durumu iletişim kutusu görünür. Bu işlemin tamamlanması, adanın karmaşıklığına bağlı olarak birkaç dakika sürebileceğinden sabırlı olmalısın.
Mini haritan artık görünüm pencerenle uyumludur. Bölgeler hâlâ aynı yolla yüklenip boşaltılabilir.
Sorun Giderme
S: Hiyerarşik Ayrıntı Seviyelerini oluşturduktan sonra neden göremiyorum?
Y: Hiyerarşik Ayrıntı Seviyesi aktörleri, varsayılan durumda editör tarafından yüklenmez. İncelemek için Anahat Düzenleyicisini kullanarak bunları ara ve Sabitle.
S: Aktörler birbirlerinden uzak olduklarında öğeler neden hiyerarşik ayrıntı seviyeleri oluşturuyor?
Y: Aktörlerin bir üst aktör altında bağlı/iç içe yerleştirilmiş olup olmadıklarını kontrol et. Aktöre tıkla ve birbirinden ayırmak için Ekle: hiçbiri seçeneğini belirle.
S: Hücreler boşaltıldığında önemli öğelerimden bazıları kayboluyor.
Y: UEFN’de kullanıma hazır öğelerin bazılarında Hiyerarşik Ayrıntı Seviyesinde Aktörü Dahil Et seçeneği varsayılan durumda işaretli olmaz. Sorunlarla karşılaşıyorsan öğenin özelliklerini kontrol et.
S: Adam 1 km'yi aşmamasına rağmen neden Akış istemi tetikleniyor?
Y: Manzaran en geniş ekseninde 1 kilometreyi aşıyorsa veya herhangi bir aktör bölümdeki kaynak noktasına 1 kilometreden daha uzakta bulunuyorsa Akış istemi tetiklenebilir.
S: Neden en geniş aktörüm uzaktaki bir HLOD ile değiştirilmiyor?
Y: Prefab hiyerarşisindeki bir veya daha fazla aktör kopyalanmış ve World Partition’ın her zaman yüklenmesi gereken örgüler olarak algılayacağı kadar uzağa taşınmış olabilir. Bu sorunu gidermek için uzaktaki aktörleri hiyerarşiden çıkar.