Interpolacja [Mugen 1.1]
Jak można przeczytać w sieci, interpolacja to proces mający na celu utworzenie nowego, wcześniej nieistniejącego piksela na podstawie pikseli sąsiadujących z pikselem tworzonym tak, aby był on jak najlepiej dopasowany optycznie do przetwarzanego obrazu. W wypadku Mugena chodzi o to, że dane parametry klatki animacji są ustalane dla niej punktowo, a przy pomocy interpolacji można zmieniać parametry płynnie pomiędzy zmienianymi klatkami.
Schemat zapisu:
Interpolate <typ>
Opis parametrów:
Interpolate <typ> : (x)(tekst) Dostępne są: Offset, Blend, Scale, Angle.
Offset - interpolacja dla parametrów przesuńX i przesuńY.
Blend - interpolacja dla efektów tego samego typu np. A i AS<liczba>D<liczba>.
Scale - interpolacja dla parametrów skalaX i skalaY.
Angle - interpolacja dla parametru obrót.
Zapis o interpolacji dodaje się między dwiema klatkami których dotyczy, gdzie dane z pierwszej klatki są dla interpolacji początkowymi, a dane z drugiej klatki końcowymi. Wszystko odbywa się w czasie trwania pierwszej klatki. Można dodawać więcej niż jeden zapis o interpolacji.
Przykład zapisu:
20,0, 0,0, 60, , , 1,1 Interpolate Offset ; w trakcie 60 tików nastąpi przesunięcie Interpolate Scale ; w trakcie 60 tików nastąpi zmiana skali 20,0, 100,0, 60, , , 1.5,1.5
W wypadku zapętlonej animacji, zapis interpolacji między ostatnią a pierwszą klatką, znajduje się nad pierwszą klatką.
Przykład zapisu:
[Begin Action 20] Interpolate Offset ; interpolacja między ostatnią a pierwszą klatką Interpolate Scale ; interpolacja między ostatnią a pierwszą klatką 20,0, 0,0, 60, , , 1,1 Interpolate Offset Interpolate Scale 20,0, 100,0, 60, , , 1.5,1.5
Przykładowy obrót kątowy:
0,0, 0,0, 10, , , ,, 0 0,1, 0,0, 10, , , ,, 90
Jeżeli chcemy utworzyć w miarę płynny obrót kątowy pierwszej klatki animacji od 0o do 90o to trzeba zbudować animację tak:
0,0, 0,0, 1, , , ,, 0 0,0, 0,0, 1, , , ,, 10 0,0, 0,0, 1, , , ,, 20 0,0, 0,0, 1, , , ,, 30 0,0, 0,0, 1, , , ,, 40 0,0, 0,0, 1, , , ,, 50 0,0, 0,0, 1, , , ,, 60 0,0, 0,0, 1, , , ,, 70 0,0, 0,0, 1, , , ,, 80 0,0, 0,0, 1, , , ,, 90 0,1, 0,0, 10, , , ,, 90
Jak widać trzeba rozbić animację na poszczególne klatki z danym parametrem. Interpolacja robi to automatycznie, jeżeli między klatkami zostanie dodany odpowiedni zapis.
Przykładowy obrót kątowy z interpolacją:
0,0, 0,0, 10, , , ,, 0 Interpolate Angle 0,1, 0,0, 10, , , ,, 90
Teraz w czasie 10 tików pierwsza klatka animacji płynnie obróci się kątowo od kąta 0o do kąta 90o, następnie przez 10 tików druga klatka będzie cały czas obrócona pod kątem 90o.
Przykładowe znikanie i pojawianie się sprita:
0,1, 0,0, 60, , AS255D0 Interpolate Blend 0,1, 0,0, 60, , AS0D255 Interpolate Blend 0,1, 0,0, 60, , AS255D0