Niezależnie od tego, czy tworzysz zasoby przy użyciu narzędzi do modelowania Unreal Editor dla Fortnite (UEFN), importujesz do UEFN zasoby kupione gdzie indziej, czy też tworzysz zasoby w innych narzędziach do modelowania, np. w programie Blender, musisz stale mieć na uwadze skalę, wymiary, materiały i inne właściwości zasobu. Ważne jest też, aby pamiętać o ograniczeniach urządzeń, na których gra się w Fortnite. Np. urządzenia mobilne i konsola Nintendo Switch mogą mieć inne wymagania względem zasobów niż PC lub konsola PlayStation 5.
Ten przewodnik pomoże w określeniu, czy zasoby, których używasz w projekcie, nadają się do wykorzystania w Fortnite.
Konfiguracja środowiska do modelowania
Upewnij się, że jednostki i skala są ustawione prawidłowo w UEFN lub innym narzędziu do modelowania, takim jak Blender. Te i inne ustawienia, które należy sprawdzić, znajdziesz w poniższej tabeli. Dzięki temu będziesz mieć pewność, że pracujesz z takimi samymi konfiguracjami, jak artyści Fortnite.
| Ustawienie | Jednostka lub inna wartość |
|---|---|
Długość/Liniowe | Centymetry (1 jednostka jest równa 1 cm) |
Kąty/Obrót | Stopnie |
Liczniki czasu | Klatki na sekundę |
Oś w górę | oś Z |
Przestrzeń kolorów normalnej mapy | DirectX |
Wymiarowanie siatki
W UEFN siatka świata używa centymetrów (1 cm = 1 jednostka Unreal). Gdy tworzysz zasoby w oprogramowaniu do modelowania lub w UEFN, upewnij się, że używasz siatki o wymiarach 512 cm (512 jednostek). Jest to standard używany w Fortnite.
Skalowanie świata
Postacie graczy w Fortnite mają wzrost 192 cm. Pamiętaj o tym, gdy tworzysz architekturę lub meble, aby skala graczy pasowała do tworzonego otoczenia.
Budżety zasobu
Poniższa tabela zawiera przesuwną skalę budżetów zasobu, zależnie od jego rozmiaru i złożoności. Budżety stanowią przybliżoną szacowaną wartość dla najniższego poziomu szczegółów LOD dla twoich dzieł. Budżet nie jest bezpośrednio powiązany z wielkością obiektu, ale ze złożonością szczegółów.
Jeśli dla zasobu nie są ustawione prawidłowe LOD-y, zachowuj rozwagę pod względem liczby używanych zasobów, które przekraczają 20k wierzchołków.
| Poziom złożoności | Mała siatka | Średnia siatka | Duża siatka |
|---|---|---|---|
Proste obiekty | Maks. LOD0: 400 wielokątów | Maks. LOD0: 900 wielokątów | Maks. LOD0: 2500 wielokątów |
Średnie obiekty | Maks. LOD0: 700 wielokątów | Maks. LOD0: 2000 wielokątów | Maks. LOD0: 6000 wielokątów |
Złożone obiekty | Maks. LOD0: 1200 wielokątów | Maks. LOD0: 4000 wielokątów | Maks. LOD0: 9000 wielokątów |
Powyższe limity budżetów są podane w celach referencyjnych. Najlepszym sposobem przetestowania zasobów jest ich zaimportowanie i przetestowanie w UEFN.
Inne podejście do budżetów polega na porównaniu tworzonego obiektu z wielkością postaci przy użyciu liczby wierzchołków, jak pokazano poniżej.
| Wielkość zasobu | vs. Gracz | Licznik wierzchołków |
|---|---|---|
S | Pół postaci lub mniejszy | Maks. 1000 |
Średnie | Nie większy niż wielkość postaci | Maks. 3000 |
Duży | Większy niż postać | Maks. 5000 |
Poniższe sekcje zawierają przykładowe budżety zasobów dla niektórych często spotykanych typów zasobów. Lista zawiera liczbę wierzchołków dla zakresu LOD.
Drzewa
| Wielkość drzewa i LOD | Małe LOD0 | Małe LOD3 | Średnie LOD0 | Średnie LOD3 | Duże LOD0 | Duże LOD3 |
|---|---|---|---|---|---|---|
Licznik wierzchołków | 1700 | 150 | 5000 | 1200 | 15000 | 2000 |
Skały
| Wielkość skały i LOD | Małe LOD0 | Małe LOD3 | Średnie LOD0 | Średnie LOD3 | Duże LOD0 | Duże LOD3 |
|---|---|---|---|---|---|---|
Licznik wierzchołków | 600 | 50 | 1200 | 100 | 2500 | 150 |
Znaki
| Wielkość znaku i LOD | Małe LOD0 | Małe LOD3 | Średnie LOD0 | Średnie LOD3 | Duże LOD0 | Duże LOD3 |
|---|---|---|---|---|---|---|
Licznik wierzchołków | 400 | 50 | 1700 | 300 | 7000 | 300 |
Rekwizyty
| Wielkość rekwizytu i LOD | Małe LOD0 | Małe LOD3 | Średnie LOD0 | Średnie LOD3 | Duże LOD0 | Duże LOD3 |
|---|---|---|---|---|---|---|
Licznik wierzchołków | 900 | 60 | 1500 | 150 | 3200 | 250 |
Pojazdy
| Wielkość pojazdu i LOD | Małe LOD0 | Małe LOD3 | Średnie LOD0 | Średnie LOD3 | Duże LOD0 | Duże LOD3 |
|---|---|---|---|---|---|---|
Licznik wierzchołków | 1200 | 200 | 6000 | 400 | 9000 | 1000 |
Poziomy szczegółów (LOD) zasobu
Poziom szczegółów (Level of Detail - LOD) to istotny sposób na polepszenie wydajności działania wysp na wielu różnych urządzeniach. LOD-y można wygenerować wewnątrz UEFN po utworzeniu lub zaimportowaniu zasobu, ale jeśli tworzysz zasoby w innej aplikacji do modelowania, możesz też tworzyć LOD-y ręcznie w trakcie tworzenia zasobu. Funkcje Auto-LOD ułatwiają tworzenie LOD-ów, w przypadku większości zasobów jest to wystarczające. Jednak niektóre zasoby o niespojonej geometrii mogą wymagać ręcznie utworzonych LOD-ów.
Zasoby stosowane w przygodach w czasie rzeczywistym powinny mieć pięć LOD-ów (LOD0 i LOD1-LOD4), aby zapewnić dobrą wydajność działania na różnych urządzeniach.
Zoptymalizuj każdą siatkę LOD przy użyciu poprzedniego LOD wyświetlonego w tym samym czasie, w UEFN lub innym używanym oprogramowaniu do modelowania. Zwróć uwagę na łączenia w poprzednim LOD. W ten sposób możesz optymalizować wewnątrz wysp UV. Pozwala to uniknąć sytuacji, w których tekstura przesuwa się w momencie przełączania gry z jednego LOD na inny.
O czym warto pamiętać, tworząc LOD-y:
Zmniejsz liczbę wielokątów zależnie od sylwetki, aby uniknąć dużych różnic na obiektach między przejściami LOD. W najwyższym możliwym stopniu zachowuj kształt sylwetki oglądanej pod wszystkimi kątami na wszystkich LOD-ach zasobu.
Każdy LOD powinien zawierać dwa razy mniej wielokątów niż poprzedni poziom.
Generując LOD, nie przełamuj granic UV, w przeciwnym razie tekstura będzie się źle rozciągała.
Testuj LOD i dostosowuj odległości LOD odpowiednio do każdego poziomu.
LOD1 do LOD3 mogą być tworzone automatycznie przy użyciu optymalizatora siatki narzędzia do modelowania tylko, gdy:
UV są dopasowane bez żadnego przesunięcia ani obrotu na wyspach UV między jednym LOD a innym.
We wszystkich LOD jest używany ten sam materiał.
Kolizja zasobu
Wszystkie obiekty siatki statycznej muszą mieć właściwości kolizji, które pozwalają graczom na interakcję z siatkami statycznymi podczas rozgrywki. Właściwości kolizji mają wpływ na ruch gracza, efekty siatek i graczy zderzających się z obiektem, a także na śledzenie świata. Wolumeny kolizji są zwykle generowane i konfigurowane bezpośrednio w edytorze, takim, jak UEFN, ale jeśli tworzysz zasoby w innym narzędziu do modelowania, dobrą praktyką jest dołączanie wolumenów kolizji do zasobów.
Buduj wypukłe modele, aby utworzyć zgrubny blokowy kształt zasobu. Dostosuj prymitywy, aby otoczyć blokiem podstawowy kształt siatki. Próbuj ograniczyć siatkę do 10 siatek UCX lub mniejszej liczby.
Nazywając elementy, stosuj konwencję przedrostka UCX_ i następującej po nim nazwy siatki z małą liczbą wielokątów wyeksportowanej z narzędzia do modelowania. Jeśli np. zasobem jest krzesło, nazwa powinna być UCX_Krzesło.
Jeśli masz wiele kopii siatki, dodaj numer po każdej nazwie zasobu, np.: UCX_Krzesło_01, UCX_Krzesło_02 itd.
Aby dowiedzieć się więcej, przeczytaj stronę Konfigurowanie kolizji dla siatki statycznej.
Wskazówki dotyczące materiałów i tekstur
Ta i następne sekcje zawierają wskazówki dotyczące tworzenia materiałów i tekstur dla zasobów utworzonych w innym narzędziu do modelowania. Narzędzia do modelowania UEFN działają inaczej, dlatego przeczytaj sekcję Materiały w dokumentacji UEFN, aby dowiedzieć się więcej o tym, jak materiały działają z zasobami utworzonymi wewnątrz UEFN.
Chcesz, aby zasoby działały w jak największej liczbie przygód i doświadczeń. Ważne jest, aby zdawać sobie sprawę, że zasób będzie oglądany w najróżniejszych scenariuszach oświetlenia: na powietrzu w różnych porach dnia, na powietrzu w nocy, w pomieszczeniu z jasnym i przyciemnionym światłem itd. Aby to uwzględnić, pamiętaj o następujących rzeczach:
Utrzymuj wartości albedo w fizycznie poprawnym zakresie.
Wybierając poziomy wartości emisyjnych, upewnij się, że działają z różnymi warunkami oświetlenia, takimi jak dzień, noc, w pomieszczeniu i na powietrzu.
Nawet jeśli zasób nie jest fotorealistyczny, trzeba cały czas rozumieć, jak działa renderowanie oparte na fizyce (Physically Based Rendering - PBR).
Tworzenie materiałów
Pomyśl o tym, jak wyglądają obiekty w realnym świecie i na ich podstawie zamodeluj materiały i tekstury. Tekstury mogą być tak bardzo szczegółowe, jak chcesz.
Gdy wszystko jest gotowe do zaimportowania tekstur, możesz użyć formatu pliku TGA lub PNG. Jednakże artyści Fortnite do większości tekstur używają PNG.
Wypalanie tekstury z siatki o dużej liczbie wielokątów i siatki o małej liczbie wielokątów
Gdy wszystko jest gotowe do rozpoczęcia wypalania mapy, pamiętaj, aby zrobić następujące rzeczy:
Użyj nieskończonego odstępu wewnętrznego tekstury (zwanego też wydłużaniem tekstury) z mapą tekstury.
Upewnij się, że zamrażasz i zwijasz wszystkie przekształcenia dla mapy tekstury.
Wypalanie tekstur dla modeli o małej liczbie wielokątów
Utwórz duplikaty modeli o małej liczbie wielokątów w celu wypalenia. Modele powinny w najwyższym możliwym stopniu zachowywać kwadranty. Dodawaj triangulację do zduplikowanego modelu tylko, gdy jest to absolutnie konieczne, przed wyeksportowaniem go w celu wypalenia. Duplikat powinien być ostateczną siatką używaną w grze.
Upewnij się, że zakres UV modelu zawiera się w 0–1 przed rozpoczęciem wypalania tekstury.
Wypalanie tekstur dla modeli o dużej liczbie wielokątów
Siatka o dużej liczbie wielokątów jest używana tylko do wypalania. UV na tej siatce nie są potrzebne, ale możesz oddzielić przypisania materiałów, aby mieć wpływ na maskę ID.
Jeśli używasz Marmoset, możesz wydzielić odpowiednie elementy jako zawierające dużą i małą liczbę wielokątów, aby wyizolować szczegóły wypalania. Aby dowiedzieć się więcej, przeczytaj dokumentację Marmoset.
Skalowanie tekstury
Używaj skalowania wg potęgi 2 do map tekstury (64, 128, 256, 512, 1024, 2048). Dzięki temu można realizować mipmapping.
W przypadku unikatowych tekstur rozłożonych kafelkowo, rozprostuj wyspy UV tam, gdzie jest to potrzebne, i utrzymuj możliwie najmniejszą liczbę łączeń UV.
Wszystkie mapy tekstur powinny mieć rozmiar/rozdzielczość 2k lub mniej.
Typowo materiały zawierają następujące mapy tekstur:
Jeśli nie dołączysz map tekstury odbicia światła, teksturę odbicia światła trzeba skonfigurować następująco:
Mapa odbić światła na kanale R
Mapa metaliczna na kanale G
Mapa chropowatości na kanale B
Do wypalania map tekstur zalecamy zasadniczo Marmoset, ale możesz używać innych rozwiązań. Jeśli nie masz dostępu do Marmoset, do wypalenia zasobów możesz np. użyć Xnormal.
Upewnij się, że twoje mapy zawierają takie opcje jak Normalna, Normalna przestrzeni świata, Okluzja otoczenia, Maska ID i Krzywizna. Wynikowych wypalonych map tekstur można używać w takich aplikacjach, jak Substance Painter, aby generować końcowe mapy Dyfuzja, Normalna i Spec/Metal/Chropowatość/Alfa używane w Fortnite.
Konfiguracja Substance Painter
Poniżej znajdują się wyjścia kanału mapy tekstur do malowania siatki przy użyciu Substance Painter. Jeśli używasz innej aplikacji, znajdź w niej podobne ustawienia.
| Typ mapy tekstury | Ustawienie kanału |
|---|---|
Dyfuzja | RGB lub RGBA (z Alfa) |
Normalny | RGB |
Odbicie światła | Kanał czerwony=Odbicie światła, Kanał zielony=Metaliczność, Kanał niebieski=Chropowatość, Kanał Alfa =Tylko emisyjne |
W opcji Skonwertowane mapy ustawienie powinno być Normalna DirectX.
Optymalizacja wydajności dla Nintendo Switch i urządzeń mobilnych
W Fortnite można grać na szerokiej gamie urządzeń. Gdy w UEFN tworzysz zasoby, których planujesz używać w Fortnite, dobrze jest rozważyć ich optymalizację, aby działały dobrze na wszystkich urządzeniach, które obsługuje Fortnite.
Oto kilka sposobów optymalizacji zasobów pod kątem Nintendo Switch i urządzeń mobilnych.
Liczba wielokątów: Utrzymuj możliwie najmniejszą liczbę wielokątów.
Liczba materiałów: Używaj możliwie najmniejszej liczby materiałów. Idealnie używaj tylko jednej sekcji materiału dla każdej siatki.
Jakość materiałów: Na tych urządzeniach używanie materiałów o bardzo wysokiej jakości warto obniżyć do wersji o niskiej jakości. Jeśli używasz urządzenia, które jest wyposażone w funkcje umożliwiające przełączenie na materiał o niskiej jakości, aby poprawić wydajność, zastosuj te funkcje. W UEFN, użyj funkcji Przełącznik jakości materiału i Przełącznik ścieżki cieniowania materiału w Przeglądarce materiałów UEFN.
Rozdzielczość tekstury: Na tych urządzeniach pamięć tekstur jest zwykle dość ograniczona. Możesz zoptymalizować wydajność, używając wyłącznie tekstur o rozmiarach 512x512 pikseli i, o ile to możliwe, unikając tekstur o większych rozmiarach.
Rozwiązywanie problemów z zasobami
Gdy tworzysz siatkę w UEFN po raz pierwszy, być może napotkasz jakieś problemy. Oto lista typowych problemów i niektórych możliwych rozwiązań.
Zasób ma nieprawidłową rozdzielczość: Gdy tworzysz zasób 3D o wysokiej rozdzielczości (high-res), nie możesz wrócić do niższej rozdzielczości. Siatki high-res trudniej się edytuje, a komputer musi pracować ciężej, aby je renderować. To oznacza, że jeśli chcesz obejrzeć swój zasób, jego przygotowanie trwa dłużej. Ponadto tworzone pliki są większe, a wynikowa liczba wierzchołków jest za duża dla UEFN i Fortnite.
Skala zasobu jest nieprawidłowa: Upewnij się, że stosujesz skalę w sposób spójny i jednolity. Oto kilka przykładów, dlaczego skala nie działa prawidłowo:
Ustawienia skali są w centymetrach, a nie metrach.
Skalę świata środowiska modelowania trzeba zaktualizować.
Proces eksportu konwertuje skalę wyjściową.