Dokular, dosyalar ve paketler · 3 dk okuma
FiveM "oversized asset" uyarısı: ne anlama gelir, nasıl çözülür
Şu dillerde oku: English · Español · Français · Deutsch · Português · Italiano · Polski · Русский
Sunucuyu başlatıyorsun ve konsol şuna benzer satırlarla doluyor:
Asset <resource>/<file>.ytd uses <size> MiB of physical memory.Bu, FiveM'in oversized asset (aşırı büyük varlık) uyarısıdır. Hata değildir ve dosya yine de stream edilir, ama hangi dosyaların sorun çıkaracak kadar ağır olduğunu gösterir. Aşağıda uyarının neyi ölçtüğünü, diskteki boyutun neden pek bir şey söylemediğini ve bu dosyaların nasıl küçültüleceğini bulacaksın.
FiveM neyi ölçer
Sunucu başlarken FiveM, bir kaynağın stream klasöründeki her dosyanın başlığını okur. Bu başlık, dosyanın yüklendiğinde ne kadar bellek kullandığını iki parça halinde söyler: physical (grafik belleği: dokular ve vertex buffer'lar) ve virtual (sistem belleği: varlığın geri kalanı). FiveM'in kendi kodundan okunan eşikler ikisi için de aynıdır:
| Tek bir dosyanın belleği | FiveM ne yapar |
|---|---|
| 16 MiB'in üzeri | uyarıyı yazdırır |
| 32 MiB'in üzeri | sarıyla yazdırır |
| 48 MiB ve üzeri | ekler: "Oversized assets can and WILL lead to streaming issues (such as models not loading/rendering)." (Aşırı büyük varlıklar streaming sorunlarına yol açabilir ve KESİNLİKLE yol açar, örneğin modeller yüklenmez ya da çizilmez.) |
| 64 MiB'in üzeri | kırmızıyla yazdırır |
Uyarı dosya başınadır. Sunucunun geri kalanı hafif olsa bile 20 MiB'lik bir .ytd işaretlenir.
Disk boyutu neden yanıltır
Stream edilen dosyalar diskte sıkıştırılmıştır; uyarı ise dosyanın yüklendiğinde kapladığı belleği sayar. Bir doku için bu, GPU formatındaki boyutudur: tüm mipmap seviyeleri dahil, tam bellek sayfalarına yukarı yuvarlanmış hâliyle. Yuvarlamadan önce kabaca şöyledir:
| Doku (mipmap'lerle) | DXT1 (şeffaflık yok) | DXT5 (şeffaflık var) |
|---|---|---|
| 1024 × 1024 | 0,67 MiB | 1,33 MiB |
| 2048 × 2048 | 2,67 MiB | 5,33 MiB |
| 4096 × 4096 | 10,67 MiB | 21,33 MiB |
Tek bir 4096 × 4096 DXT5 doku bile tek başına sınırın üstündedir; birkaç 2048 dokudan oluşan bir .ytd ise dosya gezgininde küçük görünürken sınırı geçebilir. Sayfa yuvarlaması toplamı, dokuların tek tek toplamından belirgin biçimde büyük yapabilir.
Bir dosya virtual (sistem) belleği için işaretlenmişse, sorun dokular değildir: varlığın çarpışma gibi diğer verileridir. Dokuları küçültmek bunu değiştirmez.
Tüm aşırı büyük dosyaları bir kerede bul
Konsolu okumak yerine tüm resources klasörünü Server Budgeta sürükle. Araç aynı başlıkları tarayıcında okur (hiçbir şey yüklenmez) ve listeler:
- Oversized: 16 MiB grafik belleğinin üzerindeki dosyalar, en kötüsü en üstte.
- By resource (kaynağa göre): her kaynağın stream ettiği bellek, belleğe göre sıralı.
- Streamed twice (iki kez stream edilenler): birden fazla kaynağın stream ettiği dosya adları. Oyun bunlardan yalnızca birini alır, o yüzden tek kopya bırak.
Server Budget'ın Oversized listesi grafik belleğini sayar. Konsolun yalnızca sistem belleği için işaretlediği bir dosya bu listede olmaz.
Dokuları küçült
Server Budget'ın işaretlediği dosyaları (.ytd, .ydr, .yft, .ydd) Asset Optimizera sürükle:
- Largest texture size (en büyük doku boyutu) değerini ayarla. Varsayılan 1024'tür; 2048, yakından baktığın arabalar ve livery'ler için yaygın bir seçimdir.
- Add missing mipmaps (eksik mipmap'leri ekle) işaretli kalsın: mipmap'siz kaydedilmiş dokulara mipmap'leri geri eklenir.
- Tahmini ("At 1024 px: about … less texture memory", yani 1024 px'te yaklaşık … daha az doku belleği) ve dosya tablosunu kontrol et.
- Download the lighter files (.zip) (daha hafif dosyaları indir, .zip) tıkla. Her dosyayı kendi adıyla geri alırsın: eskilerinin yerine koy.

Mipmap'li bir doku, en büyük seviyeleri atılarak ve yeniden sıkıştırılmadan küçültülür; yani biraz daha uzaktan bakıldığında eskisiyle aynı görünür. Mipmap'siz bir doku, seçtiğin boyutta ya da daha küçükse kendi boyutunda, tüm seviyeleriyle yeniden oluşturulur.
Aynı dokuyu birçok sözlükte tekrar eden paketlerde dokular bunun yerine paylaşılabilir: Texture Dedupe tekrarlanan dokuları tek bir ortak .ytdye taşır. Sonucu görmek için klasörü tekrar Server Budget'a sürükle.
Sorular
- 16 MiB kesin bir sınır mı?
- Hayır. FiveM dosyayı yine stream eder, yalnızca uyarır. 48 MiB'den itibaren kendi uyarısı bu tür varlıkların streaming sorunlarına yol açacağını söyler, bu yüzden 16 MiB'in üzerindeki her dosyayı küçültülmesi gereken dosya olarak say.
- Uyarı disk üzerindeki boyutu mu sayar?
- Hayır. Dosyanın yüklendiğinde kapladığı belleği sayar; bu bilgi dosyanın başlığından okunur. Bir dosya diskte 16 MB'nin çok altında olabilir ve yüklendiğinde yine de 16 MiB'i aşabilir.
- Küçük dokular daha kötü görünür mü?
- Yakından 1024 doku 2048'den daha yumuşak görünür. Uzaktan oyun zaten daha küçük mipmap seviyelerini çizer ve Asset Optimizer tam olarak bunları tutar.

Bunun için araç
Server Budget
resources klasörünü sürükle: kaynak başına grafik ve sistem belleği, 16 MiB'in üzerindeki her dosya ve iki kez stream edilen her dosya. Tarayıcında, hiçbir şey yüklenmez.
Server Budget açBurada da işe yarar: Asset Optimizer · Texture Dedupe

