Dokumentacja pluginu do tworzenia map w Urban Terror 5

Niniejszy przewodnik pokazuje w jaki sposób zainstalować wtyczkę FrozenSand - Urban Terror Mapping Plugin i skonfigurować silnik Unreal Engine, by w łatwiejszy sposób tworzyć niestandardowe poziomy (mapy) dla Urban Terror 5: Resurgence.

Adnotacja: Epic regularnie aktualizuje silnik Unreal Engine, a ogólny proces zaprezentowany na tej stronie pozostaje taki sam, jednak numery wersji, opisy i zrzuty ekranu mogą się różnić.

Należy również pamiętać, że silnik zajmuje na dysku dużo miejsca (ponad 30 GB przy minimalnej instalacji) i około od 5 do 10 GB na każdą mapę.

Ten przewodnik dotyczy systemu Windows. Niektóre kroki będą wyglądały inaczej w systemie Linux.

Poniższy wpis został pierwotnie opublikowany przez FrozenSand w poniedziałek, 16 sierpnia 2021 r.

Tłumaczenie zawiera nowsze informacje (np. wersja silnika Unreal Engine o oznaczeniu 5.3 z września 2023 r., zamiast 5.2. z czerwca tego samego roku) i rozszerzenie wybranych terminów.

Opisywane w tekście zagadnienia dotyczą angielskich wersji językowych programów.

Autor za udzielenie cennych wyjaśnień i wskazówek odnośnie do tłumaczenia niektórych pojęć z języka programowania (trudnych do przełożenia bezpośrednio na język polski) chciałby serdecznie podziękować Lizartowi.

Oryginalna wersja artykułu jest dostępna w tym miejscu.


SPIS TREŚCI


1. POBIERANIE SILNIKA UNREAL ENGINE 5

Urban Terror opiera się na silniku Unreal Engine 5. Aby stworzyć niestandardowy poziom, musisz skorzystać z edytora Unreal Engine. Pierwszy krok to pobranie DARMOWEGO edytora. Istnieje kilka sposobów na pobranie edytora UE5. Najprościej jest pobrać i zainstalować go za pośrednictwem Epic Games Launcher.

  • Pobierz Epic Games Launcher: https://store.epicgames.com/pl/download
  • Uruchom program.
  • Zaloguj się za pomocą istniejącego konta Epic Games lub utwórz nowe DARMOWE konto.
  • Przejdź do zakładki Library znajdującej się w górnej części programu.
  • Kliknij czarny znak plusa na żółtym tle, aby dodać nową wersję silnika (po pierwszej instalacji może być konieczne odczekanie kilku minut, aż plus z koloru szarego zmieni się na kolor żółty, podczas gdy launcher zakończy instalację w tle).

Musisz użyć tej samej wersji, dla której została wydana wtyczka mapowania. Obecnie jest to 5.3.x z września 2023 r. (wersja poprawki "x" nie ma znaczenia dla tworzenia niestandardowych poziomów, więc użyj najnowszej).

Kliknij na przycisk Install. Powinno pojawić się nowe okno umożliwiające wybór ścieżki instalacji.

Następnie naciśnij na Options. Upewnij się, że jako platformę docelową wybrałeś Linux. Pozostałe możliwości nie mają znaczenia i można je odznaczyć, aby zaoszczędzić miejsce na dysku. Kliknij Apply, aby potwierdzić swoje wybory.

Naciśnij przycisk Install i poczekaj na pobranie oraz zainstalowanie edytora Unreal Editor.

2. KONFIGURACJA PROJEKTU

2.1 Tworzenie nowego projektu

Po zainstalowaniu edytora, należy utworzyć nowy projekt.

  • Uruchom edytor, klikając na przycisk Launch w Epic Games Launcher lub używając skrótu na pulpicie i poczekaj, aż otworzy się przeglądarka projektów Unreal Project Browser.



    Wybierz kategorię Games i kliknij Next.

  • Wybierz Blank (pusty szablon) i kliknij Next.



    W tym miejscu należy ustalić ścieżkę i nazwę projektu. Nazwa projektu nie jest ważna dla poziomu i nie pojawi się nigdzie po jego spakowaniu. Wybierz coś, co ma dla ciebie sens. W tym przewodniku użyjemy MyProject.
  • Wybierz następujące ustawienia projektu: Blueprint, Maximum Quality, Raytracing Disabled, Desktop/Console, No Starter Content.



    Kliknij na przycisk Create Project (Utwórz projekt) i poczekaj, aż Edytor otworzy nowy projekt.

