• Nenhum resultado encontrado

GAMES - DESENVOLVIMENTO DE JOGOS COM UNITY

N/A
N/A
Protected

Academic year: 2021

Share "GAMES - DESENVOLVIMENTO DE JOGOS COM UNITY"

Copied!
9
0
0

Texto

(1)

GAMES - DESENVOLVIMENTO DE JOGOS

COM UNITY

CONTEÚDO PROGRAMÁTICO

Unity Essencial Introdução ao curso

Conferir infraestrutura, hardware, software

● Apresentação do professor ● Lista de alunos ● Introdução ao Unity

Visão geral da ferramenta

O que é game engine, diferença com relação a IDEs genéricos

Showcase (jogos feitos no Unity)

Comunidade, Asset Store, facilidade de achar material e ajuda

Plataformas: possibilidades e restrições

Possibilidade de muitas plataformas (PC, mobile, consoles, etc)

Consoles só com licença específica do Unity, e participação nos programas do fabricante (+Kits de

desenvolvimento)

Com Unity free é permitido comercializar o jogo até US$ 100.000,00 anuais

Na web há a restrição do WebPlayer e WebGL ainda não está estável

Programa do curso, projetos que serão desenvolvidos

Interface

Criar um novo projeto (selecionar a pasta)

(2)

Principais áreas do editor (cena, game, project, inspector, console)

Layouts do editor

Conceito de cena e game objects, criar (salvar) cena, adicionar objetos à ela

Sistema de eixos 3D, experimentos com cubos, Transform

Ferramentas de edição: pan, posição, rotação, escala, edição por vértices (atalhos)

Modos de visão: perspectiva vs ortográfico, menu de atalhos de vistas

Câmera (posicionamento)

Ativação da física com Rigidbody

Execução do jogo, pausa, execução frame a frame (atalhos)

Experimentos com Colliders, edição do formato do collider

Ativar/desativar objetos e componentes

Projeto do Unity (salvar, mover)

Salvar o projeto

Estrutura de um projeto Unity (conteúdo das pastas)

Armazenar toda pasta do projeto (zipar, colocar no pendrive, etc).

Abrir um projeto

Cuidado: não criar um projeto dentro de outro

Montagem de uma cena, parte 1

Hierarquia, posição, escala, rotação de objetos dentro de outros

Game objects dentro de outros (hierarquia) vs componentes (ficam "dentro" dos objetos)

Modelagem de estruturas com primitivas (plano, cubo, esfera, etc)

Vertex, Edge e Face

Câmera (completo)

Navegação FPS no editor (setas)

Montagem de uma cena, parte 2

Escala do editor (unidade: metro), uso do cubo para medir

Materiais, aplicação nos objetos, escala, escolha de shaders

Importação de texturas (diferença entre o arquivo e a textura importada)

Luzes (experimentos com diferentes tipos de luzes e cubos, habilitar sombra)

Prefabs

Criação de prefabs, conversão de objetos da cena

Utilização de prefabs

Mudanças de valores de componentes, reset, apply, revert

(3)

Terreno (completo)

Árvores (completo)

Montagem de ambientes externos, parte 2

Água (completo)

Skybox, ambient light, fog

Exercício: ajuste da iluminação da cena

Essencial da visão em 1ª pessoa

First Person Character Controller (completo)

Limite de áreas navegáveis (colliders invisíveis)

Exercício: criar um level de parkour (plataformas)

Scripts básicos, parte 1

Visão geral do Gameloop (conceito)

Criar script, apresentação do MonoDevelop

Métodos padrão (Start, Update)

Mudança de propriedades de componentes do próprio objeto

Exemplo: PlataformaAutomatica (apresentação das partes do script: variáveis (inspector), métodos)

Relação entre o MonoDevelop e o Unity, compila ao ganhar foco

Mais exemplos básicos:

Luz piscando, mudando de intensidade

Outros

Scripts básicos, parte 2

Input com teclado, configuração das propriedades do projeto

Exemplo: Lanterna (tecla F liga/desliga luz)

