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:

Leave a Reply

Your email address will not be published. Required fields are marked *

Post Navigation