27
Olá a todos, Sou Paulo Coutinho e este é meu primeiro tutorial, após alguns dias mechendo e fuçando tudo, estou aqui disponibilizando talvez o primeiro tutorial em português sobre o UDK (Unreal Development Kit). Como é um tutorial básico para você começar, irei abordar os tópicos básicos: 1 - Obtendo o UDK 2 - Usando o cubo (geometria) 3 - Posição inicial do jogador 4 - Aplicando iluminação básica 5 - Aplicando textura(material) 6 - Adicionando uma parede 7 - Adicionando mesh (estática) 8 - Dicas e observações 9 - Vídeos Vamos começar logo: 1 - Obtendo o UDK Para baixar acesse o site oficial: http://www.udk.com/download.html e clique em uma das opções de servidores para baixar. Após baixar o UDK que são mais de 500mb, execute e instale. A instalação é padrão NNF (next, next, finish). Após isso, abra seu editor clicando no ícone "Editor - Unreal Development Kit" no menu iniciar. E deixe na tela inicial, onde você só ve o grid do designer (caso aparece alguma janela antes, feche-a). Só para deixar claro: Já existe uma estrutura pronta para você testar seus jogos com a UDK, conforme você vai desenhando ou criando o mundo e tudo mais você pode ir jogando para testar, quando você começa a jogar pelo editor você já começa com um jogador pronto e uma arma, bem como o controle básico (W,A,S,D e clique esquerdo e direito do mouse para atirar), então não vamos nos preocupar com isto no começo. 2 - Usando o cubo (geometria) As ferramentas geométricas são para criar a estrutura ou casco do mundo do seu jogo, ou seja, criar as formas básicas como chão, paredes, ou até construir grandes prédios ou casas, tudo vai de acordo com o level designer da sua equipe. Bom, vamos adicionar em nosso editor um cubo para representar o chão do mundo, para ficar-mos em cima. Clique com o botão direito do mouse em cima do cubo nas ferramentas do lado direito. Na janela que aparecer coloque as propriedades: X=1024 Y=1024 Z=32 e clique em build.

tuto udk

Embed Size (px)

Citation preview

Page 1: tuto udk

Olá a todos,

Sou Paulo Coutinho e este é meu primeiro tutorial, após alguns dias mechendo e fuçando tudo,

estou aqui disponibilizando talvez o primeiro tutorial em português sobre o UDK (Unreal

Development Kit).

Como é um tutorial básico para você começar, irei abordar os tópicos básicos:

1 - Obtendo o UDK

2 - Usando o cubo (geometria)

3 - Posição inicial do jogador

4 - Aplicando iluminação básica

5 - Aplicando textura(material)

6 - Adicionando uma parede

7 - Adicionando mesh (estática)

8 - Dicas e observações

9 - Vídeos

 

Vamos começar logo:

 

1 - Obtendo o UDK

Para baixar acesse o site oficial: http://www.udk.com/download.html e clique em uma das

opções de servidores para baixar.

Após baixar o UDK que são mais de 500mb, execute e instale. A instalação é padrão NNF (next,

next, finish).

Após isso, abra seu editor clicando no ícone "Editor - Unreal Development Kit" no menu iniciar.

E deixe na tela inicial, onde você só ve o grid do designer (caso aparece alguma janela antes,

feche-a).

Só para deixar claro: Já existe uma estrutura pronta para você testar seus jogos com a UDK,

conforme você vai desenhando ou criando o mundo e tudo mais você pode ir jogando para testar,

quando você começa a jogar pelo editor você já começa com um jogador pronto e uma arma, bem

como o controle básico (W,A,S,D e clique esquerdo e direito do mouse para atirar), então não

vamos nos preocupar com isto no começo.

 

2 - Usando o cubo (geometria)

As ferramentas geométricas são para criar a estrutura ou casco do mundo do seu jogo, ou seja,

criar as formas básicas como chão, paredes, ou até construir grandes prédios ou casas, tudo vai de

acordo com o level designer da sua equipe.

Bom, vamos adicionar em nosso editor um cubo para representar o chão do mundo, para ficar-mos

em cima.

Clique com o botão direito do mouse em cima do cubo nas ferramentas do lado direito.

Na janela que aparecer coloque as propriedades:

X=1024

Y=1024

Z=32

e clique em build.

Você pode reparar que criamos um cubo e ele já aparece no nosso editor.

Agora para dar uma textura basica nele, clique logo abaixo no ícone CSG Add:

Page 2: tuto udk

 

Pronto, já temos nosso chão, para mais informações e detalhes acesse os links abaixos:

Using BSP Brushes

Geometry Mode Tutorial

 

 

3 - Posição inicial do jogador

Bom, criado nosso chão(nossa que legal), você já está se perguntando se pode testar jogando em

cima desse chão, e eu te respondo....SIM! Mas antes precisamos decidir a posição em que o

jogador vai iniciar.

Para isso, faça o seguinte, clique com o botão direito em cima do cubo que criamos(sim, o chão),