Exemplo: LargarBola (tecla Q cria um prefab de bola na frente do player criação dinâmica de

prefab)

Scripts básicos, parte 3

Detecção de colisão, OnCollisionEnter

Exemplo: Cestas para bolas: detecta que uma bola foi largada sobre ela

Triggers

Detecção de colisão, OnTriggerEnter, OnTriggerExit

Exemplo: PortaoAutomatico (ao entrar no trigger, muda a posição do portão)

Exemplo: PortaoAutomatico (precisa entrar no trigger e pressionar E)

(4)

RigidyBody (completo)

Tamanho e distribuição dos colliders vs distribuição da massa

Colliders estáticos, isKinematic

● Physics material ● Importância da escala ● Gravidade ●

Joints, ragdoll (boneco de cubos)

Scripts

Controle de RigidBody por código (forças)

Exemplo: Tiros e misseis

Exercício: level de destruição de paredes (feitas de cubos).

Essencial da visão em 3ª pessoa

3rd Person Character Controller (completo)

Correção dos vínculos das animações do modelo (o default vem com erro)

Anatomia do modelo: modelo, texturas, animações (visão geral)

Mecanim criação de visão em 3ª pessoa sem o componente

Animator (editor), estados e transições

Parâmetros

Script: controle de parâmetros via código

Exemplo: movimento do personagem

Câmera com follow

AssetStore e importação de modelos

Usando a AssetStore, baixando modelos (casas)

Importação de modelos de outras fontes (casas, personagens)

Importação de modelos contendo animações

Modelos humanóides compatíveis com Mecanim

Pacotes de animações mecanim (motion capture)

Áudio

Importação de clips de áudio (completo)

Audio Source (completo)

Audio Listener (completo)

(5)

OnGUI

Método para criação de interface

Essencial de veículos

Wheel colliders

Montagem de veículos, centro de massa e outros ajustes

Controle do veículos via código

Distribuição do jogo

Opções de qualidade

Publicação para Windows, Linux, Mac (completo)

Distribuição com ZIP

Exercício: distribuir o jogo para os colegas testarem

Publicação para Web

Webplayer opções básicas, limitações

WebGL opções básicas, limitações

Envio para o servidor (simulação)

Unity Intermadiário Introdução ao curso

Conferir infraestrutura, hardware, software

Apresentação do professor

Lista de alunos

Mais detalhes sobre o MonoDevelop (atalhos, configurações)

Formatação ao salvar ● Quebra de linha ● Tab ●

Instalação de outros editores

Microsoft Visual Studio

Linguagens suportadas

C# e JS

(6)

Explicação de scripts do curso essencial (nomes dos itens: o que é variável, função, método, etc) Variável e constante ● Tipos de dados ●

Operadores e tabela verdade

Estruturas de seleção If, else, switch

Função

Método

Métodos padrão e quando são chamados, explicação do sistema por trás disso.

Gameloop

Update, FixedUpdate, Start, Awake, OnEnable, OnDesable…

Awake antes do Start

Scripts do Unity, parte 1

Utilização de input (exemplos do curso essencial)

Detalhar mais os eixos

Exercícios

Exercícios com condições e teclas

Pegar exemplos anteriores

Exercícios com flags, contadores, acumuladores (plataforma automática e semelhantes)

Scripts do Unity, parte 2

Introdução a Orientação a Objetos

Classes, métodos e variáveis estáticos

Vetores 2D e 3D Vector3 ● Vector2 ●

Rotinas úteis, parte 1

Distância entre vetores, Lerp, etc.

Distancia entre objetos

Lerp para movimentação

(7)

Print e Debug.Log e Debug.Break

Scripts do Unity, parte 3

Atributos ● Enumerations ● Propriedades ● Operador “?” ●

Carga de cena (síncrona, assíncrona, aditiva)

Application.LoadLevel carrega outra cena. Ela deve estar adicionada nas propriedades de build.

Application.LoadLevelAdditive carrega a outra cena mesclando com a atual

Exercício: jogo de parkour (essencial) com fases passa de fase ao chegar no final das trilhas.

