[PORADNIK] Unity Assets Explorer, czyli edycja gier Unity

Awatar użytkownika
mendosa
Siedem Niedźwiedzi
Posty: 771
Rejestracja: 11 lis 2008, o 08:24
Grupa: Siedem Diabłów

Re: [PORADNIK] Unity Assets Explorer, czyli edycja gier Unity

Postautor: mendosa » 6 sty 2017, o 19:08

Prosiłbym Was o kontakt, gdy już skończycie. Zrobimy wówczas aktualizację tego tematu, po prostu usunie się stare posty i zamieści jeden nowy.
N.E.M.O.

Awatar użytkownika
GreenScream
Posty: 67
Rejestracja: 15 lut 2015, o 17:41
Grupa: ReWord

Re: [PORADNIK] Unity Assets Explorer, czyli edycja gier Unity

Postautor: GreenScream » 7 sty 2017, o 10:51

Tak też planowałem.

No, a teraz do roboty.

Awatar użytkownika
sb8gapi
Posty: 216
Rejestracja: 13 lip 2013, o 21:13

Re: [PORADNIK] Unity Assets Explorer, czyli edycja gier Unity

Postautor: sb8gapi » 8 maja 2017, o 18:04

Jest nowa wersja Unity EX z 27.04.2017, która potrafi wypakować pliki z resS.
Po kliknięciu prawym przyciskiem na wybrany plik np TEX należy wybrać z listy:
Export source files.
Jeśli był wybrany plik tekstury TEX, zostanie zapisany jako DDS w folderze Textures.
Zalecane jest, aby pliki: assets i resS były w tym samym folderze, a w programie otwieramy oczywiście tylko plik assets.

https://yadi.sk/d/m3vFWoQ3j62Cr

Awatar użytkownika
sb8gapi
Posty: 216
Rejestracja: 13 lip 2013, o 21:13

Re: [PORADNIK] Unity Assets Explorer, czyli edycja gier Unity

Postautor: sb8gapi » 8 maja 2017, o 23:22

Assets.resS

Inny sposób wypakowywania plików z assets resS.
Jak w praktyce się okazuje znalezienie tekstu jest raczej łatwe, a najwięcej problemów jest z czcionką, jeśli w grze nie ma oczywiście polskiej lub jest częściowo.
Ostatnio zabrałem się za Hollow Knight. I okazało się, że tekstura jednej czcionki jest w pliku resS, który ma ponad 800 mb, a Unity Studio 5 nie potrafi wypakować pliku z resS. Nowa wersja Unity EX potrafi wyodrębnić teksturę z resS i zapisać jako DDS.
W głównym assecie - Resources.assets jest plik, z informacją, że plik czcionki jest w resources.asets.resS.
Można ręcznie wydobyć (w hex edytorze) oryginalny plik tex, lub za pomocą narzędzia:

Unity Assets Bundle Extractor, zapisać jako png, lub tga (zalecany jest eksoport do TGA, gdyż bez problemu można go zamienić na DDS, a potem na TEX).
https://7daystodie.com/forums/showthrea ... -Extractor

Jeśli potrzebujemy oryginalny TEX, to jedynym obecnie znanym mi sposobem jest Hex-edytor. Taki plik tex może być przydatny do porównania z plikiem DDS np: z UnityEx, lub do zamiany DDS na TEX do importu w UnityEx.
Załączniki
ResS_1.jpg
ResS_2.jpg
ResS_3.jpg
HxD.zip
Hex edytor do edycji resS
(814.16 KiB) Pobrany 7 razy
Perpetua.zip
Pliki do poradnika - czcionka Perpetua
(1.62 MiB) Pobrany 6 razy
AssetsBundleExtractor_2.1_64bit.zip
Unity Assets Bundle Extractor 64bit
(3.23 MiB) Pobrany 8 razy
AssetsBundleExtractor_2.1_32bit.zip
Unity Assets Bundle Extractor 32bit
(3.04 MiB) Pobrany 6 razy

