A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Unity 3D: Câmeras.

Apresentações semelhantes


Apresentação em tema: "Unity 3D: Câmeras."— Transcrição da apresentação:

1 Unity 3D: Câmeras

2 Unity3D Câmera = nossos olhos no game Câmeras variadas = tipo de jogo
Game: Mostra o que a câmera aponta Câmeras variadas = tipo de jogo 1a pessoa, 3a pessoa, fixa, top / side view Entender câmera como objeto 3D Posição : onde está no mundo Ângulo : para onde aponta (o que focaliza)

3 Unity3D Em todos os momentos do jogo Câmera mostra a ação do jogo
Câmera em uma posição (X,Y,Z) Câmera com uma rotação (X,Y,Z) resultado = cena do jogo Câmera mostra a ação do jogo Câmera essencial gameplay *

4 Unity3D Câmeras prontas : Unity Standard Assets -> Camera Scripts
Mouse Look: movimento mouse = ângulos da câmera Limites básicos de ângulos Normal 1a pessoa

5 Unity3D Código básico para Mouse Look } function Update () {
forca_angulo.y = Input.GetAxis("Mouse X"); forca_angulo.x = -Input.GetAxis("Mouse Y"); forca_angulo.z = 0; //adiciono a forca aos angulos atuais da camera angulo_camera += forca_angulo; //limites nos angulo_camera angulo_camera.x = Mathf.Clamp(angulo_camera.x, -30, 30); //rotar a camera diretamente - uso eulerAngles facilita a rotacao transform.eulerAngles = angulo_camera; }

6 Unity3D Smooth Look at Olhando para o player (alvo)
Fazer apontar para posição do foco Saber posição do alvo Ajustar ângulos para visualizar alvo + Separar modos de câmera = var

7 Unity3D Código para Smooth Look at var foco : Transform;
function Update () { if (Input.GetKeyDown("1")) { modo_camera = 1; } if (Input.GetKeyDown("2")) { modo_camera = 2; } if (modo_camera == 2) { transform.LookAt(foco); }

8 Unity3D Câmera em posição fixa, olhando o alvo var foco : Transform;
function Update () { if (Input.GetKeyDown(“3")) { modo_camera = 3; } if (modo_camera == 3) { transform.position.x = 0; transform.position.y = 10; transform.position.x = 2; transform.LookAt(foco); }

9 Unity3D Câmera em posição fixa, com ângulo fixo Top View / Side View
Planejar e setar posição e ângulos (fixos) function Update () { if (Input.GetKeyDown(“4")) { modo_camera = 4; } if (modo_camera == 4) { transform.position.x = 0; transform.position.y = 20; transform.position.z = -20; transform.eulerAngles(30, 0, 0); }

10 Unity3D Adicionalmente câmera pode ser Ortográfica (sem perspectiva)
Específica para algumas visões / jogos if (modo_camera == 4) { transform.position.x = 0; transform.position.y = 20; transform.position.z = -20; transform.eulerAngles = Vector3(30, 0, 0); camera.orthographic = enabled; camera.orthographicSize = 10; }

11 Unity3D Câmera 1a Pessoa Segue posição do player
Segue rotação do player + ângulos adicionais : Mouse Look Não movem o player – apenas a câmera Altura adicional + posição dos olhos

12 Unity3D Camera 1a Pessoa : Código Básico var jogador : Transform;
var altura_olhos = 0.5; if (modo_camera == 5) { transform.position = jogador.position; transform.position.y += altura_olhos; transform.rotation = jogador.rotation; }

13 Unity3D Camera 1a Pessoa : Código Básico + Ângulo adicional (cima / baixo) if (modo_camera == 5) { transform.position = jogador.position; transform.position.y += altura_olhos; //rotação basica X inclinação (TILT) move mouse aux_x += -Input.GetAxis("Mouse Y"); angulo_camera.x = jogador.rotation.x + aux_x; angulo_camera.y = jogador.eulerAngles.y; angulo_camera.z = jogador.eulerAngles.z; transform.eulerAngles = angulo_camera; }

14 Unity3D Câmera 3a pessoa, seguir em posição relativa ao player
Atrás, X distancia Acima, Y distancia + Olhar para o player Calcular posição relativa Em relação ao ângulo do player Trigonometria

15 Unity3D Posição relativa (em relação ao ângulo)
Trigonometria básica (Seno e Coseno) Classe Mathf. Sin e Cos = usam medidas em RAD Converter Rad em Degrees Rad = ângulo * Mathf.Deg2Rad; Grau = ângulo * Mathf.Rad2Deg;

16 Unity3D var dist_segue = -2; var altura_segue = 2;
if (modo_camera == 6) { var angulo = jogador.eulerAngles.y * Mathf.Deg2Rad; transform.position.x = jogador.position.x + dist_segue * Mathf.Sin(angulo); transform.position.y = jogador.position.y + altura_segue; transform.position.z = jogador.position.z + dist_segue * Mathf.Cos(angulo); transform.LookAt(jogador); }

17 Unity3D Orbitar player = posição relativa (ao ângulo) + ângulo adicional variável Câmera Estilo Matrix if (modo_camera == 7) { angulo_matrix += 1; transform.position.x = jogador.position.x + dist_segue * Mathf.Sin(angulo_matrix * Mathf.Deg2Rad); transform.position.y = jogador.position.y + altura_segue; transform.position.z = jogador.position.z + dist_segue * Mathf.Cos(angulo_matrix * Mathf.Deg2Rad); transform.LookAt(jogador); }

18 Unity3D Field of View (FOV) campo de visão Abertura da lente (Câmera)
Funciona como Zoom (sniper, binóculo...) Perspectiva maior (distância e velocidade) if (Input.GetKey("i")) { camera.fieldOfView += 5 * Time.deltaTime; } if (Input.GetKey("o")) { camera.fieldOfView -= 5 * Time.deltaTime;

19 Unity3D Render Port (view) Valores de 0..1 (porcentagem da tela)
Definição de tamanho Definição de posição na tela Valores de 0..1 (porcentagem da tela) Exemplo:

20 Unity3D Possibilidade de inserir mais câmeras de jogo (independentes)
Cada câmera com suas definições de tamanho e posição Cada câmera com sua posição e ângulos

21 Unity3D Definição de Corte (Clip)
Distancia da camera objetos não são renderizados Próximos e distantes = performance + necessidade de distancia por cenário e tipo de jogo Manter menor distancia possível (far) Near – próximos a câmera Far – distantes da câmera


Carregar ppt "Unity 3D: Câmeras."

Apresentações semelhantes


Anúncios Google