14 de dezembro de 2016

TmzDEV: Como criar uma missão no ArmA 3


Fala pessoal!

Hoje volto a falar de desenvolvimento, mais precisamente um pequeno tutorial de como criar uma missão no ArmA 3. É um conteúdo que geralmente só se encontra em inglês, então devo ajudar quem tem dificuldades em lhe dar com outra língua além do português.

Os passos e os processos são simples, eu não vou entrar em detalhes complexos de edição de mapa. Caso queira ver a versão em vídeo deste texto segue pro fim direto. Aqui veremos como configurar uma tarefa e o fim da missão com um objetivo apenas.

Eu não vou ensinar comandos básicos do editor e sim como criar a configuração simples de missão.




Os objetos

Primeiro de tudo: abra o "EDEN 3D Editor" no jogo (vai ter um botão gigante escrito EDITOR bem na janela inicial do jogo após o carregamento). Escolha um mapa, pra testar eu prefiro Stratis por ser menor e mais leve.

Eu vou usar os nomes dos objetos do ArmA 3 em português (você pode mudar a língua nas configurações do jogo). Você vai precisar de:

  • 2 Acionadores
  • 1 Tarefa
  • 1 Estado de Tarefa
  • 1 Soldado BLUFOR
  • 1 Soldado OPFOR


Definindo o jogador e o alvo

Ao colocar o primeiro soldado no mapa, ele será definido como "Jogador". Coloque primeiro um soldado BLUFOR no mapa.

Todos os objetos do ArmA 3 possuem opções de atributo, cada um com seus recursos particulares. Para abrir os atributos de um objeto basta clicar duas vezes sobre ele com o botão esquerdo do mouse ou clicar com o botão direito e selecionar a opção atributos. Sendo assim, defina o "Nome da variável" (nome do objeto).

Nome da variável:
jogador

Você pode e deve marcar APENAS UMA unidade com a opção "Jogador", isto é porque no modo de um jogador o "Jogador" é o primeiro controlado e é obrigatório. Se você quiser criar slots para mais jogadores deve adicionar mais soldados e definí-los como "Jogável".

Adicione um soldado OPFOR no mapa e desmarque a opção "Jogador" e "Jogável" caso estejam marcadas. Cuidado ao posicionar este, pois OPFOR e BLUFOR são inimigos e ele VAI TENTAR TE MATAR. Ele precisa de um nome, coloque como "sujeito".

Nome da variável:
sujeito

// Depois se aventure mudando as outras opções.



Configurando os acionadores

Você precisará configurar os acionadores para que ativem ações específicas baseado em condições.

Se tratando de acionadores, você terá sempre as opções de ativação e expressão. Você não precisa tocar em nada na categoria "Acionador: Ativação" neste caso, mas precisaremos determinar a condição (campo "Condição") de ambos para ativar, e no caso do acionador de conclusão da missão teremos que determinar uma ação posterior a condição ser estabelecida (campo "Na Ativação").

Como você pode ver nas fotos abaixo eu determinei um "Nome da variável" para cada acionador também. É muito importante que você defina estes nomes em objetos que trabalharão com alguma lógica, por exemplo: alvos de tarefas e objetos acionáveis.

No caso, eu defini o acionador de tarefa (t1) da seguinte forma:

Nome da Variável:
t1
Condição:
!alive sujeito;

O acionador de fim da missão (t2) segue a mesma lógica, porém temos que determinar a ação de conclusão da missão após ativar:

Nome da Variável:
t2
Condição:
!alive sujeito;
Na ativação:
["end1"] call bis_fnc_endmission;

Uma breve explicação das condições e ações usadas acima:

!alive significa "não está vivo", o sinal de exclamação (!, NOT) em lógica é usado como negação de uma expressão lógica. A palavra alive é "reservada" do ArmA 3 e é usada pra identificar se um objeto está "vivo". sujeito é o "Nome da variável" do alvo, logo !alive sujeito; significa "sujeito não está vivo" (Lembra do sujeito lá encima? Ele é o alvo!!!).

É importante pensar um detalhe aqui: como temos um acionador para "tarefa" e um para "fim de missão" as condições de fim sempre devem conter o que todas as tarefas pedem (a não ser que o objetivo seja opcional).

A linha ["end1"] call bis_fnc_endmission; é usada pra determinar o fim da missão (existe uma explicação mais profunda sobre cada pedaço da linha, mas não vou entrar neste ponto aqui).

Agora que temos os acionadores funcionando vamos definir a tarefa.


Definindo a tarefa

Agora teremos menos trabalho, definir a tarefa é muito fácil. Para definir uma tarefa você precisa de um "objeto de tarefa" e um "objeto de estado de tarefa". Antes de mais nada vamos configurar o estado de tarefa:

Nome da Variável:
tstate1
Especificação de sistema - Sistema: Definir estado da tarefa:
Marque a opção "Êxito"

Agora vamos configurar a tarefa:

Nome da Variável:
task1
Especificação de sistema - Sistema: Criar tarefa:
Proprietário: Grupos de objetos sincronizados.
ID de tarefa: t1 (obrigatório)
Título: Matar o sujeito (Nome da tarefa a ser exibido)
// depois explore mais as opções


Agora que temos o estado e a tarefa prontos precisamos ligá-los. Para conectar objetos relacionáveis, você usa a opção "Conectar > Sincronizar com" ao clicar com o botão direito do mouse num objeto:


Conecte os objetos de tarefa e o jogador tal como a imagem abaixo:



Testando a missão

Agora que temos tudo pronto, vamos pro teste!

Clique no botão de jogar no editor e mate o sujeito:


--

PRONTO! Agora você tem uma pequena missão com tarefas no ArmA 3!

De agora em diante explore as opções e tente adicionar mais tarefas ou otimizar os processos. Adicione mais inimigos e construa seu cenário!

Vale ressaltar que este é um tutorial bem focado em ensinar o básico, agora é sua vez de explorar este editor que está sensacional atualmente, antigamente tinhamos apenas um editor 2D que era terrível para criar as coisas.

E sobre o vídeo, segue abaixo o conteúdo deste tutorial em vídeo:



Veja mais aqui:



Dúvidas? Só comentar por aqui ou lá na página!
Até a próxima pessoal! o/