AVENGERS OF BALDURAN
  JOGOS NEVERWINTER NIGHTS 2 TUTORIAIS POR DENTRO DOS DIÁLOGOS

Escrito por Nasher.

O sistema de diálogos do Neverwinter Nights 2 é muito parecido com o do jogo original. No entanto, alguns aspectos e parâmetros importantes foram alterados. Neste tutorial, demonstrarei como seus diálogos poderão ser escritos utilizando grande parte dos recursos que o Toolset disponibiliza. Este é um passo a passo para escrever diálogos poderosos e desvendar sua anatomia.

 

Conteúdo
. Por onde começar?
. Criando um novo diálogo
. Adicionando apresentação e respostas
. Tokens
. Recortando e colando nós
. Ligando os nós
. Brincando com a estupidez e mais
. Ações
. Testes de perícia
. Diálogos contínuos e interferência de terceiros
. Diálogos aleatórios
. Brincando com câmeras
. Dicas interessantes
. Conclusão

 

Por onde começar?
Escrever diálogos em um documento de texto pode ser uma tarefa exaustiva e frustrante, principalmente para aqueles que preferem escrever os diálogos antes ao invés de criá-los diretamente no Toolset. Não chega a ser um problema quando tais diálogos não passam de alguns ou um simples parágrafo, ou de perguntas e respostas curtas (como uma “árvore sem muitos troncos”), mas o verdadeiro problema aparece quando discorremos em textos onde o tamanho é importante, normalmente estando ligados a NPCs importantes ou que precisam disponibilizar grandes amontoados de informação para o jogador. Neste caso, quando se tenta criar tal diálogo em um editor de texto como o Word, as várias “perguntas” e “respostas” do NPC e do jogador, podem se tornar confusas e de difícil acesso (e algumas ramificações poderão ficar sem continuação pela desatenção do criador).

Particularmente, eu prefiro usar o Excel para trabalhar com diálogos extensos. Como demonstrado na foto abaixo, é possível ter uma visão mais privilegia do seu trabalho, além de ser possível criar colunas bem melhores e mais organizadas do que as que usei apenas como exemplo. Como sempre é possível copiar e colar seus parágrafos para outras células, não se preocupe caso um parágrafo comece a “apertar” outros. Além disso, caso queira verificar a ortografia, basta primeiramente escrever seus diálogos no Word.

É possível também adicionar comentários clicando com o botão direito sobre a célula e escolhendo “Inserir Comentário”, para adicionar alguma informação relevante (como “Fim do diálogo”, valor em xp, perícia utilizada, etc.)

Por último, dois detalhes. Por incrível que pareça, o jogo (ainda) não suporta certos acentos, em especial o til (~). Terrível, não é mesmo, já que usamos o infeliz em grande parte do nosso vocabulário. Mas há uma notícia boa e uma ruim. A boa é que felizmente Steve_Sum, do Nwvault, fez um upload com uma fonte corrigida – e que suporta todos os acentos da nossa língua. A ruim é que infelizmente não existe uma fonte assim para a expansão MotB – e por isso teremos de aguardar ou um update da mesma, ou a Obsidian tomar vergonha na cara e corrigi-la definitivamente. Sem a atualização da fonte você se verá cercado de erros ortográficos e palavras falhas. Você também poderá encontrar a fonte atualizada aqui mesmo na Balduran, em Correções > Neverwinter Nights 2.

O outro detalhe é que trataremos o personagem do jogador como PC neste tutorial. Portanto, PC = personagem do jogador.

 

Criando um novo diálogo
Nós vamos criar um diálogo para o poderoso lich. Não aprofundarei em detalhes ou criarei frases mais elaboradas, afinal isto é apenas um tutorial.

Crie um novo módulo e um novo diálogo (há várias maneiras de se fazer isso, mas talvez a melhor seja clicando em File > New > Conversation).

 

Adicionando apresentações e respostas
Com o editor de diálogos aberto, você verá uma grande caixa branca contendo apenas a palavra “Root.” Clique nela com o botão direito e então em “Add.” A tela que aparecer será a primeira coisa que o NPC dirá, e como normalmente isso significa uma saudação, escreva algo para o nosso Lich dizer, como: “Bem-vindo a minha cripta secreta!”

Agora, adicione algumas respostas que o jogador poderá escolher. Para criar respostas, clique com o botão direito sobre a linha “Bem-vindo a minha cripta secreta!” e escolha novamente “Add” quantas vezes você quiser para adicionar mais de uma resposta. Para este exemplo, crie 4 frases: “Qual é o seu nome?”; “Você é mesmo tão poderoso?”; “Você tem uma coroa legal.”; e “Adeus.”

Se você cometeu um erro de digitação, basta clicar na linha em que se encontra o erro e corrigir diretamente na caixa de texto logo abaixo da área de diálogo principal.

Agora, vamos nos aprofundar um pouco mais, e fazer com que o Lich responda a cada resposta do jogador. Para criar uma resposta do NPC para cada resposta do jogador, basta clicar com o botão direito sobre a frase e selecionar “Add.” Crie respostas como: “Meu nome é Lichazar!” (em relação à pergunta “Qual é o seu nome?”); “Sim, eu posso dizimar reinos de olhos fechados e de mãos atadas! Ahm, esqueça a parte dos olhos fechados...” (em relação à pergunta “Você é mesmo tão poderoso?”); “Sim, eu tento mantê-la livre desta umidade.” (em relação à resposta “Você tem uma coroa legal.”).

