Mais uma \'aventura na matemática\' =DD
Primeiramente, quando eu tava pesquisando sobre como fazer o movimento do rabo, um \"abanar\" digamos assim, eu aprendí, no help mesmo da Autodesk, a função do Seno.. O Seno é capaz de gerar uma função que varia de 0 a 1.. No site da autodesk simplesmente dá uma dica pra se usar a função (1+sin(360*Time) pra se gerar uma variancia de 0 a 1 (em qualquer coisa) de acordo com o tempo...
(pesquisei um pouquinho sobre isso.. (nesse link tem um desenho animado bastante explicativo ( http://en.wikipedia.org/wiki/Sine ) )
Uma coisa bastante importante sobre o seno (o que dizem que é \"a qualidade do seno/coseno\") é que ele gera uma função em formato de \'sino\'.
Então veio meio q aquela parte de \"resolver o problema da lógica\" hehehe.. Se eu simplesmente variasse a rotação dos controles do rabo em (1+sin(360*Time), ele iria ir e voltar só pra um lado.
Então eu pensei assim...
- Se \'isso\' vai de Zero a um.. \'isso\' multiplicado por dois irá de Zero a dois.. Então, muito logicamente, \'isso\' multiplicado por dois e depois subtraindo um, \'isso\' irá de -1 a 1 =DDD...
Seguindo essa linha de raciocinio, fiz essa formula pro \'abanar\' de um rabo (poderia ser qualquer movimento pendular, ou com essa variancia senoide).
(1+sin(360*Giro*Vel)-1)/Int
\"Giro\"(a velocidade geral, é um controlador pra quase todos os movimentos do conjunto de andar),\"Vel\" e \"Int\" (o quão intenso é o abanar) são controlados por Attribute Holder do \'controlador geral\'.. Dessa maneira eu posso controlar pormenores do formato da onda senoide, de maneira interativa, o que não seria possivel se usando o Waveform Controller.
Para o rabo, essa formula funciona muito bem pra vertical e horizontal, sendo possivel fazer qualquer abanada de rabo que se vê normalmente em rabos naturais..
Mas então fui fazer o pescoço, e o pescoço tem outro movimento alem desse com a variação harmonica do seno.. Tem algo como um \'quicar\'.. Então tive que pensar um pouco sobre qual função matemática daria esse formato de \'quicar\'.. não achei.. então tive q bronzear um pouquinho mais o cerebro XDD..
Então pensei que, se TODOS os valores de (1+sin(360*Giro*Vel)-1) forem positivos, daria exatamente ou quase exatamente o formato que eu estava querendo (o \"quicar\")... Então.. primeiramente... hehehehehe... tentei elevar isso ao quadrado e depois dividir pelo mesmo numero.. O que fez a expressão ficar gigante heheh.. e não deu certo..
Depois, ví q tem uma função de \'valor absoluto\'... Um \'valor absoluto\' é o valor de um numero tirando o + ou - ou seja, é um valor sempre positivo.. Por exemplo abs(1-6) é igual a 5 =D.. Aprendendo essa \'função\', consegui o formato \"quicante\" de onda..
(Na verdade, esse formato de onda é mais conhecido como \'Hipertriangular\'. (e o outro é o \'Sinusoidal\' =DDD)).
Aplicando esse conceito do \'valor absoluto\' (\"abs\" no 3dsmax), fiz essa formula pro movimento de \'quicar\' da base do pescoço:
(abs(1+sin(360*Giro*Vel)-1)*2-Off)/Int
Esse tem o \'offset\' a mais.. Esse offset é uma correção de angulo (em que angulo \'começaria\' o balanço).. Tem a multiplicação por dois antes do offset pra dar o angulo total não \'só pra cima\' ou \'só la embaixo\' (assim dá pra ir dos 2 jeitos..).
Esse formato aí (hipertriangular (\"quicar\")) é bem eficaz pra um \'andar\', mas não muito adequado pra um \'correr\', no \'correr\', no caso do pescoço... Então, tive que pensar numa maneira de se poder mesclar os dois...
A solução pra isso foi a boa e velha \"média ponderada\".. Ou seja.. Resumindo:
-(Força1(Quicar)+Força2(Flutuar))/(Força1+Força2)
Então, consegui fazer de uma maneira a que se dá pra combinar os dois, deixar \'mais de um\' ou \'mais de outro\', etc..
Essa formula, que é a completa, por isso um pouco mais elaborada, ficou assim:
(Bounce*(abs(1+sin(360*Giro*Vel)-1)*2-Off)/Int+Swing*(1+sin(360*Giro*Vel)-1)/Int)/(Bounce+Swing)
O \'bounce\' e \'swing\' são, resumidamente, o \'Força1\' e \'Força2\' da explicaçãozinha acima =D..
Deixei imagens com um desenho tosco do formato q dá as formulas, e um exemplo, no pescoço, dos dois tipos de movimento (sinusoidal e hipertriangular).
Evidentemente que as formulas podem ser aplicadas para uma infinidade de outras coisas ;)..
@edit: Imagem (gif animado) com os desenvolvimentos :)
@edit2: \"Copula\" parametrica com partes do comportamento zeradas (exemplo de outro movimento ciclico).. (da mesma maneira q o andar/correr, ele faz as coisas rapido e devagar, inclina pros lados, balança a cabeça e o rabo de varios jeitos (ciclicos), etc..)
(no caso, o pescoço já está usando aquela formula da combinação de sinusoidal e hipertriangular, olha só q efeito bacana (e é ciclico e parametrico) =D)
Achei bastante engraçado e é um comportamento q um animal deve ter ne hehe.. XD
A Beleza está entre a Ética e a Razão!..