Esta página possui um breve Guia de Programação de uma Aplicação Simples no UE4 em Linux. Possui também links para páginas que consideramos úteis.
Contents
- 1 Breve Guia para sua Primeira Aplicação em UE4
- 2 Usando Outros Templates
- 3 Links Úteis
Breve Guia para sua Primeira Aplicação em UE4
Invoque o Lançador do UE4 a partir da pasta do UE4 da seguinte forma:
$ ./Engine/Binaries/Linux/UE4Editor
Crie um novo Projeto
Ao abrir o gerenciador de projetos, selecione a aba C++ e um projeto do tipo Basic Code. Tome o cuidade de nas caixinhas de baixo, deixar selecionada a opção With Starter Content:
A opção With Starter Content vai povoar o seu mundo com alguns objetos padrão. No caso da planta de mundo Basic Code, serão uma mesa, duas cadeiras, duas fontes de luz e uma estátua estranha sobre a mesa.
Chame o projeto de QuickStart (ou o que você desejar) e crie um novo projeto em Create Project.
O UE4 vai ficar um tempo gerando arquivos de inicialização e abrindo o editor.
Crie uma nova Classe C++ para o seu Ator
Em File no Menu Bar escolha New C++ Class:
O menu Choose Parent Class vai abrir. Como Actor é a classe mais básica em Unreal Engine , vamos usar Actor como classe-pai:
O menu Name Your New Actor vai abrir. Vamos chamar a nova classe de “FloatingActor”. Em seguide clique em Create Class:
Se você já quiser, pode clicar em Compile na Toolbar ao alto do editor e ver compilar.
Escreva e Compile o seu Código C++
Agora vamos querer dar algum comportamento a este novo ator. Procure o projeto criado pelo UE4 e abra o projeto/workspace no editor de sua escolha. Unreal deve ter criado uma pasta de projetos em:
~/Documents/Unreal Projects
Lá deveria haver uma subpasta com o nome do seu projeto, em nosso caso QuickStart. Esta pasta vai estar povoada com tudo o que UE4 criou, inclusive a sua nova classe C++:
Os dois arquivos marcados na figura acima são os arquivos de projeto para QtCreator (.pro) e Codelite (.workspace). Abra um deles no IDE de sua escolha.
Modifique o Headerfile de seu Ator
Em FloatingActor.h, inclua uma variável através da seguinte linha antes das chaves fechando a definição de classe:
float RunningTime;
Modifique o comportamento da Classe de seu Ator
No código do comportamento da classe FloatingActor.cpp, vamos adicionar código imediatamente antes do final do método AFloatingActor::Tick:
FVector NewLocation = GetActorLocation();
float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime));
NewLocation.Z += DeltaHeight * 20.0f; //Scale our height by a factor of 20
RunningTime += DeltaTime;
SetActorLocation(NewLocation);
Este código vai fazer a posição do ator em Z variar em função do seno do tempo de relógio da simulação, na prática fazendo-o levitar para cima a para baixo, acelerando e desacelerando nos limites da amplitude do movimento.
QtCreator com o código do exemplo que acabamos de criar:
CodeLite com o código do exemplo que acabamos de criar:
Se você quiser, pode clicar novamente em Compile na Toolbar ao alto do editor e ver compilar.
Adicione uma Geometria ao seu Ator
No Unreal Editor, vá para o Content Browser, na parte de baixo do editor e expanda o item de lista chamado “C++ Classes”. Ali você vai achar uma pasta”QuickStart” que contém a sua nova classe de Actor, o FloatingActor. Agora você pode criar uma instância de FloatingActor no seu mundo arrastando o ícone de esfera que o representa para dentro do Level Editor. A instância ficará selecionada tanto no Level Editor como no World Outliner, à direita (veja setas), onde será chamada de “FloatingActor1”. Seus componentes estarão visíveis no Details Panel, que você pode abrir à direita.
Adicionando um Cone
Uma vez no Details Panel, à direita, selecione Add Component e, no pulldown-menu que vai abrir, selecione Cone:
Isto vai adicionar uma geometria do tipo cone à sua instância de FloatingActor:
Modificando Atributos do Cone
Agora clique nele e arraste-o até ficar eum uma boa posição. Alternativamente, você pode setar a posição dele mexendo nas coordenadas de seu centro de referência diretamente no atributo Transform no Details Panel:
Teste sua Aplicação
Clique em Compile na Toolbar ao alto do editor e veja compilar.
Clique em Play na Toolbar e veja o cone subri e descer! Quando cansar, clique em Pause.
Navegar na cena com o Editor do UE4 não é tão intuitivo. Abaixo um resumo do que você pode fazer.
Controle | Ação | |
---|---|---|
Visão em Perspectiva |
||
Mouse Esq.+ Arrastar | Move a camera para frente e para trás e rotaciona o mundo para a direita e esquerda. | |
Mouse Dir. + Arrastar | Rotaciona a camera da viewport. | |
Mouse Dir. + Esq. + Arrastar | Move para cima e para baixo. | |
Visão Orthográfica (Topo, Frente, Lado) |
||
Mouse Esq.+ Arrastar | Cria uma caixa de seleção. | |
Mouse Dir. + Arrastar | Faz panorâmica com a câmera. | |
Mouse Dir. + Esq. + Arrastar | Faz zoom com a câmera. | |
Focar |
||
F | Foca a câmera no objeto selecionado.
Melhor forma de pular com a câmera de um objeto a outro. |
Em UE4 você pode também usar as teclas WASD. São habilitadas por default e você pode usaá-las sempre que estiver com o botão direito do mouse pressionado, significando que você vai continuar tendo de usar o botão direito do mouse para navegar dessa forma. Esses controles são espelhados nas teclas de seta para prover acesso alternativo e são válidos apenas em modo de perspectiva.
Controle | Ação |
---|---|
W | Numpad8 | Up | Move a camera para frente. |
S | Numpad2 | Down | Move a camera para trás. |
A | Numpad4 | Left | Move a camera para a esquerda. |
D | Numpad6 | Right | Move a camera para a direita. |
E | Numpad9 | Page Up | Move a camera para cima. |
Q | Numpad7 | Page Dn | Move a camera para baixo. |
Z | Numpad1 | Zoom out da camera (aumenta FOV). |
C | Numpad3 | Zoom in da camera (reduz FOV). |
Quando estiver fazendo zoom segurnado o botão direito do mouse, o campo de visão (FOV) vai permanecercomo você setou até você soltar o botão do mouse.
Mais comandos de navegação você vai encontrar na página de manual do UE4 Viewport Controls. Dê uma olhada lá!
Invente e Crie!
Agora continue o seu progresso e faça o o tutorial: Level Designer Quick Start. Abaixo uma imagem do que você vai construir:
Veja também como importar objetos geométricos e arquitetônicos de outros programas como Blender.
Para saber mais sobre como iluminar os seus objetos e como iluminar globalmente a sua cena, definindo formas de tratamento da iluminação indireta, veja os seguintes tutoriais:
- Iluminação de Objetos: https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/HowTo/Previewing_Applying/index.html
- Iluminação de Ambientes: https://docs.unrealengine.com/latest/INT/Engine/Rendering/LightingAndShadows/QuickStart/index.html
- https://docs.unrealengine.com/latest/INT/Engine/Rendering/LightingAndShadows/
- https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/MaterialProperties/LightingModels/index.html
- https://docs.unrealengine.com/latest/INT/Engine/Rendering/Materials/HowTo/ShinyMaterials/index.html
- https://docs.unrealengine.com/latest/INT/Engine/Rendering/LightingAndShadows/Lightmass/
Além disso, com o que você já sabe, tente fazer o seguinte:
- Adicione um Particle System Component ao seu FloatingActor. Existem alguns prontos no conteúdo padrão do seu projeto.
- Use a macro de propriedade UProperty de Unreal Engine expor uma variável contendo a magnitude do movimento do FloatingActor ao invés de usar uam constante. Dê uma olhada no tutorial em Variables, Timers, and Events.
- Inclua os eixos X e Y no seu movimento periódico.
- Multiplique
DeltaTime
value por um valor entre 0.6 e 1.4, assim o FloatingActor parece se mover livremente.
Mais informação:
- Página de manual do Actor.
- Veja outros C++ Programming Tutorials.
Código Final
FloatingActor.h
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
// Retirado de:
// https://docs.unrealengine.com/latest/INT/Programming/QuickStart/4/index.html
#pragma once
#include "GameFramework/Actor.h"
#include "FloatingActor.generated.h"
UCLASS()
class QUICKSTART_API AFloatingActor : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
AFloatingActor();
// Called when the game starts or when spawned
virtual void BeginPlay() override;
// Called every frame
virtual void Tick( float DeltaSeconds ) override;
float RunningTime;
};
FloatingActor.cpp
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
// Retirado de:
// https://docs.unrealengine.com/latest/INT/Programming/QuickStart/4/index.html
#include "QuickStart.h"
#include "FloatingActor.h"
// Sets default values
AFloatingActor::AFloatingActor()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
}
// Called when the game starts or when spawned
void AFloatingActor::BeginPlay()
{
Super::BeginPlay();
}
// Called every frame
void AFloatingActor::Tick( float DeltaTime )
{
Super::Tick( DeltaTime );
FVector NewLocation = GetActorLocation();
float DeltaHeight = (FMath::Sin(RunningTime + DeltaTime) - FMath::Sin(RunningTime));
NewLocation.Z += DeltaHeight * 20.0f; //Scale our height by a factor of 20
RunningTime += DeltaTime;
SetActorLocation(NewLocation);
}
Usando Outros Templates
Unreal vem com uma série de templates padrão para diferentes tipos de jogos. Eles vão aparecer na aba New Project do Launcher:
Ne exemplo acima selecionamos o template Vexicle para jogos simples de perseguição e direção. Carregue-o e você verá a criação de um ambiente de jogo com um carro padrão e a câmera situada na posição acima do carro:
Espere todos so shaders terem sido compilados (aparecerá na janela de comando de onde você invocou o UE4) e depois clique Play:
Você verá um ambiente de direção onde você poderá guiar o carro usando as teclas padrão W-S-A-Z e outras próximas para troca de marcha, etc.
Salve este jogo e saia. Ao entrar novamente, se houverem projetos salvos, o Unreal Launcher abre na aba Projects, mostrando quais projetos estão salvos em seu computador:
Onde eu acho mais conteúdo?
O site da Unreal possui muitos exemplos: https://docs.unrealengine.com/en-us/Resources/ContentExamples
Links Úteis
Editores, Ferramentas e Ambientes
- Manual do UE4::Ferramentas e Editores – https://docs.unrealengine.com/latest/INT/GettingStarted/SubEditors/index.html
- Manual do UE4::Manual de Editores do Unreal – https://docs.unrealengine.com/latest/INT/Engine/Editor/index.html
Carga de Objetos 3D de outros editores em UE4
- Importing Models into UE4 – https://docs.unrealengine.com/latest/INT/Engine/Content/SpeedTree/ImportingModelsIntoUE4/index.html
- Importing Static Meshes into UE4 – https://docs.unrealengine.com/latest/INT/Engine/Content/Types/StaticMeshes/HowTo/Importing/
Outras Fontes para este Tutorial
- Este tutorial foi baseado no tutorial “Programming Quick Start” disponível em: https://docs.unrealengine.com/latest/INT/Programming/QuickStart/index.html