tópicos especiais i: engines introdução ao 1º semestre 2010 > pucpr > pós jogos bruno c....

48
Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

Upload: internet

Post on 16-Apr-2015

108 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

Tópicos Especiais I: EnginesIntrodução ao

1º Semestre 2010 > PUCPR > Pós Jogos

Bruno C. de PaulaBruno C. de Paula

Page 2: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

ResumoVamos conhecer a engine Unity 3DFocaremos nas principais ferramentas e recursos que o Unity disponibilizaNas próximas aulas nos preocuparemos com o scripting destes recursosOu seja: hoje vamos trabalhar com restrições!

Page 3: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

O que é o Unity?

Unity é um ambiente multiplataforma de desenvolvimento de jogos;

Suporte a: Windows / MacOS / Web / Wii / iPhone.

311/04/23

Page 4: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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

execução do jogo;

411/04/23

Page 5: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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

customização;

511/04/23

Page 6: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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

611/04/23

Page 7: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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

711/04/23

Page 8: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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.

811/04/23

Page 9: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

911/04/23

Page 10: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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

1011/04/23

Page 11: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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

1111/04/23

Page 12: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

Características do UnityScriptingLinguagens de Scripting:

JavaScript (muuuito rápido!);C# (Mono);Boo (similar a Python).

1211/04/23

Page 13: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

Vamos para a prática!

1311/04/23

Page 14: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

Interface básica1411/04/23

Page 15: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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;

1511/04/23

Page 16: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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

1611/04/23

Page 17: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

AssetsArquivos do Projeto;

Page 18: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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.

1811/04/23

Page 19: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

Componente Transform

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

1911/04/23

Page 20: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

Local Space e World Space

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

2011/04/23

Page 21: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

Game Objects disponíveis2111/04/23

Page 22: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

Tipos de Game ObjectCameraCapturam e mostram o mundo ao

jogador;

2511/04/23

Page 26: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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

Page 27: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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

Emissor, animador e renderizador;

2711/04/23

Page 28: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

ComponentesPodem ser associados a Game

Objects;Definem:

Comportamento;Aparência;

Podem ser scripts;Vamos analisar alguns.

Page 30: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

Exemplo de Mesh(em destaque)

Page 32: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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

Page 35: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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

retorno à posição original;

Page 36: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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

como componentes;

Page 38: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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

4011/04/23

Page 41: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

ExemploFaz um objeto girar

var velocidade = 5.0;

function Update ()

{

print("Olá, Mundo");

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

}

Page 42: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

ExemploMove a posição a partir do teclado

function Update ()

{

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

0,

Input.GetAxis("Vertical"));

}

Page 43: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

ExemploOlha para um alvo

var alvo : Transform;

function Update ()

{

transform.LookAt(alvo);

}

Page 44: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

PrefabsPrefabs são

objetos reutilizáveis armazenados na Project View;

Funcionam como modelos de objetos;

Page 45: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

ExemploCria um novo objeto – Instantiate

var novoObjeto : Transform;

function Update ()

{

if(Input.GetButtonDown("Fire1"))

{

Instantiate(novoObjeto,

transform.position, transform.rotation);

}

}

Page 46: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

Exemplo Carrega outro nível

Application.LoadLevel("Nome nivel");

Page 47: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

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: Tópicos Especiais I: Engines Introdução ao 1º Semestre 2010 > PUCPR > Pós Jogos Bruno C. de Paula

ExemploDestruir o objeto atual

function AplicarDano() {Destroy(gameObject);

}

4811/04/23

*