mas clique +/- no meio e no menu que aparecer clique em: Add Actor -> Add PlayerStart.

Pronto, que difícil, uffa. Agora com este dois itens no editor, já podemos testar, mas para testar,

sempre precisamos fazer o famoso build.

Para fazer o build das geometrias é simples, na barra de ferramentas do editor tem o seguinte

ícone Build Geometry, clique nele:

Espere até terminar, após terminar vamos TESTAR!! Para isso basta clicar no ícone Play this level

in editor window:

Você vai ver tudo escuro e umas luzes no fim do túnel (rss, não, você não morreu).

Aperte a tecla ESC para fechar a janela do jogo e voltar ao editor.

 

4 - Aplicando iluminação básica

Depois de cria-mos nosso terreno e iniciar os testes no escuro, vamos colocar uma luz para ver

como é o terreno realmente.

Para isso faça o seguinte, clique com o botão direito do mouse +/- no meio do chão (do cubo) e

clique no menu: Add Actor -> Add Light (Point).

Com isso criamos nossa luz e já podemos testar novamente nosso teste.

Mas antes, faça o build da iluminação, que fica ao lado do ícone build geometry.

Após fazer o build da iluminação, você pode testar novamente e já pode andar pelo terreno e atirar

para testar.

Page 3: tuto udk

Para mudar a cor da luz, basta dar um duplo clique em cima do objeto da luz que criamos e na

janela que aparecer procure por Light Color, clique na lupinha ao lado do nome, selecione a cor e

aperte OK.

Se você alterar a cor, faça o build da iluminação novamente e teste.

Mais informações:

Lighting Reference

Lightmass

 

5 - Aplicando textura(material)

Como já temos algo básico para testes, vamos aprender agora a aplicar uma textura em nosso

chão(cubo) usando as texturas existentes já no editor.

No editor, clique no menu View -> Browser Windows -> Content Browser.

Esta janela que aparece é a janela de conteúdos com alguns recursos padrões já do editor, como

meshes, materiais, partículas e por ai vai.

O que queremos no momento é um material para o chão, então clique do lado direito em Cool

Materials.

Você pode perceber que no lado esquerdo foi exibido os materiais que existem por padrão já,

selecione então um de seu gosto para colocar-mos no chão. Eu escolhi o primeiro mesmo, que

parece com pedra.

Após selecionar ele ficará com um quadrado amarelo em volta, confirmando que você o

selecionou. Feche esta janela no X (oohhh).

Clique com o botão direito do mouse no nosso chão criado(cubo) e selecione o menu Apply

Material.

Você deve ter notado que mudou a textura do chão. Faça o teste para jogar e ver como ficou o

novo chão(não precisa dar build).

Mais informações:

Materials Tutorial

 

6 - Adicionando uma parede

Faça o mesmo procecimento para adicionar o cubo para o chão.

Clique com o botão direito do mouse em cima do cubo nas ferramentas do lado direito.

Na janela que aparecer coloque as propriedades:

X=500

Y=32

Z=500

e clique em build.

Você pode reparar que criamos uma parece(cubo) e ele já aparece no nosso editor.

Agora para dar uma textura basica nele, clique logo abaixo no ícone CSG Add:

Após adicionar, precisamos fazer o build da geometria e da iluminação novamente. Então clique

nos ícones seguindo a ordem:

1 - Build Geometry

2 - Build Lighting

Agora você pode testar e ver como ficou a parece.

Page 4: tuto udk

 

7 - Adicionando mesh (estática)

Agora que já temos uma noção básica do funcionamento da UDK, vamos partir para as meshes.

Para adicionar uma mesh estática, no editor clique no menu View -> Browser Windows ->

Content Browser.

No lado direito, clique em Building Meshes e no lado esquerdo selecione uma de sua preferência.

Eu selecionei a primeira. Feche a janela.

Clique em uma parte do chão que criamos(cubo) e selecione o menu Add Actor -> Add

StaticMesh. Na janela que aparecer clique na setinha verde, fazendo com que seja preenchido o

campo com o nome da mesh que selecionamos na Content Browser. Aperte OK e sua mesh vai

aparecer lá onde você clicou.

Faça o build da geometrica e iluminação(geometry e lighting) e teste para ver como ficou.

Mais informações:

Static Mesh Tutorial

 

8 - Dicas e observações

8.1 - Embora eu tenha falado para clicar em posições fixas, você pode selecionar cada objeto

criado e mover para onde quiser, apenas para fins de acompanhamento, eu pedi que posicionasse

no mesmo local que eu.

8.2 - As propriedades de cada objeto podem ser alteradas clicando 2 vezes em cima de cada

objeto, assim como fizemos com a iluminação.

8.3 - Os links que coloquei em cada tópico, apesar de estarem em inglês, ensinam bastante

detalhes importantes e com mais precisão, então é sempre bom dar uma lida.

8.4 - O processo de build tem sempre a ordem que descrevi, acho que foi por isso que colocarem

em sequencia na barra de ferramentas (geometry, lighting, ...).

 

9 - Vídeos

