caranguejo peixe é,
caranguejo só é peixe lá no fundo da maré.
Pois é meus amigos existe mais sabedoria nesta antiga cantiga de ninar do que a gente imagina.
Eu digo isso porque passei boa parte da última semana pesquisando vídeos de caranguejo no YouTube e preparando algumas animações para o trabalho.
Você sabia que além de andar de lado, o caranguejo é super veloz embaixo d’água?
Bom, parte da graça de se animar um caranguejo é fazê-lo acompanhar as deformações do terreno, de modo que pareça que ele realmente está caminhando sobre a areia.
Está com pressa? Quer ver o resultado logo? Então dá uma olhada:
Holy Crab from Dalai Felinto on Vimeo.
Como o projeto vai ser animado dentro da GameEngine do Blender, a melhor maneira de se controlar a posição do caranguejo é com a novíssima função obj.alignAxisToVect().Esta função foi implementada no Blender em Junho, aprimorada em Julho e atualmente só está presente nas versões de desenvolvimento do Blender.
Agora só precisamos de um sensor do tipo Ray ligado ao nosso caranguejo, e com este sensor vamos ativar o nosso código:
import GameLogic as G
cont = G.getCurrentController()
own = cont.getOwner()
loc = own.getPosition()
ray = cont.getSensors()[0]
hitLoc = ray.getHitPosition()
hitNorm = ray.getHitNormal()
loc[2] = hitLoc[2] + 0.01
own.setPosition(loc)
try: # pra evitar conflito com versões antigas do Blender
own.alignAxisToVect(hitNorm, 2, 0.5)
except:
pass
Se você já está se familiarizando com Python, vai ver que o script não tem nada de mais. Se você não entendeu o script mas conseguiu fazê-lo funcionar, parabéns :). Se você não entendeu nada e não sabe o que está fazendo nesta página, reclame com quem te trouxe aqui 😀
Acho que é isso que tinha pra falar.
Espero que tenham gostado (eu gostei 😉 )
Um grande abraço,
Dalai Felinto (dfelinto)
Algumas pérolas do YouTube no quesito caranguejo: