Comportamento.
As árvores são uma técnica er utilizada para controlar o comportamento dos NPCs.
Eles se tornaram populares após o uso para os NPCs em Halo.
Eles são um tipo especial de gráfico chamado A Tree.
Como o nome sugere, sua estrutura começa com uma única raiz e se estende a partir dessa
adição de ramos, nós e finalmente nós finais.
Existem três tipos de nós compostos, decorador e folha.
Um nó composto é aquele que pode ter um ou mais nós de crianças.
Um nó decorador pode ter apenas um filho.
Um nó de folha é um nó no final de um ramo e corresponde a uma ação real em um jogo.
Um grupo de nós foliares no final de um ramo pode representar uma seqüência de ações ou um conjunto de ações para selecionar
de como eles operam.
Depende do tipo de nó composto do qual existem dois tipos de seqüências e seletores.
Quando processado, um nó de seqüência garantirá que cada criança seja visitada em ordem.
Um nó seletor, entretanto, indica que apenas uma de suas crianças precisa ser visitada e que essa criança pode ser
escolhida aleatoriamente.
Vamos dar uma olhada em um exemplo.
Imagine que você ou seu NPC estão com fome.
Você tem uma decisão a tomar sobre o que comer.
Isto pode ser mostrado usando um nó seletor no qual você pode selecionar entre apenas uma das crianças.
Você não precisa de todos eles.
Portanto, isto é quando um seletor entra em jogo, quando apenas um nó de folha precisa ser executado para executar o comportamento
de comer.
Entretanto, se as ações de seu NPC estivessem em um nível inferior a este, como no The Sims, então você poderia
associar a alimentação de cada item com um processo bem definido.
Neste caso, você precisaria de um nó de seqüência para simplificar.
Digamos que tal seqüência inclui reunir ingredientes, fazer pizza, cozinhar pizza, e comer pizza.
Note que cada nó de folha corresponde a uma ação real.
É importante que os nós da folha possam ser executados com uma lógica ou com animação, porque
estas são as coisas reais que você verá o NPC fazer na tela.
Eles também são autocontidos.
Isto significa que eles podem ser executados e depois a seqüência abandonada.
Os nós também podem representar decisões que, quando em uma seqüência, podem causar a continuação ou o fracasso de uma seqüência.
Neste caso, a árvore de comportamento só executará completamente se minha fome e minha comida estiverem satisfeitas
e a decisão de comer, hambúrguer ou comer pizza estiver satisfeita.
As árvores de comportamento podem ser tão simples ou tão complexas quanto você precisar, incluindo ações em todos os níveis, unidas
por diferentes nós compostos.
Então, como tudo isso funciona em código?
Bem, cada nó de folha deve ter um método correspondente que possa ser executado.
A árvore de comportamento em si é uma espécie de linguagem de scripting.
Sentado acima de sua base de código, você deve escrever um monte de módulos auto-contidos em um arquivo C afiado que pode
ser chamado quando um nó de folha está sendo executado.
O próprio método terá que informar se falhou ou não ou se teve sucesso.
Isto dá ao nó de folha um estado de falha ou sucesso, que é reportado de volta ao funcionamento da árvore de comportamento.
No caso de uma seqüência, isto é essencial.
Como se uma folha falhasse, a seqüência inteira falha.
Nesta seção vamos construir o esqueleto básico de um sistema de árvore de comportamento
para que você possa ver como vai ser todo o código principal e montar sua própria pequena simulação.
Assim, da mesma forma que fiz na série Hope, o planejamento de ação orientado por objetivos, criei outro pequeno
cenário aqui, e este cenário tem um agente sobre uma malha de navegação novamente que eu construí.
O agente neste caso é um ladrão, e ele vai roubar algo da pequena galeria
que eu criei aqui.
Agora, se você trouxer este projeto de dados anexo a esta palestra e o abrir em unidade,
você vai encontrar isto na cena da árvore das abelhas.
A malha de navegação já será construída.
Agora há dois objetos de porta aqui dentro.
Na verdade, eles não fazem parte da malha de navegação, mas faremos com que eles se tornem obstáculos da malha de navegação um pouco mais tarde.
Portanto, isto já está preparado e pronto para ser usado.
Assim, quando voltarmos na próxima palestra, começaremos a escrever algum código para que nosso assaltante
possa passar pela galeria.