Anda di halaman 1dari 27

Compndio Blueprints

Autor: Marcos Romero


Site: romeroblueprints.blogspot.com

Sobre este documento:


Blueprints uma linguagem visual de script criada pela Epic Games para a Unreal Engine 4.
Este documento apresenta algumas Aes Blueprints importantes com exemplos contextuais de seu
uso.

Aes Blueprints:

Branch
Switch on Int
For Each Loop
Get All Actors of Class
Spawn Actor from Class
Random Integer in Range
Open Level
Quit Game
Set Timer by Event
Clear Timer by Handle
Cast To
Lerp
Is Valid
Gate
Delay
Dot product
Event Dispatcher
Bind Event
Format text
Attach actor to component
Set view target with blend
Timeline
Math expression
LineTraceForObjects
MultiLineTraceByChannel

pg. 3
pg. 4
pg. 5
pg. 6
pg. 7
pg. 8
pg. 9
pg. 10
pg. 11
pg. 12
pg. 13
pg. 14
pg. 15
pg. 16
pg. 17
pg. 18
pg. 19
pg. 20
pg. 21
pg. 22
pg. 23
pg. 24
pg. 25
pg. 26
pg. 27

Branch
Direciona o fluxo de execuo de um Blueprint baseado no valor da varivel Booleana Condition,
que pode ser true ou false (verdadeiro ou falso).
Entrada

Condition: Este valor Booleano pode ser obtido de uma varivel Booleana ou pode ser o
resultado de uma expresso.

Exemplo de Uso:
No final de uma partida verificado se a pontuao do jogador foi maior do que o recorde atual. Se
for verdadeiro, ento a pontuao salva como o novo recorde na varivel High Score.

Em outro exemplo, quando o evento AnyDamage acionado, o novo valor da varivel Health
se torna seu valor antigo menos o valor do dano (damage) recebido. Se o valor de Health for
menor que zero, o Ator destrudo.

Switch on Int
Determina o fluxo de execuo de acordo com o valor inteiro de entrada.
Entrada
Selection: Valor inteiro que determina a sada. Se o valor no for encontrado, a sada ocorre
no pino Default.
Exemplo de uso:
A dificuldade de um jogo armazenada em uma varivel inteira chamada Difficult que pode ter
os valores de 0 a 3. O nmero total de inimigos definido de acordo com a dificuldade.

Em outro exemplo, o Switch On Int usado para escolher uma resposta de acordo com o nmero
da questo que foi perguntada.

For Each Loop


Recebe como parmetro de entrada um Array e executa um conjunto de aes que esto
associadas ao pino de sada Loop Body para cada elemento da Array que pode ser obtido do
pino de sada Array Element. Depois disso o fluxo de execuo direcionado para o pino de sada
Completed.
Entrada
Array: Array contendo os elementos que sero usados no loop.
Sada
Array Element: Referncia ao elemento atual do Array.
Array Index: ndice do elemento atual do Array.
Exemplo de uso:
Um ForEachLoop usado para iterar atravs de um Array que contm as pontuaes dos
jogadores. Para cada valor um teste feito para verificar se a pontuao mais alta, se for
verdadeiro o valor armazenado na varivel Best Score e o ndice do jogador no Array
armazenado na varivel Best Player.

Em outro exemplo, quando o jogador sobrepe um Blueprint, todas as lmpadas no Array Lamps
sero desligadas exceto a lmpada cujo ndice est armazenado na varivel "LampIndextoKeepOn".

Get All Actors of Class


Pega as referncias de todos os Atores que pertencem classe especificada ou a uma subclasse.
Entrada

Actor Class: A classe que ser usada na busca dos Atores.

Sada

Out Actors: Array contendo as referncias dos Atores da classe especificada.

Exemplo de uso:
Imagine um jogo de Pac Man com um blueprint Plula e um blueprint Ghost que possui uma
varivel Booleana Scared (assutado). Quando a Plula pega, ela tem de informar a todos os
Ghost para ficarem assustados.