Segue alguns vídeos oficiais de como usar as ferramentas do editor: VtmEditor - Vídeo sobre BSP, adicionando mesh estática, iluminação, otimização de nível VtmTerrain - Usando o editor para criar terrenos e ferramentas de modificação VtmMatinee - Treinamento sobre UnrealMatinee, ferramentas de cinematica VtmCascade - Treinamento sobre UnrealCascade, ferramenta de partículas VtmKismet - Treinamento sobre UnrealKismet, ferramenta para scripting visual VtmPhAT - Usando a Physics Asset Tool (PhAT) para colisão, limitações e mais VtmConstraints - Usando limitações física na Unreal Engine VtmMaterials - Treinamento sobre o editor de materiais

 

É isso ai pessoal, espero que tenham gostado e aguardo os comentários.

Que Deus abençõe a todos!

Page 5: tuto udk

 

Olá,

 

Hoje vos escrevo para ensinar e explicar como funciona e como criar seu ambiente para criar seu

jogo/mod com o UDK.

Antes que perguntem, este tutorial é baseado no tutorial do pessoal que criou o The Ball, mas eu

segui o tutorial deles e estou aqui compartilhando com minhas palavras e com imagens, pois os

tutoriais não tem imagens de como fica o resultado final, e este tutorial é todo escrito com minhas

palavras pois vou criando e escrevendo para que eu também aprenda ensinando.

Link: http://tutorial.toltecstudios.com/

Bom, o que você irá aprender aqui se resume em: 1 - Estrutura de pastas - como são organizadas as pastas 2 - UnrealScript - onde você colocará suas classes para que sejam compiladas corretamente 3 - Arquivos INI - algumas modificações simples para que seu jogo/mod seja reconhecido pelo

compilador/editor 4 - Mapa básico - um mapa básico para teste - apesar de já ter sido feito um tutorial sobre

isso, vou colocar aqui também algumas dicas importantes e uns comandos de console muito usados durante os testes que ninguém passa

5 - Menu - criação de um menu básico para seu jogo 6 - Localização - você saberá como mudar os textos do seu jogo de acordo com a linguagem 7 - Mais sobre os arquivos INI - esta parte será somente para você alterar alguns arquivos

para a parte de cooking e da engine 8 - Cooking - você aprenderá sobre como enxugar o conteúdo deixando só o necessário para

rodar o jogo 9 - Packing - esta é a parte final, onde você distribui seu jogo em modo stand-alone, sem

depender do jogo Unreal Tournament 3

 

0 - O que você irá precisar

Este tópico zero, é somente para deixar aqui o que você precisar baixar para que tudo funcione.

    - UDK - http://www.udk.com/download.html

    - Alguns scripts - http://www.prsolucoes.com/downloads/udk/mygame.zip

Antes que você pergunte o porque dos scripts, já vou respondendo. Como a intenção do tutorial é

apenas para mostrar como criar o jogo e não como programá-lo, então vou usar estes scripts

prontos apenas para nosso exemplo.

Faça o download de tudo e mãos a obra.

 

1 - Estrutura de pastas

Após instalar o UDK você terá a seguinte estrutura de pasta na raiz:

A pasta BINARIES contém os executáveis do jogo, do UnrealFrontEnd e alguns

outros programas do UDK. Somente em alguns poucos casos esta pasta é modificada, portanto

não precisa se preocupar com ela.

Na pasta DEVELOPMENT é onde ficam todos os arquivos que contém seu código-fonte, ou seja,

as classes que você cria. É a pasta mais importante para quem quer mudar totalmente o tipo de

jogo, mudar câmeras, armas e por ai vai. Mas claro, mudar na programação, e não visualmente. O

código fonte tem a extenção .UC e os arquivos quando compilados ficam com a extenção .U.

Page 6: tuto udk

A pasta ENGINE é responsável por guardar toda a engine e não devemos mecher nesta pasta,

deixe ela ali queitinha, pois é ali que estão os arquivos necessários para a engine funcionar.

Já a pasta UTGAME, é na maioria das vezes a pasta mais usada, pois é aqui que fica todo o

conteúdo do seu jogo, como inis, texturas, materiais, modelos, localização e por ai vai.

Dentro da pasta UTGame temos então muitas pastas importantes também, vou apresentar a

estrutura de dentro dela e a descrição de cada uma:

A pasta CONFIG contém os arquivos INIs, que são os arquivos de suma importância para seu jogo.

A pasta CONTENT guarda arquivos como materiais, texturas, levels(mapas/fases), sons, e tudo o

que seu jogo terá neste sentido. Uma coisa importante, é que você não deve usar o conteúdo do

Unreal Tournament 3 que já vem numa versão demo com o UDK apara fins comerciais, pois são

arquivos que pertencem a Epic Games, eles apenas deixam ai de teste para você ter por onde

testar e começar.

A pasta LOCALIZATION contém os textos de acordo com a linguagem, sejam os textos dos

menus, os dos diálogos ou qualquer outro que seu jogo possua.

A pasta MOVIES guarda os vídeos de introdução, vídeos de loading do jogo, e por ai vai.

