Super duper exe apdejt
Premabuła
Dzisiaj na appveyora trafiło pierwsze publiczne testowe exe z opcją animacji wycieraczek. Na razie nie obsługują one dźwięku (pracuję nad tym), ale sama animacja, programator i czytanie konfiguracji już działa.
Prezentacja:
Jak zaimplementować? A no tak:W mmd: wipers_sw: - przelacznik wycieraczek (definiujemy jak każe pokrętło/programator)
Ogarnięcie fiza:Dodajemy sekcje:
// A B C D // A = suma bitowa wycieraczek; B = predkosc (jak dlugo zajmuje przejazd z jednej strony szyby na druga); C = interwal w S; D - zwloka zanim zacznie wracac w S
WiperList: Size=4 Angle=60
0 1.0 0.0 0.5 // zadna wycieraczka nie pracuje (parametry tutaj B C D są dla powrotu, końca animacji)
3 1.0 5.0 0.5 // obie wycieraczki na czole (1 i 2) pracujace wolno z interwalem 5 sekund (wychylona czeka 0.5 sekundy)
3 1.0 0.0 0.5 // obie wycieraczki na czole (1 i 2) pracujace wolno bez interwalu (wychylona czeka 0.5 sekundy)
3 0.5 0.0 0.5 // obie wycieraczki na czole (1 i 2) pracujace szybko bez interwalu (wychylona czeka 0.5 sekundy)
endwl // pamietac o zakonczeniu listy gnoje
Animacja jest w osi Y.
Jak robić wpisy?W mmd aby zdefiniować animację wycieraczki to obok wpisów od prefixów pantografów dodajemy wpis
animwiperprefix:
Wtedy exe będzie szukało wycieraczek po kluczy XXXXY_pZ gdzie XXXX to nasz zdefiniowany prefix, Y to numer kolejny wycieraczki (liczymy od 1 w górę), a Z to numer części wycieraczki. Nie trzeba definiować wszystkich jej elementów, można zdefiniować jedno ramie, które jest też piórem (w siódemkach takie bajery mamy chyba albo spotach)
Ilość wycieraczek definiujemy 10-tym wpisem w sekcji animations. Pamiętać należy aby zakończyć tą linijkę liczbą -1 - oznacza ona koniec wpisu.
Przykład:
Dla wpisu animwiperprefix: wiper_ exe szuka następujących submodeli
wiper_1_p1 - ramie 1 wycieraczki 1
wiper_1_p2 - ramie 2 wycieraczki 1
wiper_1_p3 - pióro wycieraczki 1
wiper_2_p1 - ramie 1 wycieraczki 2
wiper_2_p2 - ramie 2 wycieraczki 2
wiper_2_p3 - pióro wycieraczki 2
Wycieraczki z nieparzystymi numerami (1, 3, 5, 7) animują się po osi +Y
Wycieraczki z parzystymi numerami (2, 4, 6, 8) animują się odwrotnie (tj -Y)
Dzięki temu rozwiązaniu łatwiej będzie po ustawiać pivoty.
Ogólnie to najlepiej podpiąć pióro pod ramie nr. 1 - dzięki temu wycieraczka będzie leciała po szybie tak jak powinna.
Po zmianie kabiny, submodele wycieraczek z czoła A, przeskakują na czoło B (exe poprostu liczy je wtedy od tyłu)
Dzwiek:
Docelowo do dyspozycji w sekcji internaldata mamy wiperFromPark oraz wiperToPark (odpowiednio ruch wycieraczki z pozycji spoczynku do wychylenia, i drugi w drugą stronę). Aktualnie exe tylko wczytuje te dźwięki, lecz logiki ich odtwarzania
jeszcze nie ma.
EXE standardowo na appveyorze (link w pierwszym wątku).
Dalsze plany? Podpiąć to do AI, żeby boty leciały na wycieraczkach w deszczu.
Czekam na zgłoszenia błędów i ewentualne propozycje co można by w tym bajzlu zmienić.