3. POBIERANIE WTYCZKI MAPOWANIA URBAN TERROR

Pobierz: Urban Terror Mapping Plugin (dla UE 5.2.x)

4. INSTALACJA WTYCZKI MAPOWANIA URBAN TERROR

Przed rozpoczęciem nowego projektu należy najpierw skonfigurować kilka specyficznych elementów dla Urban Terror. Obejmuje to Urban Terror Mapping Plugin, niektóre ustawienia projektu i strukturę folderów.

  • Zamknij edytor, jeśli jest otwarty.
  • Pobierz wtyczkę Urban Terror Mapping Plugin (link znajduje się powyżej).
  • Otwórz menedżera plików i przejdź do folderu projektu.
  • Sprawdź, czy znajduje się tam folder o nazwie Plugins. Jeśli nie, to go utwórz.
  • Rozpakuj plik UrbanTerrorMapping.zip do folderu Plugins w swoim projekcie.

Silnik Unreal Engine ma wiele ustawień. Podczas tworzenia poziomów dla Urban Terror, niektóre z nich powinny być zgodne z ustawieniami używanymi przez grę. Możesz przejść do ustawień projektu w edytorze i ręcznie zmienić je wszystkie, ale istnieje szybszy sposób. Ustawienia projektu są przechowywane w folderze /MyProject/Config/DefaultEngine.ini.

  • Przejdź do folderu /MyProject/Config/ i otwórz plik tekstowy DefaultEngine.ini.
  • Przejdź do folderu /MyProject/Plugins/UrbanTerrorMapping/ i otwórz plik tekstowy readMe.md.
  • Skopiuj tekst ustawień z pliku readMe.md i dołącz go do pliku DefaultEngine.ini w dolnej części tekstu.
  • Zapisz i zamknij obydwa pliki.

Spowoduje to kilka rzeczy:

  • Nadpisanie domyślnej klasy ustawień świata (world setting class) klasą URTWorldSettings z wtyczki Urban Terror Mapping (w przeciwnym razie gra nie załaduje poziomu).
  • Twój projekt będzie korzystał ze ścieżki forward renderingu (forward rendering obok deffered rendering to metoda renderowania obrazu, a różnica między nimi jest w kolejności obliczania geometrii i oświetlenia). Urban Terror wykorzystuje forward shading. Aby móc poprawnie wyświetlić podgląd zasobów i poziomu w sposób, w jaki będą one renderowane w rzeczywistej grze, musisz również użyć forward shading w swoim projekcie.
  • Dostosowanie niektórych ustawień nawigacji. Umożliwi to wyświetlenie podglądu dowolnej siatki nawigacyjnej (navmesh), która zostanie wygenerowana przez grę w czasie działania.
  • Dodanie do projektu wszystkich definicji typów powierzchni używanych przez grę. Umożliwi to prawidłowe zastosowanie tych typów powierzchni do materiałów i siatek w twoim poziomie.
  • Dodanie wstępnych niestandardowych ustawień kolizji używanych w grze.

5. STRUKTURA FOLDERÓW

Teraz, gdy ustawienia projektu są skonfigurowane, nadszedł czas, aby ponownie otworzyć projekt. Może to trochę potrwać. Najprawdopodobniej silnik musi skompilować wiele shaderów, ponieważ przełączyłeś się na forward rendering.

Po otwarciu projektu spójrz na przeglądarkę zawartości.

  • Kliknij prawym przyciskiem myszy na Content i utwórz nowy folder o nazwie ThirdParty.
  • Wewnątrz folderu ThirdParty utwórz nowy folder i nadaj mu opisową nazwę. W tym folderze będzie znajdować się cała zawartość poziomu niestandardowego. Nazwa ta musi być również używana dla pliku .pak, gdy ostatecznie spakujesz swój poziom. Dlatego zaleca się nadanie mu nazwy, którą zamierzasz nazwać swój poziom. W tym przewodniku użyjemy nazwy MyLevel.

Sposób organizacji projektu w folderze poziomu zależy wyłącznie od Ciebie. Oto dwa popularne sposoby organizacji zawartości poziomu w podfolderach:

5.1. Organizacja za pomocą folderu dla każdego typu zasobów