Não adicionaremos resposta para o nó “Adeus.” do jogador, afinal queremos que o diálogo termine com ela.

 

Tokens
Os tokens são variações de palavras, utilizados para se adequar a determinadas definições do personagem do jogador, ou do ambiente. Por exemplo, o token <boy/girl> é usado em um diálogo das criaturas para determinar o sexo do personagem do jogador. Em uma frase como “Hello there, my <boy/girl>”, caso o personagem do jogador seja masculino, o NPC dirá “Hello there, my boy.” Note que os tokens são palavras inglesas, portanto de pouco uso para nós. Na realidade, os tokens que não representam palavras inglesas e que serão mais utilizados em módulos brasileiros são os de nome, como <FirstName>, <FullName> e <LastName>. Todos os outros ficariam estranhos em módulos de língua portuguesa.

A melhor forma de diferenciar os sexos é colocando (a) ao final da palavra masculina. Para colocar um token, aperte a flecha na tela em que estiver escrevendo o diálogo, escolha o token, e clique em “Insert.”

Vale ressaltar algumas notas especiais sobre alguns tokens específicos. Particularmente, sobre os tokens <StartHighlight>, <StartAction>, e </Start>.

<StartHighlight> torna o texto azul, normalmente usado para dar ênfase a uma palavra ou frase do nó. O token deve sempre ser usado no início da palavra a ser colorida de azul, e ao final desta deve-se colocar </Start>. (Exemplo: “Meu nome é <StartHighlight>Lichazar!</Start>”.)

<StartAction> torna o texto verde, normalmente usado para as escolhas dos jogadores que representam ações ao invés de diálogo (como o resultado de um teste de perícia). O token deve sempre ser usado no início da frase a ser colorida de verde, e ao final desta deve-se colocar o token </Start>. (Exemplo: <StartAction>[Sucesso]</Start>.)

Também existe o <StartCheck>, o qual torna a cor do texto vermelha, normalmente usado para identificar que naquele nó haverá um teste de alguma perícia. O token deve sempre ser usado no início da palavra a ser colorida de vermelho, e ao final desta deve-se colocar </Start>. (Exemplo: <StartCheck>[Bluff]</Start>.)

É claro que nenhum desses tokens especiais são regras, e podem ser usados da maneira como preferir.

Nota importante: Há um bug relacionado à cor oferecida por tais tokens. As palavras ou frases aparecerão coloridas dentro do jogo, mas assim que você passar o cursor do mouse sobre elas e depois tirá-lo, a cor desaparecerá, ou melhor, se transformará na tradicional cor azul que compõe os diálogos. Até a versão 1.10 do jogo este bug não havia sido corrigido (mas já fora reportado J).

 

Recortando e colando nós
Se você acidentalmente colocou um nó no lugar errado, ou mudou de idéia quanto ao local, você pode clicar no nó, clicar com o botão direito sobre ele, e escolher “Cut”, então colá-lo em um nó do NPC (vermelho) ou do jogador (azul) apertando Ctrl + V ou clicando com o botão direito no nó que irá recebê-lo e escolhendo “Paste.”

Nós de resposta do jogador (azuis) só podem ser colados sobre nós de NPCs (vermelhos), e vice-versa.

 

Ligando os nós
Fácil até o momento? Parece que sim. Mas e agora?

Após o Lich dizer sua segunda linha (que vale para qualquer uma das respostas que o jogador responder), a conversa terminará. Mas não queremos que isso termine prematuramente.

Nós queremos que cada uma das linhas do Lich siga com as mesmas opções como no início da conversa (menos aquela a qual o jogador escolhe). Para fazer isso, nós podemos copiar um nó (da mesma maneira que cortamos um nó, mas desta vez selecionando “Copy” ou invés de “Cut”) e colá-lo em um novo lugar. Mas não faremos desta forma, pois se decidíssemos escrever algo diferente, teríamos de mudar a linha individualmente cada vez que ela aparecesse. Pior, teríamos que colocar respostas a cada nó que surgisse, e nunca chegaríamos a um fim!

Mas como eu disse, não faremos desta forma. É para isso que existem os comandos “Set Link Destination” e “Insert Link.” Clique com o botão direito sobre o nó “Você é mesmo tão poderoso?” e escolha a opção “Set Link Destination.”

Agora selecione o nó “Meu nome é Lichazar!”, clique com o botão direito sobre ele, e escolha a opção “Insert Link.”

Note que o nó “Você é mesmo tão poderoso?” aparece logo após o nó “Meu nome é Lichazar!”, mas de certa forma alterado: ele está... cinza. Ele, na verdade, não é um nó, e sim uma ligação para o nó “Você é mesmo tão poderoso?”, o qual já aparece. Em linhas gerais, o diálogo pula para aquele nó, portanto não precisamos nos preocupar em colocar lá as demais respostas do Lich, pois elas já estão no nó ligado.

Agora faça a mesma coisa com os nós “Você tem uma coroa legal.” e “Adeus.” e ligue-os no nó “Meu nome é Lichazar!”

Ainda não acabou. Ligue os nós apropriados sob os outros nós do Lich também.

Já conseguiu visualizar o que todas essas ligações significam? Quando o jogador conversa com o Lich, ele tem 4 opções de resposta (“Qual é o seu nome?”, “Você é mesmo tão poderoso?”, “Você tem uma coroa legal.”, e “Adeus.”). Assim que o jogador escolhe qualquer uma das três primeiras respostas, o Lich responderá de forma apropriada e as outras 3 opções de resposta (que o jogador não escolheu) aparecerão automaticamente para ele fazer uma nova escolha. Como a opção “Adeus.” não está ligada a nenhum nó, ela será a única opção que terminará (ou continuará, caso você não queira que ela termine) a conversa. Todas as outras ficarão em um “looping” eterno para que o jogador possa fazer todas as perguntas ao Lich.

Para ter a visão definitiva do trabalho, salve o módulo e teste-o no jogo. Mas antes, salve seu diálogo, coloque a criatura (no caso, um Lich) no cenário, e nas propriedades dela, na tabela “Conversation”, escolha o nome do seu diálogo salvo. Ah, não se esqueça de alterar a facção do Lich, caso contrário ele irá te atacar! (É claro que você sempre pode testar o diálogo em um NPC de facção não-hostil desde o início.)

Nota: No NwN 1, a opção de ligação de nós está com o nome “Paste as Link.” Para ligar um nó a outro, clique com o botão direito no nó desejado, selecione “Copy”, e clique com o botão direito no nó que receberá a ligação e escolha “Paste as Link.”

 

Brincando com a estupidez e mais
Se você já jogou a campanha original do NwN 1 feita pela Bioware com um personagem de baixa inteligência, certamente notou mudanças nos diálogos, onde as respostas que o personagem podia dizer pareciam confusas ou nitidamente soavam estúpidas. “Uhhh... mim ser melhor de bom.”

É claro que para se obter tal efeito é necessário escrever os mesmos diálogos duas (ou até mais - ver detalhes mais à frente) vezes, o que pode ser cansativo. Mas vale a pena? Pode apostar que sim!

Vamos adicionar mais três opções de diálogo para o PC logo abaixo do primeiro nó do Lich “Bem-vindo a minha cripta secreta!” (clique com o botão direito neste nó e adicione as seguintes respostas): “Uhh... Qual seu nome?”, “Coroa bonita...” e “Tchau-tchau.”

E as respostas do Lich? Utilize as mesmas já criadas (é claro que sempre podemos escrever respostas únicas para respostas estúpidas de personagens burros, mas não vamos complicar desnecessariamente as coisas no momento). Clique com o botão direito nas respostas estúpidas do jogador e adicione as mesmas respostas do Lich já criadas.

Agora vamos criar ligações da mesma forma que fizemos com as respostas do PC inteligente (note que eu não recriei a resposta “Você é mesmo tão poderoso?”, portanto você não precisará ligá-la).

Tuuuudo bem... Mas como faremos o jogo entender quando é um personagem burro ou inteligente que está falando com o Lich, fazendo com que ele escolha o diálogo certo para cada um deles? Para tanto, sim, será necessário um script (já pré-fabricado).

Escolha todos os nós de resposta que você quer que apareça apenas para PCs inteligentes (no nosso caso: “Qual é o seu nome?”; “Você é mesmo tão poderoso?”; “Você tem uma coroa legal.”; e “Adeus.”). Note que na tabela logo abaixo existem subtabelas (Conditions/Action/Node/Animations). Com a tabela “Conditions” selecionada, clique no botão “Add” enquanto estiver com um nó selecionado. Na opção marcada para você escolher um script, escolha o script “gc_check_stats.”

Antes de continuarmos, descreverei rapidamente tal script. O script “gc_check_stats” checa os seis atributos do PC (Força/Destreza/Constituição/Inteligência/Sabedoria/Carisma), fazendo com o nó de diálogo apareça caso o PC cumpra as condições impostas pelo script. O valor dos atributos precisará ser IGUAL ou MAIOR para que isso ocorra. No nosso caso, queremos que as quatro respostas inteligentes do PC apenas apareçam se este cumprir um valor mínimo de inteligência.

Clique uma vez no botão “Refresh”, que fica ao lado do script. Dois parâmetros aparecerão: “nStat (Int)” e “nVal (Int).” O primeiro significa qual atributo o nó utilizará (no caso, inteligência). Todos os atributos possuem um número de identificação, descrito no corpo do script. Pela foto abaixo, notamos que o atributo inteligência possui valor 3:

Como o “nStat (Int)” define o atributo, nada mais certo do que colocar o valor 3 em seu campo de preenchimento:

O segundo parâmetro, “nVal (Int)”, identifica o valor, ou quanto de determinado atributo o PC precisa ter para que o nó apareça. Como a média de inteligência dos seres normais, em D&D, é 10, coloquemos 10 no “nVal (Int).”

Resumindo: O nó apenas aparecerá para PCs com inteligência 10 ou mais. Faça o mesmo com todos os outros nós, como já dito (“Qual é o seu nome?”; “Você é mesmo tão poderoso?”; “Você tem uma coroa legal.”; e “Adeus.”)

Tudo muito bom, não é mesmo? O problema é que, se você testar agora este diálogo, terá uma surpresa bastante desagradável se jogar com um PC com 10 de inteligência ou mais: todos os nós, inclusive os nós de resposta estúpida, aparecerão. Como fazer para os nós estúpidos aparecerem apenas para PCs com inteligência 9 ou menor, então?