Em um segundo exemplo, antes de criar um inimigo, a funo Get All Actors of Class usada
para verificar quantos inimigos existem no nvel. Se houver menos do que o nmero mximo, ento
um novo inimigo criado.

Spawn Actor from Class


Cria um Ator no nvel de acordo com a classe e a transformao especificadas.
Entrada
Class: A classe do Ator que ser criado.
Spawn Transform: A transformao que ser usada pelo Ator.
Collision Handling Override: Define como utilizar a coliso no momento da criao.
Sada
Return Value: Referncia ao Ator criado.
Exemplo de uso:
Quando este Blueprint destrudo no jogo, ele cria um Ator do tipo Coin (moeda) no mesmo
lugar.

Neste exemplo, um For Loop usado para criar 10 Pickup Item em posies aleatrias.

Random Integer in Range


Funo que retorna um valor inteiro aleatrio dentro de uma faixa de valores especificados.
Entrada
Min: O menor valor que pode ser gerado.
Max: O maior valor que pode ser gerado.
Sada
Return Value: Valor inteiro aleatrio entre Min e Max.
Exemplo de uso:
O evento customizado Random Bonus cria um tipo de bnus aleatrio baseado no resultado da
funo Random Integer in Range.

O evento customizado abaixo simula um ataque em um simples RPG baseado em dois dados de seis
faces. Se a soma dos dois dados for 12, o jogador executa um dano crtico. Cada vez que Random
Integer in Range acessado, ele gera um novo nmero aleatrio.

Open Level
Carrega um novo nvel do jogo.
Entrada
Level Name: Nome completo do nvel. (Caminho + Nome)
Exemplo de uso:
Imagine um blueprint Teletransporte que ao ser sobreposto pelo jogador, carregar um novo nvel.
O nome do nvel que deve ser carregado informado na varivel editvel "Destination".

Em outro exemplo, quando um boto UMG clicado, um teste feito para verificar se para
carregar o nvel do tutorial ou o nvel do mundo do jogo. Depois disso o widget UMG removido
da tela.

Quit Game
Sai do jogo ou move a aplicao para background.
Entrada

Quit Preference: Pode ser "Quit" ou "Background".

Exemplo de uso:
Quando o boto Back do Android pressionado, um teste feito para verificar se o jogo est na
tela de Menu. Se verdadeiro, a aplicao movida para background.

Em outro exemplo, depois de clicar em um boto UMG para sair do jogo, a configurao do jogo
salva e depois a aplicao fechada.

10

Set Timer by Event


Um Timer programado para executar um determinado evento depois de passar o tempo
especificado.
Entrada
Event: Uma referncia para o evento.
Time: Tempo em segundos.
Looping: Indica se o Timer deve sempre repetir ou se apenas uma execuo.
Sada
Return Value: Uma referncia para o Timer conhecido como Timer Handle que pode ser
armazenada em uma varivel do tipo Timer Handle para que o Timer possa ser
manipulado posteriormente.
Exemplo de uso:
Quando a tecla E pressionada, um Timer ativado para executar o evento customizado
DetonateBomb depois de 60 segundos.

Outro Timer programado para chamar a cada 5 segundos um evento que cria uma nave inimiga.

11

Clear Timer by Handle


Pra o Timer que referenciado pelo Timer Handle informado.
Entrada

Handle: Timer Handle que referencia um Timer.

Exemplo de uso:
Quando o evento DefuseBomb (desarmar bomba) chamado, ele ir parar o Timer que foi usado
para a contagem regressiva da exploso.

Em um evento customizado GameOver, uma Macro chamada para limpar os valores das
variveis e o Clear Timer by Handle chamado para que o Timer que cria inimigos no continue
a executar.

12

