Najprostsze przenikanie - można pewnie zrobić w GAP, ale napiszę jak to zrobić ręcznie.

Załóżmy, że chcemy mieć 6 klatek, z czego dwie to pełne obrazki, robimy z nich dwie warstwy:

Następnie duplikujemy każdą warstwę 4 razy i układamy w pary wszystkie warstwy oprócz oryginalnych:

>

Naszym celem jest stworzenie sześciu klatek, w których od dołu (na początku) jest widoczne ABC i powoli przechodzi w XYZ, więc można łatwo na kalkulatorze policzyć przezroczystość każdej kolejnej pary (są 4):
;100/5 20 - ile dodamy do każdej kolejnej pary
; 20*0 0 - 1 klatka zawiera tylko ABC - 0% XYZ
; 20*1 20 - 1 para (2 klatka)
; 20*2 40 - 2 para (3 klatka)
; 20*3 60 - 3 para (4 klatka)
; 20*4 80 - 4 para (5 klatka)
; 20*5 100- 6 klatka zawiera 100% XYZ
Tak więc ustawiamy kolejno krycie dla każdej kolejnej warstwy XYZ (XYZ2-20%, XYZ3-40%, XYZ4-60%, XYZ5-80%):

,

, itd.
Następnie łączymy pary klikając prawym klawiszem myszki po warstwach XYZ (2,3,4,5) i wybierając "połącz w dół":

Powinno wyjść:

Teraz, aby utworzyć z tego animację należy:
Obraz>Tryb>Indeksowany... - wygenerowana optymalna paleta - maksymalna ilość kolorów: 255
Filtry>Animacja>Optymalizuj(dla formatu gif)
otworzy nam się nowe okno ze zoptymalizowaną animacją (zajmuje mniej miejsca)
Teraz można zmieniać czas (zmieniając nazwę klatki - prawy klawisz myszki - modyfikuj atrybuty warstwy) dla wszystkich klatek (standardowy do 100ms) i oglądać wyniki w Filtry>Animacja>Playback...
Ja ustawiłem 2000ms (2 sekundy) dla oryginalnych ABC i XYZ:

Teraz wystarczy
Plik>Zapisz jako... - nazwa.gif - zapisz jako animację (ignoruj) - zaznaczyć zapętlanie na zawsze - ok
Efekt:
Dobrze jest jeszcze dorzucić animację powrotną, (nie będzie przeskoku) wystarczy zduplikować warstwy i zamienić kolejność.