|-- Content
|-- ThirdParty
|-- MyLevel
|-- Audio // zawiera wszystkie pliki audio/dźwiękowe
|-- Effects // zawiera wszystkie efekty cząsteczkowe/wizualne
|-- Maps // zawiera plik(i) mapy
|-- Materials // zawiera wszystkie materiały używane na poziomie przez wszystkie zasoby artystyczne
|-- Meshes// zawiera wszystkie siatki użyte na poziomie.
|-- Textures // zawiera wszystkie tekstury używane na poziomie przez wszystkie zasoby artystyczne.

5.2. Organizacja poprzez utworzenie podfolderu dla każdego zasobu artystycznego. Siatki, materiały i tekstury są wrzucane razem do folderu zasobu.

|-- Zawartość
|-- ThirdParty
|-- MyLevel
|-- Art // zawiera wszystkie siatki, materiały i tekstury na poziomie, posortowane w odpowiednich podfolderach dla każdego zasobu
| Industrial
| Buildings // zawiera wszystkie ściany, podłogi i inne podstawowe zasoby budynków, a także ich materiały i tekstury
| Machinery // zawiera wszystkie siatki maszyn oraz ich materiały i tekstury
| Pipes // zawiera wszystkie siatki rur oraz ich materiały i tekstury
| Nature
| Rocks // zawiera wszystkie siatki skał oraz ich materiały i tekstury
| Trees // zawiera wszystkie siatki drzew oraz ich materiały i tekstury
|-- Audio // zawiera wszystkie pliki audio/dźwiękowe
|-- Effects // zawiera wszystkie efekty cząsteczkowe/wizualne
|-- Maps // zawierają pliki map

Należy jednak pamiętać, że maksymalna długość ścieżki pliku w Unreal Engine 4 wynosi 260 znaków. Nie używaj więc zbyt głęboko zagnieżdżonych folderów i utrzymuj nazwy zasobów w miarę krótkie, w przeciwnym razie nie będziesz w stanie „ugotować” ( z ang. cooking - proces przygotowania/przetworzenia zasobów gry, aby były przez zbudowaną grę optymalnie wykorzystywane) i spakować swojego poziomu.

6. PRACA NAD PROJEKTEM

Tworzenie nowego poziomu

Po skonfigurowaniu projektu i przygotowaniu do pracy, nadszedł czas na utworzenie poziomu.

  • W górnym pasku menu wybierz File → New levelDefault.
  • Zapisz poziom w folderze Maps i nadaj mu taką samą nazwę, jaką wybrałeś dla folderu w poprzednim kroku.

7. DOSTĘPNE I OGRANICZONE FUNKCJE

Teraz możesz rozpocząć importowanie zasobów i umieszczanie ich na poziomie. Możesz korzystać z prawie wszystkich narzędzi i funkcji oferowanych przez Unreal Engine, z kilkoma wyjątkami.

Możliwe jest wykorzystywanie siatek statycznych (static meshes), siatek szkieletowych (skeletal meshes), animacji, systemów cząsteczek, materiałów, funkcji materiałów, instancji materiałów, krajobrazów, aktorów typu foliage (roślinność), sygnałów dźwiękowych, klas tłumienia dźwięków, drzew zachowań.

Rozwijając powyższą nomenklaturę: aktorem w UE jest każdy zasób umieszczony w poziomie gry -siatka statyczna, światło, dźwięk, foliage.

Foliage odnosi się do sposobu umieszczania dużej ilości zasobu - może to być dowolny zbiór siatek statycznych umieszczanych w sposób "masowy" – są wykorzystywane głównie do tworzenia roślinności (trawy), małych kamieni, porozrzucanych śmieci, itp.

Z kolei drzewo decyzyjne (behaviour tree) to termin z zakresu sztucznej inteligencji, np. botów.

Jest jednak jedna ważna funkcja, której nie można używać. Blueprints to potężny wizualny system kodowania, który pozwala na zmianę niemal każdej logiki gry, a w najgorszym przypadku również na uruchomienie złośliwego kodu na komputerach innych graczy, którzy ładują swój poziom. Aby zapewnić spójne wrażenia z gry na wszystkich poziomach i chronić naszych graczy, niestandardowe Blueprinty zostały wyłączone. Z tego samego powodu Blueprint poziomu jest również wyłączony. Jeśli spakujesz swój poziom, a plik pak zawiera jakikolwiek Blueprint, to gra odmówi załadowania twojego poziomu (więcej na ten temat w dalszej części tego dokumentu dotyczącej Cooking i pakowania poziomu). Możesz jednak używać domyślnych schematów silnika i schematów z wtyczki Urban Terror Mapping, które nie będą zawarte w spakowanym pliku poziomu, ale będą odwoływać się do zawartości dostarczonej z grą.

