Kismet - Avançado

Aula 01
Nesta aula veremos uma introdução aos elementos gerais do Kismet e apresentaremos os que iremos utilizar
durante este módulo. Trabalharemos também com algumas ações que irão nos auxiliar durante uma criação
de sequências, sendo uma câmera de segurança ou ate mesmo modificar a vida do player depois de algum
evento.
O que é o Kismet?
Kismet é uma forma muito mais flexível para os “não programadores” criarem interações dentro do cenário,
pois aqui não usaremos linhas de código, mas sim sequências entre eventos, ações, condições e variáveis.
Visão Geral



Main Window: É onde os elementos do Kismet são posicionados para criar ações no jogo.
Properties Window: Todos os itens criados no Kismet têm propriedades individuais, e aqui é onde as
propriedades podem ser acessadas e alteradas.
Sequences Window: Dependendo da complexidade do jogo, o Kismet tem que ser dividido em partes
separadas. O Sequences Window ajuda o usuário a separar essas partes, ainda fazendo com que elas
possam se comunicar entre si ou serem individuais.

Main Window             Clear All Breakpoints: Apaga todos os pontos Debugger da janela Open New Window: Abre uma nova janela do Kismet Update List: Serve para atualizar a lista Search Tool: Abre a janela de busca New Sequence Object List: Cria uma nova subsequência através de uma busca Show All Connectors: Mostra todos os conectores Hide Unused Connectors: Esconde os conectores que não estão sendo usados Zoom to Fit: Ajusta o zoom da Main Window Rename Sequence: Permite renomear a sequência mais recente Open Parent Sequence: Navigate Forward: Avança uma ação feita dentro do Kismet Navigate Back: Retrocede uma ação feita dentro do Kismet Movimentação Clique direito ou esquerdo Movimenta a janela Clique direito e esquerdo (juntos) ou Scroll Aumentar/Diminuir Zoom Clique direito em qualquer sequência Seleciona a sequência Ctrl + Clique esquerdo Movimenta a sequência Ctrl + Chique em mais de uma sequência Cria mais de uma seleção Ctrl + Shift + Clique esquerdo (arrastar) Cria uma caixa de seleção .

(Repare que as variáveis são determinadas por cores. Para acessar o Context Menu clique com o botão direito em qualquer área vazia do Main Window. Create New Sequência: Cria uma nova sequência . condição ou qualquer outra ação do Kismet.... New Variable: Cria uma variável que pode ser manipulada por uma ação.”..Atalhos Ctrl + C Ctrl + V Ctrl + X Ctrl + W Delete Backspace Ctrl + Z Ctrl + Y C A Ctrl + Tab R e clique esquerdo Page Up Page Down Copia um objeto Cola o objeto copiado Recorta o objeto selecionado Duplica o objeto selecionado Apaga um objeto selecionado Vai para a sequência a cima Undo Redo Cria uma Comment Box Zoom no objeto selecionado Pula para a próxima sequência Create a Remote Event/Activate Remote Event pair Trás o objeto selecionado para frente Manda o objeto selecionado para trás Context Menu Aqui é onde iremos encontrar todos os elementos para a criação de uma sequência. Os elementos aqui presentes basicamente utilizam a ação “Se. New Event: Cria um novo evento para dar inicio a uma ação. Então. Destes elementos temos:         New Action: Executa uma ação em um objeto no cenário baseado em uma instrução escolhida New Matinee: Elemento que cria a sequência do Matine (usado para animações) New Condition: Usada para comparar duas coisas. New Comment: Cria um comentário em texto New Comment (Wrap): Cria um comentário em texto com uma caixa de marcação. onde cada uma corresponde uma função diferente).

