Não tinha visto o video da minhoca lá, mas é mais ou menos daquele jeito lá a locomoção, dá pra fazer com esse rig aí, é o componente de \'compressão\' de cada \'bone do rig\'.. Perceba inclusive q no video a minhoca levanta do chão as partes esticadas.. É o componente em Z e tal, e é de uma função matemática quase idêntica à de ir pro lado ou pra frente e pra tras..
A formula que eu pensei pra esse movimento é uma \'dinâmica\' (deve ser gerida por expressões \'infinitas\' como as do seno, etc..) também, e usei a formula basica lá do seno pra gerar um valor pra \'ir e voltar\' .. Esse valor pra \'ir e voltar\' tem q ter um componente de \'delay\' pra que o movimento do bone de tras faça o mesmo movimento que o anterior, logo depois e tal.. A formula que eu tô usando pra isso é a seguinte, mas dá pra por uma formula composta (como a do quicar+flutuar, etc..) mas essa já dá bons resultados:
((1+sin(360*(Giro-Delay*Ordem)))/2)*Compress
Giro - (A mesma questão que no rig de pernas)
Delay - Um \'delay\' padrão pras peças, definido nos parametros do Attribute Holder do \'Behavior Control\'
Ordem - É um valor \'fixo\' pra cada bone.. Por exemplo o bone da cintura tem o \'Ordem\' como zero, o primeiro bone da cauda tem o \'Ordem\' como 1, o segundo tem o \'Ordem\' como 2, e por aí vai..(é um valor fixo pra formula de cada bone, eu poderia simplesmente por logo o numero na formula pra cada um, mas é q pra deixar mais rapido, fui copiando e colando os controllers e então fica mais facil/seguro mudar uma constante da formula e tal.. xd)
Compress - É a intensidade desse movimento.
Essa é a formula da \'compressão\' na locomoção dessa máquina (aquela cobra/verme mecanica e tal), acho q vendo a formula e dizendo q q são cada variável, fica relativamente simples de entender :).. Inclusive essa questão da \'Ordem\' foi coisa das mais simples e eficazes mesmo xdd..
O interessante é que, eu poderia realmente usar um waveform controller, mas, em se fazendo isso, eu perderia possibilidades muito importantes de controle.. Usar a formula senoide equivale a aplicar um waveform controller, porem, dessa maneira (controlando cada variavel com os parametros) o formato da onda fica muito controlavel e tal principalmente com uma formula composta como a que eu tinha mostrado da cintura do robô lá..
De maneira similar, eu poderia usar Float List numas questões onde eu uso uma formula com média ponderada.. Mas, se eu fizesse isso, a logística de controle final ficaria excessivamente complicada.. No final vai ter 1 controlador apenas, pra questão de locomoção, e então um Float List pra se adicionar o movimento por cima.. (se eu usasse o Float List já sucessivas vezes pra locomoção, ia ficar um acumulo bizarro de controladores, pra cada objeto.. Usando o Expression Controller, com a matemática dá pra gente simular varios controles usando só 1 por transform), por exemplo no ultimo video da máquina lá ela tem o movimento controlado por cima do movimento paramétrico (é o transform do movimento parametrico com o controle sendo aplicado por cima)..
(Ex: Eu poderia ter, inclusive, usado um Position Expression, ao invés de por um Expression Controller em Position X, Y e Z.. Seria inclusive mais prático pra copiar controllers, etc.. a expressão nesse caso é \"vetorial\"(XYZ), é como se tivesse a expressão pros 3 já, seria mais ou menos assim:
[(((1+sin(360*(Giro-Delay*Ordem)))/2)*Compress),(((1+sin(360*(Giro-Delay*Ordem)))-1)*Largura),(((1+sin(360*(Giro-Delay*Ordem)))/2)*Altura)]
Pega a ideia dessa formula aí q ela faz essa locomoção bem legal.. E eu ví q a cobra faz uma questão sinusoidal mesmo q eu vi uns estudos de locomoção de cobras, etc..)
Então, no caso de um animal rastejante, é um rig com as peças com essa formula pros movimentos de x y e z, com o delay e tal, mais um rig pra controle comum, e o rig pro movimento paramétrico é aplicado antes do de controle comum, num Float List, e então c \'soma\' um movimento a outro e tal, etc..
Vou dar uma estudada a mais sobre isso e pensar um tempinho, aí depois vou fazer um tutorial em formato de artigo, ao invés de fazer como vídeo.. Acho q fica mais facil de aprender dessa maneira até por uma questão de linguagem e praticidade de não ter q \'voltar o video\' e tal, etc..
A Beleza está entre a Ética e a Razão!..