Panda3D/Manual/Carregar actors e animações
Os fundamentos da classe Actor
editarA classe Python Actor é designada para suportar um modelo animado e um conjunto de animações. Já que a classe Actor herda a classe NodePath, todas as funções da NodePath se aplicam a Actor.
Note, contudo, que a Actor é uma classe Python que extende a classe NodePath C++. Na maior parte, você não precisa pensar nisso: a Actor herda a NodePath e geralmente faz o que você espera. Quando você adiciona um Actor na Scene Graph, os construtores C++ de baixo-nível do Panda só registram a parte NodePath do Actor na Scene Graph, o que é bom contando que você também pode manter um ponteiro para o Actor nos seus objetos Python.
A interface do Actor fornece uma interface de alto-nível nos construtores de baixo-nível do Panda. No Panda, o nó de baixo-nível que executa as animações é chamado de Character. Você pode ver o nó Character na Scene Graph quando você chama actor.ls()
Não confunda a classe Actor com a classe ActorNode, que é usada para física. Elas são classes completamente distintas com nomes similares.
Usando Actors
editarA classe Actor deve ser importada antes de qualquer carregamento ou manipulação de Actors.
from direct.actor.Actor import Actor
Uma vez que o módulo é carregado, o objeto Actor pode ser construído, e o model e as animações podem ser carregadas:
Para cada animação você deve fornecer uma tuple: um nome para a animação e o diretório/caminho para a animação. Este processo todo pode ser reduzido a um simples comando:
nodePath = Actor('caminho para o modelo'), { 'nome da animação 1' : 'caminho para a animação 1', 'nome da animação 2' : 'caminho para a animação 2' })
Animações devem ser descarregadas usando a mesma tuple usada na criação da animação.
nodePath.unloadAnims( {'nome da animação': 'caminho para a animação'} )
Note que é possível também armazenar a animação e o modelo no mesmo arquivo. Neste caso, apenas crie o Actor com o parâmetro do modelo.
Embora esta seja uma técnica raramente usada, também é possível montar um personagem com várias partes separadas. Isto é explicado mais adiante.