Poprawnie – efekt przenikania jednej bitmapy w drugą uzyskuje się przez sterowanie kryciem (opacity) w klatkach kluczowych. W praktyce wygląda to tak, że masz dwie warstwy z bitmapami: pierwsza na początku ma krycie 100%, druga 0%. W kolejnych klatkach kluczowych stopniowo zmniejszasz krycie pierwszej bitmapy i jednocześnie zwiększasz krycie drugiej. Silnik animacji interpoluje te wartości między klatkami kluczowymi, dzięki czemu widz widzi płynne przejście, tzw. crossfade lub dissolve. To jest standardowa technika zarówno w programach do animacji 2D (After Effects, Animate, Krita, Synfig), jak i w montażu wideo (Premiere Pro, DaVinci Resolve), a nawet w prostych edytorach prezentacji. Z mojego doświadczenia, najwygodniej jest pracować właśnie na klatkach kluczowych, bo masz pełną kontrolę nad momentem startu i zakończenia przejścia, długością trwania i krzywą zmiany krycia (np. ease in / ease out). Dobrą praktyką jest też pilnowanie, żeby czas przenikania był dostosowany do tempa całej animacji – za krótkie przejście wygląda jak mignięcie, za długie może nużyć. W animacjach interfejsów (UI/UX) zwykle stosuje się krótkie przejścia 150–300 ms, w filmach i animacjach narracyjnych spokojnie dłuższe. Warto też pamiętać, że przenikanie przez krycie jest metodą nieniszczącą – nie zmieniasz samej bitmapy, tylko sposób jej wyświetlania w czasie, co jest zgodne z dobrymi praktykami pracy z multimediami i animacją, gdzie staramy się jak najwięcej rzeczy kontrolować parametrami, a nie stałą edycją obrazów.
Efekt przenikania jednej bitmapy w drugą w animacji bardzo łatwo pomylić z innymi parametrami, które też wpływają na odbiór ruchu, ale nie odpowiadają bezpośrednio za samo przejście między obrazami. Kluczowe jest zrozumienie, że przenikanie to kontrola widoczności warstw w czasie, czyli po prostu zmiana krycia (opacity) z wykorzystaniem klatek kluczowych. Samo odtwarzanie animacji w pętli nie ma tu nic do rzeczy. Pętla tylko sprawia, że całość zaczyna się od nowa po zakończeniu, co jest przydatne przy banerach, gifach czy prostych animacjach UI, ale nie tworzy żadnego nowego efektu przejścia między dwiema bitmapami. Można mieć idealnie zapętloną animację, w której nie ma żadnego płynnego przenikania, tylko nagłe cięcia. Podobnie szybkość odtwarzania klatek, czyli liczba fps albo tempo timeline’u, nie tworzy efektu przenikania. Zwiększenie liczby klatek na sekundę może sprawić, że animacja będzie ogólnie płynniejsza, ale jeśli krycie jednej bitmapy jest cały czas 100%, a drugiej 0%, to bez zmiany tych wartości nadal nie zobaczymy żadnego przechodzenia jednego obrazu w drugi. To tylko wpływ na ogólną dynamikę ruchu, a nie na samą logikę mieszania obrazów. Częsty błąd polega też na myleniu efektów animacyjnych z edycją kanałów RGB. Zmiana kanałów RGB bitmapy dotyczy koloru, kontrastu, balansu barw, może nawet stylizacji obrazu, ale nie powoduje, że jeden obraz płynnie zanika, a drugi się pojawia. Oczywiście można robić bardzo kreatywne przejścia oparte na maskach, kanałach alfa czy mapach jasności, ale klasyczne przenikanie w typowym workflow animacyjnym opiera się właśnie na animowaniu parametru krycia w klatkach kluczowych. Branżowe dobre praktyki są tutaj dość jednoznaczne: gdy chcesz uzyskać prosty, czytelny crossfade między dwiema bitmapami, używasz warstw, klatek kluczowych i animujesz opacity, zamiast kombinować z pętlą, fps czy ingerencją w strukturę RGB samego obrazu.