imprimir

Introdução ao uso de scripts no blender


Voltar a página do blender

Para trabalhar com scripts no blender, é melhor que você tenha alguma maneira de obter respostas que o script vai passar para você sobre o que está acontecendo, então inicie o blender pela linha de comando do terminal, para que você consiga enxergar essas respostas.

blender -w


O -w serve para o blender não iniciar no modo Tela Cheia.

Alterne para o modo de visão scripting



no editor de texto do lado direito, digite:
print "Olá Mundo!"


Na parte de baixo do editor de texto, nomeie seu arquivo como teste



Agora, com o cubo selecionado, clique no Logic (F4), e crie um sensor Allways, conectado ao seu script, como na figura abaixo:



Aperte "p" para iniciar o jogo e confira o seu terminal. Um monte de mensagens "Olá Mundo!" devem ter aparecido.

Bom, já deu para entender como chamar os scripts a partir da GameEngine? do Blender. Vamos ver agora um pouco como esses scripts podem interagir com os objetos 3D do Blender.

O script abaixo acrescenta 1 ao valor do atuador de deslocamento de um objeto cada vez que é rodado. Se você ligá-lo a um sensor do tipo "allways", o objeto sairá andando, acelerando, pois vai incrementando em 1 sua velocidade a cada instante.

Você pode tamém associá-lo a um sensor de uma tecla, para criar um acelerador, por exemplo. Então bastaria duplicar esse script, modificando o valor que se incrementa para um valor negativo, para fazer um breque.


primeiro nós pegamos o objeto ao qual o script está associado através das ligações para o sensor e o atuador

cont=GameLogic.getCurrentController()

Depois, pegamos o atuador que queremos modificar. Pode ser qualquer um e você o chama pelo nome, nesse caso "act"

move = cont.getActuator("act")


Aqui nós mandamos um sinal para esse atuador
Esse atuador específico recebe 4 parametros: a deslocação x, y, z e um booleano, referente ao botão "L", desse atuador (Referencia Local)
Então estamos mandando 0 para o eixo X, 1 para o Y e 0 para o Z, o que significa q nosso objeto vai andar no eixo Z

move.setDLoc(0.0, 1, 0.0, 1)

Por último ativamos esse atuador. O 1 no final indica que estamos ativando. Se fosse 0, o desativaríamos

GameLogic?.addActiveActuator(move,1)


No final das contas, nosso script vai ficar assim:


cont=GameLogic.getCurrentController()
move = cont.getActuator("act")
move.setDLoc(0.0, 1, 0.0, 1)
GameLogic?.addActiveActuator(move,1)


Aperte o "P" para inciar o jogo e veja o cubo indo embora...

Para saber como interagir com todos os atuadores, confira a documentação em:
http://www.blender.org/documentation/225PythonDoc/index.html

Veja também Como Receber sinais OSC no Blender, e o PONG!


Última alteração: 02/08/2007 às 16:33, por: habib