1 / 50

Introdução ao

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;

fausto
Download Presentation

Introdução ao

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Resumo Vamos conhecer a engine Unity 3D Focaremos nas principais ferramentas e recursos que o Unity disponibiliza

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

  4. Características do UnityEditor de Níveis • Fortemente integrado com a execução do jogo;

  5. Características do UnityEditor de Níveis • Suporte a Drag & Drop e customização;

  6. Características do UnityEditor de Níveis • Editor de terrenos e lightmaps;

  7. Características do UnityGráficos • Suporte a Direct3D 9 e OpenGL;

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

  9. Características do UnityShaders • Efeitos de Glow, Blur, Noise, etc

  10. Características do UnityFísica / PhysX • Suporte a corpos rígidos; • Junções; • Ragdolls; • Wheel Collider para jogos de carro;

  11. Características do UnityScripting • Linguagens de Scripting: • JavaScript (muuuito rápido, palavra!); • C# (Mono); • Boo (similar a Python).

  12. Vamos para a prática!

  13. Interface básica Hierarquia Cena Inspetor Projeto Jogo

  14. 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;

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

  16. Assets Arquivos do Projeto;

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

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

  19. Local Space e World Space • X, Y e Z são em relação ao elemento pai;

  20. Game Objects disponíveis

  21. 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;

  22. Tipos de Game ObjectLuzes Point 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;

  23. Tipos de Game ObjectLuzes Directional 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;

  24. Tipos de Game ObjectCamera • Capturam e mostram o mundo ao jogador;

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

  26. Tipos de Game ObjectParticle System • Sistema de Partículas, formado por: • Emissor, animador e renderizador;

  27. Tipos de Game ObjectRagdoll Simulação no estilo “boneco de pano”; Útil para “representação de mortos”; Ver video: http://www.youtube.com/watch?v=g0lTE4sCyKI *

  28. Componentes Podem ser associados a Game Objects; Definem: Comportamento; Aparência; Podem ser scripts; Vamos analisar alguns.

  29. Tipos de ComponentesMesh Cada 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;

  30. Exemplo de Mesh(em destaque)

  31. Sites com modelos gratuitos O site do Unity: Recursos Tutoriais: 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/ ... *

  32. 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;

  33. Tipos de componentesHinge Joint Simulação de dobradiça;

  34. Tipos de componentesSpring Joint Simulação de mola; Distância máxima de separação e retorno à posição original;

  35. Tipos de componentesFixed Joint Conexão entre 2 corpos; Similar à hierarquia de transformação; Útil quando os corpos podem ser desconectados durante a simulação; *

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

  37. 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;

  38. 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;

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

  40. ExemploFaz um objeto girar var velocidade = 5.0; function Update () { print("Olá, Mundo"); transform.Rotate(0, velocidade*Time.deltaTime, 0); }

  41. ExemploMove a posição a partir do teclado function Update () { transform.Translate(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); }

  42. ExemploOlha para um alvo var alvo : Transform; function Update () { transform.LookAt(alvo); }

  43. Prefabs Prefabs são objetos reutilizáveis armazenados na Project View; Funcionam como modelos de objetos;

  44. ExemploCria um novo objeto – Instantiate var novoObjeto : Transform; function Update () { if(Input.GetButtonDown("Fire1")) { Instantiate(novoObjeto, transform.position, transform.rotation); } }

  45. Exemplo Carrega outro nível Application.LoadLevel("Nome nivel");

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

  47. ExemploDestruir o objeto atual * • function AplicarDano() { • Destroy(gameObject); • }

  48. 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;

  49. Mais material? • http://www.brunocampagnolo.com/engines2010/

More Related