Upraszczając powyższy opis, należy stwierdzić że używając blueprintów ma się w zasadzie nieograniczone możliwości. C++ raczej pozostaje tu do tworzenia czegoś bardzo konkretnego lub zależy od preferencji programisty, lecz niestety pozostawia furtkę dla szkodliwej działalności, albo do omijania zasad rozgrywki, dlatego też 3rd party mapy zawierające dodatkowe blueprinty nie mogą być akceptowane.

8. PRACA Z WTYCZKĄ URBAN TERROR MAPPING

Wtyczka Urban Terror Mapping zapewnia wszystkie niezbędne klasy Blueprint specyficzne dla gry, na przykład: obiekty player start, aktorzy lokacji, aktorzy specyficzni dla trybu gry, triggery dla drzwi, itp.

Aby znaleźć wtyczkę w edytorze Unreal Editor, należy najpierw włączyć flagę Show Plugin Content w opcjach widoku (View options) w przeglądarce zawartości. Zawartość wtyczki znajduje się w UrbanTerrorMapping Content.

We wtyczce mapowania są trzy foldery. Wszyscy aktorzy potrzebni do stworzenia grywalnej mapy Urban Terror znajdują się w folderze MappingTools. Folder assets zawiera wszystkie dodatkowe zasoby, których potrzebują narzędzia. Wreszcie, folder DemoLevel zawiera poziom UrbanTerrorMappingDemo i wszystkie potrzebne zasoby dla tego poziomu. Na poziomie demonstracyjnym można znaleźć prezentację wszystkich aktorów i funkcji wtyczki: /UrbanTerrorMapping/DemoLevel/UrbanTerrorMappingDemo

Po przeciągnięciu jednego z aktorów mapowania na poziom, w panelu szczegółów znajdziesz sekcję UrbanTerror, która zawiera wszystkie odpowiednie zmienne do dostosowania. Po najechaniu kursorem na nazwę zmiennej, podpowiedź wyświetli dodatkowe informacje.

Jak wspomniano powyżej, większość aktorów i funkcji jest objęta poziomem demonstracyjnym, ale jest jedna klasa, o której należy tutaj wspomnieć - world settings class. Jeśli pamiętasz, podczas konfigurowania projektu ustawiliśmy domyślną nazwę tej klasy ustawień świata na UrbanTerrorMapping.URTWorldSettings. Otwórz okno ustawień świata za pomocą paska menu w edytorze UE5: WindowWorld Settings.

Jeśli nie widzisz sekcji UrbanTerror w ustawieniach świata, najprawdopodobniej twój poziom nie używa prawidłowej klasy ustawień świata. Upewnij się, że projekt korzysta z klasy URTWorldSettings class, ustawiając ją w menu głównym edytora EditProject SettingsEngineGeneral SettingsDefault ClassesWorld Settings Class (powinna być już ustawiona poprzez dostosowanie DefaultEngine.ini w poprzednim kroku). Jeśli ustawiono prawidłową klasę ustawień świata, należy utworzyć nowy poziom. Klasa ustawień świata jest przypisywana do zasobu poziomu podczas jego tworzenia. Jeśli dodałeś już aktorów do swojego poziomu, możesz kopiować i wklejać ich między poziomami, wybierając ich w World Outliner i używając domyślnych skrótów klawiszowych kopiuj/wklej (Ctrl+C, Ctrl+V).

W ustawieniach świata znajdziesz kilka zmiennych dla informacji, które będą wyświetlane w menu gry i na ekranie ładowania na temat twojego poziomu, takich jak nazwa mapy, autor itp. Znajdziesz tam również informacje o trybie gry. Dla każdego trybu gry obsługiwanego przez poziom należy dodać nowy element i wybrać tryb. Dodatkowo możesz określić dowolną liczbę podpoziomów dla każdego trybu gry. Dzięki temu możesz mieć różne układy map, obiekty player start, geometrię lub aktorów dla każdego trybu gry.

Podczas dodawania dodatkowych poziomów za pośrednictwem okna poziomów, upewnij się, że ich metoda przesyłania strumieniowego jest ustawiona na Blueprint, co jest wartością domyślną. Nazwy poziomów podrzędnych powinny zaczynać się od nazwy poziomu głównego, a następnie jakiegoś opisu, na przykład MyLevel_CTF.