Awatar użytkownika
sb8gapi
Posty: 216
Rejestracja: 13 lip 2013, o 21:13

Re: [PORADNIK] Unity Assets Explorer, czyli edycja gier Unity

Postautor: sb8gapi » 9 maja 2017, o 13:00

Konwersja TEX na DDS i DDS na TEX

TEX na DDS

Większość programów potrafi przy eskopecie zamienić TEX na DDS - UnityEx i Unity Studio 5 lub na TGA w przypadku Unity Assets Bundle Extractor. Raczej nie ma problemu z edycją plików DDS, czy TGA (po edycji plik TGA zapisujemy jako DDS). Plik DDS wyeksportowany w Unity Studio 5 jest odwrócony, natomiast plik DDS z UnityEX nie jest odwrócony i jest od razu gotowy do edycji. Ważne jest to, że po zakończeniu edycji pliku DDS odwracamy go o 180 stopni.

DDS na TEX

Gdy mamy już gotowy plik DDS do importu musimy zamienić go na plik TEX. Niestety UnityEX importuje tylko pliki TEX. Opcje importu plików bezpośrednio z DDS ma Unity Assets Explorer, ale bardzo często ma problemy z grami na silniku Unity 5 więc nie zawsze się przydaje.
Jak dotąd najlepszym programem do importu jest UnityEX.
Żeby z pliku DDS stworzyć TEX musimy usunąć nagłówek DDS. W tym celu otwieramy DDS w hex edytorze np: HxD.

