Author
fausto
View
39
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
Introduo ao
Aquecimento para a Global Game JamBruno 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.
**
Caractersticas do UnityEditor de NveisFortemente integrado com a execuo do jogo;**
Caractersticas do UnityEditor de NveisSuporte a Drag & Drop e customizao;**
Caractersticas do UnityEditor de NveisEditor de terrenos e lightmaps;**
Caractersticas do UnityGrficosSuporte a Direct3D 9 e OpenGL;**
Caractersticas do UnityImportaoImportao de modelos, texturas, bones e animaes de Maya, 3DS, Cheetah 3D, Blender, Wavefront obj...Heightmaps, Fontes, audio.**
**
Caractersticas do UnityShadersEfeitos de Glow, Blur, Noise, etc**
Caractersticas do UnityFsica / PhysXSuporte a corpos rgidos;Junes;Ragdolls;Wheel Collider para jogos de carro;**
Caractersticas do UnityScriptingLinguagens de Scripting:JavaScript (muuuito rpido, palavra!);C# (Mono);Boo (similar a Python).
**
Vamos para a prtica!**
Interface bsica**
Interface bsicaScene View (Cena): editor de nveis;Project View (Projeto): arquivos do projeto;Hierarchy View (Hierarquia): objetos que esto na cena e sua relao;Game View (Jogo): Visualizao da aplicao sendo executada;Inspector View (Inspetor): Acesso aos componentes dos objetos;**
Navegao na Scene ViewPrincipais Atalhos:Q, W, E, R;ALT + mouse;Leitura altamente recomendada:http://unity3d.com/support/documentation/Manual/Learning%20the%20Interface.htmlhttp://docwiki.unity3d.com/uploads/Main/GUI%20Essentials.pdf
**
AssetsArquivos do Projeto;
Game ObjectsElementos de um jogo;Arquitetura baseada em composio;Objeto de jogo especificado atravs da composio de vrias funcionalidades (COMPONENTES);Todo game object j nasce com um componente transform;Cada GameObject um repositrio de componentes.
**
Componente TransformPosicionamento (x, y, z) [W], rotao (ngulo) [E] e escala [R];**
Local Space e World SpaceX, Y e Z so em relao ao elemento pai;**
Game Objects disponveis**
Tipos de Game ObjectCube, Sphere, Capsule, Cylinder, Plane Cubo, esfera, cpsula, cilndro e plano;Cada um est associado a um componente Mesh Filter com aspecto diferente;Colide com outros corpos por padro;
Tipos de Game ObjectLuzesPoint light: Luz proveniente de um ponto;Luz com localizao especfica;Espalha a partir do ponto;Spotlight:Vem de um ponto;Localizao especfica;Gera cone de luz;
Tipos de Game ObjectLuzesDirectional Light:Vem de uma direo;No tem localizao especfica;Luz paralela;Mais forte nas reas quadradas;Mais fraco nas angulaes;Sol;
Tipos de Game ObjectCameraCapturam e mostram o mundo ao jogador;
**
Tipos de Game ObjectGUI Text e GUI TextureTexto e Imagens em 2D;til para criao da HUD;
Tipos de Game ObjectParticle SystemSistema de Partculas, formado por:Emissor, animador e renderizador;**
Tipos de Game ObjectRagdollSimulao no estilo boneco de pano;til para representao de mortos;Ver video:http://www.youtube.com/watch?v=g0lTE4sCyKI *
ComponentesPodem ser associados a Game Objects;Definem:Comportamento;Aparncia;Podem ser scripts;Vamos analisar alguns.
Tipos de ComponentesMeshCada modelo formado por polgonos;Um conjunto de polgonos 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, Animao.Projetos Exemplo:FPS, Customizao de Personagenshttp://www.turbosquid.com/Search/3D-Models/free/fbx http://www.open3dproject.org/...
*
Tipos de componentesFsicaBaseado no engine de fsica PhysX (Nvidia);
Rigidbody: Objeto que age sobre o controle da fsica;Constant Force: fora constante; Colliders:Geometrias bsicas de coliso;Box, Sphere, Capsule, Mesh, Wheel (roda), Raycast;Joints:Junes;Restries no grau de liberdade;
Tipos de componentesHinge JointSimulao de dobradia;
Tipos de componentesSpring JointSimulao de mola;Distncia mxima de separao e retorno posio original;
Tipos de componentesFixed JointConexo entre 2 corpos;Similar hierarquia de transformao;til quando os corpos podem ser desconectados durante a simulao;*
ScriptsJavaScript, C# e Boo;Criao em Assets > Create;Scripts so associados a Game Objects como componentes;
Alguns eventos importantesUpdate: executada uma vez por frame;FixedUpdate: chamada de tempos em tempos em um intervalo fixo (fsica);OnCollisionEnter: chamado quando ocorre a coliso;
Referncias a componentestransform: posicionamento, rotao e escala;rigidbody: corpo rgido;animation: controle dos ciclos de animao;.renderer: exibio do componente em cena;audio: fonte de audio;collider: geometria de coliso;
A seguir, alguns fragmentos de cdigos usando o Unity**
ExemploFaz um objeto girarvar velocidade = 5.0;function Update () {print("Ol, Mundo");transform.Rotate(0, velocidade*Time.deltaTime, 0);}
ExemploMove a posio a partir do tecladofunction Update () {transform.Translate(Input.GetAxis("Horizontal"), 0,Input.GetAxis("Vertical"));}
ExemploOlha para um alvovar alvo : Transform;function Update () {transform.LookAt(alvo);}
PrefabsPrefabs so objetos reutilizveis armazenados na Project View;Funcionam como modelos de objetos;
ExemploCria um novo objeto Instantiatevar novoObjeto : Transform;function Update () {if(Input.GetButtonDown("Fire1")) { Instantiate(novoObjeto, transform.position, transform.rotation);}}
Exemplo Carrega outro nvel
Application.LoadLevel("Nome nivel");
ExemploEnvia uma mensagem para um outro objeto
// O outro objeto deve possuir uma funo chamada // AplicarDanofunction OnCollisionEnter (collision : Collision) {collision.gameObject.SendMessage("AplicarDano");}
ExemploDestruir o objeto atual
function AplicarDano() {Destroy(gameObject);}***
ConclusesO Unity pode ser til em uma Game Jam pois: fcil de integrar o trabalho de um programador e de um artista;J vem com funcionalidades de fsica , editor de ambientes, testes de coliso, etc;Cuidados!Nem sempre um jogo 3D fcil de se balancear;**
Mais material?http://www.brunocampagnolo.com/engines2010/
**
Fonte da Imagem:Unity Game Development Essentials, p. 10Fonte da imagem:http://glprogramming.com/red/chapter03.html