(AKTUALIZACJA) Ustawienia poziomów zostały przeniesione do osobnego zasobu, w /UrbanTerrorMapping/MappingTools/Game/ znajdziesz DA_MapData_MyMap

  • Skopiuj zasób DA_MapData_MyMap do folderu z mapami.
  • Zmień jego nazwę, aby zastąpić MyMap nazwą swojego poziomu.
  • Otwórz zasób i wprowadź te same szczegóły mapy, które zostały użyte w WorldSettings.
  • Zapisz i zamknij zasób MapData.
  • Ustanów odniesienie do DA_MapData_MyMap w WorldSettings.

9. COOKING I PAKOWANIE POZIOMU

Po ukończeniu poziomu (lub przetestowaniu go w Urban Terror 5) należy spakować projekt. Ponieważ Unreal Editor jest narzędziem do tworzenia całych gier, a nie tylko poziomów, nie ma jednego przycisku, aby po prostu wyeksportować pojedynczy poziom. Będziesz musiał utworzyć kompletną spakowaną wersję "swojego projektu gry" i powiedzieć edytorowi, aby spakował poziom w osobnym pliku. Pakiet zawierający tylko poziom i jego zasoby może ostatecznie zostać załadowany przez Urban Terror 5.

W UE5 domyślnie cały projekt gry jest spakowany do pojedynczego pliku .pak. Istnieje kilka metod, aby nakazać silnikowi podzielenie zawartości na wiele plików .pak. W tym celu najrozsądniejszym sposobem jest użycie Primary Asset Label.

  • Utwórz nową etykietę zasobów w folderze głównym poziomu w folderze projektu, klikając prawym przyciskiem myszy w przeglądarce zawartości i wybierając MiscellaneousData Asset i PrimaryAssetLabel w wyskakującym okienku.



Otwórz etykietę zasobu i dostosuj ustawienia.

  • Ustaw Priority na dowolną wartość wyższą niż 0 (na przykład 1000).
  • Zaznacz opcję Apply Recursively.
  • Ustaw Chunk ID na dowolną wartość wyższą niż 0 (na przykład 1).
  • W tablicy Explicit Assets dodaj nowy element i wybierz poziom główny.

Poprzez wyraźne wybranie głównego poziomu i rekurencyjne zastosowanie identyfikatora fragmentu, poziom i wszystkie zasoby, do których się odwołuje, zostaną spakowane do osobnego pliku .pak (na przykład pak1), podczas gdy reszta projektu gry domyślnie trafi do pak0.

Oprócz upewnienia się, że poziom jest spakowany w osobnym pliku, należy również upewnić się, że w pliku .pak nie znajduje się żadna niepożądana zawartość. Aktorzy z wtyczki mapowania zostaną spakowani do pliku .pak, chyba że wykluczysz wtyczkę mapowania z pakowania. Należy to zrobić w ustawieniach projektu za pośrednictwem głównego menu edytora Edit Project SettingsProject Packaging → (Show Advanced) → Directories to never cook, kliknij +, aby dodać wpis, a następnie wprowadź /UrbanTerrorMapping. Będąc w tym menu, upewnij się również, że opcja Share Material Shader Code NIE jest zaznaczona. Wszystkie inne ustawienia pakowania są nieistotne, ponieważ zamierzamy je skonfigurować za pomocą project launchera.

Po prawidłowym ustawieniu Primary Asset Label i katalogów, które nigdy nie będą „gotowane” (cooking), możesz wreszcie spakować swój projekt. Jeśli pakujesz projekt na komputerze z systemem Windows i chcesz również skompilować go dla systemu Linux, możesz dodać obsługę systemu Linux do silnika Unreal Engine, instalując odpowiedni zestaw narzędzi dostępny tutaj: docs.unrealengine.com/en-US/Platforms/Linux/GettingStarted/index.html

-Otwórz Project Launcher przez WindowProject Launcher

Utwórz nowy niestandardowy profil uruchamiania za pomocą małego przycisku +.

Kliknij dwukrotnie na New Profile 0, aby zmienić nazwę profilu (na przykład na "MyProject Windows Shipping").

  • W sekcji Project wybierz swój projekt jako projekt dla tego profilu uruchamiania. Jeśli przeglądasz, wybierz plik MyProject.uproject.
  • W sekcji Build, po prawej stronie wybierz Build.
  • Wybierz Shipping jako konfigurację kompilacji.

W sekcji Cook, po prawej stronie, wybierz opcję By the book dla opcji How would you like to cook the content?

  • Wybierz WindowsNoEditor dla Cooked Platforms.
  • Wybierz główny plik poziomu tylko dla Cooked Maps (podpoziomy zostaną dołączone automatycznie).

