50
Introdução ao Aquecimento para a Global Game Jam Bruno C. de Paula

Introdução ao

  • Upload
    fausto

  • View
    52

  • Download
    9

Embed Size (px)

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

Page 1: Introdução ao

Introdução ao

Aquecimento para a Global Game Jam

Bruno C. de PaulaBruno C. de Paula

Page 2: Introdução ao

ResumoVamos conhecer a engine Unity 3D

Focaremos nas principais ferramentas e recursos que o Unity disponibiliza

Page 3: Introdução ao

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

Page 4: Introdução ao

Características do UnityEditor de NíveisFortemente integrado com a

execução do jogo;

421/04/23

Page 5: Introdução ao

Características do UnityEditor de NíveisSuporte a Drag & Drop e

customização;

521/04/23

Page 6: Introdução ao

Características do UnityEditor de NíveisEditor de terrenos e lightmaps;

621/04/23

Page 7: Introdução ao

Características do UnityGráficosSuporte a Direct3D 9 e OpenGL;

721/04/23

Page 8: Introdução ao

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

Page 9: Introdução ao

921/04/23

Page 10: Introdução ao

Características do UnityShadersEfeitos de Glow, Blur, Noise, etc

1021/04/23

Page 11: Introdução ao

Características do UnityFísica / PhysXSuporte a corpos rígidos; Junções;Ragdolls;Wheel Collider para jogos de carro;

1121/04/23

Page 12: Introdução ao

Características do UnityScriptingLinguagens de Scripting:

JavaScript (muuuito rápido, palavra!);

C# (Mono);Boo (similar a Python).

1221/04/23

Page 13: Introdução ao

Vamos para a prática!

1321/04/23

Page 14: Introdução ao

Interface básica1421/04/23

Page 15: Introdução ao

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

Page 16: Introdução ao

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

Page 17: Introdução ao

AssetsArquivos do Projeto;

Page 18: Introdução ao

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

Page 19: Introdução ao

Componente Transform

Posicionamento (x, y, z) [W], rotação (ângulo) [E] e escala [R];

1921/04/23

Page 20: Introdução ao

Local Space e World Space

X, Y e Z são em relação ao elemento pai;

2021/04/23

Page 21: Introdução ao

Game Objects disponíveis2121/04/23

Page 22: Introdução ao

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;

Page 23: Introdução ao

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;

Page 24: Introdução ao

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;

Page 25: Introdução ao

Tipos de Game ObjectCameraCapturam e mostram o mundo ao

jogador;

2521/04/23

Page 26: Introdução ao

Tipos de Game ObjectGUI Text e GUI TextureTexto e Imagens em 2D;Útil para criação da HUD;

Page 27: Introdução ao

Tipos de Game ObjectParticle SystemSistema de Partículas, formado por:

Emissor, animador e renderizador;

2721/04/23

Page 28: Introdução ao

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

*

Page 29: Introdução ao

ComponentesPodem ser associados a Game

Objects;Definem:

Comportamento;Aparência;

Podem ser scripts;Vamos analisar alguns.

Page 30: Introdução ao

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;

Page 31: Introdução ao

Exemplo de Mesh(em destaque)

Page 32: Introdução ao

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/...

*

Page 33: Introdução ao

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;

Page 34: Introdução ao

Tipos de componentesHinge JointSimulação de dobradiça;

Page 35: Introdução ao

Tipos de componentesSpring JointSimulação de mola;Distância máxima de separação e

retorno à posição original;

Page 36: Introdução ao

Tipos de componentesFixed JointConexão entre 2 corpos;Similar à hierarquia de

transformação;Útil quando os corpos podem ser

desconectados durante a simulação;

*

Page 37: Introdução ao

Scripts JavaScript, C# e Boo;Criação em Assets > Create;Scripts são associados a Game Objects

como componentes;

Page 38: Introdução ao

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;

Page 39: Introdução ao

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;

Page 40: Introdução ao

A seguir, alguns fragmentos de códigos usando o Unity

4021/04/23

Page 41: Introdução ao

ExemploFaz um objeto girar

var velocidade = 5.0;

function Update ()

{

print("Olá, Mundo");

transform.Rotate(0, velocidade*Time.deltaTime, 0);

}

Page 42: Introdução ao

ExemploMove a posição a partir do teclado

function Update ()

{

transform.Translate(Input.GetAxis("Horizontal"),

0,

Input.GetAxis("Vertical"));

}

Page 43: Introdução ao

ExemploOlha para um alvo

var alvo : Transform;

function Update ()

{

transform.LookAt(alvo);

}

Page 44: Introdução ao

PrefabsPrefabs são

objetos reutilizáveis armazenados na Project View;

Funcionam como modelos de objetos;

Page 45: Introdução ao

ExemploCria um novo objeto – Instantiate

var novoObjeto : Transform;

function Update ()

{

if(Input.GetButtonDown("Fire1"))

{

Instantiate(novoObjeto,

transform.position, transform.rotation);

}

}

Page 46: Introdução ao

Exemplo Carrega outro nível

Application.LoadLevel("Nome nivel");

Page 47: Introdução ao

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"); }

Page 48: Introdução ao

ExemploDestruir o objeto atual

function AplicarDano() {Destroy(gameObject);

}

4821/04/23

*

Page 49: Introdução ao

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

Page 50: Introdução ao

Mais material?

http://www.brunocampagnolo.com/engines2010/

5021/04/23