Adicione um Trigger no local onde pretende sofrer a ação de tomar dano (o mesmo trigger que aprendemos no primeiro módulo). adicionar um objeto no cenário. chegar a algum determinado ponto. player nascer. Como já vimos no primeiro módulo onde criamos nossa primeira sequência (interação com porta). para em seguida sofrer alguma ação (ligar/desligar luz e partículas.). que seria modificar a vida do jogador ao passar em determinado local. modificar o material do Static Mesh. entre outros). para começar uma sequência precisamos da existência de algum evento (atirar em algum objeto.Exemplo dos elementos: Criando uma sequência simples: Iremos começar com uma sequência mais simples para primeiro entender todo o conceito de Evento/Ação. Para este exemplo iremos criar uma das sequências mais usadas ao longo de um jogo. Primeiro iremos criar um evento para esta sequência. etc... pressionar uma tecla em algum local. modificar a vida do personagem. . começar o jogo.

vá à janela do Kismet. OBS: Há uma grande diferença entre criar um evento em “New Event Using” e criar em somente “New Event”. Nosso exemplo necessita de uma ação chamada Modify Health. e com o botão direito na Main Window vá a New Event Using Trigger_0 e em seguida clique em Touch. . que neste caso será o player receber um dano.Agora iremos adicionar este Trigger dentro do Kismet. agora iremos adicionar a ação da nossa sequência. Vá à janela do Kismet e novamente clique com o botão direito em uma área vazia do Main Window. Com o trigger selecionado. Feito isso. onde cada uma corresponde tipos de ações diferentes. para acessa-la vá a New Action -> Actor -> Modify Health. vá ate a aba New Action e repare que agora temos várias outra abas. Pois em New Event Using estamos determinando que o evento seja criado a partir de um objeto do cenário. já em New Event criamos um evento sem nenhum ligamento com objetos.

e o responsável por esta propriedade é o Target do Modify Health. agora na aba de propriedades que esta no canto inferior esquerdo da tela do Kismet. .Agora que adicionamos tanto o evento como a ação. então ligue a saída Touched do Trigger na entrada In do Modify Health assim como na imagem. vá à opção Amount e mude o valor para 50 (quantidade que o player irá receber de dano). sendo que esta variável tem que estar relacionada ao player que irá tomar o dano. Acesse as propriedades do Modify Health (clicando sobre o elemento). agora só nos resta definir quem irá receber essa ação. precisamos ligar esta primeira sequência. em seguida vá na aba “New Variable -> Player -> Player”. primeiro. Porém para adicionar uma propriedade no Target precisamos de uma variável. ainda precisamos modificar e adicionar alguns elementos. Mesmo com a sequência criada. quanto o jogador irá receber de dano. Para criar essa variável acesse o Context Menu. Com o dano definido.

Para finalizar crie o ligamento do Target na Variável Player. criaremos uma câmera onde o player irá acessá-la ao “usar” um objeto. cinemática. onde varias interações podem ser adicionadas nesta câmera (câmera de segurança. entre outros). Vá ao Content Browser e clique sobre a opção Actor Classes. o player irá tomar um dano de 50. Como exemplo. Primeiro precisamos criar essa nova câmera no cenário e posicionar no local correto. . Teste sua sequência no jogo e repare que ao passar na área determinada do trigger. Feito isso. Criando uma câmera Agora vamos iniciar o processor de criação de câmera. selecione “CameraActor” que está na categoria Common.

Feito isso. ele se chama “Set Camera Target”. Após isso de um clique sobre a câmera e já estaremos na visão dela. Agora posicione a câmera onde desejar. OBS: Lembre-se de desmarcar a opção “Aim To Interact” no evento “Used”. Para isso vá ao cenário e clique na opção “Lock Selected Actors to Camera” que fica em cima das “Viewports”. . Agora precisamos dar início a nossa sequência dentro do Kismet. Já com um Trigger adicionado no cenário (no local onde você queria que o jogador “use” algum objeto). agora iremos criar a sequência. volte ao cenário. desmarque a opção “Lock Selected Actors to Camera” para evitar mover o próximo item selecionado. precisaremos posicionar a câmera no local correto. Para criar este elemento vá a “New Action -> Camera -> Set Camera Target”. Este elemento nos possibilita de mudar a visão do jogador para uma determinada câmera do jogo. assim o jogador não precisa mirar precisamente no Trigger para ativá-lo. ou simplesmente clique e arraste para o local onde queira adicionar a câmera. Feito isso. O próximo elemento é uma ação. CUIDADO: Assim que posicionar. clique com o botão direito e então escolha “Add CameraActor Here”. crie um evento “New Event Using Trigger_1” “Used” desse trigger.Feito isso.

e na janela do Kismet abra o Context Menu e selecione a opção “New Object Var Using CameraActor_0”. Crie a variável do player assim como no exercício anterior. . selecione a câmera no cenário.Agora só precisamos criar as variáveis que irão determinar qual player irá sofrer a mudança e por qual câmera o player irá olhar. em seguida ligue o Cam Target na variável da câmera. Finalize a sequência conectando a saída do “Used” na entrada do “Set Camera Target”. e ligue com o elemento “Target” (aqui estaremos definindo para qual jogador a câmera irá mudar). Para a opção “Cam Target“ (define a câmera que será usada). Depois faça o teste dentro do jogo.

do que depender de uma única ou ter de criar várias de um mesmo tipo. Recomendamos que. Agora coloque a variável em uma área separada de nossa sequência. em suas propriedades. Este é o nome que acabamos de denominar em “Var Name”. para sua própria organização. Essa opção te permite denominar um valor (nome) para esta variável sendo possível acessar este valor a partir de uma variável sem nome. utilize este recurso para todas as variáveis que serão acessadas diversas vezes e deixe-as sempre no mesmo lugar. . Para chamar essa variável de volta clique com o botão direito do mouse sobre uma área vazia do Kismet e vá até a opção “New Variable -> Named Variable”. Para alterar as opções da variável “Player” clique sobre ela e. altere a opção “Var Name” para “Player”. Essa facilidade depende de uma opção chamada “Var Name”. Isso evita erros futuros de confusão do próprio programa.Existe uma maneira de organizar as variáveis de uma forma melhor. Perceba que abaixo do nome da variável foi adicionado um nome em vermelho.

Outra forma de organização no Kismet é criar caixas de comentários em uma determinada sequência. Temos a opção ainda de travar a movimentação de câmera do Player ou até mesmo travar o uso das armas (muito útil para este tipo de exemplo. Para isso utilizarmos um elemento chamado “Toggle Cinematic Mode”. A caixa de comentários também possuí algumas propriedades que podem ser modificadas. Para criar. e depois vá em “New Comment”. Em seguida. com tudo selecionado.Na opção “Find Var Name” coloque Player (sendo este o mesmo nome que colocamos na variável que criamos acima). clique com o botão direito em uma área vazia. para criar uma caixa de seleção dentro do Kismet). selecione toda a sequência no qual queira criar a caixa de comentário (Lembre-se do atalho Ctrl+Alt clique e arraste. Coloque o nome que desejar nessa caixa e aperte OK. pois evitamos que o jogador continue andando pelo cenário mesmo com outra câmera na tela). .

ligue a saída (Out) do elemento “Set Camera Target” na entrada (Enable) do elemento “Toggle Cinematic Mode”. Feito isso. Crie um elemento chamado Delay que se encontra em “New Action -> Misc” ou apertando a tecla D e clicando no Kismet. Por último faremos com que a camera volte para visão normal do jogador depois de um determinado tempo. E por fim ligue a saída “Target” na variável “Player”. (Na próxima aula entraremos com mais detalhe sobre essa ação). Coloque este elemento clicando com o botão direito do mouse em uma área vazia do Kismet e vá até a opção “New Action -> Toggle -> Toggle Cinematic Mode”. Para isso precisamos adicionar esse tempo. para depois retornar com a câmera e destravar o jogo.Este elemento trava toda a jogabilidade do jogador determinado. .

contudo. pois aí desativaremos essa ação. assim ela voltará para a câmera padrão do UDK. faça uma cópia dos outros dois elementos que adicionamos. No “Set Camera Target”.Agora com o “Delay” criado. aqui modificaremos duas opções. e no “Finished” do “Delay” ligue a sequência copiada. Com todos os elementos adicionados continue a sequência ligando o “Out” do primeiro “Toggle Cinematic Mode” no “Delay”. e mude a saída do “Out” do “Set Cam Target” para o “Disable” do “Toggle Cinematic Mode”. no caso o “Set Camera Target” e o “Toggle Cinematic Mode” (para copiar um elemento selecione-o e precione Ctrl+W). retire a variável da câmera. .

uma partícula seguir qualquer objeto animado por Matinee. siga outro objeto.Para definir o tempo desse Delay. Alguns exemplos de interações com esta ação: Lanterna (uma “Spot Light” seguindo o player). ATENÇÃO: O tempo que for determinado no Delay será contado em segundos. Exemplos de ações Veremos agora alguns exemplos de ações e suas propriedades para ajudar na construção de maiores sequências. Attach to Actor – Com esta ação temos a possibilidade de fazer com que um objeto ou até mesmo volume. Camera seguir o personagem. volume ou player. . que se encontra em Seq Act Delay. Para criar vá em “New Action -> Actor -> Attach to Actor”. selecione a ação e nas propriedades modifique o valor de Duration.

Y e Z onde o Attachment irá ficar (baseado no Pivot do Target). Relative Rotation: Valores de Roll. Y e Z (só irá funcionar caso a opção acima estiver ativada). Use Relative Offset: Se ativada podemos definir um local em X. .Veja seus ligamentos e suas principais propriedades: Target: Define o elemento que será seguido. Veja que neste exemplo definimos que uma partícula irá seguir o objeto X. Use Relative Rotation: Se ativada podemos definir uma rotação em Roll. Collision Type: Define para qual tipo de colisão a Mesh será alterada. Relative Offset: Valores de X. Para criar vá a “New Action -> Actor -> Change Collision”.Aqui podemos modificar a colisão de um determinado Static Mesh através de algum evento. Pitch e Yaw para o Attachment (baseado no Pivot do Target). Pitch e Yaw (só irá funcionar caso a opção acima estiver ativada). Attachment: Define o elemento que irá seguir. Detach: Desativa o Attach. Change Collision . Veja seus ligamentos e suas principais propriedades: Target: Define qual Mesh irá trocar a colisão.

Para criar vá em “New Action -> Actor -> Set Material”.Neste exemplo definimos que o Static Mesh X modificou a colisão depois que o player entrou em um determinado Trigger. Destroy – Com esta ação podemos “sumir” com qualquer Static Mesh do cenário. . diferente do “Toggle Hidden”. Veja seus ligamentos e suas principais propriedades: Target: Define qual Mesh será destruído. pois com o “Destroy” o objeto será removido completamente do cenário. já o “Toggle Hidden” apenas esconde. Para criar vá a “New Action -> Actor -> Destroy”. Neste exemplo definimos que o Static Mesh X foi destruído depois que o player entrou em um determinado Trigger. Set Material – Aqui podemos alterar o material de um Mesh depois de um determinado evento.

(lembrando que o material deve seguir o seu mapeamento). para em seguida clicar na seta verde ao lado desta aba. New Material: Define qual material será aplicado. Para criar vá a “New Action -> Actor -> Set Mesh”. . Primeiro selecione qual material quer colocar. Veja que neste exemplo o Mesh X terá seu material alterado depois de um determinado evento. Set Mesh – Esta ação faz com que um Mesh seja trocado por outro Static Mesh ou Skeletal Mesh depois de um evento.Veja seus ligamentos e suas principais propriedades: Target: Define qual Mesh terá seu Material alterado.

Para criar vá em “New Action -> Actor -> Teleport”. Mesh Type: Modifica o tipo de Mesh que será trocado. . New Static Mesh: Define qual o Static Mesh irá aparecer.Veja seus ligamentos e suas principais propriedades: Target: Define qual Mesh será trocado. Neste exemplo definimos que o Static Mesh X será trocado por outro Static Mesh depois de um determinado evento. apenas falando quem será enviado e para qual local. New Skeletal Mesh: Define o Skeletal Mesh irá aparecer. Teleport – Com esta ação podemos teletransportar o personagem para qualquer ponto do cenário sem ter que criar um “UTTeleporter”.

epicgames.com/Three/KismetReference.Veja seus ligamentos e suas principais propriedades: Target: Define qual objeto ou jogador será teletransportado.html http://udn.com/Three/KismetUserGuide. Destination: Define para onde o Target vai ser enviado (o Destination pode ser determinado por qual quer ponto no cenário. De maneira alguma a Saga e seus funcionários assumem responsabilidade por sua integridade. Links para pesquisa: http://udn.epicgames.html http://udn. Neste exemplo definimos que o Player 0 (personagem principal) será enviado para o path node X que esta em algum ponto do cenário.epicgames.html A validade dos links desta aula depende dos sites hospedados. . desde um Static Mesh como um Path Node).com/Three/KismetTutorial.