Animando pixel art com as ferramentas do aseprite
Chame animation_workflow_guide primeiro: use use_case="character", "idle" ou "environment".
1. Decida o loop
-
Anime no arquivo que o usuário já tem aberto. Se ele for pequeno demais ou tiver poucos quadros, use
resize_canvaseadd_framesnesse mesmo arquivo. Nunca crie um novo sprite, seja comcreate_canvasou comSprite()em Lua (veja a skill aseprite-live). -
Duração e temporização. Duração = quadros × tempo por quadro. As escolhas comuns são 8 quadros × 120 ms (cerca de 1 s) para loops ambiente, 4–6 quadros × 100–150 ms para idles e 6–8 quadros para caminhadas.
-
Durações. Use
add_frames(count, duration_ms)e depoisset_frame_duration_all. -
Tags. Nomeie cada loop com
set_tag(por exemploidleouwalk), para queexport_tagpossa exportá-lo individualmente.
2. Primeiro, as camadas estáticas
Finalize o quadro parado primeiro; siga a skill de pixel art. Depois chame propagate_cels para copiar toda camada que não se move (fundo, móveis) para todos os quadros. Apenas as camadas em movimento serão redesenhadas depois disso.
3. Mova as coisas da maneira correta
| O que se move | Como |
|---|---|
| Personagens, criaturas | Pose a pose. Redesenhe cada pose-chave em seu próprio quadro: antecipação, ação, finalização. Use copy_frame, depois erase_region na parte que se move e redesenhe com draw_rows. Envolva o corpo inteiro. Os pés permanecem em uma linha de chão, a menos que estejam no ar. |
| Corpos moles (slime, gelatina) | Squash e stretch de 30–50%, com uma forma alterada em todo quadro aéreo. |
| Objetos rígidos, movimento secundário | Use tween_cel_positions_eased, offset_cel_positions ou oscillate_cel_positions (nuvens, um ícone flutuante, um barco balançando). |
| Partes giratórias (ventilador, moinho) | Desenhe 2–4 poses e alterne-as com copy_cel. |
| Efeitos ambiente (vapor, faíscas, conteúdo de tela, LEDs piscando) | Redesenhe pequenos conjuntos de pixels por quadro. Deixe o alpha cair conforme as partículas sobem. |
Nunca use um tween como movimento principal de um ser vivo.
4. Torne os loops contínuos
- O último quadro deve fluir para o primeiro. Para partículas, use posições que são
(frame + offset) % N. Para rolagem, mova exatamente um período inteiro ao longo do loop. - Evite saltos bruscos. Algo que se desloca 8 px e depois volta de repente parece um erro. Use um balanço de vai-e-vem, ou mova-o por toda a largura do canvas para que saia e reentre.
- Verifique a continuidade com
render_onion_skin. Usecompare_frameseget_boundspara confirmar o que se moveu e quanto.
5. Revise e exporte
- Revise. Chame
view_sprite(frames="1-8")para ver todos os quadros lado a lado, eaudit_animationouvalidate_scenepara encontrar céis ausentes. - Exporte.
export_animation(output.gif, scale=4-8, background="#...")gera um GIF compartilhável; useexport_tagpara um único loop. - No modo ao vivo, o usuário também pode pressionar Enter no Aseprite para reproduzir a animação.