CryENGINE: uma opção para indies – Parte 6/6

TEMPLATE_IMG_POST

Olá Pessoal. Último capítulo da série sobre os recursos que a CryENGINE oferece, fechando com as ferramentas para som. Neste post o Leonardo também disponibiliza seu trabalho completo, onde estão outros conceitos básicos sobre games e as referências que ele utilizou.

Quando comecei a fazer este trabalho, a CryENGINE era bem pouco documentada se comparada com outras engines (um dos motivos por eu tê-la escolhido), e as opções de licença para pequenos estúdios ou desenvolvedores independentes eram inviáveis para quem queria um investimento de baixo custo. Hoje em dia, a Crytek, empresa que criou a CryENGINE, oferece opções de licença para todos os tipos de desenvolvedores, desde o estudante (que foi o meu caso) com licença gratuita para uso não comercial, até grandes companhias com licenças completas e acesso ao código-fonte da engine (com custo elevado, logicamente).

Finalizando o nosso estudo sobre a CryENGINE, hoje vamos conhecer as funcionalidades do recurso Música e Som:

5.1 Sons Dinâmicos e Música Interativa

A música interativa é uma parte em destaque no jogo Cryshooter, uma vez que todo o jogo possui música de fundo. Esta funcionalidade permite que, de uma forma clara e intuitiva, sejam manipuladas as diferentes músicas que irão tocar no decorrer do jogo, ativadas por determinados eventos e seguindo uma programação lógica. A Figura 1 ilustra a utilização da funcionalidade aplicada dentro de um fluxograma.

FIGURA 1 – Sons Dinâmicos e Música Interativa

A figura acima exibe um nodo “Music:PlayPattern” interagindo com outros nodos através de eventos, responsáveis por deslocar o jogador de um ponto do mapa para outro ao entrar no Level 01 e também ativar a música de fundo deste Level. No jogo Cryshooter, este nodo “Music:PlayPattern” teve apenas alguns atributos utilizados, que são: Play (responsável por iniciar a música), Stop (responsável por parar a música), Pattern (responsável por guardar a música que irá ser reproduzida) e Finished (que dispara um evento quando a música chega no fim). O atributo Play é ativado sempre que um evento for recebido, que pode ser tanto o evento do jogador ter entrado no Level 01 quanto o evento da música ter chegado ao fim. O atributo Stop também é ativado sempre que um evento for recebido, porém estes eventos são externos à caixa de comentário “Warp To Level 01”, podendo ser tanto um deslocamento para fora do Level 01 quanto a execução da cena final do jogo.

Um atributo que deve ser utilizado com cuidado é o atributo Done. Este atributo é ativado não apenas quando a música chega ao fim, mas também quando é abortada. Portanto, a menos que seja necessário disparar o mesmo evento para ambas as situações, o correto é utilizar ou o atributo Finished ou o atributo Aborted.

5.2 Áudio Ambiental

O Áudio Ambiental é uma funcionalidade que, além de ter um uso simples e objetivo, aumenta ainda mais o realismo do jogo Cryshooter, caracterizando determinados pontos do jogo com sons ambientais, como por exemplo, o som da chuva presente no Level 01 que está coberto por nuvens e com uma relativa quantidade de água caindo do céu sobre todo o Level. A Figura 2 ilustra o resultado da funcionalidade aplicada no cenário Level 02 do jogo.

FIGURA 2 – Áudio Ambiental

A figura acima exibe o áudio ambiental aplicado em uma cachoeira pequena. A cachoeira é feita com o sistema de partículas, porém como citado anteriormente, algumas partículas não emitem som, o que se aplica a esta partícula em questão. Visando melhorar a identificação das partes importantes da figura acima, a mesma foi modificada de modo a aumentar a intensidade de determinadas linhas (na cor rosa e azul) em relação à intensidade original fornecida pela funcionalidade. Para dar ao jogador o realismo do som da cachoeira, devemos incluir um objeto no jogo do tipo AmbientVolume (identificado na figura acima pelo ícone com um alto-falante na cor azul), que armazenará o som ambiente a ser reproduzido. Todavia, este objeto sozinho não irá emitir um som, ele precisa de uma área para a engine saber em que parte do cenário ela deve reproduzir o som. Esta área pode ser tanto um objeto Shape (que cria um segmento de linhas) quanto um objeto AreaBox (que cria uma caixa com dimensões configuráveis). Ambos os objetos servirão para delimitar o alcance do som, porém como o objeto Shape não possui altura, o som não possui limites para esta direção, o que já não acontece com o objeto AreaBox, que o som fica limitado a altura da caixa.

FIGURA 2.A e 2.B – Criação e edição de um objeto do tipo AmbientVolume

Uma vez decidido qual objeto será utilizado para emitir o som, basta ligá-lo ao objeto AmbientVolume desejado, adicionando ao atributo Target do objeto Shape ou AreaBox o objeto em questão. A linha em azul exibida na figura 2 representa o resultado visual desta ligação.

