1. Wstęp, czyli co to jest Unity?
2. Unity Assets Explorer, czyli podstawowy warsztat pracy.Unity (silnik gry)
Unity – zintegrowane narzędzie do tworzenia gier trójwymiarowych lub innych materiałów interaktywnych takich jak wizualizacje czy animacje trójwymiarowe. Środowisko działa natywnie na platformie Microsoft Windows oraz OS X, a gry wyprodukowane na tym silniku mogą działać na takich platformach jak Windows, Linux, Mac OS, Xbox 360, PlayStation 3, Wii, Wii U, iPad, iPhone, Android i Windows Phone 8. Gry stworzone w Unity po zainstalowaniu wtyczki Unity Web Player (niedostępnej pod Linuksem) mogą działać również w przeglądarce internetowej. Unity umożliwia również eksport gotowego projektu do Adobe Flash.
Źródło: http://pl.wikipedia.org/wiki/Unity_%28silnik_gry%29
Unity Assets Explorer służy do wypakowywania i pakowania plików z gier stworzonych w Unity, a konkretnie plików assets.
Autorami narzędzia są: AlphaTwentyThree, Haoose, OLEGator84
Strona na forum XeNTaX poświęcona narzędziu:
http://forum.xentax.com/viewtopic.php?f=10&t=10085
Za pomocą Unity Assets Explorer nie tylko możemy przeglądać zawartość plików assets, ale wyodrębnić wszystkie lub pojedyncze pliki z archiwum assets, konwertować pliki tekstur i grafiki, czcionki i inne w formacie TEX na DDS, a co najważniejsze importować zmodyfikowane pliki, które wcześniej zostały wyodrębnione i zapisać zmiany w nowym pliku assets.
Żeby praca z Unity Assets Explorer przebiegała sprawnie i bez problemów należy pamiętać o kilku ważnych rzeczach:
- edytowany plik musi znajdować się w tym samym folderze do którego został wypakowany oryginalny plik.
- plik zmodyfikowany i oryginalny muszą mieć taki sam rozmiar.
- plik tekstowy np: xml musi być w odpowiednim formacie kodowania - najczęściej jest to UTF-8 bez BOM.
Najlepiej opisać działanie narzędzia i proces spolszczenia na przykładach. Podam przykład tworzenia spolszczenia dla gry:
- Back To Bed - http://backtobed.dadiugames.dk
Darmowa gra logiczna w której wcielamy się w postać o imieniu Bob, który cierpi na narkolepsję. Z tego powodu zapada w głęboki sen i jako lunatyk pozostaje nieświadomy niebezpieczeństw, które czyhają na niego na każdym kroku. W grze wcielamy się w cząstkę jego podświadomości odpowiedzialną za instynkt samozachowawczy, który pomaga Bobowi bezpiecznie trafić do łóżka.
3. Spolszczenie Back To Bed, czyli pierwsze koty za płoty
Narzędzia:
Rozpakowanie plików assets
Unity Assets Explorer v. 1.2 - http://yadi.sk/d/pQCvUUC02D3aY lub download/file.php?id=1627
Unity Assets Explorer v. 1.3 Test - http://yadi.sk/d/BVRDnPC97cjPq
(Unity Assets Explorer 1.3 jest też w załączniku).
Edytor tekstu
Notepad++ - http://notepad-plus-plus.org/download/v6.5.5.html
Edytor graficzny z obsługą DDS
GIMP http://www.gimp.org/ + wtyczka DDS http://registry.gimp.org/files/gimp-dds-win32-2.0.2.zip
lub gdyby edycja za pomocą GIMP-a była niemożliwa:
PaintNET - http://www.getpaint.net/
Szybki podgląd plików DDS:
IrfanView - http://www.irfanview.com/ + zestaw wtyczek (IrfanView ALL plugins).
Opcjonalnie:
Menedżer plików
Total Commander - http://www.ghisler.com/download.htm
Edytor HEX
Hex Editor Neo Free - http://www.hhdsoftware.com/free-hex-editor
Narzędzia są przykładowe i można wybrać inne. Wybrałem większość po polsku i darmowe.
Spolszczenie krok po kroku
1. Pobieramy grę dla Windows i instalujemy.
2. Szukamy folderu gry BackToBed, otwieramy i wchodzimy do folderu: BackToBed_Data.
3. Uruchamiamy grę i zatrzymujemy się na menu głównym gry. Mamy tam trzy przyciski o nazwach: CREDITS, PLAY, FULL SCREEN (WINDOW). Wyszukujemy któregoś z tych słów w plikach assets, aby zlokalizować w którym pliku assets jest plik z tekstem.
Pliku Locale.xml możemy wyszukać na kilka sposobów np: Total Commander -> Polecenia -> Szukaj... Szukaj w: podajemy miejsce plików gry assets, z w których szukamy frazy. Zaznaczamy: Szukaj tekst i w wierszu obok wpisujemy szukanej frazy.
Zawartość plików możemy przeszukiwać też w Notepad++ -> Szukaj -> Szukaj w plikach i postępujemy podobnie jak w Total Commanderze. Możemy zawęzić zakres poszukiwań zaznaczając: Tylko całe wyrazy i\lub Uwzględniaj wielkość liter.
Plik tekstowy odnajdujemy w resources.assets pod nazwą: Locale.xml.
4. Pobieramy Unity Assets Explorer. Wypakowujemy np: do folderu Unity Assets Explorer i do tego samego folderu kopiujemy znaleziony plik resources.assets. Uruchamiamy UnityAssetsExplorer.exe i otwieramy plik resources.assets przyciskiem Open Assets-file.
Po otworzeniu pliku resources.assets w okienku z prawej strony ekranu: File info wyświetlają się podstawowe informacje o otwartym pliku assets. Jest tam także informacja o wersji Unity, za pomocą którego została gra stworzona.
5. Szukamy pliku Locale.xml na liście plików (pozycja 31). Klikamy prawym przyciskiem na nazwie pliku i wybieramy z menu kontekstowego Extract This File. W folderze do którego został skopiowany resources.assets zostanie utworzony folder resources a w nim plik Locale.xml. Jego rozmiar podany jest w Unity Assets Explorer w kolumnie: SIZE.
6. Przystępujemy do edycji Locale.xml , który jak wspomniałem ma rozmiar: 10 788 bajtów w Notepad++. Rozmiar pliku (ilość znaków) podany jest także w Notepad++ na dole programu w środkowej części: Length 10 788 co jest też bardzo przydatne przy edycji pliku.
Wybieramy którąś wersję językową. Zastępujemy wybraną tłumacząc teksty gry. (W grze są dwie: Duńska i Angielska - wybrałem wersję angielską).
W czasie tłumaczenia przydatne jest automatyczne sprawdzanie tekstu w Notepad++ i dlatego warto pobrać i zainstalować plugin: DSpellCheck oraz do porównywania plików: Compare. Pluginy instalujemy z menu Pluginy -> Plugin manager. Dostępnych jest kilkadziesiąt pluginów, którymi możemy zarządzać (pobierać, instalować, konfigurować) ze wspomnianego menu: Plugin manager.
7. Po skończonym tłumaczeniu okazuje się, że ilość znaków podana w Notepad++ -> Length jest inna niż początkowa: 10 830. Aby przywrócić początkową ilość znaków możemy wykasować teksty z nieużywanego języka lub komentarze. (Ja wybrałem usunięcie jednego z komentarzy i jednej spacji). Jak mamy już odpowiednią wartość w Length: 10 788 następuje ważna operacja.
W menu Format sprawdzamy czy jest zaznaczenie przy: Koduj w UTF-8 (bez BOM). Jeśli jest inaczej zaznaczamy cały tekst i z menu Format wybieramy: Konwertuj na format UTF-8 bez BOM.
Na koniec zapisujemy plik.
Opcjonalnie możemy porównać plik źródłowy i przetłumaczony. Powinny różnić się tylko zmianami, które wprowadziliśmy. Można to zrobić w Total Commanderze lub Notepad++.
Po skończonym tłumaczeniu często sprawdzam składnię pliku XML, czyli kompletność znaczników (szczególnie </ lub >).
8. Jeśli plik Locale.xml jest w folderze resources otwieramy ponownie resources.assets w Unity Assets Explorer jeśli został zamknięty, wyszukujemy na liście plik Locale.xml, klikamy prawym przyciskiem i z menu kontekstowego wybieramy: Import This File from original-format. Po pomyślnym zakończeniu importu pliku pojawi się okienko: Done. Klikamy OK i następnie na: Save as Assets-file. Nowy plik assets dla bezpieczeństwa zapisujemy pod inną nazwą niż plik źródłowy np: resources_nowy.assets. W folderze, w którym był skopiowany resources.assets do edycji w Unity Assets Explorer pojawi się nowy plik pod taką nazwą jaką wpisaliśmy przy zapisie nowego pliku assets (w przykładzie jest to: resources_nowy.assets).
9. Kopiujemy nowy plik do folderu danych gry: BackToBed_Data. Zmieniamy nazwę oryginalnego pliku resources.assets na np: resources_kopia.assets a plik z przykładu: resources_nowy.assets na resources.assets. Jeśli wszystko przebiegło pomyślnie po uruchomieniu gry powinniśmy ujrzeć polskie menu po kliknięciu w angielską flagę (bo w przykładzie podmieniony był język angielski).
10. Akurat w tej grze jest polska czcionka, (plik: font texture.tex_2.dds), ale najczęściej w grze nie ma polskiej czcionki.
Opis instalacji pluginu do edycji DDS w GIMP-ie oraz opis edycji czcionek w formacie DDS jest w tym poradniku:
viewtopic.php?f=75&t=1800&p=17517&hilit ... nek#p17517
11. Pliki TEX można wypakować jako DDS podobnie jak plik locale.xml. Musi być zaznaczona opcja: Convert TEX to DDS.
Edytowany plik DDS np: w GIMP-ie importujemy także podobnie jak plik Locale.xml - Import This file from DDS.
12. Możliwa jest też edycja plików dźwiękowych z gry w formacie np: MP3 lub OGG. Wypakowujemy i importujemy je tak samo jak plik locale.xml. Edytować pliki dźwiękowe można w darmowym Audacity. Wielkość pliku możemy zmienić w np: Hex Editor Neo Free.
13. Aby spolszczenie było pełne należałoby zmienić flagę brytyjską na polską podczas wyboru języka.
W tym celu szukamy grafiki flagi brytyjskiej. Szukamy frazy "british" w plikach gry, lub wypakowujemy wszystkie pliki assets z gry i przeglądamy pliki DDS w poszukiwaniu flagi. Do szybkiego podglądu grafiki DDS nadaje się IrfanView co ułatwia poszukiwania.
Pliki flag są w pliku: sharedassets0.assets - pliki: British flag.tex.dds i British flag_selected.tex.dds i po wypakowaniu ich z pliku sharedassets0.assets zostaną utworzone w folderze sharedassets0.
Niestety w GIMPI-e nie udało się edytować plików z flagami, więc edytowałem w PaintNET.
Po zakończonej edycji zapisujemy nowy plik jako DDS (nadpisujemy stary), pamiętając żeby rozmiar nowego pliku był taki sam jak oryginalnego. Zaletą PaintNET jest to, ze jest podana wynikowa wielkość pliku DDS przed zapisem co ułatwia pracę.
Na koniec w Unity Assets Explorer importujemy edytowane pliki z flagami i zapisujemy jako plik assets.
Pokazałem tu tylko podstawowe możliwości Notepad++, który posiada bardzo dużo przydatnych funkcji, a także innych programów.
Zawsze warto zapoznać się z Pomocą lub plikiem ReadMe!
Wszelkie uwagi i sugestie mile widziane.
-- 5 cze 2014, o 21:27 --
Czasami Unity Assets Explorer ma problemy z plikami assets.
Innym bardzo przydatnym narzędziem do edycji plików assets jest:
Unity Asset Editor autorem jest Grim, który powstał na potrzeby gry 7 DAYS TO DIE, ale można nim wypakowywać i pakować pliki z innych gier UNITY.
Strona projektu:
http://7daystodie.com/forums/showthread ... set-Editor
Program pozwala na edycję plików wewnątrz assets oraz na:
- wyszukiwanie ciągów tekstowych,
- podgląd plików,
- import i eksport, dodawanie i usuwanie plików
- tworzenie Modów
- wbudowany podgląd Hexadecymalny
i wiele innych.
Najbardziej przydatna jest jednak funkcja eksportu (zapis na dysk), importu (zapis pliku z dysku w pliku assets, wyszukiwanie ciągów tekstowych w pliku assets (w wynikach otrzymujemy pliki w których pojawia się szukana fraza).
Ciekawą funkcją jest podgląd tekstur (pliki tex) w trybie Wtyczek (Plug-in). Plik tekstur możemy zapisać jako DDS lub TEX - UNITY ASSETS RAW DATA - plik *. data.
Standardowo podgląd tekstur wymaga DirectX 9c. Jeśli w systemie brak jest DX9c lub nie można zainstalować DirectX 9c, to po kliknięciu na teksturę następuje błąd programu.
Ale autor programu udostępnił wtyczkę bez obsługi DirectX - folder Texture Plugins a w nim dwa foldery z wtyczkami Texture.dll: DX90c (obsługa DX9c) i NODX (bez obsługi DirectX). Jeśli występuje problem z podglądem tekstur, ich eksportem i importem należy plik Texture.dll z folderu NODX przekopiować do folderu Plugins/Default w głównym folderze programu.
Podgląd tekstur dostarcza bardzo przydatnych informacji do edycji pliku DDS i jego późniejszym zapisie np. w programie GIMP - wielkość oraz format (RGB, RGB8, DXT1, DXT3, DXT5 itd.)
W załączniku zamieściłem wersję Unity Asset Editor NODX (sprawdzałem działanie na Windows XP, Windows 7 64 bit i Windows 8.1)
Listę plików możemy sortować wg. nazwy (Name), typu (Type), Indeksu (Index) lub wielkości (Size).
Operacje na plikach wewnątrz asset czyli teksturach, plikach tekstowych, dźwiękowych i innych dokonujemy z menu: Asset lub podobnie jak w Unity Assets Exploter z menu rozwijanego po kliknięciu prawym przyciskiem myszy na konkretny plik.
Program stosujemy zamiennie lub jako uzupełnienie, gdy Unity Assets Expolrer niepoprawnie rozpoznaje pliki wewnątrz assets.
Np: Unity Assets Expolrer w grze Amoug The Sleep niepoprawnie rozpoznaje pliki tekstowe gry (txt) i niepoprawnie je importuje i eksportuje (rozpoznaje jako typ 49, a nie txt), a Unity Asset Editor sobie z tym poradził. Trzeba więc eksperymentować.
Tak więc nie ma jednego, uniwersalnego narzędzia do edycji gier na silniku UNITY.
Należą się jednak podziękowania i uznanie dla twórców opisanych programów, bo dzięki nim i ich pracy tworzenie spolszczeń i nie tylko do gier UNITY jest możliwe.
Najnowsze wersje BETA Unity Asset Editor:
http://www.mediafire.com/download/s8zch ... ETA_1).zip
http://www.mediafire.com/download/s8zch ... ETA_2).zip
Ostatnia wersja stabilna:
http://www.mediafire.com/download/ksa0k ... AE_0_2.zip
Własna czcionka w grach UNITY.
W niektórych grach na silniku UNITY czcionka jest w formacie TTF, ale o tym opowiem innym razem.
Nie jest to jednak popularny format czcionki TrueType jaką znamy z systemu Windows.
Zwykle bitmapa czcionki i plik konfiguracyjny są osobno (np:. w grze Deus EX The Fall).
Niniejszy poradnik pokazuje jak stworzyć taką czcionkę z czcionki TrueType.
Tu z pomocą przychodzi mały programik autorstwa "AngelCode" o nazwie Bitmap Font Generator.
Program pozwala na generowanie czcionek bitmapowych z czcionek TrueType. Aplikacja generuje pliki graficzne i opisy znaków, które mogą być odczytywane przez grę.
Powstają dwa pliki: tekstura czcionki i plik konfiguracyjny.
Strona domowa projektu:
http://www.angelcode.com/products/bmfont/
Wersja 1.13
http://www.angelcode.com/products/bmfon ... t_1.13.exe
Wersja 1.14 Beta
http://www.angelcode.com/products/bmfon ... 4_beta.exe
Program jest także w załączniku.
Najważniejsze zalety programu zostały opisane na stronie projektu. Wspomnę tylko, że obsługuje popularne formaty tekstur: TGA, PNG, i DDS, plikk konfiguracyjny w formacie tekstowym (txt, xml, fnt), zapewnia wsparcie dla zestawu znaków Unicode 6.2, możliwość wybrania kodowania plików tekstowych gry: UTF8 i UTF16.
Powstał nawet film na YouTube przedstawiający proces tworzenia czcionki:
http://www.youtube.com/watch?v=lc4E7jLZXa4
UWAGA.
Za pomocą tego programu można stworzyć czcionkę nie tylko do gier Unity, ale do każdej, w której czcionka składa się z pliku graficznego (tekstury) i konfiguracyjnego w formacie tekstowym. (np. w Puzzle Quest 2).
W załączniku zamieszczam nową wersję UnityAssetsExplorer1.3, (UnityAssetsExplorer1.3 update.zip), która poprawnie wypakowuje pliki tekstowe xml z plików assets z najnowszych wersji gier UNITY. Wcześniejsza wersja UnityAssetsExplorer1.3 rozpoznawała pliki xml jako typ 49.