Construção de jogos com o motor unity3d (2013)

Post on 24-May-2015

11.185 views 0 download

description

Minicurso de "Construção de jogos com o motor unity3d (2013)" apresentado no 7º Congresso CCETEC da Univates - Lajeado - RS.

Transcript of Construção de jogos com o motor unity3d (2013)

Construção de jogos com o motor Unity3D

Eduardo Bonfandini

7º CCTEC - 2013 - Minicurso

Unity3D

Quem conhece a Unity3d?

http://portuguese.unity3d.com/

Objetivos

• Demonstrar a Unity3d• Informar suas capacidades• Ensinar o uso básico da ferramenta• Criar motivação para o uso.• Se divertir.

Apresentação

de vídeos

Tópicos gerais do minicurso

1. Introdução2. Básico3. Script4. Compilando5. Outras coisinhas legais.

PARTE 1

Introdução

http://unity3d.com

• Rica em funcionalidades.• Um motor (engine).• É um ambiente de desenvolvimento.• Engine e Ide 100% integrados.• Desenvolvido para criação de conteúdo 3D

interativos.• Provê “na caixa” uma listagem completa, para

alcançar conteúdo de alta qualidade e alta performance.

http://unity3d.com

• Pública para multi-plataformas.

• Reduz tempo de desenvolvimento,

• Reduze esforço e custo para fazer jogos.

• Comunidade ativa

• Ótima documentação• Fácil

Multi plataforma

• Pc• Mac• Web• Chrome• Wii• PS3• Xbox 360• Android• iPhone e iPad

Multi plataforma

• Versão 4:• Linux• Flash

• Editor:• Windows• Mac

Rica em funcionalidades.

• Códigos sem dor (Js, C#, Boo)• Controle preciso de qualidade• Previews instantâneos• 100 shaders prontinhos possibilidade de criação• Sombras em tempo real ou confeitadas (baked)

Rica em funcionalidades.

• Linear Space Lighting HDR

• Realtime Shadows

• Sun Shafts & Lens Effects

• Ambient Occlusion

• Lightmapping

Rica em funcionalidades.

• Interação com praticamente todos modeladores

• Blender, 3dStudio, Maya, SketchUp

Suporte a arquivos

Terrenos

• Terrenos:• Sculpt Like a Master• Trees, Bushes, Rocks, Grass• Detail Texture Painting• Lightmaps Integrated• Tree Creator

Exemplos

Física

• NVIDIA® PhysX®• Cloth• Soft Bodies• Rigidbodies

• Ragdolls• Joints• Cars• Materials

Som (F-mod)

• 3D ou 2D• Poder do Fmod• Filtros• High/Low pass• Distorção• Echo• Reverb

http://www.fmod.org/

Código

• Javascript (UnityScript)• C#• BOO ( Like python)• Integrado com IDE’s• Modifica objetos• Modifica editor• Novas funcionalidades• Código multi-plataforma• Código especifico

Internet

• Estados• Tempo real• Chamdas remotas

• Conexão com servidores• Web Browser• Conectividade web

Rica em funcionalidades.

• Prefabs• Asset manager

• Asset store• Customização

Partículas

• Partículas para todos os gostos• Particle 2d

Mão na massa

PARTE 2

Básicos

Interface geral

Editor Preview

ProjetoCena

Inspector

Conceitos

• Game Object • Create Other• Componentes• Colliders• Camera

PROJETO 1

MINI PROJETO COISAS AZUIS

NO EDITOR

Prefabs

• Prefabs são legais• Conteúdo compartilhado• Otimização• Mecha um e altere todos (ou não)• Aparecem no editor em azul

JAVASCRIPT

• UnityScript = Bom, bonito e barato• Similar ao JS do browser• Um objeto pode ter diversos scripts e eles

podem se comunicar

Uma variável é uma variável

• Seja no script, seja no editor

Esqueça OO clássico

• Orientação a objetos é legal• Coisas diferentes, conceitos diferentes• Script modulares, cada um com sua tarefa• Veja cada script como uma classe• Veja um script em um objeto como uma

instancia

Objetos/Variáveis

• gameobject• Transform• Ridigbody• Collider• audio• ...• ...• ...• Use a ide para o autocomplete

Métodos

• Start• Update• FixedUpdate• OnCollisionEnter• http://docs.unity3d.

com/Documentation/ScriptReference/Collider.OnCollisionEnter.html

• OnCollisionStay• OnCollisionOut• E MUITO MAIS! ...... (hehehe)

Criar caixa ao clique

function Update ()

{

if ( Input.GetMouseButton(0))

{

var selected = Random.Range(0,objects.Length*100) / 100;

//Debug.Log(selected);

var box = objects[selected];

var boxClone = GameObject.Instantiate(box,box.transform.position,Quaternion.identity);

}

...

Mover a câmera

var horizontal = Input.GetAxis ("Horizontal");

if ( horizontal > 0 )

{

transform.localPosition.x +=1;

}

else if ( horizontal < 0 )

{

transform.localPosition.x -=1;

}

Compilando

Não esquece de adicionar as cenas

Texturas por plataforma

Configurações

Projeto 2

Terreno

Terreno

5 minute project

Terrain + Asset Store

Belezinha?

PROJETO 3

Playground

Scene 1

Scene 2

Chão (plane, texture, bumpmap)

Manha de Gimp 1

• Tornar encaixável – Juntas perfeitas

Caixa (component,rigidbody)

Caixa

Luzes

• Direcional• Ponto• Holofote ( SpotLight )• Area

Bola ( physics material)

Árvore (cylinder)

PARTE FINAL

Tópicos para discussão

Dúvidas, sugestões e reclamações?

Tópicos para discussão

• Skybox• IsTrigger• Partículas• Asset Store• SVN (Version control = Meta files)• Plane simples

Fim?

• Física “avançada” (pêndulo, tecidos)• Terrenos• Ragdool• Modelos 3d• Scripts do Editor• Baked Lights• Animação 2d

Fim?

• Game Design• Level design• Character design• Sketchs• Layouts• Prototipagem