FIGURA 2.C e 2.D – Criação e edição de um objeto do tipo Shape

Através da figura 2, pode-se observar que foi utilizado um objeto Shape (sem limites de altura), identificado pelas linhas na cor rosa. Quando o jogador entrar no objeto, gradualmente começará a escutar o som da cachoeira, e quando se afastar, gradualmente notará o som ficando mais baixo, até sumir.

5.3 Modos de Som

Os modos de som adicionam ao jogo Cryshooter, de uma maneira simplificada e altamente eficiente, equalizações específicas para um determinado local do jogo. Essas equalizações não são músicas nem sons específicos, apenas tratam-se de ajustes feitos no áudio nativo do jogo, como barulho dos passos do jogador, por exemplo. A Figura 3 ilustra o resultado da funcionalidade aplicada no cenário principal do jogo.

FIGURA 3 – Modos de Som

A figura acima exibe a funcionalidade aplicada sobre uma vegetação específica. Seu funcionamento é muito similar ao da funcionalidade “Áudio Ambiental”, a única diferença é que ao invés de ligarmos um objeto AmbientVolume ao objeto Shape ou AreaBox, agora ligamos um objeto SoundMoodVolume (identificado na figura acima pelo ícone com um alto-falante na cor cinza), que é responsável por armazenar a configuração dos equalizadores do jogo.

FIGURA 3.A e 3.B – Criação e edição de um objeto do tipo SoundMoodVolume

FIGURA 3.C – Gerenciador de Modos de Som

Conforme ilustrado na figura 3, tem-se um tipo específico de vegetação posicionada em um local onde o jogador pode pisar. Esta vegetação é repleta de pequenos galhos e folhas, portanto uma equalização que represente um tipo de atrito com esta vegetação se faz necessária. Para isso, foi selecionada a equalização in_cover. Todavia, para que essa equalização seja utilizada, é preciso armazená-la no atributo SoundMoodName do objeto SoundMoodVolume.

FIGURA 3.D e e3.E – Criação e edição de um objeto do tipo AreaBox

Uma vez armazenada a equalização, basta ligar o objeto SoundMoodVolume ao objeto que delimitará os limites do novo áudio, que neste caso, trata-se de um objeto AreaBox.

Conclusão

Chegamos ao fim do último capítulo da série CryENGINE. Sim, exatamente! Não haverá novos episódios, mas nada impede que você, desenvolvedor de jogos, continue estudando e aprofundando seus conhecimentos sobre esta incrível ferramenta, e quem sabe até outras engines?

Falando em aprofundar os conhecimentos, eu prometi no primeiro capítulo que ao término deste estudo seria disponibilizado aqui no blog o artigo original que foi utilizado para fazer esta série. Como promessa é dívida, segue a URL para acessar o artigo do trabalho de conclusão:

http://www.slideshare.net/LeonardoDalmina/artigo-tcc-2012

Finalizando, gostaria de lembrá-los que o mundo do desenvolvimento de jogos é imenso, permanece em constante evolução e sempre há o que aprender! Nosso estudo termina aqui, agora cabe a você, caro leitor, escolher quais serão seus próximos passos na estrada dos games!

Muito sucesso a todos!

– Leonardo Dalmina

Autor: Luiz Nörnberg Ver todos os posts de
Sou Bacharel em Ciência da Computação pela Universidade Católica de Pelotas (UCPel), onde também atuei como professor. Desde a época da faculdade (mais de quinze anos atrás) a paixão por jogos tem sido importante no meu direcionamento profissional. Sou sócio-fundador do Izyplay Game Studio, onde exerço o cargo de Diretor de Tecnologia. Sempre tive grande foco em desenvolvimento em Java, embora tenha migrando para a tecnologia Adobe AIR em função de sua portabilidade. Ah, e é claro, dou meus palpites no game design.

4 Comentários em "CryENGINE: uma opção para indies – Parte 6/6"

  1. Jhou 21/03/2014 at 13:21 - Reply

    Queria fazer um Jogo estilo “Crash Bandicoot” onde ve o Personagem correndo pelas Costas enfim, mas não sei como fazer isso com a Cryengine?
    Tenho o personagem feito no ZBrush animado no Blender e Maya, mas como uso a Engine? pois parece que ela só aceita Jogo de Tiro?? affs

    Como mudo o Personagem?? kk

    • Esdras Caleb Oliveira Silva 31/03/2014 at 11:16 - Reply

      O unity tem um tuorial de jogo em terceira pessoa
      https://unity3d.com/learn/tutorials/projects/stealth

      No mais creio que para fazer isso em qualquer engine vc tem que modificar a camera para que ela fique na posição do personagem que vc deseja

  2. adriano 03/04/2016 at 14:34 - Reply

    como fazer para criar cachoeira em cryengine 3

    • Everton Vieira 04/04/2016 at 21:03 - Reply

      Google! ;)

Deixar um Comentário