A pasta SCRIPT mantém seus arquivos fontes compilados, que são os arquivos .U.

Já a pasta SPLASH é onde ficam as imagens de splash do seu jogo. Aquelas que aparecem na

entrada e tudo mais.

Existem outras pastas ainda, mas não são importantes no momento, então não vou falar sobre

elas.

Uma dica importante, vamos supor que sua equipe vá desenvolver um jogo usando o UDK, então

você precisará de algum controlador de versão para juntar as modificações e tudo mais. Como

exemplo, falarei sobre o SVN. Usando o SVN em seu projeto, as únicas pastas que você precisará

adicionar no SVN serão as pastas DEVELOPMENT e UTGAME.

Outra coisa, vamos criar uma pasta com conteúdo somente para nosso jogo, sem misturas com as

que já existem. Para isso crie dentro da pasta UTGAME\Content as seguintes pastas:

UTGame\Content\ExampleGame\Levels

UTGame\Content\ExampleGame\UPK

A pasta ExampleGame\Levels conterá nossos mapas/fases.

A pasta Example\UPK conterá todos os outros arquivos(texturas/materiais/modelos e por ai vai).

Então teremos nossa estrutura de conteúdo(content) assim:

 

Page 7: tuto udk

Outra dica: Embora eu aqui coloque as vezes o nome todo em maiúsculo, você deve colocar

sempre seguindo o padrão, pois a engine as vezes da uns bugs com isso, e não coloque espaço no

nome das pastas. Com o tempo você vai pegando os macetes e limitações neste sentido.

Uma recomendação do pessoal do The Ball é que você não coloque muitas pastas separando os

conteúdos como é o UT3 (Unreal Tournament 3), pois não há necessidade, o game deles

tem 1.5GB com apenas 20 arquivos .UPK.

Vamos continuar.

 

2 - UnrealScript

Bom, vamos agora até a pasta DEVELOPMENT\SRC, pois lá é onde ficam os arquivos fonte.

Descompacte o arquivo .ZIP que você baixou no link que deixei no começo do tutorial dentro desta

pasta(DEVELOPMENT\SRC). Ficando a estrutura assim:

Lembrando que estou criando a pasta com nome de MyGame apenas por seguir o exemplo do

pessoal do The Ball, mas você pode colocar qualquer nome, ou no caso o nome do seu jogo. Se

você está fazendo um jogo chamado Zombie Tower Defense, crie a

pasta ZombieTowerDefense no lugar de MyGame(lembre-se: sem espaços e/ou acentos).

Por direito, você pode usar todo o código do jogo Unreal Tournament 3, mas não o conteúdo(mesh,

textura, material, som), então não fique criando classes para controle do seu personagem do zero,

sempre herde de alguém, por exemplo, se você quer criar uma classe para controle do

personagem, faça assim:

class MyPawn extends UTPawn;

Sempre use a herança, pois irá facilitar sua vida.

Uma dica importante, se você reparar, em alguns scripts você tem uma sessão

assim, DefaultProperties, isso quer dizer que o que estiver ali dentro, será visível pelo editor

com o valor padrão que está definido ali. Lembrando que se na classe que você herdou já tiver

algum valor padrão definido para alguma propriedade, a sua classe criada irá herdar

automaticamente, então só coloque ali o que for necessário e diferente da classe que você herdar.

Bom, agora precisamos adicionar nossa pasta criada à lista de diretórios para compilação. Para

isso abra o arquivo:

UTGame\Config\DefaultEngine.ini

Procure pela sessão:

[UnrealEd.EditorEngine]

E adicione a seguinte linha depois da última desta sessão:

+EditPackages=UTGame

+EditPackages=UTEditor

+EditPackages=UTGameContent

+EditPackages=MyGame  <- adicione esta linha

Page 8: tuto udk

A ordem correta das pastas é muito importante, pois diz ao compilador quais pastas devem ser

carregadas e compiladas primeiro.

Esta linha que adicionamos diz que o arquivo MyGame deve ser carregado sempre que o editor

for aberto.

Antes de salvar as alterações desmarque o atributo somente leitura do arquivo, e ai sim você

pode salvar as alterações.

Bom, com este arquivo alterado, podemos apagar o arquivo UTEngine.ini desta mesma pasta,

pois quando o editor for aberto, ele criará automaticamente um outro

arquivoUTEngine.ini baseado no arquivo que alteramos DefaultEngine.ini.

Após apagar este arquivo, vamos compilar nosso código para ver se está tudo OK.

Para isso, vá na pasta BINARIES(fica na raiz da instalação) e abra o

arquivo UnrealFrontEnd.exe.

Este programa é responsável por muitas coisas no processo de desenvolvimento, e uma delas é

compilar nosso código. Após abrir o programa, vá na barra lá em cima, clique na setinha ao lado

do botão MAKE e depois em FULL RECOMPILE. 

 

Bom, se tudo ocorrer bem, você verá na lista ao lado falando sobre MyGame e na pasta UTGame\

Script você terá o arquivo MyGame.u quando a compilação acabar. 