Cast To
Converte o tipo da varivel de referncia para o novo tipo especificado. Isto necessrio em
algumas situaes para ser possvel acessar as variveis e funes de uma classe ou blueprint.
Entrada
Object: Uma referncia para um objeto.
Sada
Cast Failed: Pino de execuo que usado se o objeto referenciado no for do tipo usado
no Cast.
As (novo tipo): Uma referncia usando o novo tipo especificado no Cast.
Exemplo de uso: Um novo blueprint foi criado com o nome Machine. Ele do tipo Actor. Este
blueprint possui uma funo chamada Recharge Battery. Uma referncia do tipo Actor pode ser
usada para manipular este novo blueprint, mas ela no teria acesso funo Recharge Battery
porque ela pode apenas acessar as variveis e funes que foram criadas no tipo Actor. Para
acessar a funo Recharge Battery preciso uma referncia do tipo Machine. Veja a ilustrao
abaixo:

Em outro blueprint chamado Recharger existe um evento de sobreposio. Se o Ator que sobrepor
for do tipo Machine ento ser chamada a funo Recharge Battery usando a referncia do tipo
Machine que foi fornecida no Cast To.

13

Lerp
Lerp uma abreviao de "Interpolao Linear". A funo gera um valor situado entre dois valores
informados, baseado no valor do parmetro "Alpha".
Entrada
A: Valor fracionrio que representa o menor valor que pode ser retornado.
B: Valor fracionrio que representa o maior valor que pode ser retornado.
Alpha: Valor fracionrio entre 0 e 1. Se Alpha for 0 retorna o menor valor e se Alpha for 1
retorna o maior valor.
Sada
Return Value: Valor fracionrio entre A e B dependendo do valor de Alpha.

Exemplo de uso:
Imagine uma corrida que ocorre ao longo do eixo X. A corrida inicia na posio X=1500 e termina
na posio X=9500. Se usarmos a funo "Lerp" passando como parmetros A=1500, B=9500 e
Alpha=0.5, o resultado ser a posio 5500 que representa o meio da corrida.

A imagem abaixo mostra uma funo que recebe um valor entre 0 e 1 que indica quanto j foi
completado da corrida e retorna a posio X equivalente.

14

Is Valid
Macro que verifica a validade do objeto de entrada. Para um objeto ser vlido ele no pode ser nulo
e nem estar marcado para ser destrudo.
Entrada
Input Object: Referncia para um objeto.
Sada
Is Valid: Pino de execuo que usado se o objeto referenciado estiver vlido.
Is Not Valid: Pino de execuo usado caso o objeto esteja invlido.
Exemplo de uso: Em um Blueprint chamado "Machine" foi criada uma varivel editvel que ser
usada para referenciar outro Blueprint chamado "Recharger". Ao adicionar um Blueprint "Machine"
no nvel, podemos observar que o contedo da varivel "Recharger" est "None", conforme imagem
abaixo:

Isto significa que a varivel "Recharger" no est referenciando nenhum objeto, ou seja, ele no est
vlido. Esta varivel deve receber a referncia para algum objeto "Recharger" que esteja no nvel.
Podemos verificar no incio do jogo se a varivel "Recharger" recebeu esta referncia, caso no
tenha recebido ento ser escrito uma mensagem no Log, conforme imagem abaixo.

Em outro exemplo, imagine que o Blueprint "Machine" responsvel por proteger um Blueprint
"Recharger" que est no nvel. Se o Blueprint recharger que ele estava protegendo for destrudo, ele
precisa buscar outro "Recharger" para proteger:

15

Gate
Gate uma ao de controle de fluxo que pode estar aberto ou fechado. Se estiver aberta ela
permite a execuo das aes ligadas ao pino de sada.
Entrada

Enter: Pino de execuo que recebe o fluxo de execuo atual.


Open: Pino de execuo que muda o estado do Gate para aberto (Open).
Close: Pino de execuo que muda o estado do Gate para fechado (Close).
Toggle: Pino de execuo que alterna o estado atual do Gate.
Start Closed: Varivel booleana que determina se o Gate deve iniciar a sua execuo no
estado fechado.

Sada

Exit: Este pino ser executado se o Gate estiver aberto.

