Esse tutorial foi traduzido de um membro do TDD(Franklin).
Basicamente esse tutorial vai ensinar uma técnica de física em alguns objetos, pode até ser usado em sticks se bem aplicado.
Primeiramente vou copiar a parte que o OblivionFall fala sobre a técnica de double easing:
A distância movida em píxels em cada frame.
Frame 1 - Pixels 1Frame 2 - Pixels 2Frame 3 - Pixels 4Frame 4 - Pixels 8Frame 5 - Pixels 16|-|--|----|--------|----------------|--------------------------------|----------------------------------------------------------------|Essa técnica produz uma aceleração rapida, mas também suave. A curva no gráfico também é razoavelmente suave. Essa forma de easing é simples de aprender e eu tenho certeza que não sou o único animador a usar essa técnica.
Double easing não é algo que se use em um stick dando um soco ou qualquer coisa do tipo, mas é aplicado quase que perfeitamente em objetos em queda livre, ou em um lançamento oblíquo(aquele que o objeto sobe e desce).
Em uma anima simples de uma bola caindo com nenhum movimento horizontal, vc usaria este tipo de espaçamento (com as setas para facilitar sua vida), acelerando a bola até ela atingir o chão. Vc provavelmente não vai querer que a bola caia muito rapido mesmo que a queda seja grande, então eu uso uma "velocidade constante" de 128 ppf (pixels por frame).
Quando a bola chega no chão, vc tem que ter em mente o material de que a bola é feita. Uma bola feita de elástico seria a que atingiria a maior altura. Pra exemplificar, a bola sobe 1/2 da velocidade vertical que ela atingiu o chão. Se ela atingiu o chão no sétimo frame, logo a 64 ppf, ela pingaria 32 pixels no primeiro frame do "pingo". Em contrapartida, uma bola com um "pingo médio", como uma bola de futebol, subiria a 1/4 da velocidade que atingiu o chão. Isso significa que, no mesmo cenário mencionado anteriormente, subiria 16 pixels no frame seguinte que atingiu o chão. Um material mais duro, por exemplo... Uma bola de boliche, subiria apenas a 1/8 da velocidade que atingiu o chão, ou seja, apenas 8 pixels.
Depois do primeiro frame de pingo, a bola continua a subir perdendo sua velocidade vertical, aplicando o double easing (no caso da bola pesada, 8/4/2, em pixels). Vou exemplificar melhor, usando o caso da bola de elástico. Ela subiu inicialmente 32 píxels, no próximo frame vc divide esse valor pela metade, ou seja, sobe apenas 16 pixels. Então 8 pixels no frame seguinte, 4 e 2. Vc provavelmente vai pensar em mover a bola 1 pixel pra cima. Isso é até aceitavel dependendo do estilo da física que vc aplica, mas eu particularmente pulo esse pixel e faço a bola descer 2 pixels, e começo o double easing novamente até ela atingir o chão. Agora, como a bola atingiu o chão a 32 ppf, vc vai fazer com que a bola suba metade do valor no segundo pingo, 16 pixels, pq é uma bola de elástico.
É bem dificil explicar isso com apenas textos, e imagens explicam bem melhor do que palavras, então aqui vai um exemplo do que estou falando. A animação da esquerda é uma bola de elástico, a do meio uma bola de futebol e na direita uma bola de boliche.
.Piv
Queda com velocidade horizontal:
Bom nesse exemplo eu segui o mesmo método da queda vertical. Sempre diminuindo a quantidade de movimento da bola a cada pingo. Quanto mais pesada a bola menos ela pinga. Só que nessa parte, a velocidade adquiri uma velocidade horizontal, que como na fisica real, ela se perde a cada pingo devido ao atrito.
Vejamos o exemplo:
Perceba que cada bola tem o quique diferente. Isso se deve pelos diferentes pesos que elas tem.
Bola 1: por ser uma bola mais leve, ela teve mais pingos que as demais. Seguindo a logica do double easing, eu fiz o seguinte no exemplo, ela atingiu uma velocidade maxima de 64 pixels, e foi decaindo pela metade até chegar em 2, e voltou a acelerar na queda, e sua velocidade constante de 32 pixels na horizontal até chegar ao chão. No segundo pingo, a velocidade vertical maxima diminui em 32 pixels, e continuei o movimento diminuindo pela metade sempre até chegar em 2 e começou de novo, e a velocidade horizontal era constante de 16 pixels até chegar ao chão, e esse movimento se repete até a bola parar, ou seja, até chegar a velocidade de 2 pixels na horizontal e na vertical, lembrando sempre que a bola continua a rolar depois que termina de pingar.
Bola 2: Na bola 2, o peso foi levemente aumentado, portanto perdeu velocidade. A velocidade maxima que essa bola chegou foi de 64 pixels na vertical, e iniciou-se o movimento com apenas 16 pixels na horizontal. No segundo pingo, a velocidade da bola foi diminuida em 1/4 dos pixels, ou seja, passou a ter velocidade maxima de 16 pixels e continuou com 16 pixels na horizontal. No terceiro pingo ela passou a ter 4 pixels de velocidade vertical e a velocidade horizontal diminuida para 4 pixels também, e foi assim até chegar a zero.
Bola 3: Levemente mais pesada do que a 2, teve sua velocidade máxima de apenas 32 pixels, e velocidade horizontal inicial de 8 pixels. No segundo pingo, diminui a velocidade vertical para 4 pixels e sua velocidade horizontal para 4 também até chegar a 0.
Bola 4: Claramente mais pesada do que as 3 anteriores teve velocidade maxima de 16 pixels verticais, e 4 horizontais. Note que por ser pesada ela teve apenas 1 pingo, e perdeu bastante velocidade, chegando a ter apenas 2 pixels de velocidade vertical e horizontal. Seguindo esse parametro da uma ideia de que a bola é mais pesada do que as demais, apesar de possuir o mesmo tamanho.
Caso esteja confuso de entender a parte de velocidade horizontal, comentem que eu tento melhorar. Vou tentar sempre trazer conteúdos novos nesse tutorial quanto a gravidade pra vcs. Essa parte foi de minha autoria portanto me desculpem qualquer erro, e comentem pra mim se tiver algum.
Por vir:
Alguns aspectos que atrapalham a gravidade;
Última edição por Lewk em Ter Jan 12, 2016 2:07 pm, editado 1 vez(es)