Ai você pergunta, mas porque MyGame.u? Eu te explico, a razão para ele chamar este arquivo

assim é porque ele compila todo o seu código em um único arquivo, que terá onome do seu

projeto, no nosso caso ele chamou de MyGame.u pois o nome do nosso projeto

em Development\Src é MyGame.

Continuando.

 

3 - Arquivos INI

Aqui vamos dizer para a engine qual o gametype que ele usará e qual o pawn que ele usará

como padrão. Que no nosso caso será as classes que criamos.

Abra o arquivo:

UTGame\Config\DefaultGame.ini

Vá ate a sessão:

[Engine.GameInfo]

Faça as seguintes alterações: Troque "DefaultGame=UTGame.UTDeathmatch" para "DefaultGame=MyGame.MyGameInfo". Troque "PlayerControllerClassName=UTGame.UTPlayerController" para "PlayerControllerClass

Name=MyGame.MyPlayerController"

Novamente desmarque o atributo somente leitura do arquivo e salve as alterações. Entenderam

o que fizemos? Apenas estamos dizendo à engine que o tipo de jogo padrão será baseado na

nossa classe(gametype) e que a classe que representa o player será a nossa(pawn).

 

4 - Mapa básico

Page 9: tuto udk

Bom, neste tópico nem vou me demorar, pois já fiz um outro tutorial sobre isso bem detalhado

para você começar.

Link: http://www.devgames.com.br/tutoriais/visualizar/8/udk-basico-primeiro-tutorial-

sobre-o-unreal-development-kit

Crie um mapa básico qualquer e vou dizer aqui algumas opções interessantes que precisamos

alterar.

Mas antes, vamos criar um atalho pra o editor para que ele gere um log.

Vá até a pasta Binaries\Win32 e crie um atalho para o arquivo UDKLift.exe e adicione a seguinte

linha de comando nas propriedades do atalho:

editor -log

Coloque isto logo após o texto UDKLift.exe, assim:

 

Bom, vou criar um mapa junto com vocês só para ter-mos um mapa igual para o exemplo. Preste

atenção nos detalhes, pois são bem úteis e interessantes.

Abra o editor pelo atalho que criamos. Após aberto vamos criar nosso mapa bem básico.

Clique com o botão direito sob o cubo na barra à esquerda e coloque os atributos como estão na

imagem abaixo.

Page 10: tuto udk

 

Uma observação: O atributo Hollow quer dizer OCO, ou seja, vamos criar um cubo OCO onde

podemos colocar dentro dele o que quiser-mos, no caso, nosso mapa será dentro do cubo.

Após criar o cubo, clique na ferramenta CSG ADD só para nosso cubo ficar com uma textura

padrão para nos orientar-mos no editor.

 

Bom, agora aproxime a camera de modo que você fique dentro do editor.

Adicione uma luz e posicione no centro (botão direito do mouse -> Add Actor -> Add Light).

Adicione também um playerstart (botão direito do mouse -> Add Actor -> Add PlayerStart).

Page 11: tuto udk

 

Feito isso, salve seu mapa/fase. Preste atenção no nome, pois em nosso arquivo

fonte MyGameInfo.uc tem definido o prefixo do nome dos mapas/fases, que é MG. Então salve o

mapa/fase com o nome MG-[Alguma coisa], no meu caso coloquei MG-ExampleGameLevel.

Ah e salve o arquivo na nossa pasta de mapas/fases, que é:

UTGame\Content\ExampleGame\Levels\

O prefixo é importante, pois é através dele que a engine sabe qual a classe do tipo de

jogo(gametype) deve ser usada. Como o prefixo é MG então ele sabe que a classe a ser chamada

é MyGameInfo.

Agora faça um Build ALL pelo editor.

 

Vá no menu lá em cima chamado View -> World Properties, e expanda o item WorldInfo.

Mude o item Game Type For PIE para usar a nossa classe MyGameInfo.

Page 12: tuto udk

 

Calma, Calma, Calma! Me explique isso.

Bom, primeiro, PIE significa: Play in Editor e alterando este item, estamos dizendo que quando

agente for testar o mapa pelo editor, nós queremos que ele chame a nossa classeMyGameInfo e

faça o que tem que fazer com o que programamos nela. É um atalho para você programar e testar

as alterações no mapa rapidamente.

Agora, clique com o botão direito no nosso mapa/fase e use o famoso Play From Here, mas

cuidado para você não clicar lá fora do cubo, faça isso dentro do cubo.

Testou? Bem bacana né? Você reparou que a camera ficou estilo terceira pessoa? Pois é, você

pode alterar e ver o código através da classe MyPlayerController.

Um simples comando faz toda a mágica: SetBehindView(true);

Uma dica para quando você estiver jogando em modo primeira pessoa e quiser mudar para

terceira pessoa com a camera original, é só você apertar a tecla [TAB].

Vamos continuar que a hora já está avançada.

 

5 - Menu

O menu também é algo simples. E nada mais é do que um outro level(mapa/fase) feito que é

