Saltar para o conteúdo

Panda3D/Manual/Carregar actors e animações

Origem: Wikilivros, livros abertos por um mundo aberto.

Os fundamentos da classe Actor

[editar | editar código-fonte]

A 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

[editar | editar código-fonte]

A 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.