Panda3D/Manual/Actors multi-partes: diferenças entre revisões
[edição não verificada] | [edição não verificada] |
Conteúdo apagado Conteúdo adicionado
Sem resumo de edição |
Sem resumo de edição |
||
Linha 1:
É possível criar um modelo de personagem com varias partes separadas ( modelos separados ). Se esse é o caso, então as peças devem conter osso que podem ser anexados uns aos outros. Por exemplo, se você tem um robo que consiste de um par de pernas e um torso, se voce quiser "colar" elas na região do quadril, o modelo das pernas devem ter um osso chamado "quadril", e o modelo do torso deve ter tambem um osso chamado "quadril". você pode então anexar essas partes uma á outra:
<pre>
'
'torso':{'dance':'Torsorobo1-Dança.egg'}})
</pre>
Atores que multi-partes são meio complicados. Cada parte é carregada de um arquivo egg separado, e cada parte têm seu proprio conjunto de animações aplicadas á ela. Para cada animação que você quiser rodar, você precisará ter o arquivo egg correspondente para cada parte.
Linha 14 ⟶ 16:
Aqui está outro exemplo:
<pre>
meuactor = Actor(
# dicionário das partes
{"cabeça":"char/robo/robo_cabeça",
"torso":"char/robo/robo_torso",
"pernas":"char/robo/robo_pernas"},
# dicionario do dicionário de animações
{"cabeça":{"andar":"char/robo/robo_cabeça-andar",
"correr":"char/robo/robo_cabeça-andar-correr"},
"torso":{"andar":"char/robo/robo_torso-andar",
"correr":"char/robo/robo_cabeça-andar-correr"},
"pernas":{"andar":"char/robo/robo_pernas-andar",
"correr":"char/robo/robo_cabeça-andar-correr"}
})
</pre>
Em adição as partes do actor multiparte precisam ser conectadas de uma forma compreensivel:
<pre>
meuactor.attach("cabeça", "torso", "junta-cabeça")▼
meuactor.attach("
</pre>
O chamado attach() noemia duas partes, e reparenta a parte nomeada pelo primeiro parametro na parte nomeada pelo segundo parametro, no node chamado pelo terceiro parametro, que deve ser uma junta exposta ( ou seja, uma junta na parte nomeada pelo segundo parametro). Você precisa já ter exposto a junta antes de efetuar essa chamada, tanto com a ferramenta de linha de comandoegg-optchar, ou chamando actor.exposeJoint() durante o runtime.
Linha 39 ⟶ 45:
Após chamar attach(), a parte "stacked" irá herdar a animação da junta anexada, através da relação do gráfico de cena.
===Animação===
Você pode animar as partes como animações normais, mas você precisa suprir o nome da parte, assim:
<pre>
meuactor.play('Nome da Animação', 'Nome da Parte')
</pre>
Se você quer usar AnimControl, como explicado nessa sessão, vocêp recisa suprir o nome da parte como um parametro secundario no getAnimControl():
<pre>
para ter acesso ao AnimControl(Controle de animação) daquela parte
</pre>
|