Tekstury, pliki i paczki · 3 min czytania
Ostrzeżenie FiveM "oversized asset": co oznacza i jak to naprawić
Czytaj w języku: English · Español · Français · Deutsch · Português · Italiano · Türkçe · Русский
Uruchamiasz serwer, a konsola zapełnia się liniami takimi jak ta:
Asset <resource>/<file>.ytd uses <size> MiB of physical memory.To ostrzeżenie FiveM o zbyt dużych zasobach (oversized asset). To nie błąd i plik nadal jest streamowany, ale pokazuje, które pliki są na tyle ciężkie, że mogą sprawiać kłopoty. Poniżej: co jest mierzone, dlaczego rozmiar pliku na dysku mało mówi i jak zmniejszyć te pliki.
Co mierzy FiveM
Przy starcie serwera FiveM czyta nagłówek każdego pliku w folderze stream zasobu. Nagłówek mówi, ile pamięci plik zajmuje po wczytaniu, w dwóch częściach: physical (pamięć graficzna: tekstury i vertex buffery) i virtual (pamięć systemowa: reszta zasobu). Progi odczytane z kodu FiveM są dla obu takie same:
| Pamięć jednego pliku | Co robi FiveM |
|---|---|
| powyżej 16 MiB | wyświetla ostrzeżenie |
| powyżej 32 MiB | wyświetla je na żółto |
| 48 MiB i więcej | dodaje: "Oversized assets can and WILL lead to streaming issues (such as models not loading/rendering)." (Zbyt duże zasoby mogą i BĘDĄ powodować problemy ze streamingiem, np. modele się nie wczytują ani nie renderują.) |
| powyżej 64 MiB | wyświetla je na czerwono |
Ostrzeżenie dotyczy pojedynczego pliku. Plik .ytd o rozmiarze 20 MiB zostanie oznaczony, nawet jeśli reszta serwera jest lekka.
Dlaczego rozmiar na dysku myli
Pliki streamowane są na dysku skompresowane, a ostrzeżenie liczy to, co zajmują po wczytaniu. Dla tekstury to jej rozmiar w formacie GPU, ze wszystkimi poziomami mipmap, zaokrąglony do pełnych stron pamięci. Przybliżenie przed tym zaokrągleniem:
| Tekstura (z mipmapami) | DXT1 (bez przezroczystości) | DXT5 (z przezroczystością) |
|---|---|---|
| 1024 × 1024 | 0,67 MiB | 1,33 MiB |
| 2048 × 2048 | 2,67 MiB | 5,33 MiB |
| 4096 × 4096 | 10,67 MiB | 21,33 MiB |
Pojedyncza tekstura 4096 × 4096 DXT5 jest więc sama w sobie ponad granicą, a .ytd z kilkoma teksturami 2048 może ją przekroczyć, choć w eksploratorze plików wygląda na małe. Zaokrąglanie do stron może sprawić, że suma będzie wyraźnie większa niż suma tekstur.
Jeśli plik jest oznaczony za virtual (pamięć systemową), to nie tekstury: to inne dane zasobu, np. jego kolizja. Zmniejszanie tekstur tego nie zmieni.
Znajdź wszystkie za duże pliki naraz
Zamiast czytać konsolę, przeciągnij cały folder resources do Server Budget. Narzędzie czyta te same nagłówki w przeglądarce (nic nie jest wysyłane) i wyświetla:
- Oversized: pliki powyżej 16 MiB pamięci graficznej, najgorsze na górze.
- By resource (wg zasobu): ile pamięci streamuje każdy zasób, posortowane.
- Streamed twice (streamowane dwa razy): nazwy plików, które streamuje więcej niż jeden zasób. Gra dostaje tylko jeden z nich, więc zostaw jedną kopię.
Lista Oversized w Server Budget liczy pamięć graficzną. Plik, który konsola oznacza tylko za pamięć wirtualną, się w niej nie znajdzie.
Zmniejsz tekstury
Weź pliki oflagowane przez Server Budget (.ytd, .ydr, .yft, .ydd) i przeciągnij je do Asset Optimizer:
- Ustaw Largest texture size (największy rozmiar tekstury). 1024 to wartość domyślna; 2048 to częsty wybór dla samochodów i malowań oglądanych z bliska.
- Zostaw zaznaczone Add missing mipmaps (dodaj brakujące mipmapy): tekstury zapisane bez nich je odzyskają.
- Sprawdź szacunek ("At 1024 px: about … less texture memory", czyli około … mniej pamięci tekstur przy 1024 px) i tabelę plików.
- Kliknij Download the lighter files (.zip) (pobierz lżejsze pliki, .zip). Dostaniesz każdy plik pod jego nazwą: podmień nimi stare.

Tekstura z mipmapami jest zmniejszana przez usunięcie jej największych poziomów, bez ponownej kompresji, więc wygląda dokładnie tak samo z trochę większej odległości. Tekstura bez mipmap jest budowana od nowa ze wszystkimi poziomami, w wybranym rozmiarze, a jeśli jest mniejsza, we własnym.
Paczki, które powtarzają tę samą teksturę w wielu słownikach, mogą ją też współdzielić: Texture Dedupe przenosi powtarzające się tekstury do jednego wspólnego .ytd. Potem przeciągnij folder ponownie do Server Budget, by zobaczyć wynik.
Pytania
- Czy 16 MiB to twarda granica?
- Nie. FiveM nadal streamuje plik i tylko ostrzega. Od 48 MiB własne ostrzeżenie mówi, że takie zasoby spowodują problemy ze streamingiem, więc traktuj wszystko powyżej 16 MiB jako plik do zmniejszenia.
- Czy ostrzeżenie liczy rozmiar pliku na dysku?
- Nie. Liczy pamięć, jaką plik zajmuje po wczytaniu, odczytaną z nagłówka pliku. Plik może mieć na dysku wyraźnie poniżej 16 MB, a po wczytaniu nadal przekraczać 16 MiB.
- Czy mniejsze tekstury będą wyglądać gorzej?
- Z bliska tekstura 1024 jest mniej ostra niż 2048. Z daleka gra i tak rysuje mniejsze poziomy mipmap, a dokładnie te zachowuje Asset Optimizer.

Narzędzie do tego
Server Budget
Przeciągnij folder resources: pamięć graficzna i systemowa na zasób, każdy plik powyżej 16 MiB i każdy plik streamowany dwa razy. W przeglądarce, nic nie jest wysyłane.
Otwórz Server BudgetPrzydatne także tutaj: Asset Optimizer · Texture Dedupe