Exemplo de uso:
No exemplo abaixo temos um Ator chamado "HealthGenerator". Quando o jogador estiver
colidindo com este ator, a sua sade ser restaurada lentamente a cada evento "Tick".
Se o jogador se afastar do "HealthGenerator", o "Gate" ser fechado e as aes que restauram a
sade deixaram de ser executadas. A ao "Min" usada para que o valor da varivel "Health"
nunca seja maior que 100.

16

Delay
Delay uma funo latente que executa as aes conectadas ao pino "Completed" somente aps
passar o tempo especificado no parmetro "Duration". As funes latentes no seguem o fluxo
normal de execuo dos Blueprints. Elas executam em paralelo e podem levar vrios ticks at sua
concluso.
Entrada
Duration: Tempo em segundos que a funo Delay deve esperar.
Sada
Completed: Pino de execuo que ser ativado depois que o tempo de Duration acabar.
Exemplo de uso: Suponha que em um jogo existem vrios fatores que podem levar ao spawn de um
inimigo. Foi criado o evento customizado "SpawnEnemy" com um delay para garantir que tenha
passado pelo menos 5 segundos antes da criao de um novo inimigo. Mesmo que o evento
"SpawnEnemy" seja chamado em menos de 5 segundos, a funo Delay no permitir que um novo
inimigo seja criado.
A imagem abaixo mostra que o evento "SpawnEnemy" est executando e tambm mostra que ainda
falta "2.244" segundos para que um novo inimigo seja criado.

Em outro exemplo existe um evento customizado "GameOver" que exibe uma tela de game over e
depois de 3 segundos muda o valor de uma varivel que guarda o estado do jogo para que o jogo
volte ao Menu.

17

Dot product
O Dot product pode ser usado para verificar a relao entre dois vetores, por exemplo, se eles so
perpendiculares ou paralelos.
Entrada
A: Vetor A.
B: Vetor B.
Sada
Return Value: Valor fracionrio que representa o Dot product entre os vetores A e B.
Exemplo de uso:
Se os dois vetores estiverem normalizados, o dot product igual ao coseno do ngulo formado entre
os vetores e pode variar de -1 a 1. A imagem abaixo mostra alguns exemplos de dot product entre
dois vetores.

No script abaixo, um inimigo s pode ser destruido se for atingido por um tiro direto. Este teste
feito baseado no dot product entre o "Forward Vector" do projetil e o vetor "Hit Normal" do
inimigo. Eles precisam ser opostos, por isso o dot product deve ser prximo de -1.

18

Event Dispatcher
"Event Dispatcher" permite um tipo de comunicao entre classes Blueprint e o Level Blueprint.
Ele criado em uma classe Blueprint e pode ser implementado no Level Blueprint.
Exemplo de uso: Imagine que estamos criando um blueprint "BP_Button" para representar um
boto que pode ser pressionado. O objetivo deste blueprint apenas informar quando o boto for
pressionado. Desta forma podemos usar este boto para diversas situaes diferentes. As aes que
ir ocorrer quando o boto for pressionado sero definidas no Level Blueprint.
Na aba "MyBlueprint" do "BP_Button", crie um EventDispatcher com o nome "ButtonPressed":

Quando a tecla "Enter" for pressionada, o evento dispatcher "ButtonPressed" ser chamado:

Adicione um "BP_Button" no nvel e selecione-o. Abra o Level Blueprint e clique com o boto
direito no EventGraph para adicionar o evento "Button Pressed" relacionado ao EventDispatcher.

Assumindo que existe um Blueprint chamado "Rocket" no nvel e que ele possui uma funo
chamada "Starts Rocket Launch". O Level Blueprint responsvel por chamar a funo "Starts
Rocket Launch" quando o boto for pressionado.

19

Bind Event
Vincula um evento a outro evento ou Event Dispatcher, que pode ser de outro Blueprint. Quando
um evento chamado, todos os outros eventos que esto vinculados a ele tambm so chamados.
Entrada
Target: Objeto que possui o evento que receber o bind.
Event: Referncia para um evento que ser vinculado (bind) a outro evento, para ser
chamado posteriormente.
Exemplo de uso: H um blueprint PickupManager que responsvel por criar "PickupItem" e
manter na varivel "ItemCount" a quantidade de "PickupItem" que existe no nvel. Para isso foi
criado um evento customizado "RemoveItem" que diminiu em 1 o valor da varivel "ItemCount".
O evento RemoveItem vinculado (bind) ao evento "OnDestroyed" do "PickupItem" que foi
criado. Desta forma, quando o "PickupItem" for destrudo no jogo, o evento "RemoveItem" ser
chamado.

