Escolar Documentos
Profissional Documentos
Cultura Documentos
Unreal 4
Sumrio
Sumrio
Configurando Player Character ............................................................................... 8
Configuraes Iniciais ........................................................................................ 10
Axis e Action Mappings ...................................................................................... 17
Animation Blueprint ............................................................................................ 33
Blend Space 1D .................................................................................................. 38
Editando Animaes ........................................................................................... 45
Configurando Animao de Pulo ........................................................................ 48
Concluso .......................................................................................................... 51
Configurando Player Character ............................................................................. 53
Configuraes Iniciais ........................................................................................ 55
Axis e Action Mappings ...................................................................................... 62
Game Mode........................................................................................................ 66
Configurando Movimento ................................................................................... 69
Animation Blueprint ............................................................................................ 74
Blend Space 1D .................................................................................................. 79
Editando Animaes ........................................................................................... 85
Configurando Animao de Pulo ........................................................................ 89
Concluso .......................................................................................................... 92
Adicionando Animaes ........................................................................................ 93
Template do projeto ........................................................................................... 95
Adicionando Animaes Com Animation Motage ............................................. 103
Inteligncia Artificial I.......................................................................................... 113
Template do projeto ......................................................................................... 115
Configurando a IA ............................................................................................ 116
Programando a IA............................................................................................. 119
Questo: ........................................................................................................... 120
rea de atuao Nav Mesh ............................................................................ 120
Concluso ........................................................................................................ 122
Aguando a curiosidade ................................................................................... 122
Inteligncia Artificial II......................................................................................... 123
Template do projeto ......................................................................................... 125
Lista de Passos:................................................................................................. 125
Third Person
Neste captulo veremos como configurar um personagem jogvel a partir de um
projeto Blank da Engine Unreal 4, convertendo o projeto para a jogabilidade Third
Person. Iremos definir seus controles de interao bem como suas animaes de
resposta.
Configuraes Iniciais
Como dito anteriormente, este projeto ter como base um template Blank, com isso
selecione este template, certifique-se de estar na aba Blueprint, e no C++.
Aps o Unreal Editor ter iniciadocrie uma pasta para o personagem que voc deseja
trazer, dentro desta paste crie mais 3 pastas, para Textura, Material e Animao.
Feito isso clique no boto Import localizado no menu Content Browser.
Alm do mesh mais 2 arquivos so importados Physics Assets e o Skeleton. Caso seu
modelo tenha vindo com muitos materiais e texturas soltos organize-os nas pastas
correspondentes. Depois do mesh importado e organizado iremos agora criar uma
Classe Blueprint do tipo Character. Para isso clique com o boto direito do mouse
num espao vazio dentro da pasta do Player, e escolha a opo Blueprint Class.
Aps informar que queremos criar uma nova classe Blueprint devemos agora
escolher qual tipo de classe queremos criar. Interagiremos agora com o painel Pick
Parent Class, para nosso player devemos escolher Character.
Nomeie a nova classe como quiser, uma dica colocar as siglas BP depois do nome
escolhido para identificar com facilidade no futuro, que se trata de uma classe
Blueprint.
Vamos agora configurar nosso Player Blueprint, clique duas vezes no seu cone para
abrirmos o editor.
Agora vamos adicionar 2 componentes essenciais para nosso Player. Clique no boto
verde Add Component, fica no topo do painel Component. Procure por ApringArm
e clique nele para adicionar.
O SpringArm responsvel por regular a distncia da cmera para o Player com isso
a cmera deve estar atrelada a ele. Para atrelarmos a cmera aqui devemos torna-la
Child do SpringArm, arraste a cmera at o SrpingArm e solte nele para isso. Note
que depois disso a cmera foi sozinha at a outra extremidade do SpringArm.
Feito isso clique em SrpingArm e no painel Details marque a opo Use Pawn
Control Rotation. Essa opo nos garantir um funcionamento correto da rotao
do player, depois de empregarmos os devidos cdigos de movimento e rotao
faremos outras configuraes por aqui.
Feito isso definimos a aparncia de nosso Player Character, agora precisamos definir
seus controles e em seguida configurar as animaes.
No Level Editor, clique em Edit e depois em Project Settings.
Agora temos um caixa com o texto NewAxisMapping, e abaixo dela temos um menu
onde possvel escolher teclas para diferentes tipos de interao. Renomeie o texto
da caixa para um texto correspondente aos movimentos de ir para frente e ir para
trs e escolha a tecla do teclado correspondente ao movimento de frente.
A tecla W no teclado foi definida como interao de ir para frente, mas o texto do
comando diz FrenteTras ento precisamos de outra tecla que far o comando
contrrio, para atribuirmos outra tecla a este evendo clicamos no smbolo +, dessa
vez ao lado da caixa de texto que digitamos FrenteTrasCMD.
Agora poderemos atribuir mais uma tecla a esta funo, usaremos o S e para
garantir que ao apertamos ele o personagem v para trs deveremos colocar o valor
negativo em Scale.
Game Mode
O GameMode responsvel por algumas definies importantes em nosso projeto,
uma delas justamente a definio de quem personagem que iremos controlar.
Para criar um novo GameMode clique na opo Blueprints na Toolbar e siga o
caminho mostrado na figura abaixo.
Nomeie o novo GameMode como desejar e coloque-o em uma paste adequada nesta
etapa da configurao.
Aps encontrar o nome que voc colocou no seu Player clique nele definindo-o como
o protagonista do jogo.
Para que este GameMode funcione em sua fase voc deve voltar ao Level Editor e ir
no Menu World Settings.
Caso queira que este mesmo GameMode funcione em todas as fases do seu game de
uma vez s, sem precisar ficar fazendo essa configurao no World Settings, v ao
Project Settings e clique em Maps Modes, ele uma das opes de Projct.
Caso voc veja essa expanso de Class Defauts ao abrir a classe Blueprint do Player,
e queira voltar a visualizar o Editor da forma padro, basta clicar no texto azul Open
Full Blueprint Editor localizado no topo da aba.
Vamos agora para a Aba Event Graph.
Selecione e delete esses ns nativos. Depois clique com o boto direito e traga os
events Axis e Action que criamos, basta digitar o nome que demos a eles.
Repita o n Add Moviment Input mas dessa vez o Vector trabalhar os valores de
esquerda e direita, com isso escolheremos o n Get Right Vector. Se dermos play na
nossa fase agora, alm de se mover para a frente e para trs o personagem se mover
para esquerda e direita tambm.
Mas ele no est girando em seu eixo quando o movemos. Para que ele faa isso
devemos clicar no Self do nosso player, que fica no topo do menu Components.
Agora ao dar play no Level ns podemos ver que o personagem gira respeitando o
caminho que fazemos.
Tudo certo... Porm h alguma coisa errada com a rotao do player, ser que voc
consegue identificar?
Ao posicionarmos a cmera e apertamos para o player seguir, sua orientao
permanece a mesma de quando o Level foi iniciado, ou seja, ele no respeita a
orientao da cmera para mudar de direo, isso no deixa a jogabilidade muito
atrativa.
Para concertar isso precisamos unir os dois Vector, que so as funes de retorno
de nossos eventos Axis a um Get Control Rotation.
Perfeito! Nosso player se move para todos os lados, pula e sua cmera orienta seu
eixo de movimentao, e tambm se move bem nos eixos determinados, agora
podemos passar pra o prximo passo, configurar as animaes.
Animation Blueprint
Importe as animaes correspondentes ao seu player, elas tm de ter Idle (animao
onde o personagem encontra-se de p em repouso), andar, correr saltar e caindo.
Na hora de importar a animao marque o Skeleton como o do seu player.
Com as animaes em sua devida pasta, iremos agora criar um Animation Blueprint.
Renomeie o novo State Machine como achar melhor e faa a ligao demonstrada
abaixo.
Clique duas vezes no State Machine que voc adicionou para entrar em outra
camada da edio de animaes.
O n Entry define o estado primrio da animao, tudo que ligarmos a ele ser
imediatamente executado. Vamos fazer um pequeno teste. Note que na aba abaixo
denominada Asset Bowser esto listadas todas as animaes que importamos para
este personagem. Clique em uma delas e arraste at ao lado de Entry.
Agora puxe uma ligao de Entry at o n que contm a animao que arrastamos.
Procure na lista que aparece o Animation Blueprint que voc criou e clique nele
para defin-lo para seu personagem.
Repare que assim que fazemos isso o personagem incorpora automaticamente a
animao que ligamos ao n Entry.
Caso dermos Player em nosso jogo agora, notamos que, no iporta qual comando
dermos o personagem responder a todos com a mesma animao. Isso no
interessante para nosso projeto, ento vamos prosseguir para o prximo passo.
Entendemos agora como funciona a interao de animaes com o Entry.
Precisamos agora fazer com que o personagem produza animaes mais realistas
de respostas, como ficar parado quando no o movemos e dobrar os joelhos e
impulsionar-se para cima quando apertamos o comando de pular. Para o primeiro
exemplo precisamos criar um Blad Space 1D.
Blend Space 1D
Clique com o boto direito no Content Browser e siga mais uma vez a imagem
abaixo para criar um Blend Space 1D
Blend Spaces so Assets especiais que permitem um arranjo e mistura de
animaes com base nos valores de duas entradas. A mistura simples entre duas
animaes com base em uma nica entrada pode ser realizada usando um dos ns
de mistura padro disponveis em Animation Blueprints. Os Blend Spaces fornecem
um meio de fazer misturas mais complexas
entre vrias animaes baseadas em mltiplos valores.
Note que transitar o mouse entre os 2 estados vemos a transio suave dos
mesmos. Agora criamos uma animao de transio, para que o nosso personagem
saia do estado repouso para o movimento de forma mais agradvel aos nossos
olhos.
Precisamos agora voltar ao Animation Blueprint para configurarmos corretamente
nosso Blend Space l. Salve e abra o Animation.
Delete esse n que ligamos a Entry, como teste. E agora arraste nossa recm-criada
Blend Space 1D para essa mesma ligao.
Crie uma varivel Float com o nome Velocidade e a arraste pra cena a conectando
como condio de nossa BlendSpace1D.
Perfeito!
Agora vamos a animao de Pulo.
Voltemos para Animation BP.
Editando Animaes
Clique com o boto direito sobre a posio escolhida e apague os frames iniciais.
Salve e pronto temos o incio do nosso pulo. Vamos abrir agora a prxima
animao, Pulo Final.
Dessa vez mova os frames at antes dos ps retornarem ao cho, e apague os
anteriores.
Arraste as 3 animaes para ficarem nesse esquema mostrado. Agora vamos fazer
as ligaes entre esses estados, comeando do Bland Space 1D para Pulo_inicio e
terminando de Pulo_Final a Bland Space 1D.
Note que agora nossas ligaes possuem um crculo branco no meio, ai que
definiremos a condio de transio do pulo, e parte do processo de interao com
os controladores.
Clique 2 vezes no crculo entre a Bland Space 1D e Pulo_inicio.
Devemos aqui criar uma varivel Bolean que indique se o pulo verdadeiro ou
falso.
Concluso
Agora vamos ao EventGraph e fazemos o seguinte esquema para acessarmos a
animao de pulo corretamente ao apertar a Barra de Espao no game.
Vamos ao teste.
Perfeito!
E assim conclumos nossas configuraes bsicas para um Player de um prjeto
Third Person.
Configuraes Iniciais
Como dito anteriormente, este projeto ter como base um template Blank, com isso
selecione este template, certifique-se de estar na aba Blueprint, e no C++.
Aps o Unreal Editor ter iniciadocrie uma pasta para o personagem que voc deseja
trazer, dentro desta paste crie mais 3 pastas, para Textura, Material e Animao.
Feito isso clique no boto Import localizado no menu Content Browser.
Alm do mesh mais 2 arquivos so importados Physics Assets e o Skeleton. Caso seu
modelo tenha vindo com muitos materiais e texturas soltos organize-os nas pastas
correspondentes. Depois do mesh importado e organizado iremos agora criar uma
Classe Blueprint do tipo Character. Para isso clique com o boto direito do mouse
num espao vazio dentro da pasta do Player, e escolha a opo Blueprint Class.
Aps informar que queremos criar uma nova classe Blueprint devemos agora
escolher qual tipo de classe queremos criar. Interagiremos agora com o painel Pick
Parent Class, para nosso player devemos escolher Character.
Nomeie a nova classe como quiser, uma dica colocar as siglas BP depois do nome
escolhido para identificar com facilidade no futuro, que se trata de uma classe
Blueprint.
Vamos agora configurar nosso Player Blueprint, clique duas vezes no seu cone para
abrirmos o editor.
Agora vamos adicionar 2 componente essenciais para nosso Player. Clique no boto
verde Add Component, fica no topo do painel Component. Procure por ApringArm
e clique nele para adicionar.
O ApringArm responsvel por regular a distncia da cmera para o Player com isso
a cmera deve estar atrelada a ele. Para atralarmos a cmera aqui devemos torna-la
Child do ApringArm, arraste a cmera at o Srping Arm e solte nele para isso. Note
que depois disso a cmera foi sozinha at a outra extremidade do ApringArm.
Feito isso clique em SrpingArm e no painel Details marque a opo Use Pawn
Control Rotation. Vamos fazer mais 2 configuraes agora. Ainda no painel Detail,
vamos inverter a posio da cmera para com o player aumentar a altura do brao,
ponha - 500 em Target Arm Length e em target Offset marcamos 150 somente no
eixo Z, isso erguer um pouco o SpringArm.
Agora vamos clicar na Camera, l no painel Components, para ajustar sua viso do
player. No seu painel Detail em Rotation eixo y vamos colocar o valor 334, isso far
com que ela se centralize no Player.
Feito isso definimos a aparncia de nosso Player Character, agora precisamos definir
seus controles e em seguida configurar as animaes.
No Level Editor, clique em Edit e depois em Project Settings.
Agora temos um caixa com o texto NewAxisMapping, e abaixo dela temos um menu
onde possvel escolher teclas para diferentes tipos de interao. Renomeie o texto
da caixa para um texto correspondente aos movimentos de ir para Direita e ir para
Esquerda e escolha a tecla do teclado correspondente ao movimento de Direita.
A tecla D no teclado foi definida como interao de ir para direita, mas o texto do
comando diz DirEsqMov ento precisamos de outra tecla que far o comando
contrrio, para atribuirmos outra tecla a este evendo clicamos no smbolo +, dessa
vez ao lado da caixa de texto que digitamos DirEsqMov.
Agora poderemos atribuir mais uma tecla a esta funo, usaremos o A e para
garantir que ao apertamos este boto o personagem v para esquerda deveremos
colocar o valor negativo em Scale.
Dessa forma ao apertamos A pegaremos os mesmos valores dos futuros cdigos
que atribuiremos a este evento (DirEsqMov) porm esses valores sero negativos.
Game Mode
O GameMode responsvel por algumas definies importantes em nosso projeto,
uma delas justamente a definio de quem personagem que iremos controlar.
Para criar um novo GameMode clique na opo Blueprints na Toolbar e siga o
caminho mostrado na figura abaixo.
Nomeie o novo GameMode como desejar e coloque-o em uma paste adequada nesta
etapa da configurao.
Aps encontrar o nome que voc colocou no seu Player clique nele definindo-o como
o protagonista do jogo.
Para que este Game Mode funcione em sua fase voc deve voltar ao Level Editor e ir
no Menu World Settings.
Caso queira que este mesmo GameMode funcione em todas as fases do seu game de
uma vez s, sem precisar ficar fazendo essa configurao no World Settings, v ao
Project Settings e clique em Maps Modes, ele uma das opes de Projct.
Configurando Movimento
Caso voc veja essa expanso de Class Defauts ao abrir a classe Blueprint do Player,
e queira voltar a visualizar o Editor da forma padro, basta clicar no texto azul Open
Full Blueprint Editor localizado no topo da aba.
Vamos agora para a Aba Event Graph.
Selecione e delete esses ns nativos. Depois clique com o boto direito e traga os
events Axis e Action que criamos, basta digitar o nome que demos a eles.
Agora ao dar play no Level ns podemos ver que o personagem gira respeitando o
caminho que fazemos.
timo, agora vamos configurar os comandos do pulo. Basta adicionar o n Jump e
Stop jump ao evento que criamos.
Perfeito! Nosso player se move para direita e esquerda e pula! Agora podemos
passar para o prximo passo, configurar as animaes.
Animation Blueprint
Importe as animaes correspondentes ao seu player, elas tm de ter Idle (animao
onde o personagem encontra-se de p em repouso), andar, correr saltar e caindo.
Na hora de importar a animao marque o Skeleton como o do seu player.
Com as animaes em sua devida pasta, iremos agora criar um Animation Blueprint.
Renomeie o novo State Machine como achar melhor e faa a ligao demonstrada
abaixo.
Clique duas vezes no State Machine que voc adicionou para entrar em outra
camada da edio de animaes.
O n Entry define o estado primrio da animao, tudo que ligarmos a ele ser
imediatamente executado. Vamos fazer um pequeno teste. Note que na aba abaixo
denominada Asset Bowser esto listadas todas as animaes que importamos para
este personagem. Clique em uma delas e arraste at ao lado de Entry.
Agora puxe uma ligao de Entry at o n que contm a animao que arrastamos.
Procure na lista que aparece o Animation Blueprint que voc criou e clique nele
para defin-lo para seu personagem.
Repare que assim que fazemos isso o personagem incorpora automaticamente a
animao que ligamos ao n Entry.
Caso dermos Player em nosso jogo agora, notamos que, no iporta qual comando
dermos o personagem responder a todos com a mesma animao. Isso no
interessante para nosso projeto, ento vamos prosseguir para o prximo passo.
Entendemos agora como funciona a interao de animaes com o Entry.
Precisamos agora fazer com que o personagem produza animaes mais realistas
de respostas, como ficar parado quando no o movemos e dobrar os joelhos e
impulsionar-se para cima quando apertamos o comando de pular. Para o primeiro
exemplo precisamos criar um Blad Space 1D.
Blend Space 1D
Clique com o boto direito no Content Browser e siga mais uma vez a imagem
abaixo para criar um Blend Space 1D
Blend Spaces so Assets especiais que permitem um arranjo e mistura de
animaes com base nos valores de duas entradas. A mistura simples entre duas
animaes com base em uma nica entrada pode ser realizada usando um dos ns
de mistura padro disponveis em Animation Blueprints. Os Blend Spaces
fornecem um meio de fazer misturas mais complexas
entre vrias animaes baseadas em mltiplos valores.
Note que transitar o mouse entre os 2 estados vemos a transio suave dos
mesmos. Agora criamos uma animao de transio, para que o nosso personagem
saia do estado repouso para o movimento de forma mais agradvel aos nossos
olhos.
Precisamos agora voltar ao Animation Blueprint para configurarmos corretamente
nosso Blend Space l. Salve e abra o Animation.
Delete esse n que ligamos a Entry, como teste. E agora arraste nossa recm criada
Blend Space 1D para essa mesma ligao.
Crie uma varivel Float com o nome Velocidade e a arraste pra cena a conectando
como condio de nossa BlendSpace1D.
Perfeito!
Agora vamos a animao de Pulo.
Voltemos para Animation BP.
Editando Animaes
Clique com o boto direito sobre a posio escolhida e apague os frames iniciais.
Salve e pronto temos o incio do nosso pulo. Vamos abrir agora a prxima
animao, Pulo Final.
Dessa vez mova os frames at antes dos ps retornarem ao cho, e apague os
anteriores.
Arraste as 3 animaes para ficarem nesse esquema mostrado. Agora vamos fazer
as ligaes entre esses estados, comeando do Bland Space 1D para Pulo_inicio e
terminando de Pulo_Final a Bland Space 1D.
Note que agora nossas ligaes possuem um crculo branco no meio, ai que
definiremos a condio de transio do pulo, e parte do processo de interao com
os controladores.
Clique 2 vezes no crculo entre a Bland Space 1D e Pulo_inicio.
Devemos aqui criar uma varivel Bolean que indique se o pulo verdadeiro ou
falso.
Concluso
Agora vamos ao EventGraph e fazemos o seguinte esquema para acessarmos a
animao de pulo corretamente ao apertar a Barra de Espao no game.
Vamos ao teste.
Perfeito!
E assim conclumos nossas configuraes bsicas para um Player de um projeto
SideScroller.
Adicionando Animaes
Animation Blueprint e Animation Montage
Template do Projeto
Para este projeto precisaremos de um Player j configurado com as animaes
bsicas, como mostrado nos captulos anteriores, e alm dessas outras animaes
como combate e movimentao diferente, para adicionarmos ao projeto.
Agora devemos clicar 2 vezes nos smbolos redondos que aparecero entre as
ligaes para ter acesso a condio.
Devemos agora criar uma comunicao entre essa condio e o player. Abra ento o
Event Graph do player character e l crie uma varivel boleana, aqui foi criada
Tochamodo.
Para organizar melhor nossas animaes, coloque todas as criadas em uma pasta
denominada Animation Montage.
No painel Anim Slot Manager clique na pasta com o texto Add Slot, e nomeie de
acordo com o tipo de animao que voc deseja chamar, no caso do exemplo est
nomeada como Combate.
Agora volte ao Anim Graph e em Slot Name mude o nome do slot para o nome que
acabou de criar.
Definimos com isso um Slot dentro de Animation BLueprint que Puchar filtrar
as montagens de animaes, desde que elas estejam configuradas adequadamente
para pertencerem a este Slot, o que faremos no prximo passo.
Abra o Editor de cada Animation Montage criada e mude DefautGrup como mostra
a figura abaixo:
Voc deve fazer isso em todos os Animations Montage que queira puxar do n
combate.
Agora no Event Graph do Player Blueprint, chame o N Play Anim Montage, e atribua
um boto para ativ-lo.
Na opo Anim Montage, escolha uma das animaes da lista. Tem de ser uma das
que voc acabou de configurar.
Vamos deixar sua luta mais dinmica agora. Conforme a imagem abaixo arraste uma
ligao de Anim Montage e solte em um local vazio, escolha a opo Promote to a
Variable.
Criamos assim uma varivel capas de carregar nela uma das montagens de
animao.
Para darmos vrios golpes apertando o mesmo boto devemos atribuir entre o
evento e a funo um n chamado Switch on Int.
Esse n permite criarmos nele mltiplos Pins de sadas (output) clicando em Add
Pin. Como temos 3 animaes de golpe vamos adicionar mais 2 Pins.
Vamos agora arrastar nossa varivel Anim Mont e escolher Set, depois criar 2
cpias da mesma.
Como fizemos com Play Anim Montage, vamos adicionar as animaes de combate
direto nas variveis.
Atrinua agora a funo Randim Integer in Rage ao n Switch para que possamos
carregar as animaes com um clique de forma randmica.
Inteligncia Artificial I
Perseguio
Inteligncia Artificial I
Projeto Perseguio
Neste capitulo estaremos aprendendo conceitos bsicos sobre inteligncia artificial
dentro da ferramenta Unreal Engine 4, aprenderemos desde tpicos at a
implementao de um sistema de perseguio.
Template do projeto
Precisaremos de um template para iniciarmos nossos estudos. Optei por utilizarmos
template em terceira pessoa, pois no precisaremos nos preocupar com a
implementaes bsica de controle do jogador que j fora visto, bem como a
construo de um mapa para possveis testes.
Lista de Passos:
Executar o Laucher
Criar um projeto em Blueprint
Definir as configuraes iniciais
Em seguida surgira uma nova janela. Nela iremos definir as configuraes bsicas
do nosso projeto.
Escolheremos Novo projeto e escolheremos faze-lo em Blueprint, definiremos que
o template a ser usado ser o de terceira pessoa e ento escolheremos o local onde
ser salvo e seu respectivo nome.
Configurando a IA
Com o projeto j criado podemos ento comear a desenvolver nosso inimigo.
Deveremos criar um Character que seja nosso inimigo e ento atribuir a ele um
AIController que ir controlar nosso inimigo, em seguida precisaremos definir uma
rea de atuao e ento colocar o nosso inimigo na cena para que comece a seguir
nosso jogador.
Como j vimos, quando criamos um Character, que nada mais que um Pawn com
algumas funcionalidades caractersticas de player, estamos definindo um
personagem, porm no nele que definimos como iremos controla-lo e sim em seu
PlayerController.
O mesmo ocorre com a inteligncia artificial, precisaremos de um AIController que
ir definir como nosso inimigo ser controlado, ser nele que iremos programar as
decises e aes a serem tomadas.
Agora criaremos uma nova pasta dentro de Content chamada IA1 e nela iremos criar
um novo Blueprint do tipo Character e definiremos seu nome como CH_IA1, este
ser o nosso inimigo.
O prximo passo definir o controlador do nosso CH_IA1 para AIC_IA1. Para isso
devemos abrir o CH_IA1 selecionar em Components o componente self e ento na
aba details altera o valor de AI Controller Class para IAC_IA1.
Pronto com isso nossa configurao da inteligncia artificial est pronta, pois
criamos um personagem e definimos que ele ser controlado pelo controlador de
inteligncia artificial que criamos.
Programando a IA
Agora que temos nosso inimigo configurado vamos programar a IA, ou seja, como
ele ir atuar sobre o local onde est, em nosso caso iremos fazer com que o inimigo
sempre encontre o player e comece a segui-lo para sempre.
Como este um comportamento de controle sobre o inimigo, vamos ter que definir
a programao no AIController que criamos, abra ento o IAC_IA1.
Na aba Event Grath iremos realizar uma pesquisa procurando o Character do
jogador, e em seguida iremos nos mover at ele.
Questo:
Em algumas situaes especificas este cdigo pode gerar um erro. Voc sabe qual ?
Questione com seus colegas como resolve-lo.
Por padro a rea verde no fica amostra. Devemos habilit-la clicando em Show na
prpria View Port e ento clicar em Navigation como na imagem abaixo.
Sabendo que a rea verde onde a IA poder se locomover, podemos perceber que
ela nunca ir encontrar ou chegar at nosso player, devemos ento redimensionar o
Nav Mesh para que ocupe toda a nossa cena como na imagem abaixo.
Pronto! Podemos agora executar o jogo e ver nosso inimigo perseguindo o player
para onde quer que ela v.
Concluso
Trabalhamos apenas com Blueprints, porm, existem ferramentas especificas para
a programao de IA como BalckBoards, BehaviorTree, mas falaremos disso mais
adiante.
Aguando a curiosidade
Conseguimos ento criar um inimigo com uma inteligncia artificial bem simples,
ele inicia encontrando o player e comea a segui-lo. Seria mais interessante que ele
comeasse a segui-lo apenas se chegssemos muito prximo dele, como faramos
isso?
Podemos ver ainda que existe uma rea verde nas escadas levando at um nvel mais
alto, mas se no existisse essa escada ele no subiria, voc consegue corrigir isso?
Na prxima apostila falaremos sobre esses problemas e suas solues. At l.
Inteligncia Artificial II
Inteligncia Artificial II
Projeto Perseguio II
Nesta apostila estaremos aprendendo mais sobre inteligncia artificial dentro da
ferramenta Unreal Engine 4, iremos construir um sistema de chave & porta para
passarmos de nvel bem como checkpoints, iremos ainda nos aprofundar na criao
de um sistema inteligente.
O Curso consiste em trs apostilas sendo que est conter os tpicos medianos sobre
inteligncia artificial em jogos digitais. Continuaremos trabalhando com Blueprints
para que na Inteligncia artificial III voc consiga perceber o porqu de utilizar o
sistema de IA da Unreal engine 4 ao invs de Blueprint puro;
Template do projeto
Precisaremos de um template para iniciarmos nossos estudos. Optei por utilizarmos
template em Side Scroller, pois no precisaremos nos preocupar com a
implementao bsica de controle do jogador que j fora visto, bem como a
construo de um mapa para possveis testes.
Lista de Passos:
Executar o Laucher
Criar um projeto em Blueprint
Definir as configuraes iniciais
Primeiramente execute o Launcher da Epic Games e em seguida clique em
Inicializar.
Em seguida surgir uma nova janela. Nela iremos definir as configuraes bsicas
do nosso projeto.
Escolhemos Novo projeto e escolhemos faz-lo em Blueprint, definiremos que o
template a ser usado ser o de Side Scroller e ento escolhemos o local onde ser
salvo e seu respectivo nome, incorpore o StarterContent ao projeto.
Organizando os diretrios
Com o projeto j criado podemos ento comear organizando nosso diretrio,
devemos criar uma pasta chamada AI2 na raiz do Content logo em seguida mova o
mapa padro do projeto para esta pasta. Faa o mesmo para SideScrollerCharacter
e retomei-o para Jogador.
Vamos iniciar o desenvolver nosso cenrio para que possamos testar toda a nossa
programao como sistema Chave&Porta, inteligncia artificial, elevadores entre
outros.
Na imagem abaixo podemos ver como ficou o layout do mapa, utilizando e
duplicando apenas os prprios blocos que j esto na cena, recomendamos que no
crie um layout novo, mas sim replique este para que no haja obstculos
inesperados em nosso aprendizado, depois podem ficar vontade em criar os seus...
alis fica atividade extra trazer mapas diferentes com o que aprender nesta apostila.
Realmente para este exemplo no parece que seria vantajoso, mas se formos
analisar todo o projeto dessa apostila veremos que existe coisas em comuns entre
Chave, Porta, Checkpoint, Moedas, Zona de morte, Trigger ...
Para cada um deles teremos de inserir um BoxCollider e detectar o evento de
BeginOverlap e EndOverlap que so os eventos que determinam se alguma coisa
tocou neles ou se deixou de tocar, logo para no termos de reconfigurar todo o
Blueprint toda vez que criarmos algo, basta utilizar este objeto base, a isso
chamamos de Herana.
Vamos ento pela opo 2 para treinarmos esse novo conceito j que a opo 1,
vocs j sabem como fazer.
Crie um Actor chamado A_ObjetoBase, adicione uma Box Collision chame-o de
Detector e defina como root da cena, este servira para nos avisar se algum tocou
neste objeto.
Agora poderemos criar nossos Blueprints que herdaram este objeto, o que
precisaremos fazer depois apenas especificar o que vai ser executado quando
Jogador Detectado e jogador Perdido forem executados, resumindo no
precisaremos criar tudo de novo a cada novo ator da cena.
Agora crie um ator que ir herdar a classe A_ObjetoBase e chame-o de A_Chave da
seguinte forma:
Perceba quecomo utilizamos Herana, nosso ator A_Chave j tem um Box Collider
bem como os eventos de deteco, o que precisamos fazer Recriar o CustomEvent
com o mesmo nome e parametros, para que este ator tenha uma execuao diferente
dos outros.
Antes de colocarmos a chave e moeda em cena para testar vamos adicionar seus
respectivos cones.
Cri uma pasta chamada cones dentro de IA2 e importe as imagens do curso, escolha
a imagem Icone_Chave clique sobre ela com o boto direito do mouse em Create
Sprite. Faa o mesmo processo para as outras imagens ao final teremos esta
configurao.
Volte para o A_ObjetoBase e adicione o componente Arrow e faa com que ele seja
o root da hierarquia veja que esse mesmo componente apareceu para a chave e a
moeda.
Volte para a A_Chave e adicione um novo componente chamado PaperSprite
informe o Sprite correspondente e remova a coliso. Faa o mesmo para a moeda.
Criando a porta
Vamos agora criar a porta para nossa chave, para isso crie um novo Actor com o
nome A_Porta herdando de A_ObjetoBase e siga os passos:
Adicione uma StaticMesh para o actor, defina o mesh SM_Door para este
componente reposicione e escale o Detector para quando o Jogador chegar aquele
local a porta verifique se ele tem a chave certa.
Agora posicone varias moedas na cena, uma porta e uma chave, estamoa usando
apenas uma chave mas voce podera usar quantas portas e chaves desejar.
Posicione uma chave na cena bem como vrias moedas espalhadas:
O elevador
Vendo a imagem acima chegamos a um ponto no cenrio que no conseguimos
chegar ao patamar de cima, para conseguirmos vamos construir um elevador, vamos
aos passos ento.
1.
2.
3.
4.
Controle de estados
Quando nosso player morrer devemos diferenciar se ele morreu na queda ou se
morreu pelo inimigo, mas como faramos isso?
Poderamos usar uma varivel do tipo integer e dizer que caso o valor seja 0 significa
que o player morre pelo inimigo, e caso seja 1 ele morreu pela queda, porm essa
soluo no interessante pois pode gerar dvidas e muitos problemas conforme o
projeto comece a ficar maior, imagine 100 estados diferentes sendo definido dessa
forma entre diversas classes!
Para isso temos o Enum, nele podemos organizar nossos estados de forma mais
clara e organizada.
Com o Enum criado defina seu nome para E_Estados e abra este arquivo criando
trs estados.
Vivo
o Estado em que o player ainda est vivo
MortoPeloInimigo
o Estado informa que o player morre pelo inimigo
MortoPorAreaPerigosa
o Estado informa que o player morreu por entrar em uma rea de
perigo, podemos pensar como sendo Lava, rea radioativa ...
Chaves
Abra o arquivo A_Chave encontre o CustomEvent Jogador Detectado que criamos e
altere sua lgica.
Pegue a varivel Chaves que uma lista e adicione a prpria moeda a essa lista
depois mova ela para fora da vista do jogador.
Portas
Abra o arquivo A_Porta encontre o BeginOverlap que criamos e altere sua lgica.
No evento Jogador detectado procure MinhaChave dentro da varivel Chaves do
caso exista iremos abria a porta.
Adicione uma TimeLine que ir variar de 0 a 90 o nome da varivel de sada ser
AnguloAtual, ela deve ter 2 segundos de durao, clique com o shift pressionadora
criar dois pontos, clique no primeiro ponto de defina o tempo e valor para zero,
clique no segundo ponto e defina seu tempo para 2 e seu valor para 90.
Defina a rotao da porta para ser igual ao valor de sada da TimeLine um Doonce
para que seja feita apenas uma vez a ao tudo dever ficar como na imagem.
Temos ainda que definir qual chave pertence a nossa porta, para que ela seja aberta
caso o jogador tenha a chave.
Selecione a porta que est na cena, v para o painel de detalhes e no campo default
voc ver a varivel MinhaChave, clique no conta gotas e depois clique na chave que
est na cena assim a chave ser atribuda quele objeto.
Elevador
Ainda no conseguimos chegar at a porta pois o player na pula to alto, por isso
criamos o elevador e iremos programa-lo agora.
Para o evento Jogador Detectado crie uma nova Timeline chamada Subir, que ter
durao de dois segundos, crie uma varivel com nome Altitude e dois pontos, o
primeiro em time e valor igual a zero e o segundo time igual a 2 e valor igual a 7,
para mim esses valores foram suficientes para que o elevador subisse at o topo
adapte para o seu projeto.
Agora para o elevador descer use o evento Jogador Perdido, duplique a TimeLine e
multiplique a altitude por menos um, assim o elevador comeara a descer logo que
o player sair dele.
Checkpoint
Vamos brincar com o Checkpoint, para isso vamos usar a mesma lgica que usamos
para a chave, voc se lembra como fizemos?
Crie um novo ator que herde de A_ObjetoBase, defina o cone
Icone_CheckPoint_Sprite que criamos a partir do Icone_CheckPoint como fizemos
coma moeda e chave lembre-se de remover a coliso do cone, realize a sobre escrita
do evento Jogador Detectado, quando este evento ocorrer pegue a posio do
checkpoint e defina para a varivel CheckPointEncontrado do jogador.
Zona da morte
Para usarmos o nosso sistema de checkpoint temos que morrer primeiro n? Ento
crie um novo ator chamado A_AreaPerigosa herdando de A_ObjetoBase assim
como no checkpoint adicione um PaperSprite e coloque o cone
Icone_lancas_Sprite remova a coliso do Sprite.
O inimigo (IA)
Todo o jogo j est funcionando, pegamos moedas, conseguimos abrir portas
morrermos em reas perigosas temos o nosso inventario.
Vamos ento comear a trabalhar nossa inteligncia artificial, ela ir perseguir o
nosso jogador e mat-lo caso o toque.
Primeiramente vamos repetir o passo da apostila anterior inserindo na cena um
Nav Mesh Bounds Volume na tab Modes.
Voc se lembra que onde fica verde, para ver o verde clique em Show e Navigation,
onde o inimigo poder andar n? Ento j percebeu que nos blocos que o jogador
est no existe uma rea verde n? Isso acontece, pois, o NavMesh precisa de uma
certa largura para ser criado na mesh, e para resolver este problema s precisamos
aumentar a largura dos blocos.
O terreno para o inimigo est pronto, mas ainda no temos o inimigo, crie ento um
novo BluePrint Character e de o nome de CH_Inimigo e configure seu SkeletalMesh
e sua AniamationBlueprint igual ao do Jogador.
Crie outro Blueprint do tipo AIcontroller, voc pode encontra-lo em All Classes no
popup de novo Blueprint, chamado AIC_Inimigo este ser a inteligncia artificial do
nosso inimigo. Defina-o como controlador padro do CH_Inimigo.
Neste controlador faa com que o inimigo logo que entrar em cena, guarde a posio
dele em uma varivel do tipo Vector chamada Posio inicial
E a cada evento Tick ele veja se tem algum player na cena, caso tenha e esteja vivo
persiga-o, caso no esteja vivo ele volta para a posio inicial dele.
Mas ainda temos de fazer a mudana de estado do player quando ele for tocado pelo
inimigo, para isso crie um SphereCollider no CH_Inimigo faa o Cast para o jogador
e ento mude o estado chamando a funo Jogador Morreu e passando como
parmetro MortoPeloInimigo.
Prontinho! Nosso inimigo j est fazendo tudo que tem de fazer porem se voc
comear a subir nos blocos e elevador e outros nveis diferentes do cho poder
perceber que ele no soube nveis algum, essa uma questo que deixamos na
apostila anterior e que agora iremos resolver.
Subindo nveis!
Nosso inimigo segue o player apenas no NavMesh verde que gerado, quando existe
uma descontinuidade desse NavMesh o inimigo no com segue ir at l, na verdade
ele nem sabe que pode existir uma NavMesh em outro lugar que no seja a dele.
Para avisarmos a ele que existe outros lugares que ele pode andar, precisamos usar
o Nav Link Proxy, ele existira dois PointLinks que iremos posicionar na cena
informando de onde para onde o inimigo pode ir.
Porem precisamos posicionar os PointLinks de forma que surja uma linha verde
ligando os dois, abaixo ter as imagens mostrando a forma errada e a correta.
Corrigindo a posio:
Posicione outros desses nas reas que precisam ser escaladas pelo inimigo da
seguinte forma.
De o play no game e veja que o inimigo agora sabe que naqueles pontos ele poderia
ir para o andar de cima, mas no consegue ir pois os PointLinks apenas avisam locais
para o inimigo.
Vamos ento criar um novo actor chamado A_Pular, mas dessa vez no iremos
herdar de A_ObjetoBase, que ir avisar que ele deve fazer algo quando chegar ali
dever pular conseguindo assim subir no bloco, neste ponto voc pode usar
animaes para fazer com que ele escale a parede, ou faze-lo teleransortar isso vai
de sua deciso.
Posicione ento este novo ator prximo aos PointLinks para que quando a IA chegue
naquele local ela pule.
Com isso nosso inimigo consegue subir e descer nos nveis da fase, experimente
fazer alguns destes testes e ajuste as suas necessidades.
Template do Projeto
Precisaremos de um template para iniciarmos nossos estudos. Optei por utilizarmos
template em Third person, pois no precisaremos nos preocupar com a
implementao bsica de controle do jogador que j fora visto, bem como a
construo de um mapa para possveis testes.
Lista de Passos:
Executar o Laucher
Criar um projeto em Blueprint
Definir as configuraes iniciais
Em seguida surgir uma nova janela. Nela iremos definir as configuraes bsicas
do nosso projeto.
Escolhemos Novo projeto e escolhemos faz-lo em Blueprint, definiremos que o
template a ser usado ser o de Third person e ento escolhemos o local onde ser
salvo e seu respectivo nome.
Vamos criar agora nossa ia, a ideia aqui replicar de forma simples uma ia no estilo
circular, similar ao sistema de ao usado em Assassins Creed e Batman: Arkham.
Ainda usaremos o sistema de blueprint para vermos como pensar, pois, muitas das
implementaes ficam implcitas quando usamos os sistemas de Behavior Tree
Blackboard.
Game design
Como a inteligncia artificial do inimigo ser semelhante ao Batman: Arkham nosso
inimigo tentar que obedecer alguns protocolos ou regras para que o gameplay se
desenrole, isso definido no design da inteligncia artificial.
Neste jogo o player no ir poder atacar os inimigos, ir apenas andar e se defender
seguindo a sabedoria dos antigos mestres de kung fu.
Vamos ento criar o IA Design:
O inimigo quando avistar o player ira se posicionar para ataque e ira persegui
lo
Quando perto do player ele devera circundar o jogador
O ataque ser realizado em turnos, ou seja, quando um inimigo estiver
atacando todos os outros no estaro.
O turno s acaba quando o player acaba de receber um ataque ou quando ele
acabar de bloquear.
A escolha de quem ir atacar randmica.
Imagine-se sendo o inimigo que vamos programar, quais seriam suas primeiras
aes com relao ao que foi descrito acima? Voc sabe que tem de ir a o player,
mas onde at o player ou quando? Pense nisso e liste o passo a passo, quando mais
detalhado melhor.
Abaixo uma possvel lista de aes:
1.
2.
3.
4.
5.
6.
Logo em seguida crie uma varivel no IAC_IA3 chamada state do tipo E_IAState e
defina seu valor default para Patrol.
Funes
ToFollowing
Altera o estado para perseguio
ToOnGuard
Altera o estado para modo de batalha
GetPointToMove
Retorna um vector3d baseado na posio atual do
player e no offset.
LookToPlayer
Faz com que o inimigo olhe para o player
PositionInCircle
Determina uma posio ao redor do player
3. CH_IA3
o Funes
ToOnGuard
ToFollowing
EnterAreaOfAttack
o
Quando o evento for acionado faremos o cast para CH_IA3 verificando assim se
realmente um inimigo logo em seguida iremos chamar a funo ToOnGuard e
ToFollowing, que j deve ser criada no CH_IA3 e chamada respectivamente em
BeginOverlap e EndOverlap do player para o trigger.
Agora vamos comear a controlar o estado do nosso inimigo por meio de enum. Crie
um novo enum chamado E_IAState e no IAC_IA3 crie uma varivel deste tipo
E_IAState chamada state.
Perceba agora que para cada estado podemos tomar um caminho diferente.
Agora s falta alterar os estados do inimigo, fazemos isso pela funes
ToOnGuard e ToFollowing que so chamadas quando o player detecta o
inimigo e quando ele o perde de vista, quando detectado vamos fazer com que o
inimigo
se
posicione
em
guarda.
Agora vamos brincar com o Onguard, nele vamos fazer o inimigo olhar para o player,
se posicionar e tentar atac-lo.
Crie uma funo chamada PositionInCircle ela devera atualizar o
BestOffSetPoint, vamos ento realizar o cast do player e pedir para ele o offset, pois
em nossa lgica deixaremos apenas 4 inimigos a um raio de 200 cm e os prximos 4
inimigos com o dobro do raio e assim por diante.
Teremos ainda de encontrar uma posio ao redor do player para que nosso inimigo
comea a cercar o jogador, est matemtica de posicionamento a principal funo
deste game play, pois nele de toda a inteligncia estar, quando mais casos serem
tratados melhor ser nosso inimigo.
Agora vamos para o ThirdPersonCharacter, pois ele que saber quantos inimigos
esto te perseguindo.
Crie a funo GetOffset sela ira retornar um offset, mas para isso precisamos
escolher uma posio ao redor do player certo? E ainda a cada 4 inimigos vamos
dobrar a distncia que ficaram do player.
Aqui criaremos uma funo chamada GetRaioAngle que ser responsvel por
calcular a distncia que os inimigos ficaram do player dependendo de quantos
inimigos j esto perseguindo, e ainda o ngulo ao redor do player de 0 a 360
estamos usando um valor integer para evitar valores como 12.7678.
Com isso temos o ngulo ao redor do player e uma distncia dele, mas ainda
precisamos calcular com essas informaes o ponto ao redor do player para ento
calcular o offset, para isso criamos a funo GetPoint
Primeiro calculamos um vetor direo normalizado pois este ser nosso ponto
angulo zero.
Logo em seguida multiplicamos este vetor pela distncia passada por parmetro que
encontramos no passo anterior encontrando assim um ponto com ngulo 0 redores
do player, porm queremos um ponto com o ngulo do parmetro ento realizamos
a rotao deste vetor com a funo Rotate Vector Around Axis.
Com isso voltamos para a funo GetOffset com o ponto correto, calculamos offset
pela diferena deste ponto com a posio do player e atualizamos a varivel
BestOffSetPoint da funo PositionInCircle la do nosso IAC_IA3 ufa sobrevivemos.
Agora a parte fcil s colocarmos isso para funcionar no estado de Onguard, mas
antes vamos criar a fundao que ir fazer com que fiquemos olhando para o player
quando estivermos em guarda, chamaremos ela de LookToPlayer .
Nele teremos de pegar a posio de inimigo e do player para calcularmos a rotao
utilizando a funo Find Look At Rotation e vamos corrigir para que quando o
player pular os inimigos no girem em torno de y pois ficaria bem estranho.
Agora s precisamos calcular a posio que devemos seguir baseado no offset que
adquirimos quando entramos em guarda e achar o ponto que temos de seguir ao
redor do player, fazemos isso com a funo GetPointToMove que definimos como
PURA.
Agora para fechar com chave de ouro usamos tudo isso para realizar o MoveTo:
Faa a mesma coisa para o EndOverlap, porm definindo a varivel para false.
Logo em seguida vamos definir as mudanas de estado das variveis quando est
recebendo dano usando um custom event.
As mudanas sero feitas com o trmino das animaes por isso estamos usando os
delay pois j iremos trabalhamos com elas.
Vamos ver agora a lgica da IA para o ataque pois ela j sabe que pode atacar.
Para ela atacar vamos fazer com que no estado de OnGuard a cada um certo tempo
a ia tente atacar o player somente se estiver na rea de ataque.
Caso ela seja apta a atacar vamos chamar o nosso custom evento TryAttack que
ir validar mais algumas condies de ataque que so:
Caso tudo esteja liberado posso atacar e, portanto, irei avisar o player que eu estou
atacando e irei mudar para o estado Fighting
Vamos agora ver como trabalhar com o estado de luta, nele vamos fazer com que o
inimigo ande at prximo do player no caso 2 segundos, que tambm o tempo que
ele ter para se defender.
Caso o jogador no clique com o boto direito do mouse neste tempo a varivel
InFight estar como false ento poderemos aplicar dano ao player.
A funo damage que chamamos aqui na verdade o Custom event e que fizemos
logo acima.
Nossa configurao final ficou ento desta forma, com poucos arquivos, e uma lgica
simples conseguimos fazer um sistema bem interessante em que voc pode
melhorar as verificaes, dando mais liberdades para a inteligncia artificial e
deixando assim seu jogo mais dinmico e divertido.
Experimente agora dar o play no jogo e ver ele funcionando com as mensagens.
Configuraes Iniciais
Para este exemplo poderemos ter como base um dos projetos j iniciados
anteriormente.
GUI
A Interface grfica de um game tem a misso de comunicar ao jogador sobre sua
estrutura, atravs de menus interativos, e como essa mesma estrutura pode ser
explorada, conquistando achievements, abrindo pontos para os prximos
upgrades, expandindo os itens do inventrio e assim por diante. muito comum ao
vermos informaes sobre a parte artstica de produo de games ouvirmos o
termo GUI, trata-se da abreviao de Graphical User Interface.
A Engine Unreal 4 possui uma ferramenta exclusiva para a criao e dio de GUI,
chama-se Widget Blueprint.
Para criar uma nova Widget, clique com o boto direito do mouse em algum espao
vazio de uma das pastas no Content Browser e siga o caminho indicado na imagem
a cima. Para o nosso exemplo iremos nomear a Widget como GUI01.
A baixo vemos Widget editor, nele ns temos 2 abas principais para trabalhar:
Design e Graph, ambas podem ser acessadas na parte superior direita do editor.
Vamos voltar a aba Design. Esse espao retangular no centro da tela nos indica nossa
rea de canvas, do lado esquerdo ns temos a aba Palette, esta possui diversos
elementos que podemos arrastar para a nossa rea de canvas. Entre os elementos
dentro de Palette ns temos: bordas, botes, imagens, barras progressivas, textos...
etc.
Reproduza o mesmo cdigo que havia sido feito anteriormente no Open Level
Blueprint, tenha certeza que este ltimo no possua mais o mesmo cdigo, deixando
apenas no HUD_BP. Pronto, isso garantir que o Widget seja lido pelo HUD, porm
para que ela funcione em todos os levels devemos acessar nosso GameMode e l
dizermos que a HUD do game ser nossa HUD_BP.
Abra agora Project Sethings e acesse HUD Class.
Sistema de Health
Vamos agora demonstrar como a programao do Widget, criando uma barra de
vida e um sistema de dano.
Continuando de onde paramos no exemplo anterior, entre na classe blueprint do
Player, no Event Graph, crie 1 variveis Float, chamada de Current Health, depois
monte o esquema a seguir.
Neste esquema dizemos que qualquer coisa que cause dano no nosso player
reduzir o valor da varivel Current Health. Agora vamos ao nosso Widget,
denominado GUI01.
Arraste uma Progressive Bar para o canvas, clique no smbolo que parece uma rosa
e com ele selecionado v no painel Detail e escolha o modelo superior central em
Anchors:
Para que nosso Health fique no centro exato, va no eixo X de Aligment e ponha 0.5.
Agora com a barra selecionada clique em Binding no painel Detail isso criar uma
funo para interagirmos com Percent.
Podemos configurar esse volume diretamente no painel Detail para que tire dano de
nosso player. Na aba Pain Causing j 2 opes que usaremos:
Damage Per Sec: essa determina quanto o Health de nosso player Descer a
cada intervalo de tempo definido por Pain Interval.
Pain Interval: determina o intervalo de tempo que o dano ocorrer, por
exemplo, caso escolhamos aqui 1.0 e em Damage Per Sec 0.3, isso significa
que a cada 1 segundo a vida descer 3 pontos, dentro da rea do Volume.
Este volume aparecer invisvel no game quando dermos play, por isso para
identifica-lo vamos colocar a partcula de fogo no seu centro.
Quando samos da rea a barra permanece baixa. Vamos criar agora uma classe
blueprint que usaremos como um Kit Mdico, ou algo do tipo, para aumentar
novamente nosso Life.
Ao colidir com o Box Collider Current Health receber 10 pontos de Life e este objeto
ser destrudo.
Espalhe algumas Classes Life pela fase.
Ao darmos play e ficarmos na rea do fogo notamos nossa vida descendo, porm ao
sairmos e encontrarmos um dos retngulos, quando encostamos nos mesmos nossa
barra de vida sobe um pouco e o retngulo desaparece.
Concluso
E aqui chegamos ao fim... esperamos que voc tenha aprendido muito conosco.
Quando criamos a apostila pensamos em uma forma de passar tanto conhecimentos
tcnico da ferramenta, como a resoluo de problemas e otimizaes no projeto
mostrando formas de fazer e o porqu de fazer deste ou daquele jeito. Um abrao e
nos vemos na indstria de jogos digitais!
Referncia Bibliogrfica