Fácil. Escolha todos os nós de resposta que você quer que apareçam apenas para PCs estúpidos (no nosso caso: “Uhh... Qual seu nome?” “Coroa bonita...” e “Tchau-tchau.”), e faça o mesmo procedimento realizado com os nós inteligentes, e coloque o valor 10 no parâmetro “nVal (Int).”

“Mas se o script checa se o PC tem um atributo MAIOR ou IGUAL ao número adotado, todas as respostas continuariam aparecendo para o PC mesmo assim, correto?”

Correto, mas há um detalhe muito pequeno que altera tudo completamente. Note que ao lado da opção que você seleciona o script há uma caixinha branca descrita como “Not.” Tique-a.

Essa caixinha “Not” simplesmente inverte o comando do script. Se antes ela confirmava se determinado atributo do PC era MAIOR ou IGUAL que o valor adotado na opção “nVal (Int)”, com a opção “Not” ligada ele passará a determinar se o atributo do PC é MENOR que o valor adotado na opção “nVal (Int)”. Logo, se um PC com inteligência 10 conversar com o Lich, todos os nós que tiverem o script verificando uma inteligência MENOR que 10 não aparecerão, pois a condição não foi cumprida. Já um PC com inteligência 9 ou menor terá todas as opções de resposta estúpida disponíveis, enquanto as que requerem inteligência MAIOR ou IGUAL a 10 não aparecerão.

Para visualizar em jogo, teste o diálogo com dois personagens (um com inteligência 10 ou mais, e outro com 9 ou menos).

A “mágica” não termina por aí. O Toolset de NwN 2 permite criarmos diálogos que só apareçam nas condições mais variadas possíveis. No exemplo acima verificamos a inteligência do PC, mas podemos verificar muito mais, como classe, raça, nível, alinhamento, outros atributos, sexo, etc. No foto abaixo, notem que eu criei mais uma opção de resposta estúpida para personagens burros, mas não apenas isso – para que tal resposta apareça, o PC também terá que possui uma Força mínima de 14:

(Note que o script checando a força do personagem não possui a caixa “Not” ticada, pois queremos que o PC possua Força MAIOR ou IGUAL a 14. Já o script de Inteligência precisa ter o “Not” ticado, pois queremos que o PC possua Inteligência MENOR que 10.)

Você pode criar diversas possibilidades de diálogos que só apareçam quando certas condições forem cumpridas (por exemplo, um diálogo que só apareça se o PC for um Mago/Drow/Masculino/Neutro/de Inteligência maior ou igual a 16/de 5º nível). A sua criatividade é o limite.

Abaixo segue uma breve descrição sobre alguns scripts de condição:

“gc_background”: Checa o background do PC. A linha de diálogo só ocorrerá se o PC tiver determinado background (como Devout, Farmer, Bully, etc.);

“gc_check_class”: Checa a classe do PC. A linha de diálogo só ocorrerá se o PC for de determinada classe (ele deve ao menos possuir um nível nela). Muito útil (quando não usado diretamente o script “gc_check_class_level”) para criar fortalezas para classes, como em Baldur’s Gate (Atenção: Há fortes indícios de que este script não funciona mais desde a versão 1.10 do jogo.);

“gc_check_classpr”: Idem acima, mas checa se o PC possui determinada classe de prestígio;

“gc_check_gold”: Checa se o PC possui a quantia adotada de ouro. Possuindo um número igual ou maior, o diálogo ocorrerá. Em multiplayer, a opção “nMP (Int)” deve ser marcada com 1 se você quiser que o jogo verifique a quantia de ouro de todos os PCs.

“gc_check_item”: Checa se o PC possui determinado item em seu inventário. No parâmetro “sItem (String)” deve ser colocada a tag do item. Se você quiser que o jogo cheque se o item está com algum membro do grupo (e não apenas com o PC), ligue o parâmetro “bCheckParty (Int).”

 

Ações
As ações representam, de alguma forma, uma “movimentação” no diálogo. Essa movimentação pode ser traduzida como uma recompensa para o jogador (ouro, xp, itens, etc.), a realização de uma animação, um comando de ataque, etc. Há diversas ações que podem ocorrer em um nó de diálogo, e agora veremos como uma delas funciona.

Suponhamos que queiramos que o Lich ataque o jogador. Adicione um nó (pode ser sem condição alguma mesmo) onde o jogador possa dizer “Por favor me mate!”, e uma réplica do Lich, dizendo “Tudo bem!” É claro que isso não será suficiente para fazê-lo atacar. É necessário um script.

Selecione o nó do Lich (“Tudo bem!”), e clique na subtabela “Actions” (ao lado de “Conditions”). Escolha o script “ga_attack.” Por incrível que pareça, está tudo pronto para ser testado dentro do jogo!

O Lich irá atacá-lo até a morte desta forma. Note que o script possui um parâmetro chamado “sAttacker (String).” Como não preenchemos nada neste campo, a criatura atacou o PC, pois esta é a ação padrão do script. Se você quiser que o Lich ataque outra criatura senão o PC (NPC, companheiro, outra criatura, placeable, etc.), basta colocar a tag dela neste campo.

Abaixo segue uma breve descrição sobre alguns scripts de ações:

“ga_alignment”: Esta ação muda os valores do alinhamento do PC (usado exaustivamente durante a campanha oficial). O parâmetro “nActType (Int)” determina o quanto a ação do PC afetou seu alinhamento [(em uma escala de +3 (Santo) até -3 (Demoníaco)], enquanto que o parâmetro “bLawChaosAxis (Int)” determina se a alteração ocorrerá na esfera Good/Evil (se deixado com valor 0) ou na esfera Law/Chaos (se o valor for 1);

“ga_give_gold”: Esta ação dá uma quantia de ouro ao PC, determinada no parâmetro “nGP (Int).” Se você quiser que todos os jogadores recebam a mesma quantia (num jogo multiplayer), marque o valor 1 no parâmetro “nAllPcs (Int).”

“ga_give_xp”: Esta ação dá uma quantia de xp ao PC, determinada no parâmetro “nXP (Int).” Se você quiser que todos os jogadores recebam a mesma quantia (num jogo multiplayer), marque o valor 1 no parâmetro “nAllPcs (Int).”

“ga_remove_feat”: Esta ação remove um talento de uma criatura, jogador, ou dos jogadores. O parâmetro “sTarg (Int)” determina qual criatura terá seu talento removido. Se deixado em branco, removerá do PC. O parâmetro “nFeat (Int)” determina o número do talento a ser removido (a lista e os números dos talentos podem ser encontrados no arquivo feats.2da, em View > 2da File...). Se você quiser que o talento seja removido de todos os jogadores (num jogo multiplayer), marque o valor 1 no parâmetro “bAllPcs (Int).”

“ga_restoration”: Esta ação lança um feitiço de “Greater Restoration” no alvo. O parâmetro “sTarget (String)” define qual criatura será atingida pelo efeito através de sua tag. O parâmetro “bFactionWide (Int)” define se toda a facção da criatura será atingida pelo efeito. Se sim, deve-se colocar o valor 1. Também pode ser usado para restaurar o grupo inteiro do PC, como companheiros e outros jogadores em multiplayer. Já o parâmetro “bGroupWide (Int)” define se o grupo inteiro do alvo é restaurado (no caso de você usar “ginc_group”). Se sim, deve-se colocar o valor 1.

“ga_open_store”: Esta ação abre uma loja onde o jogador poderá comprar e vender objetos. O parâmetro “(String)” define a tag da loja a ser aberta.

 

Testes de perícia
Até o momento sabemos como criar uma árvore de diálogo repleta de galhos e ramificações. Mas o mais interessante nos aguarda em suas folhas e frutos!

Se você jogou a campanha oficial de NwN 2, certamente notou que em diversos diálogos aparecem opções de resposta onde o jogador realizará um teste de perícia. Caso ele obtenha sucesso, um determinado nó será ativado; caso contrário, outro nó será apresentado. Muitos testes de perícia em diálogos se baseiam nas mais comuns, como Bluff, Diplomacy e Intimidate. Normalmente seria justo trazer as três opções no mesmo diálogo, afinal nossos personagens nem sempre terão uma determinada perícia se apenas uma delas aparecer reiteradamente. Nem sempre isso acontece na campanha oficial, prejudicando o roleplay dos PCs. É justo, mas é exaustivo. Afinal, longos diálogos que alcancem todos os tipos de PCs requerem paciência para serem escritos. Porém, como eu já disse, o resultado final valerá a pena. Seus jogadores agradecerão!

Pois bem, vamos criar então um teste de “Bluff” simples (e bobo, mas como exemplo é perfeito). Logo após a apresentação do Lich (“Bem-vindo a minha cripta secreta”) crie mais uma resposta possível para o PC: “Eu acho que a sua coroa ficaria melhor em mim.”

Contudo, como desta vez criaremos um nó que obrigará o jogador a realizar um teste de perícia, antes da frase escreva “[Bluff]” (ou qualquer coisa que preferir, da forma que preferir. Até .-=^Bluffzors^=-. serve). Não só isso: após escrevê-lo, cerque a palavra com um dos comandos de token explicados anteriormente. Como normalmente usamos o token <StartCheck> para denotar testes de perícia, coloque-o antes da palavra, e ao final dela coloque o token </Start>. Ficará desta forma: <StartCheck>[Bluff]</Start> “Eu acho que a sua coroa ficaria melhor em mim.” (sem as aspas, é claro.)

Agora crie duas respostas possíveis para o Lich a partir desse nó (afinal o Lich terá de responder uma frase para caso o PC obtenha sucesso no teste, e outra para caso ele falhe), como: “Hm, acho que você tem razão.”; e “Acho que você ficaria melhor morto.”

Agora faça a mesma modificação que fizemos no nó do PC, mas desta vez colocando as palavras [Sucesso] e [Falha] no início dos respectivos nós do Lich. Seria bom colocar um token para colorir as palavras também, por isso usaremos o <StartAction>. O resultado final será: “<StartAction>[Sucesso]</Start> Hm, acho que você tem razão.” e “<StartAction>[Falha]</Start> Acho que você ficaria melhor morto.”

Para finalizar, crie uma resposta do PC para cada nó de resposta do Lich. Qualquer frase servirá, como “Pode ter certeza.” (para a resposta “Hm, acho que você tem razão.”) e “Uh oh.” (para a resposta “Acho que você ficaria melhor morto.”).

A foto abaixo ilustra o que você deverá estar visualizando no momento:

Finalmente, teremos novamente que recorrer à ajuda de um script para tornar o teste realidade. Selecione o nó “<StartAction>[Sucesso]</Start> Hm, acho que você tem razão.” e adicione uma condição. No campo “Script”, escolha o script “gc_skill_dc” e clique em “Refresh.” Note que dois parâmetros surgiram: “nSkill (Int)” e “nDC (Int).” O primeiro parâmetro está relacionado a qual perícia será testada. Para ver a lista completa das perícias que o script comporta, procure no corpo do texto logo abaixo do campo verde. Como podemos notar, as perícias suportadas são:

0: APPRAISE
1: BLUFF
2: CONCENTRATION
3: CRAFT ALCHEMY
4: CRAFT ARMOR
5: CRAFT WEAPON
6: DIPLOMACY
7: DISABLE DEVICE
8: DISCIPLINE
9: HEAL
10: HIDE
11: INTIMIDATE
12: LISTEN
13: LORE
14: MOVE SILENTLY
15: OPEN LOCK
16: PARRY
17: PERFORM
18: RIDE
19: SEARCH
20: CRAFT TRAP
21: SLEIGHT OF HAND
22: SPELL CRAFT
23: SPOT
24: SURVIVAL
25: TAUNT
26: TUMBLE
27: USE MAGIC DEVICE

(Nota: “Discipline” e “Ride” não são suportadas, afinal a primeira deixou de existir e a outra ainda não tem uso, pois não temos montarias “montáveis” ainda.)

A perícia “Bluff” possui o valor de identificação 1, e por isso colocaremos esse valor no campo “nSkill (Int).” O parâmetro “nDC (Int)” está relacionado à dificuldade do teste (ou CD – Classe de Dificuldade). Para fins de teste, coloque o valor 15.

Tudo pronto. Não precisaremos alterar nada no nó em que ocorre a falha do teste porque ele obrigatoriamente aparecerá no caso do primeiro nó de resposta do Lich (o de sucesso) falhar. Salve o diálogo e teste no jogo.

 

Diálogos contínuos e interferência de terceiros
Se você já jogou a campanha oficial, certamente notou que em diversos momentos um NPC fala, continuamente, diversos nós em seqüência, sem que o jogador possa interferir ou responder diretamente até o momento adequado. Para se obter tal efeito, é necessário fazer com que as respostas do jogador não sejam válidas. Para tanto, vamos dar seqüência em um dos diálogos de nosso Lich. Após o nó “Por favor me mate!” (e a resposta, “Tudo bem!” – NOTA: Retire o script de ação que colocamos aqui anteriormente; você não quer que o Lich te ataque mais!), clique nesta última e adicione vários nós. Porém, a cada nó de resposta do jogador, não escreva nada nele, ou melhor, simplesmente apague a linha “<< Enter text here >>”. Ao se criar um nó em cima destes, o Toolset automaticamente os transformará em “[Continue]”

Como vemos na foto acima, foram criados os nós “Tem certeza, mestre?”, “...Certeza de que, idiota?!”, “É que eu nunca vi ninguém 'pedir' para morrer. Pode ser um truque!”, e “Hm... tens razão, servo patético. Quanto a você, saia de perto de mim, suicida!” Vemos também que após um desses nós o jogador teria algo a responder, mas que fora apagado e o Toolset automaticamente os deixou como [Continue]. Pois bem, se você testar agora este diálogo, verá que o Lich irá falar todas essas novas linhas em seqüência, sem a intrusão do jogador!

“Mas por que você criou uma seqüência de respostas sem sentido?”

Realmente, as linhas que eu criei soaram confusas apenas com o Lich as dizendo. Mas há um propósito para elas: e se colocássemos um terceiro em nosso diálogo?

Abra a tabela de “Creatures” em seu Toolset e adicione um commoner qualquer. Ele será o escravo de nosso Lich. Em sua tag, coloque algo como “super_commoner”. Nós faremos com que uma terceira pessoa (o commoner) opine no meio de nosso diálogo com o Lich. Ao final, você verá como é fácil adicionar quantas pessoas você desejar num único diálogo!

Selecione o nó “Tem certeza, mestre?” e a subtabela “Node” no quadro logo abaixo (ao lado de Conditions/Actions/Animations). Agora, procure pela linha “Speaker.”

Este parâmetro identifica, através de uma tag, quem irá falar tal linha de diálogo. Se você selecionar um nó de resposta do jogador, verá que não é possível determinar outro speaker a não ser o próprio jogador: apenas as linhas vermelhas (dos NPCs) podem ter outro interlocutor senão o próprio NPC.

Com a linha “Tem certeza, mestre?” selecionada, determine como “Speaker” o nosso commoner, colocando sua tag “super_commoner” no espaço em branco. Você não precisa escrever: basta selecionar a flecha de menu do lado direito, abrir o nome de sua área, e clicar duas vezes na tag de sua criatura.

Faça isso também na linha “É que eu nunca vi ninguém 'pedir' para morrer. Pode ser um truque!”, salve, e teste seu diálogo. Você presenciará uma seqüência de discussão entre o Lich e seu escravo sobre se seu personagem deve ou não morrer!

Agora, vamos fazer com que um olhe para o outro durante o diálogo (afinal, se ambos ficarem olhando para você não teremos o efeito completo de que realmente estão conversando entre si). No nó “Tem certeza, mestre”, no qual você determinou como “Speaker” o escravo do Lich, procure pelo parâmetro “Listener.” Este parâmetro determina para qual criatura o NPC que atualmente está falando o nó irá olhar. Se deixado em branco, ele olhará para o PC, mas não queremos isso; queremos que ele olhe para o Lich. Portanto, coloque a tag do Lich neste parâmetro (da mesma forma como no parâmetro “Speaker”, você não precisa escrever a tag: basta selecionar a flecha de menu do lado direito, abrir o nome de sua área, e clicar duas vezes na tag de sua criatura.). No nó “...Certeza do que, idiota?!”, coloque a tag do escravo no “Listener”, já que o Lich deverá olhar para ele quando dizer este nó. E, finalmente, no nó “É que eu nunca vi ninguém 'pedir' para morrer. Pode ser um truque!”, coloque novamente a tag do Lich no “Listener”. No último nó do Lich (“Hm... tens razão, servo patético. Quanto a você, saia de perto de mim, suicida!”) ele não precisará olhar para seu escravo, e sim para o PC. Logo, deixe em branco. Pronto!

Como vemos, é possível adicionar uma imensa discussão entre vários personagens (que estejam na mesma área!) diferentes. Foi desta forma que a Obsidian criou diversas seqüências de diálogos entre o jogador e seus companheiros.

 

Diálogos aleatórios
Deixemos de lado a conversa com o Lich para aprendermos a lidar com outra forma de diálogo: o aleatório!

Diálogos aleatórios normalmente são colocados em NPCs figurantes, aqueles que povoam seu mundo (sua cidade, por exemplo) mas que não possuem grande importância. São aqueles NPCs sem nome, ou de nome genérico (aldeão, cidadão, criança) que não irão dizer nada de importante, a não ser algumas linhas aleatórias e repetitivas de diálogo. Eles estão lá apenas para adicionar imersão e uma sensação de vida ambiental.

Para começarmos, crie um novo diálogo em File > New > Conversation. Agora, crie 5 novos nós a partir da linha “Root”, e escreva algo como “Oi.”, “Olá.”, “Tudo bem?”, “Como vai?” e “Lindo dia.” Não crie nenhuma resposta do jogador.

Agora chegou o momento de adicionarmos o aspecto de aleatoriedade nestes 5 nós. Para tanto, precisaremos do script “gc_rand_1of”, encontrado na subtabela “Condictions” do nó.

Este script usa os valores de parâmetro de 2 até o número máximo de nós que irão possuir o efeito aleatório [(iMax (Int)]. O valor inicial é 2 porque um dos nós sempre irá acontecer.

Logo, adicione o script “gc_rand_1of” em quatro dos cinco nós (“Oi.”, “Olá.”, “Tudo bem?” e “Como vai?”). Não incluiremos na linha “Lindo dia.” porque ela sempre irá aparecer.

Como temos 5 linhas aleatórias, o valor máximo do parâmetro “iMax (Int)” será 5. No script do nó “Oi.” coloque o valor 5; no script do nó “Olá.” coloque o valor 4; no script do nó “Tudo bem?” coloque o valor 3 e no script do nó “Como vai?” coloque o valor 2. Vale ressaltar que o script inicia seu valor em 2, pois um dos nós sempre irá aparecer (no nosso caso, o nó que sempre irá aparecer é “Lindo dia.”, por isso não colocamos valor nele). Se você tivesse 10 nós para sofrerem o efeito de aleatoriedade, por exemplo, você teria que colocar os valores iniciando em 10 no primeiro nó, 9 no segundo, 8 no terceiro, e assim por diante, até o valor 2.

Tudo pronto. Dê um nome ao seu diálogo, salve-o, e adicione-o a uma criatura qualquer (de preferência alguém não hostil, obviamente). Dentro do jogo você verá que tal criatura dirá uma frase diferente cada vez que for clicada (no nosso caso, cada nó terá 20% de chance de aparecer).

 

Brincando com câmeras
Finalmente, um dos detalhes que eu mais gosto de criar durante a realização de um diálogo: o foco das câmeras!

Você certamente notou que em um diálogo em formato “cutscene” (onde aparece uma tarja preta na parte superior e inferior da tela), a cada nó dito pelos personagens a câmera aleatoriamente escolhe uma posição na área para focar sua realização. Como vemos, o jogo já nos fornece jogadas de câmera sem que tenhamos de modificar nada nos diálogos para conseguirmos o efeito.

Todavia, muitas vezes o jogo escolhe uma posição infeliz para mostrar determinado nó do diálogo, exibindo coisas que definitivamente acabariam com a imersão da conversa (como por exemplo, a câmera aparece atrás de um NPC que encobre toda a visão, ou atrás de um placeable, ou cortando metade do corpo de um gnomo pois ele é muito baixo para aparecer na cena, etc.). Felizmente, podemos remediar isso com câmeras criadas por nós mesmos, as quais focarão o que e como quisermos determinada criatura, parte do cenário, etc.

É claro que, assim como construir diferentes diálogos para diferentes raças, personagens burros, classes, modificadores de habilidades, etc. pode ser um trabalho hercúleo, colocar câmeras criadas por nós mesmos para diferentes nós de diálogo, embora extremamente fáceis, pode se tornar um teste de paciência. O ideal, na maioria das vezes, é criar algumas câmeras para nós particulares, onde você deseja que determinado detalhe ou ângulo seja focado, deixando os nós menos importantes com o efeito aleatório padrão do jogo.

Criar câmeras é muito fácil. Na tabela “Blueprints”, clique em “Static Cameras” e depois, no espaço “Empty”, clique na única opção que aparecer. O ícone de uma câmera aparecerá no ponteiro de seu mouse. Coloque-a na área.

Manuseá-la poderá se provar um empecilho. Os comandos são:

Page Up/Page Down (ou shift + botão de rolagem do mouse): Da mesma forma como com os placeables, esses botões elevam ou abaixam a câmera;

Shift + botão direito do mouse pressionados com movimentos para esquerda ou direita: Este comando fará com que a câmera se mova no mesmo eixo, mas sua posição será alterada de forma circular no eixo Z.

Shift + Ctrl + botão direito do mouse pressionados com movimentos para esquerda ou direita: Este comando fará com que a câmera se mova no mesmo eixo e posição, mas permitirá que você a posicione como quiser no eixo X, deixando-a de ponta cabeça, por exemplo.

Shift + Alt + botão direito do mouse pressionados com movimentos para esquerda ou direita: Este comando fará com que a câmera se mova no mesmo eixo e posição, mas permitirá que você a posicione como quiser no eixo Y, fazendo com que ela olhe para cima ou para baixo, por exemplo.

Após você ter treinado um pouco seus comandos, chegou a hora de posicionarmos as câmeras. Observe a foto abaixo:

Podemos ver na imagem o Lich e seu escravo, e mais três câmeras. Cada câmera possui uma tag única: neste caso em particular, a primeira câmera possui a tag “lichcam_1”, a segunda “lichcam_2” e a terceira “lichcam_3”. Você poderá colocar a tag que desejar em cada uma delas, mas para efeito de exemplo, nomeie-as desta forma.

Agora vamos formatar o foque de cada uma delas. Para tanto, basta clicar em uma das câmeras e depois na janela “Preview”, ao lado de “Properties.”

Como podemos ver, a primeira câmera selecionada mostra um foco frontal do Lich, perfeito para iniciar o diálogo de boas vindas da criatura. Note que você poderá ajustar o foco da câmera com a opção “Preview” ligada para obter a máxima precisão do que a câmera focará no nó de diálogo. Observe que as outras duas câmeras estão com focos peculiares também: uma focando o torso e cabeça do Lich, e a outra focando as costas do Lich e de seu escravo.

Agora vamos colocá-las em ação. Abra o diálogo do Lich, selecione o nó “Bem-vindo a minha cripta secreta!”, e clique na subtabela “Node”, no quadro abaixo. Note que existe um parâmetro chamado “Camera Settings”, com um botão “+”. Clique nesse “+”. Isso fará vários outros parâmetros surgirem. No parâmetro “StaticCamera”, coloque a tag da primeira câmera (no nosso caso, “lichcam_1” – note que você não precisa escrever a tag: basta selecionar a flecha de menu do lado direito, abrir o nome de sua área, e clicar duas vezes na tag da câmera). Agora, no parâmetro “Mode”, escolha a opção “Static Camera”. Você notará que o primeiro parâmetro, “Camera Settings”, irá sofrer um update automático.

Pronto. Acabamos de definir uma câmera para o nó “Bem-vindo a minha cripta secreta!”. Se você salvar seu diálogo e módulo, e testar dentro do jogo agora, quando você conversar com o Lich você deverá ver algo mais ou menos assim:

Demais, não? E extremamente fácil. Agora que você já sabe como criar câmeras próprias, utilize as outras duas para criar seu próprio foco em outros nós de diálogo. Note que você poderá usar a mesma câmera em mais de um nó. Portanto, se desejar que todos os nós foquem o Lich como na foto acima, basta definir os parâmetros da mesma forma que fez com este nó em todos os outros.

 

Dicas Interessantes
Crie seu diálogo antes, conforme já exposto no início do tutorial. Montá-lo diretamente no Toolset apenas resultará em frustração quando você se deparar com a falta de uma linha de diálogo, ou o surgimento de uma idéia nova que você gostaria de encaixar no meio de um monte de linhas já postas, por exemplo;

Nem sempre você poderá querer que os jogadores vejam testes de perícia, como diplomacia, blefar, intimidar, etc. Basta não escrevê-los no início do nó de diálogo; isso preenche o encontro com alguns requintes de surpresa (mas é claro que o jogador saberá que ali houve um teste quando ler o log de mensagens);

Se o teu módulo/campanha é voltado para o bom e velho roleplay, onde companions tornarão tudo mais divertido, é imprescindível que você crie interações entre eles. Isso torna o jogo muito mais vivo e inusitado; basta apenas você criar dois (ou mais) nós principais idênticos (que saem diretamente da “root”) e em cada um deles verificar se determinado companion está presente ou não no grupo com o script “gc_is_in_party”. Se ele estiver, aquele nó principal será disparado; caso contrário, ele fará um “fallthrough” até o seguinte que atingir as condições;

Para diálogos entre NPCs sem grande importância (como comerciantes, camponeses, etc.) ou que sempre estarão em contato com os jogadores, é aconselhável utilizar o formato de diálogo do NwN 1. Passar diversas vezes pelo formato cinematográfica desnecessariamente tira o sentido especial do mesmo.

 

Conclusão
Este tutorial está longe de ser chamado de completo. Porém, agora você provavelmente já tem conhecimento sobre toda a estrutura dos diálogos, e isso te permitirá explorar todas as condições, ações e outros detalhes que não foram apresentados aqui. O mais importante é ser criativo e dosar a paciência conforme a sua mente molda tudo aquilo que há de mais interessante num CRPG: a interação entre o personagem e o seu mundo!

Seções
Publicidade