Em outro exemplo existe um blueprint chamado "PlayerWarrior" que usado pelo jogador. Este
blueprint possui um event dispatcher com o nome "GoalAchieved". Ao iniciar o jogo, o Level
Blueprint faz um bind com o event dispatcher "GoalAchieved". Quando o event dispatcher
"GoalAchieved" for acionado pelo jogador o Level Blueprint mudar para o prximo nvel.

20

Format text
Ao blueprint que constri um texto baseado em parmetros que podem ser especificados na
propriedade "format".
Entrada
Format: Texto que far parte do resultado final. Para definir parmetros, basta colocar um
nome entre os delimitadores {} para cada parmetro.
Parmetros definidos no Format: Para cada par de {} gerado um novo parmetro de
entrada com o nome que est entre {}.
Sada
Result: Texto final construdo com os valores do parmetro Format e dos outros parmetros.
Exemplo de uso:
Ao final de uma partida ser exibido um texto com o resultado. Este texto contm o valor de 4
variveis relacionadas aos nomes e pontos de dois jogadores.
O texto usado no parmetro "Format" foi:
Result: {Player1Name} = {Player1Score} X {Player2Name} = {Player2Score}
Aps inserir o valor de "Format" o editor de Blueprint gera os outros parmetros de entrada.
A imagem abaixo mostra como ficou o Format Text com os parmetros.

Este um exemplo do texto gerado:

21

Attach actor to component


Anexa um Ator ao componente de outro Ator. O Ator anexado sofre as transformaes do
componente pai.
Entrada

Target: Ator que ser anexado.


In Parent: Componente que receber o Ator.
In Socket Name: (Opcional) Nome do Socket para anexar o Ator.
Attach Location Type: Pode ser AbsoluteWorld, RelativeOffset or SnapTo.

Exemplo de uso:
O evento customizado abaixo equipa o SkeletalMesh do jogador com uma espada usando um socket
com o nome HandSocket que indica onde a espada deve ficar no SkeletalMesh.

22

Set view target with blend


Esta funo encontrada na classe PlayerController. Muito til para alternar a viso do jogo entre
diversas cmeras.
Entrada

Target: Referncia para um Player Controller.


New View Target: Ator que ser definido como view target. Geralmente uma cmera.
Blend Time: Tempo que leva para completar a transio entre as views.
Blend Func: Tipo de funo usada na transio.

Exemplo de uso:
O evento abaixo pertence a um Level Blueprint que acionado quando o jogador entra em uma
sala. Neste evento a funo Set View Target with Blend usada para mudar a viso do jogo para a
cmera que est na sala.

23

Timeline
Timeline permite a criao de animaes baseada em tempo dentro dos Blueprints. Depois de
adicion-la no editor de Blueprints, as Timelines podem ser editadas dando duplo-clique nelas.
Entrada
Play: Executa a partir da posio atual.
Play from Start: Executa a partir do incio.
Stop: Pra a Timeline na posio atual.
Reverse: Reverte a Timeline a partir da posio atual.
Reverse from End: Reverte a Timeline a partir do fim.
Set New Time: Define a posio atual com o valor do parmetro New Time.
New Time: O valor em segundos usado por Set New Time.
Sada
Update: Pino de execuo chamado constantemente enquanto a Timeline est executando.
Finished: Pino de execuo chamado quando a execuo termina.
Direction: Indica a direo da Timeline (forward or backward).
Exemplo de uso:
Depois de abrir uma Timeline dando duplo-clique nela, os keyframes de animao podem ser
adicionados clicando com o boto direito no centro da Timeline e escolhendo Add Key.