carregado na inicialização. Bom, vamos lá, primeiro faça uma cópia do arquivo do mapa/fase que

você acabou de criar. No meu caso vou criar uma cópia do arquivo MG-ExampleGameLevel.udk,

Page 13: tuto udk

e se você seguiu o mesmo exemplo, faça isso também, gere uma cópia e renomeie

para ExampleGameFrontEnd.udk:

Feito isso, abra o arquivo que criamos como cópia(ExampleGameFrontEnd.udk).

Vamos criar uma UI Scene. Para isso, vamos criar um pacote(package). Entre no Content

Browser(menu View -> Browser Windows -> Content Browser).

Clique no botão NEW lá embaixo:

 

Na janela que aparecer coloque as informações como na imagem abaixo, preenchendo

o Package, Name, Factory. Selecione a Factory corretamente(UI SCene), senão não adianta.

 

De um duplo-clique na UI Scene que criamos, que já deve vir selecionada após clicar em OK.

Page 14: tuto udk

 

Preste atenção que esta parte é um pouco chata.

Quando a janela abrir, clique com o botão direito em qualquer área quadriculada e vá no menu:

Place Widget -> Button [Standard]

 

Coloque qualquer nome quando aparecer a janela pedindo o nome do botão.

Por padrão o botão já vem cobrindo toda a área verde, mas se não vier, redimensione o botão

para ficar do tamanho da área representada pela linha verde. Essa linha verde representa toda a

tela.

Agora clique com o botão direito em cima do botão e depois clique no menu UnrealKismest

Editor:

 

Essa ferramenta é bem útil pois faz a ligação com o UnrealScript para nós.

Na janela do Kismet que abriu, clique lá embaixo no item Global Sequence, se já não estiver.

Page 15: tuto udk

 

Agora clique com o botão direito do mouse na parte cinza, e clique no menu: New Event -> UI ->

OnClick.

 

Depois, clique novamente com o botão direito na parte cinza e clique no menu: New Action ->

Level -> Activate Level Event:

 

Após adicionar os itens, ligue o evento OUT do OnClick com o IN do Activate Level Event.

Depois selecione o evento Activate Level Event e mude o atributo Event

Name paraOpenYourLevel. Como mostro na imagem abaixo:

Page 16: tuto udk

 

Uma dica importante: O nome do evento precisa ser único, ou seja, não pode se repetir.

Mas o que eu fiz? não entendi nada!

Vamos lá. Revisando. Criamos um novo cenário "UI Scene", colocamos um botão na tela e

criamos o evento OnClick que chamará o evento de nome OpenYourLevel do mapa/fase.

Isso poderia ser feito via script? Sim, mas daria mais trabalho.

 

Agora feche esta janela e clique numa parte vazia do UI Scene e ao lado direito, nas propriedades

procure pela flag Pause Game While Active e desmarque.

Isso fará com que o jogo continue ativo, rodando, enquanto esta tela é exibida.

 

Agora algo muito importante, você precisa sempre salvar seu trabalho, pois senão vai ser tudo

perdido. Para salvar faça assim, feche a janela do UI Scene e voltaremos ao content browser,

então clique com o botão direito do mouse no nosso basicstartmenu_UI (UIScene) e no menu

que aparecer, clique em Salvar.

Salve na nossa pasta UPK que criamos, lembra? (UTGame\Content\ExampleGame\UPK\), com o

nome que ja está sugerido.

Page 17: tuto udk

 

Bom, já criamos nossa UI, adicionamos os eventos e tal, agora precisamos associar este evento

que criamos ao nosso mapa/fase.

Feche o content browser e clique no botão Open UnrealKismet.

 

Bom, agora vamos adicionar uma nova ação no Kismet. Em um espaço vazio, clique com o botão

direito do mouse e clique no menu: Add New Action -> UI Scenes -> Open Scene.

 

Adicione um novo evento, clique com o botão direito do mouse e clique no menu: New Event ->

Level Startup.

Page 18: tuto udk

 

Ligue o evento OUT do Level Startup com o IN do Open Scene. Depois clique no item Open

Scene e mude a propriedade Scene para a UISCene que

criamos:UIScene'MyGameInterface.basicstartmenu_UI'. Ficando assim:

 

Adicione agora um novo evento. Clique com o botão direito do mouse numa parte vazia e clique no

menu: Add New Event -> Remote Event e depois adicione uma nova ação, clique com o botão

direito do mouse: New Action -> Misc -> Console Command.

Bom, clique no evento Remote Event e mude a propriedade Event Name para OpenYourLevel

que foi o evento que criamos no botão, lembra?

Page 19: tuto udk

 

Agora clique no Console Command e adicione o comando: open MG-examplegamelevel, como

na imagem abaixo:

 

Lembrando que você pode criar mais de um comando, clicando no sinal de mais (+).

Esse comando que será executado no console será ativado quando clicar-mos no botão, então

nossa UI será para isso, ao clicar no botão vamos chamar nosso mapa/fase inicial.

 

Adicione agora uma nova ação, clique com o botão direito do mouse numa parte vazia e clique no