Exercitar a troca de cena (menu para fase, por exemplo, onde descarrega uma e carrega outra);

Exercitar também a carga aditiva (ir carregando pedaços da fase conforme o jogador chega neles

montar as fases de forma a se encaixarem);

Carga dinâmica de recursos

Pasta resources qualquer pasta chamada “Resources”, em qualquer local, terá todo seu conteúdo

incluído no jogo.

Cuidado para não deixar lixo nessa pasta aumentará o tamanho do jogo desnecessariamente.

O ideal é que todo asset seja referenciado no editor (inspector), de forma que o

Unity sabe quais carregar e quais ignorar por não serem utilizado em nenhum

lugar.

Carga de prefabs, texturas, text assets, áudio clips

Resources.Load(“nome do asset”) “nome do asset” é o nome do arquivo dentro de alguma pasta

Resources.

“nome do asset” não leva extensão e pode conter pastas (referenciando subpastas presentes na

pasta Resources). Caminhos são separados com a barra direita “/”.

Exemplos:

Renderer.material.mainTexture = Resources.Load("madeira") as Texture;

GameObject obj = Resources.Load("carro") as GameObject;

TextAsset myJson = Resources.LoaCargad("tabela") as TextAsset;

“tabela” deve ter extensão txt, html, htm, xml, json, csv, bytes, yaml, fnt

Acessar o texto do asset assim: string s = myJson.text;

(8)

Controle sobre a execução de scripts

Ordem de execução de Scripts específicos

Métodos de frame (Update, LateUpdate, FixedUpdate)

Configurações de time scale e fixed time step

● Time scale ● Time.TimeScale. ● Câmera lenta. ●

Zero não para a execução de update ou outros métodos.

Fixedupdate para de executar.

Implicações de mexer no fixed time step

Passo da física

Raycast, layers e tags

Layers e tags, acesso via código

● Rotinas de cast ● Raycast ● Spherecast ● Linecast ● Debuger ● Debug.DrawRay ● Debug.DrawLine ● GUI Avançada Inteligência artificial Navmesh ● Programação de bots ● Exercícios ● Animação no Unity

Recapitulação do Animator essencial (estados, parâmetros)

Blend Trees

Criação de clips de animação: timeline, janela Animation

Rotinas e eventos na timeline

● Corotinas ● Exercícios ● Lightmaps

(9)

Conceito de de lightmap, exemplos

Janela lightmap (completo)

Troca dinâmica de lightmap via programação

Exercício: experiência com lightmaps (gerar cenas diurnas, noturnas, experimentar com as opções).

State Machine Behavior

Salvar dados com PlayerPrefs

Sistemas de partículas

Shuriken (completo)

Desenvolvimento de projeto completo, com GD e assets do curso

Distribuição do jogo geração de instalador

Geração de instalador com In no Setup

Exercício: publicar e gerar instalador, teste do instalador dos colegas

Referências

Documentos relacionados

tes da Polícia Militar no que se refere à assistência previdenciária, educacional e à saúde, assegurados, para efeito de recebimento de benefícios ou ressarcimento de despesas,

Se a seção transversal de uma viga é duplamente simétrica, como no caso de uma viga de madeira com placas de cobertura de aço no topo e na base como na Figura 4, a linha neutra

Persistência e recidiva de carcinoma bem diferenciado da tireoide (CBDT) ocorrem em linfonodos dos compartimentos central e lateral do pescoço e, mais raramente, no tecido

[r]

a. Ao respeito dos direitos ou da reputação de outrem; b. À salvaguarda da segurança nacional, da ordem pública, da saúde e da moral públicas. Depreende-se disso que,

8º - No prazo máximo de 7 dias, antes do fim do semestre, definido em calendário acadêmico, o aluno deverá entregar ao Professor responsável pelo TCC a versão final

a) Produzir hipóteses. Sua finalidade é descobrir respostas para questões mediante a aplicação do método científico. As afirmativas a seguir estão relacionadas com esse

Como só tivemos acesso ao valor da verba destinada para a reparação de buracos apenas (e não destinada para a identificação e atendimento às solicitações de reparo