W Advanced Settings zaznacz opcję Store all content in a single file (UnrealPak).

  • W sekcji Advanced Settings wybierz Generate Chunks.
  • Zaznacz Don't include editor content in the build.
  • Wybierz Shipping jako konfigurację Cooker build configuration.

W sekcji Package wybierz Package and store locally dla opcji How would you like to package the build?

  • W razie potrzeby dostosuj Local Directory Path (ścieżkę katalogu lokalnego). Jest to lokalizacja, w której zakończy się spakowany projekt (domyślnie w folderze /MyProject/Saved/StageBuilds/).
  • W sekcji Deploy wybierz Do not deploy dla opcji How would you like to deploy the build?

Po dostosowaniu wszystkich ustawień naciśnij przycisk Back w prawym górnym rogu okna. Teraz możesz uruchomić profil za pomocą przycisku po prawej stronie.

The Project Launcher pokaże postęp i dzienniki wyjściowe. W zależności od rozmiaru i złożoności poziomu, a także specyfikacji systemu, może to potrwać od kilku sekund do kilku godzin.

Po zakończeniu procesu, spójrz na katalog, w którym została zapisana kompilacja. Domyślnie znajduje się on w folderze projektu SavedStagedBuilds. Dla każdej zbudowanej platformy znajdziesz osobny folder, taki jak WindowsNoEditor i LinuxNoEditor.

Przejdź do WindowsNoEditorMyProjectContentPaks, gdzie znajdziesz kilka plików .pak. Pakchunk0 to podstawowa zawartość spakowanego projektu. Twój poziom znajduje się w pakchunk z numerem określonym w etykiecie głównego zasobu, na przykład pakchunk1.

Musisz zmienić nazwę pliku .pak, aby pasowała do nazwy poziomu, na przykład MyLevel.pak. Jest to plik, który musi być dystrybuowany do każdego serwera gry i każdego klienta, który chce zagrać na poziomie.

Istnieje wiele powodów, dla których pakowanie projektu może się nie powieść. Celem tego przewodnika nie jest pomoc w zrozumieniu i naprawieniu wszelkich błędów, które mogą wystąpić. Sprawdź komunikaty o błędach w dzienniku i zapoznaj się z dokumentacją Unreal Engine, forami UE4, UE4 Discord, Google lub CMM Discord.

10. DODATKOWE UWAGI

10.1. Uwagi dotyczące wydajności

Jesteś odpowiedzialny za wydajność swojego poziomu. Należy pamiętać, że na poziomie może znajdować się ponad 10 graczy w tym samym czasie, podczas gdy Ty możesz testować tylko sam. Profilowanie i optymalizacja wydajności to bardzo złożony temat.

10.2. Kontrola wersji/źródeł

Unreal Editor i Engine to bardzo potężne i złożone narzędzia. Podczas zwykłej pracy nad poziomami, Edytor jest dość stabilny, ale od czasu do czasu mogą wystąpić awarie. Dla własnego dobra zaleca się korzystanie z kontroli wersji/źródeł, takich jak Git, SVN lub Perforce, nawet gdy pracujesz samemu. Kontrola wersji może być używana całkowicie offline, bez potrzeby synchronizacji ze zdalnym serwerem lub online, aby umożliwić współpracę. Git + Git lfs, podobnie jak SVN, są całkowicie bezpłatne. Kontrola wersji/źródeł może być używana poza silnikiem Unreal Engine lub z nim zintegrowana.

10.3. Wtyczki środowiska uruchomieniowego

Obecnie jedyną obsługiwaną wtyczką runtime jest wtyczka Substance Painter firmy Adobe.

Wtyczka Substance UE4

11. UDANEGO MAPOWANIA:)

Przykładowe mapy, modele, tekstury i materiały można znaleźć w samouczkach mapowania UrT5 na stronach Custom Map Makers Wiki.

Zobacz podsumowanie tego samouczka na naszym filmie na Youtube lub dołącz do nas na Discordzie, aby porozmawiać i uzyskać wsparcie.

O artykule:

Komentarze:

Obrazek użytkownika b0ciaM
b0ciaM, 33 tygodnie temu

o Panie ile to musialo byc tlumaczenia =D . mam nadzieje ze komus sie przyda

#
Obrazek użytkownika BOMBPLAYER
BOMBPLAYER, 30 tygodni temu

@b0ciaM:
Też mam taką nadzieję :)

#