Encontrei este site interessante para o desenvolvimento de jogos e ele tem uma lista de funções de atenuação:
Embora o site contenha uma descrição do seu objetivo, ele passa por minha cabeça. O que são funções de atenuação e para que são usadas?
Atualizar
Encontrei um exemplo melhor das funções do código-fonte do Phaser.io . Essas funções são muito mais simples do que as respostas aqui sugerem. Eles usam apenas um parâmetro k
. Como parte da resposta, eu gostaria de saber como usá-las.
game-design
easing
Daniel Kaplan
fonte
fonte
Respostas:
As funções de atenuação são usadas para interpolação, normalmente (mas não necessariamente) na animação / movimento cinemático. Interpolação linear (lerp) é algo que você já deve ter ouvido falar. Digamos que você leia um rosto sorridente de um canto da tela para outro (como na sua imagem). Isso significa que o smiley se moverá a uma velocidade constante do ponto A ao ponto B. Se você aplicasse isso ao movimento de um membro, pareceria muito robótico e não natural - os atuadores / servos que os robôs usam, executam dessa maneira. Obviamente, os membros humanos se movem de uma maneira muito diferente. E a maioria dos movimentos que você verá na natureza terá curvas de movimento interessantes, em vez da velocidade constante e imutável vista na interpolação linear.
Digite atenuação. Aliviar o movimento significa que a velocidade não é constante. O que isso alcança é parecer mais realista. Observe pessoas, observe animais diferentes, observe plantas se dobrando ao vento ou até como a chuva muda de direção em um dia tempestuoso. Observe a velocidade de uma bola enquanto a joga no ar e volta a descer. Assista ao movimento de uma corda de violão enquanto você o aperta. Cada um desses tipos de movimento tem uma curva diferente que descreve a velocidade.
Sugiro que você jogue com o GSAP da GreenSock on - line para ter uma idéia do que os diferentes tipos de curvas de atenuação produzem em termos de movimento. É uma daquelas coisas em que leva tempo e prática mapear uma determinada curva nomeada para o tipo de movimento que você imagina que deseja. Mas depois de entender o básico, você se divertirá bastante.
PS Como eu disse, o relaxamento não é usado apenas para animação. Ele pode ser usado para a panorâmica do som, para efetuar movimentos esqueléticos no nível lógico / do modelo ou qualquer outra coisa que você possa imaginar que possa precisar de variação suave específica ao longo do tempo.
fonte
Uma função de atenuação permite interpolar valores de um valor para outro em um determinado intervalo usando algo chamado "função de atenuação". Essas são funções projetadas para obter um valor e, em qualquer ponto do intervalo, produzir o valor em um determinado momento.
Isso pode ser melhor explicado examinando um trecho de código:
Obrigado, http://upshots.org/actionscript/jsas-understanding-easing
Esta é a definição de uma função de flexibilização linear. Fazendo um gráfico disso ao longo do tempo em termos de 't', obtemos um mero gráfico linear.
OK fixe. Para que podemos usá-los?
Sempre que você tiver um começo e um final em mente e quiser animá-los, poderá usar uma "interpolação" ou "função de alívio".
Por exemplo, aqui está um GIF que eu peguei do Angry Birds:
Observe o menu deslizando para o ponto da tela, mas para lentamente? Isso ocorre devido a uma função de facilitação que se encaixa no lugar. Você pode ver aqueles em toda a web. Se isso fosse uma facilidade linear, seria o mesmo por toda parte.
Música?
Certo! Se pegarmos o valor do nosso valor atual da trilha sonora e o interpolarmos entre esse e 0 em um total de t digamos, 1 segundo, então nosso volume diminuirá lentamente durante um período de um segundo.
Objetos delimitadores
Também existem funções que permitem saltar (consulte: http://easings.net/#easeOutBounce ) que podem produzir efeitos como esse em um sprite sem nenhum sistema de física:
Você pode encontrar mais informações na web pesquisando interpolação.
fonte
k
como parâmetro, aceitarei esta resposta. Graçask
me levam . Onde você está vendo o contrário?As funções de atenuação servem para alterar um valor durante um período de tempo, de um número inicial para um número final.
Você usa esse valor para animar uma propriedade de um objeto em seu jogo, como posição, rotação, escala, alteração de cores e outras propriedades que usam um valor.
As diferentes funções de atenuação determinam a "sensação" da animação ou como o valor muda com o tempo.
No site que você publicou, o gráfico mostra o valor que muda ao longo do tempo, do início ao fim, portanto não significa que o objeto que você está animando siga o caminho da bola no gráfico.
fonte