View
52
Download
9
Category
Preview:
DESCRIPTION
Bruno C. de Paula. Introdução ao. Aquecimento para a Global Game Jam. Resumo. Vamos conhecer a engine Unity 3D Focaremos nas principais ferramentas e recursos que o Unity disponibiliza. O que é o Unity?. Unity é um ambiente multiplataforma de desenvolvimento de jogos; - PowerPoint PPT Presentation
Citation preview
Introdução ao
Aquecimento para a Global Game Jam
Bruno C. de PaulaBruno C. de Paula
ResumoVamos conhecer a engine Unity 3D
Focaremos nas principais ferramentas e recursos que o Unity disponibiliza
O que é o Unity?
Unity é um ambiente multiplataforma de desenvolvimento de jogos;
Suporte a: Windows / MacOS / Web / Wii e Wii Ware / iPhone;
Breve: Android / Xbox 360 e PS3.
321/04/23
Características do UnityEditor de NíveisFortemente integrado com a
execução do jogo;
421/04/23
Características do UnityEditor de NíveisSuporte a Drag & Drop e
customização;
521/04/23
Características do UnityEditor de NíveisEditor de terrenos e lightmaps;
621/04/23
Características do UnityGráficosSuporte a Direct3D 9 e OpenGL;
721/04/23
Características do UnityImportação Importação de modelos, texturas, bones
e animações de Maya, 3DS, Cheetah 3D, Blender, Wavefront obj...
Heightmaps, Fontes, audio.
821/04/23
921/04/23
Características do UnityShadersEfeitos de Glow, Blur, Noise, etc
1021/04/23
Características do UnityFísica / PhysXSuporte a corpos rígidos; Junções;Ragdolls;Wheel Collider para jogos de carro;
1121/04/23
Características do UnityScriptingLinguagens de Scripting:
JavaScript (muuuito rápido, palavra!);
C# (Mono);Boo (similar a Python).
1221/04/23
Vamos para a prática!
1321/04/23
Interface básica1421/04/23
Interface básica
Scene View (Cena): editor de níveis;Project View (Projeto): arquivos do
projeto;Hierarchy View (Hierarquia): objetos
que estão na cena e sua relação;Game View (Jogo): Visualização da
aplicação sendo executada; Inspector View (Inspetor): Acesso aos
componentes dos objetos;
1521/04/23
Navegação na Scene View
Principais Atalhos:Q, W, E, R;
ALT + mouse;Leitura altamente recomendada:
http://unity3d.com/support/documentation/Manual/Learning%20the%20Interface.html
http://docwiki.unity3d.com/uploads/Main/GUI%20Essentials.pdf
1621/04/23
AssetsArquivos do Projeto;
Game Objects
Elementos de um jogo;Arquitetura baseada em composição;Objeto de jogo é especificado através
da composição de várias funcionalidades (COMPONENTES);
Todo game object já nasce com um componente transform;
Cada GameObject é um repositório de componentes.
1821/04/23
Componente Transform
Posicionamento (x, y, z) [W], rotação (ângulo) [E] e escala [R];
1921/04/23
Local Space e World Space
X, Y e Z são em relação ao elemento pai;
2021/04/23
Game Objects disponíveis2121/04/23
Tipos de Game ObjectCube, Sphere, Capsule, Cylinder, Plane Cubo, esfera, cápsula, cilíndro e plano;Cada um está associado a um
componente Mesh Filter com aspecto diferente;
Colide com outros corpos por padrão;
Tipos de Game ObjectLuzesPoint light:
Luz proveniente de um ponto;Luz com localização específica;Espalha a partir do ponto;
Spotlight:Vem de um ponto;Localização específica;Gera cone de luz;
Tipos de Game ObjectLuzesDirectional Light:
Vem de uma direção;Não tem localização específica;Luz paralela;Mais forte nas áreas quadradas;Mais fraco nas angulações;Sol;
Tipos de Game ObjectCameraCapturam e mostram o mundo ao
jogador;
2521/04/23
Tipos de Game ObjectGUI Text e GUI TextureTexto e Imagens em 2D;Útil para criação da HUD;
Tipos de Game ObjectParticle SystemSistema de Partículas, formado por:
Emissor, animador e renderizador;
2721/04/23
Tipos de Game ObjectRagdollSimulação no
estilo “boneco de pano”;
Útil para “representação de mortos”;
Ver video:http://www.yout
ube.com/watch?v=g0lTE4sCyKI
*
ComponentesPodem ser associados a Game
Objects;Definem:
Comportamento;Aparência;
Podem ser scripts;Vamos analisar alguns.
Tipos de ComponentesMeshCada modelo é formado por polígonos;Um conjunto de polígonos associados é uma
mesh;Mesh Filter: pega uma malha dos Assets e
passa ao renderizador;Mesh Renderer: Renderiza uma malha a
partir de um material;Você pode gerar um mesh em programas
como 3DMax, Blender, Maya, etc.O Unity trabalha com os formatos FBX, 3DS,
OBJ...;Meshs podem ser animadas via script;
Exemplo de Mesh(em destaque)
Sites com modelos gratuitosO site do Unity:
RecursosTutoriais:
•Jogo de carro, Plataforma 3D, Plataforma 2D, FPS, Animação.
Projetos Exemplo:•FPS, Customização de Personagens
http://www.turbosquid.com/Search/3D-Models/free/fbx
http://www.open3dproject.org/...
*
Tipos de componentesFísica Baseado no engine de física PhysX (Nvidia);
Rigidbody: Objeto que age sobre o controle da física;
Constant Force: força constante; Colliders:
Geometrias básicas de colisão;Box, Sphere, Capsule, Mesh, Wheel (roda),
Raycast; Joints:
Junções;Restrições no grau de liberdade;
Tipos de componentesHinge JointSimulação de dobradiça;
Tipos de componentesSpring JointSimulação de mola;Distância máxima de separação e
retorno à posição original;
Tipos de componentesFixed JointConexão entre 2 corpos;Similar à hierarquia de
transformação;Útil quando os corpos podem ser
desconectados durante a simulação;
*
Scripts JavaScript, C# e Boo;Criação em Assets > Create;Scripts são associados a Game Objects
como componentes;
Alguns eventos importantes
Update: executada uma vez por frame;FixedUpdate: chamada de tempos em
tempos em um intervalo fixo (física);OnCollisionEnter: chamado quando
ocorre a colisão;
Referências a componentes
transform: posicionamento, rotação e escala;
rigidbody: corpo rígido;animation: controle dos ciclos de
animação;.renderer: exibição do componente
em cena;audio: fonte de audio;collider: geometria de colisão;
A seguir, alguns fragmentos de códigos usando o Unity
4021/04/23
ExemploFaz um objeto girar
var velocidade = 5.0;
function Update ()
{
print("Olá, Mundo");
transform.Rotate(0, velocidade*Time.deltaTime, 0);
}
ExemploMove a posição a partir do teclado
function Update ()
{
transform.Translate(Input.GetAxis("Horizontal"),
0,
Input.GetAxis("Vertical"));
}
ExemploOlha para um alvo
var alvo : Transform;
function Update ()
{
transform.LookAt(alvo);
}
PrefabsPrefabs são
objetos reutilizáveis armazenados na Project View;
Funcionam como modelos de objetos;
ExemploCria um novo objeto – Instantiate
var novoObjeto : Transform;
function Update ()
{
if(Input.GetButtonDown("Fire1"))
{
Instantiate(novoObjeto,
transform.position, transform.rotation);
}
}
Exemplo Carrega outro nível
Application.LoadLevel("Nome nivel");
ExemploEnvia uma mensagem para um outro objeto
// O outro objeto deve possuir uma função chamada // AplicarDano function OnCollisionEnter (collision : Collision) {
collision.gameObject.SendMessage("AplicarDano"); }
ExemploDestruir o objeto atual
function AplicarDano() {Destroy(gameObject);
}
4821/04/23
*
Conclusões
O Unity pode ser útil em uma Game Jam pois:É fácil de integrar o trabalho de um
programador e de um artista;Já vem com funcionalidades de física ,
editor de ambientes, testes de colisão, etc;
Cuidados!Nem sempre um jogo 3D é fácil de se
balancear;
4921/04/23
Mais material?
http://www.brunocampagnolo.com/engines2010/
5021/04/23
Recommended