menu: New Action -> Toggle -> Toggle Cinematic Mode.

 

Agora adicione uma variável, clique com o botão direito do mouse e depois no menu: New

Variable -> Player -> Player.

 

Agora ligue conforme a imagem abaixo. Está tudo juntinho pois não queria que a imagem ficasse

grande para não tomar muito espaço na tela.

Page 20: tuto udk

 

Bom, vou explicar o que você fez. Você ligou oevento Level Startup em duas ações:

OpenScene - que exibirá nossa tela que criamos no Kismet

Toggle Cinematic Mode - aqui você poderá chamar uma apresentação de início de jogo, um vídeo, uma história ou algo do tipo, ao qual você pode usar a ferramenta Matinee para isso. Adicione o item que você criar na propriedade desta ação.

E o Toggle Cinematic está ligado ao Player que executará o comando no console que está

ligado ao evento OpenYourLevel que criamos no Kismet, no OnClick ou seja, o evento será o

mesmo que você clicar na UIScene que criamos, que é ativar o mapa/fase para jogar-mos.

Uma observação: Isto não funcionará no editor, somente no jogo mesmo.

 

0 - Localização

A internacionalização é bem simples, sempre que o jogador seleciona uma linguagem diferente a

engine aponta para os respectivos diretórios. Mas nós vamos usar a localização INT

(internacional) ou Inglês :)

Vamos fechar nosso editor, mas salve tudo.

O editor só detecta a localização INT em sua inicialização.

Crie um arquivo de texto chamado MyGame.int dentro da pasta: UTGame\Localization\INT.

Neste arquivo que criamos adicione as linhas:

Page 21: tuto udk

[ExampleOfASection]

01=Meu jogo

02=To play click the button

O que está entre os colchetes é chamado de sessão, quem está acostumado com arquivo INI

conhece. Os números ali embaixo da sessão representa o número da linha, mas você pode usar

qualquer coisa, como um texto por exemplo.

Se você for usar texto, evite os espaços e acentos.

Agora abra o editor novamente, depois abra nosso arquivo que contém a UIScene. Se você seguiu

o tutorial, será ExampleGameFrontEnd.

Abra o content browser, de um duplo-clique na nossa UIScene em nosso pacote(package).

Clique com o botão direito do mouse e clique no menu: Place Widget -> Label [Standard].

 

Faça isso duas vezes, de modo que você tenha duas labels em sua UIScene:

 

Após adicionar as labels, clique na primeira label e no menu ao lado acesse a propriedade: Data -

> Data Source -> Markup String e coloque o seguinte texto ali:

 

Para explicar, caso você ainda não tenha sacado. Quando você definiu este texto na

propriedade Markup String, você está dizendo que o conteúdo da label será uma string contida

na sessão ExampleOfASection, no item 01 do jogo MyGame(o nosso jogo). Se você tivesse

colocado no arquivo de localização assim:

[Game]

titulo=Meu jogo

Então você colocaria assim na propriedade Markup String da label:

Page 22: tuto udk

 

Agora faça o mesmo para a segunda label, troque apenas o 01 por 02, ficando assim na

propriedade Markup String da segunda label:

 

Agora feche a janela do UIScene e não esqueça de salvar. Clique com o botão direito no item do

content browser e depois em salvar, e ele já irá salvar no lugar que selecionamos antes.

 

7 - Mais sobre os arquivos INIs

Bom, já amanheceu e eu ainda estou aqui, às 6:00 da matina.

Feche seu editor, pois para altera-mos os arquivos INIs, precisamos fechar ele.

Abra o arquivo:

UTGame\Config\DefaultEngine.ini

Procure pela sessão [URL], e altere conforme abaixo: MapExt=udk - Não altere aqui, a não ser que você tenha salvo seus mapas com outra

extenção. Map=UTFrontEnd.udk - Altere para ExampleGameFrontEnd.udk. Isso irá fazer com que

carregue nosso menu como padrão. LocalMap=UTFrontEnd.udk - Da mesma forma que acima, altere

para ExampleGameFrontEnd.udk.

Então nosso INI ficará assim nesta sessão, nos itens abaixo: MapExt=udk Map=ExampleGameFrontEnd.udk LocalMap=ExampleGameFrontEnd.udk

Os outros itens, deixe como estão.

 

Agora procure pela sessão: [Engine.PackagesToAlwaysCook] e adicione a seguinte linha:

+Package=ExampleGameFrontEnd

Isso fará com que o UnrealFrontEnd sempre compile faça o cook deste arquivo.

 

Agora procure pela sessão: [Engine.StartupPackages] e adicione a seguinte linha:

+Package=MyGameInterface

Isso fará com que o jogo sempre carregue este pacote. Lmebra que criamos este pacote para

poder fazer a interface? Mas você não precisa colocar aqui todos os seus pacotes, somente os que

forem relacionados a interface, para que sejam carregados primeiro.

 

Agora procure pela sessão: [Engine.PackagesToForceCookPerMap] e adicione a seguinte

linha:

.Map=ExampleGameFrontend

