Panda3D/Manual/Animar actors: diferenças entre revisões

[edição não verificada][edição verificada]
Conteúdo apagado Conteúdo adicionado
m cat
 
Linha 5:
Animações podem ser executas apenas uma vez ou então diversas vezes em um loop. Quando uma animação é executada, o Actor faz a animação uma vez. Quando uma animação entra em um loop, a animação vai continuar. Por fim, as animações podem ser paradas a qualquer instante. Quando uma animação para, o Actor vai permanecer na posição em que ele parou.
 
<pre>
<source lang=python>
actor.play('nome da animação')
actor.loop('nome da animação')
actor.stop()
</sourcepre>
 
 
Você pode usar o método '''pose()''' para fazer um actor permanecer num frame particular da animação. Frames são numerados e iniciam em 0.
 
<pre>
<source lang=python>
actor.pose('nome da animação', númeroDoFrame)
</sourcepre>
 
 
Este comando não especifica automaticamente o frame inicial da próxima animação. Em vez disso, se você não quer iniciar no primeiro frame, você pode especificar os frames usando parâmetros opcionais '''fromFrame''' e '''toFrame''' nos métodos '''play()''' e '''loop()''':
 
<pre>
<source lang=python>
actor.play('nome da animação', fromFrame = 10)
actor.loop('nome da animação', fromFrame = 25, toFrame = 36)
</sourcepre>
 
 
Contudo, o método loop tem outro parâmetro opcional chamado '''restart''', que é 1 por padrão, significa que a animação vai reiniciar do começo. Se você passar 0 em vez disso, então a animação vai iniciar o looping apartir do frame atual:
 
<pre>
<source lang=python>
actor.pose('nome da animação', 30)
actor.loop('nome da animação', restart = 0, fromFrame = 25, toFrame = 36)
</sourcepre>
 
 
Você pode conseguir mais informações sobre uma animação com estas funções:
 
<pre>
<source lang=python>
print actor.getNumFrames('nome da animação') # retorna o total de frames na animação
print actor.getCurrentAnim() # retorna uma string contendo o nome da animação que está sendo executada atualmente
print actor.getCurrentFrame() # retorna o frame atual da animação
</sourcepre>
 
 
=== AnimControl ===
Linha 48 ⟶ 43:
AnimControl é uma classe que fornece controle sobre certas animações.
 
<pre>
<source lang=python>
meuControle = actor.getAnimControl('nome da animação')
 
meuControle.isPlaying() # retorna um valor boolean dizendo se a animação está sendo executada ou não
meuControle.getFrame() # retorna o número do frame atual
meuControle # retorna a velocidade da animação, em frames por segundo
meuControle.getNumFrames() # retorna o total de frames
meuControle.getPlayRate() # retorna a taxa de execução
meuControle.loop() # começa a executar a animação em loop
meuControle.play() # começa a executar a animação
meuControle.pose( númeroDoFrame ) # posiciona a animação no frame especificado
meuControle.setPlayRate( númeroDaTaxa ) # configura a taxa de execução
meuControle.stop() # para a animação
</source>
 
meuControle.isPlaying() # retorna um valor boolean dizendo se a animação está sendo executada ou não
meuControle.getFrame() # retorna o número do frame atual
meuControle # retorna a velocidade da animação, em frames por segundo
meuControle.getNumFrames() # retorna o total de frames
meuControle.getPlayRate() # retorna a taxa de execução
meuControle.loop() # começa a executar a animação em loop
meuControle.play() # começa a executar a animação
meuControle.pose( númeroDoFrame ) # posiciona a animação no frame especificado
meuControle.setPlayRate( númeroDaTaxa ) # configura a taxa de execução
meuControle.stop() # para a animação
</pre>
 
=== PlayRate ===
Linha 68 ⟶ 62:
A taxa de execução da animação deve ser configurada para qualquer valor ponto flutuante, que pode ser usado para aumentar ou diminuir a velocidade de uma animação. 1.0 significa que a animação está na sua velocidade normal, enquanto 2.0 executa duas vezes mais rápido, e 0.5 executa na metade da velocidade. Também é possível fazer a animação ir de trás para a frente especificando um valor negativo, por exemplo -1.0.
 
<pre>
<source lang=python>
actor.setPlayRate( novaTaxaDeExecução, 'nome da animação')
</sourcepre>
 
{{AutoCat}}