Este Blueprint de uma plataforma que se move entre duas posio ao longo do eixo X. As
variveis X_Initial e X_Final mantm as posies onde a plataforma se mover no mundo. A
ao Flip Flop usada para alternar a execuo da Timeline entre a direo normal e a reversa.

24

Math expression
Este um tipo especial de ao que gera um sub-graph a partir de uma expresso matemtica
informada.

Entrada
Expression: Expresso que ser analisada.
Parmetros definidos em Expression: Para cada nome de varivel encontrado na
expresso gerado um novo parmetro de entrada.
Sada
Return Value: Resultado da expresso.
Exemplo de uso:
O evento abaixo calcula o dano de ataque e armazena o resultado em uma varivel. utilizado o
Math Expression com a seguinte expresso:
(BaseWeaponDamage + AbilityModifier + Enhancement ) * CurrentStatus
A partir desta expresso, foram gerados os parmetros de entrada.

25

LineTraceForObjects
A funo LineTraceForObjects testa a coliso ao longo de uma linha definida e retorna o primeiro
objeto encontrado que pertena a um dos tipos de objetos especificados na chamada da funo.
Entrada
Start: Vetor que define o incio da linha que ser usada para o teste de coliso.
End: Vetor que define o fim da linha de teste de coliso.
Object Types: Array que contm os tipos de objetos que sero testados na coliso.
Trace Complex: Valor booleano que indica se deve ser usado colises complexas.
Actors to Ignore: Array de Atores que devem ser ignorados nos testes de colises.
Draw Debug Type: Permite o desenho da linha que est sendo usado no teste de coliso.
Ignore Self: Valor booleano que indica se o Blueprint que est chamando a funo deve ser
ignorado no teste.
Sada
Out Hit: Estrutura "HitResult" que contm diversas informaes sobre a coliso encontrada.
Return Value: Valor booleano. Se for verdadeiro, significa que uma coliso foi encontrada.
Exemplo de uso: Em um blueprint chamado "AlarmDevice", a funo LineTraceForObjects
usada para ativar um alarme se um objeto do tipo Pawn for detectado. A imagem abaixo mostra este
exemplo. Foi usada uma macro para obter a posio inicial e final da linha.

Para criar o Array com o tipo de objetos, clique e arraste o pino "Object Types" e escolha a opo
"Make Array".
A macro TraceLocations ficou assim:

26

MultiLineTraceByChannel
A funo MultiLineTraceByChannel possui duas diferenas em relao a funo
LineTraceForObjects. Ela fornece como sada um Array que pode conter vrios elementos como
resultado da coliso. O teste de coliso baseado no "Trace Channel". Observe nos detalhes de um
StaticMeshActor, em "Trace Responses", definido como um objeto vai responder ao teste de trace
nos canais "Visibility" e "Camera". Por exemplo, um material transparente, vai definir o "Visibility"
como "Overlap", porque ele pode ser visto e no bloqueia a linha de viso. A funo encerra
imediatamente se for encontrado um objeto com "Block" para o Trace Channel usado.

Entrada
Start: Vetor que define o incio da linha que ser usada para o teste de coliso.
End: Vetor que define o fim da linha de teste de coliso.
Trace Channel: Canal usado para o teste de coliso. Pode ser "Visibility" ou "Camera".
Trace Complex, Actors to Ignore, Draw Debug Type e Ignore Self: So os mesmos
parmetros usados na funo LineTraceForObjects.
Sada
Out Hits: Array de estrutura "HitResult" contendo as colises que foram encontradas.
Return Value: Valor booleano. Se for verdadeiro, significa que uma coliso foi encontrada.
Exemplo de uso: O jogador possui um dispositivo que acionado usando a tecla "Enter". Este
dispositivo usa a funo MultiLineTraceByChannel para pegar os objetos visveis e adicionar a um
sistema de radar que o jogador possui.

A Macro TraceLocationFPS calcula as posies usadas no Trace baseado na cmera usada pelo
jogador.

27

Anda mungkin juga menyukai