.Package=MyGameInterface

Isso fará com que o pacote seja carregadao com o mapa(somente com este), pois as vezes a

engine falha em carregar alguma coisa dela, então forçamos aqui somente os elementos da

interface serem "cookeds" juntamente com o mapa/fase.

 

Você pode também se quiser, alterar a sessão: [FullScreenMovie] e adicionar o que você quer

carregar como filme ou tela de carregamento. Se não quiser alterar, não precisa. 

Terminamos, salve e exclua o arquivo UTEngine.ini para que seja criado outro baseado nessas

nossas novas configurações.

Agora inicie o jogo e teste o menu que criamos, o pressionamento do botão e por ai vai. Clique no

atalho "Game - Unreal Development Kit".

Page 23: tuto udk

Aqui funcionou beleza.

 

8 - Cooking

Mais que raio de cooking é esse?

Calma, vamos lá. Este é o processo de compilação final do seu projeto. Ele pega o conteúdo que

você usou no seu projeto(texturas, materiais, mapas/fases, modelos), codigos, localização e tudo

mais, e ainda protege para dificultar que qualquer um veja ou altere o conteúdo do seu jogo.

Vamos à prática, feche o jogo, o editor e tudo mais e abra o UnrealFrontEnd(Binaries\

UnrealFrontend.exe).

Clique na ABA cooking, vai aparecer um campo de texto para você digitar o nome do mapa, digite

o nome do nosso mapa: MG-ExampleGameLevel.

Não precisa fazer o cook do outro mapa/fase(ExampleGameFrontEnd), pois lembra que

adicionamos ele no INI para sempre ser feito o cook dele, pois ele faz parte da interface?

Agora clique no botão COOK lá em cima.

Após este processo, deverá ter sido criado uma pasta chamada CookedPC em UTGame, que é o

conteúdo que será distribuido para o usuário final.

 

9 - Packing

Este é o processo mais esperado, a hora de empacotar todo o trabalho, gravar numa mídia e

vender :)

Para fazer é muito difícil e complicado, preste MUITA atenção.

Page 24: tuto udk

Ainda no UnrealFrontEnd, clique no botão Package Game.

Vai aparecer uma janela pedindo para você digitar o nome do jogo. Coloque o nome e clique no

botão grande lá em baixo: Package

Pronto. Será gerado o arquivo de instalação na pasta raiz do UDK:

 

DICAS:

1 - Para adicionar BOTs no seu período de testes, abra o console no jogo e digite: addbots 3

(adiciona 3 bots)

2 - Para receber todas as armas do jogo durante os testes, abra o console no jogo e digite:

allweapons

3 - Caso você não queira usar a camera em terceira pessoa via código, mas quer as vezes mduar a

câmera de primeira pessoa para terceira pessoa, durante o jogo aperte a tecla [TAB]

4 - Use SEMPRE o mesmo nome do seu jogo em tudo, não fique criando um nome para cada coisa,

se seu jogo se chama Banana Maluca, então use o nome BananaMaluca para o projeto e BM para a

sigla/prefixo.

5 - O editor é meio lento pelo menos aqui em meu pc, então se você ficar dando 2 cliques direto

para abrir um item no content browser, pode ser que ela abra atrás da janela do content browser,

preste atenção nisso.

Page 25: tuto udk

6 - Para mover os objetos e organizá-los no Kismet e UIScene, basta primeiro selecionar o item que

você quer arrastar e em seguida pressione o control e ai sim você pode arrastar o item.

7 - Se no editor você arrastar os objetos mas na visualização principal você ver que não muda

nada, faz um Build ALL que resolve tudo, geometria, luz, paths.

 

BUY ME A COFFEE:

Esse tutorial foi bem feito, levou quase 7 (sete) horas para ser feito, ou para ser mais exato 6:48

(de 00:00 até 06:48).

Deu muito trabalho, tirei 40 screenshots, cortei cada uma, testei tudo para não passar nada

errado, expliquei cada detalhe, mas se ainda sim tiver dúvidas, você pode postar aqui. As vezes

minha esposa até briga comigo pois as vezes deixo de dar atenção a ela para poder ficar aqui

fazendo os tutoriais e ajudando assim a comunidade. Não é fácil, mas Deus tem me dado forças e

paciência, pois encontrar bons materiais sobre a UDK é muito difícil, e o pessoal lá de fora também

não colabora.

Estou aqui me dispondo a ajudar a todos com meu conhecimento ainda pequeno, mas preciso

também de um suporte de quem puder, pois preciso de um PC mais potente que quero pegar para

trabalhar com a UDK, pois meu Notenook não aguenta e nem tem aceleração 3D e também quero

comprar minha licença da UDK que são 99 dólares. Estes são meus objetivos e alvos neste

momento, e quem puder ajudar com alguma doação, basta clicar no botão abaixo. A forma de

doação utiliza o serviço PagSeguro da UOL no qual qualquer um pode doar via cartão, boleto,

transferência. Não é obrigação, é para quem pode me ajudar também com este

suporte/doação/contribuição.