Symulator/MaSzyna/Pliki MMD

Z Rainsted
Skocz do: nawigacji, wyszukiwania

Pliki MMD zawierają informacje o modelach, animacjach i dźwiękach dla grupy pojazdów (różniących się teksturą). Ze względu na format zbliżony do YAML zalecane jest utrzymywanie prawidłowej walidacji YAML.

Zgodność formatu z YAML

Ponieważ okazało się, że plikom MMD niewiele brakuje do spełniania specyfikacji YAML, zalecane jest trzymanie się wytycznych YAML zamiast wykorzystywania wszystkich opcji parsera. Pliki MMD powinny się walidować parserami YAML online. Część z tych rzeczy da się zrealizować w Notepad++, operacją na wielu plikach po otwarciu wszystkich plików MMD.

Proponowane zmiany mają obecnie charakter estetyczny. Wskazane by było uruchomienie walidatora, który znajdzie i sprawdzi wszystkie pliki MMD, a następnie sporządzi listę błędnych. Korzyścią z formatu YAML będzie hierarchiczność danych — będzie można te same klucze zastosować w różnych kontekstach:

internaldata:
 - cab: 1
   hide: kubek #ukrycie submodelu w kabinie 1
   hide: inny
 - cab: 2

Komentarze jako #

Znakiem komentarza w YAML jest krzyżyk #. Parser akceptuje również podwójny ukośnik. Zalecana jest wymiana znaków komentarza // na #. Da się zrobić hurtowo w Notepad++.

Dwukropki po kluczach

Większość kluczy w MMD zakończona jest dwukropkiem. Jednak wyjątkiem są słowa endmodels i endsounds. Zalecane jest wstawienie dwukropków po tych słowach, ale oddzielonych spacją, ponieważ stary parser szuka tych słów bez dwukropków. Być może istnieje jakieś lepsze rozwiązanie, które nie będzie kolidować ani z dotychczasowym działaniem parsera ani z zgodnością z YAML. Da się zrobić hurtowo w Notepad++.

Usunięcie tabulacji

Parser akceptuje tabulacje jako białe znaki. Niestety na potrzeby YAML trzeba je usunąć albo zastąpić spacjami. Da się zrobić hurtowo w Notepad++.

Wcięcia dla wartości w osobnej linii

Jeśli wartości za kluczem nie są wpisane w tym samym wierszu, to będąc w kolejnym muszą mieć wcięcie przynajmniej na jedną spację. W szczególności rozmiary kabin i współrzędne w kabinach są zwykle w osobnej linii. Dotychczasowemu parserowi jest to obojętne, ale struktura YAML wymaga słowa z dwukropkiem na początku linii. Wymaga raczej ręcznego poprawiania plików, w Notepad++ da się hurtowo zrobić wcięcie przed zerem bądź minusem na początku linii, ale mogą się zdarzyć linie zaczynające się od innych znaków.

Opcjonalnie wcięcia poszczególnych sekcji

Pliki MMD mają obecnie 3 sekcje: models:, sounds: i internaldata:. Kluczom w ramach tych sekcji można zrobić pojedyncze wcięcie, które będzie obojętne dla dotychczasowego parsera. Wcięcia by były wskazane ze względu na powtórzenie kluczy dooropen: i doorclose:. Jednak docelowa struktura wcięć wymaga przemyślenia i ustaleń pomiędzy zainteresowanymi osobami. Da się zrobić hurtowo w Notepad++.

Wstawienie nagłówka YAML

Na początku pliku powinien być nagłówek w postaci:

%YAML 1.2
---

W szczególności nagłówek powinien być dodany do plików, które się prawidłowo walidują. Da się zrobić hurtowo w Notepad++.

Stopka pliku

Pliki YAML powinny się kończyć trzema kropkami w osobnej linii. Powinno się to dać zrobić hurtem w Notepad++.

...

Znane problemy

YAML wymaga, by teksty nie zawierały znaków używanych do formatowania (zwłaszcza podzbioru JSON): dwukropków, przecinków, nawiasów kwadratowych ani klamrowych. Teksty takie wymagają np. ujęcia w cudzysłowy. W maszynowych dźwiękach występują nawiasy kwadratowe, które psują walidację. Z kolei dotychczasowy parser nie ma opcji usuwania cudzysłowów.