Sistemas de Câmera de Resident Evil 3 no Unity 5

Gunnar CorreaGunnar Correa08/10/2016 às 06:39:26 - 9.887 acessos

Aprenda a fazer o sistema de câmeras dos jogos pré-renderizados dentro do Unity 5.


Que os jogos de Playstation 1 deixam muita saudade em todos os fãs de bons jogos é fato, agora já pensou em criar um sistema de câmeras de um desses jogos? Pois bem, este é o objetivo deste artigo e videoaula.

O Playstation 1 roda apenas mídias de 700 MB, então para as desenvolvedoras da época era um enorme desafio criar um game com ótimo gráficos, sons, animações entre outros e tudo isso ser inserido dentro de um único disco. Alguns jogos eram distribuídos em dois CDs, como o caso do Evil Dead e Dracula 2.

Jogos como: Resident Evil, Sillent Hill, Parasite Eve, Alone in the Dark, Dino Crisis e Evil Dead, possuíam um gráfico muito bom para a época, incluindo as Cutscenes e trilhas sonoras, mas tudo isso só foi possível graças aos sistemas de câmeras pré-renderizadas, pois os desenvolvedores não perdiam espaços com modelos 3D. Basicamente todo o cenário de fato existiu, e em seguida foi feito uma renderização (salvar a imagem de um ponto de visualização em alta resolução, como um papel de parede) para que posteriormente fosse aplicado em um plano.

Resident Evil, Parasite Eve, Dino Crisis, Evil Dead, Alone in the Dark e Sillent Hill cover

Na imagem abaixo vemos vários Game Object com Box Collider, neles estão associados o script CameraColliderPosition, que é o script responsável por acessar o script CameraPosition e informar a rotação e posição para a câmera.

Para fixar nossa câmera em um determinado ponto é muito simples, basicamente precisamos de vários Game Objects espalhados pelo cenário informando a posição e rotação que a câmera deve assumir. Em seguida precisamos de vários Collider para que sirva como chave, eles devem acessar a câmera principal e informar qual posição e rotação correspondente área colidida a cêmera deve-se assumir.

Resumindo, há vários objetos que detectam uma colisão, se houver uma colisão, informamos qual a posição e rotação para a câmera ser alterada.

Box Collider com OnTriggerEnter

No Game Object Camera Position, temos associado o script Câmera Position, ele contém um array de sete posições do tipo GameObject. Definimos em cada posição os Game Object vazio que representa a posição e rotação que a câmera deve assumir quando o método setCameraPosition for chamado.

Game Object com posição e rotação para alteração do Transform da câmera

Todo o cenário foi criado dentro do Blender 3D com texturas do CGTexture. A trilha sonora foi obtida em um canal do Youtube, na qual apresenta o Save Game do Resident Evil 2.

Personagem Resident Evil test

Confira nossa aula completa abaixo, se inscreva no canal caso já não seja inscrito e curta o nosso vídeo. :D

CameraColliderPosition

using UnityEngine;
using System.Collections;

public class CameraColliderPosition : MonoBehaviour
{
    public int _pos;
    public GameObject _cameraObject;

    private CameraPosition _cameraPosition;
    void Start()
    {
        _cameraPosition = _cameraObject.GetComponent<CameraPosition>();
    }

    void OnTriggerEnter(Collider _col)
    {
        if (_col.gameObject.tag == "Player")
        {
            _cameraPosition._setCameraPosition(_pos);
        }
    }
}

CameraLook

using UnityEngine;
using System.Collections;

public class CameraLook : MonoBehaviour {

    public GameObject _player;
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
        this.transform.LookAt(_player.transform.position);
	}
}

CameraPosition

using UnityEngine;
using System.Collections;

public class CameraPosition : MonoBehaviour
{

    public GameObject[] _cameraPostion;
    public GameObject _camera;

    public void _setCameraPosition(int _posCameraCurrent)
    {
        _camera.transform.position = _cameraPostion[_posCameraCurrent].transform.position;
       _camera.transform.rotation = _cameraPostion[_posCameraCurrent].transform.rotation;
    }
}

Espero que tenham aprendido, até a próxima! :D


Unity 3D Resident Evil 3 Capcom Games Resident Evil Unity Resident Evil câmeras Câmeras Unity Terror game Resident Evil Fa

Compartilhe


Gunnar Correa

Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web (FIPP), Especialista em Tecnologias na Educação (Unoeste) e Pós-graduando em Segurança da Informação (Universidade Cruzeiro do Sul). Começou seus estudos na área de programação quando era criança, e atualmente está estudando desenvolvimento de jogos. É CEO do portal SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.



Site atualizado

Olá, nosso site recebeu uma nova atualização e por conta disso, alguns artigos ainda estão sendo atualizados. Dependendo do conteúdo que você procura, poderá encontrar imagens e trechos de códigos mal formatados.

Estamos trabalhando para normalizar todos os conteúdos, muito em breve, esse problema não mais existirá.


Comentários