Po pierwsze musimy znać wielkość oryginalnego pliku TEX. W tym celu odsyłam do tematu Assets.resS. Opisałem tam jak sprawdzić wielkość pliku TEX na przykładzie programu Unity Assets Bundle Extractor w przypadku eksportu pliku TEX z resS. Przy eksporcie pliku TEX z assats wielkość pliku jest podana w kolumnie Size. Wartość podana jest w systemie dziesiętnym - dec. Mając wyeksportowany oryginalny plik TEX także możemy sprawdzić jego wielkość na w HxD. Nam raczej przyda się wartość hex wiec za pomocą kalkulatora wbudowanego w system Windows zamieniamy dec na hex lub w dowolnie inny sposób. Po otwarciu pliku TEX w HxD od razu mamy wartość w hex - Menu Edit - Select all (Crtl+A i na dole ekranu mamy wielkość w hex - Length.

Gdy mamy otwarty DDS w HxD zaznaczamy cały plik - Menu Edit - Select all (Crtl+A). I pojawi nam się wielkość pliku DDS (długość zaznaczonego bloku). Znając wielkość pliku TEX i DDS, od wartości dla pliku DDS odejmujemy wartość dla pliku TEX i otrzymany wynik jest długością bloku jaki musimy usunąć z pliku DDS od jego początku. Jak zaznaczymy blok do usunięcia wciskamy Del i zapisujemy plik jako TEX. W ten sposób mamy gotowy plik do importu w UnityEx.
Na koniec jeszcze mała uwaga. Na chwilę obecną UnityEx nie importuje plików do resS i trzeba je zaimportować do głównego assets. Po prostu zamieniamy plik z informacją o pliku TEX (nazwa pliku, początek, wielkość i lokalizacja - screen ResS_1), na plik który edytowaliśmy i zamieniliśmy na TEX.
Załączniki
DDStoTEX.jpg

Awatar użytkownika
sb8gapi
Posty: 216
Rejestracja: 13 lip 2013, o 21:13

Re: [PORADNIK] Unity Assets Explorer, czyli edycja gier Unity

Postautor: sb8gapi » 10 maja 2017, o 22:23

Zauważyłem, że nowy UnityEX 1.6.1 ma czasem problem przy wypakowywaniu wszystkich plików z assets i resS, jeśli program nie znajduje się w folderze Data ze wszystkimi plikami z gry. Tak więc zalecane jest skopiowanie całego folderu Data w dowolne miejsce na dysku, umieszczenie tam UnityEx i dopiero wypakowywanie assets. Najnowszy UnityEx nie tylko posiada wsparcie konwersji tekstur DDS, ale i tekstur CRN, KTX i PVR. Dodatkowo zamienia pliki mesh w obj. Posiada funkcję wyszukiwania według nazw plików, oraz wyszukiwanie tekstu w plikach.

Awatar użytkownika
sb8gapi
Posty: 216
Rejestracja: 13 lip 2013, o 21:13

Re: [PORADNIK] Unity Assets Explorer, czyli edycja gier Unity

Postautor: sb8gapi » 11 maja 2017, o 21:42

Ważne jest to, że po zakończeniu edycji pliku DDS odwracamy go o 180 stopni.

W tym zdaniu jest błąd. Nie chodzi o obrót o 180 stopni, tylko o lustrzane odbicie - w Gimpie - Obraz - Przekształcenie - Odbij pionowo.
Przepraszam za niescisłość.

Awatar użytkownika
sb8gapi
Posty: 216
Rejestracja: 13 lip 2013, o 21:13

Re: [PORADNIK] Unity Assets Explorer, czyli edycja gier Unity

Postautor: sb8gapi » 12 maja 2017, o 18:03

W większości przypadków najnowszy UnityEX powinien wyeksportować plik TEX z assets lub resS (jeśli nie ma go w assets a jest w resS). Jak wspomniałem najlepiej otwierać assets bezpośrednio z folderu Data, gdzie znajdują się nie tylko pliki assets, ale i pliki resource, resS i inne. gdy mamy plik TEX nie ma potrzeby używania Unity Assets Bundle Extractor i HxD.

Ale zdarza się, że podczas konwersji DDS na TEX sposób polegający na usunięciu nagłówka DDS nie działa. Wtedy przydaje się oryginalny plik TEX.
Inny opis konwersji DDS na TEX, gdy poprzedni nie działa opisze na przykładzie czcionki z z gry Ori and the Blind Forest: Definitive Edition. Plik tex znajduje się w pliku: sharedassets0.assets.resS (pozostałe powiązane pliki to: sharedassets0.assets i sharedassets0.resource).
Otwieramy plik sharedassets0.assets i na liście szukamy nanumBrush_0 distance map. Po wybraniu Export selected otrzymamy plik TEX, a po wybraniu Export source files plik DDS.
Po zakończeniu edycji pliku DDS w Gimpie (Po odbiciu pionowym, wyeksportowaniu jako DDS - Format A8 (Alpha 8), mamy plik gotowy do konwersji na TEX. Niestety w tym przypadku usunięcie nagłówka DDS nie działa. Po zaimportowaniu pliku do assets i uruchomieniu gry zamiast czcionki zobaczymy białe kwadraty.

Sprawdzałem export na UnityEx 1.1.5 i 1.6.1. Po wgraniu ich do folderu Data i wyeksportowaniu czcionki z pliku z tego folderu plik TEX ma nieco większy rozmiar, niż to pokazywał Unity Assets Bundle Extractor. Z Unity Assets Bundle Extractor wynikało że TEX ma wielkość 20000 hex - 131072 bajty, a plik z Unity EX ma 131144 bajtów czyli 20048 hex. Plik po edycji w Gimpie i zapisie jako DDS ma wielkość 131200 bajtów, 20080 hex.
Otwieramy plik TEX (ten oryginalny z UnityEx o wielkości 20048 hex) w HxD. Jeśli nie edytowaliśmy pierwszego znaku w pliku DDS. Szukamy od początku pliku jakiegoś wyróżniającego się ciągu znaków - taki może zaczynać się od offsetu 8CA - ciąg "?OO?" - hex 3F 4F 4F 3F. Teraz zaznaczamy z pliku tex blok od początku do tego ciągu do 8C9 czyli blok od 0 do 8C9 i kopiujemy. Jak mamy skopiowany blok to otwieramy nasz DDS po edycji. I szukamy takiego samego ciągu znaków jak poprzednio . W DDS ciąg ten zaczyna się od offsetu 90E. Teraz zaznaczamy w DDS blok od początku pliku do offsetu 90D - od 0 do 90D. Jak już go zaznaczymy to wklejamy (Paste insert Ctrl+V) to co skopiowaliśmy z pliku TEX. W ten sposób mamy już oryginalny nagłówek z pliku TEX. Ale okazuje się, że na końcu pliku brakuje jeszcze kilku znaków. Wielkość pliku sprawdzamy przez zaznaczenie całości i wartość odczytujemy na dole ekranu - Length (Długość). Plik DDS po wklejeniu nagłówka z pliku TEX kończy się na offsecie: 2003B i ma długość: 2003C hex 131132 bajty, a oryginalny TEX kończy się na 20048 czyli ma 131144 bajty. Brakuje 12 bajtów. Kopiujemy z pliku TEX (tego z którego kopiowaliśmy początek) blok 2003C-20037). I wklejamy na końcu pliku DDS, do którego wcześniej wklejaliśmy początek pliku TEX - Ctrl+V. Teraz plik powinien skończyć się na offsecie 20048.
Sprawdziłem i ten sposób u mnie działa. Konwertowałem zarówno plik TGA z Unity Assets Bundle Extractor jak i DDS z UnityEx.
Załączniki
nanumBrush_0 distance map.zip
Czcionka nanumBrush_0 distance map TEX i DDS oraz UnityEX w wersji 1.1.5 oraz 1.6.1.
(694.62 KiB) Pobrany 3 razy
TEX w HxD.jpg
DDS w HxD.jpg
DDStoTEX_koniec.jpg

Awatar użytkownika
sb8gapi
Posty: 216
Rejestracja: 13 lip 2013, o 21:13

Re: [PORADNIK] Unity Assets Explorer, czyli edycja gier Unity

Postautor: sb8gapi » 12 maja 2017, o 20:30

UnityEX 1.6.1

Okazało się, że najnowsza wersja importuje pliki DDS, więc w nie ma potrzeby zamiany DDS na TEX. Gdyby jednak były jakieś problemy z importem DDS to zawsze jest możliwość zamiany DDS na TEX. Jeśli plik TEX jest w resS to zostanie z assets zostanie wyeksportowany plik TEX z informacją o tym pliku, a z resS zostanie wyeksportowany właściwy TEX jako DDS.
Eksportujemy plik wybrany plik z assets np: nanumBrush_0 distance map z sharedassets0.assets z gry Ori and the Blind Forest: Definitive Edition wybierając - Export selected i Export source file. W folderze Unity_Assets_Files\sharedassets0 będzie plik TEX z assets o wielkości 100 i w folderze Textures\res_sharedassets0 plik nanumBrush_0 distance map.tex.dds wielkości 131200. Po edycji pliku w Gimpie nie robimy odbicia (plik DDS pozostawiamy tak jak był po eksporcie) tylko wyeksportujemy jako DDS A8. Potem Import all i w assets jest już plik TEX. UnityEx nie importuje plików z powrotem do resS.

Awatar użytkownika
sb8gapi
Posty: 216
Rejestracja: 13 lip 2013, o 21:13

Re: [PORADNIK] Unity Assets Explorer, czyli edycja gier Unity

Postautor: sb8gapi » 27 cze 2017, o 10:30

Unity Studio 0.7.0.8 by Perfare

Kilka dni temu Perfare poprawił błędy w programie: błąd eksportu tekstur w formacie RGB565, błąd kolorów oraz wiele innych i zamieścił poprawione wersje Unity Studio.
Strona projektu:
https://ci.appveyor.com/project/Perfare ... /artifacts

Unity Studio 0.7.0.8 32 bit.
https://ci.appveyor.com/api/buildjobs/2 ... .7.0.8.zip

Unity Studio 0.7.0.8 64 bit.
https://ci.appveyor.com/api/buildjobs/2 ... .7.0.8.zip


Wróć do „Poradniki”



Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość