‫Olá e bem-vindo.
‫Nesta palestra, vamos adicionar o movimento do controlador para que possamos nos mover usando um
‫controlador, que é o que você está vendo acontecendo aqui, fazendo isso, usando um conjunto diferente de eixos.
‫Olhe para a direita e olhe para a direita.
‫Direita.
‫E veremos por que isso é necessário.
‫Vamos mergulhar e descobrir o porquê.
‫Então, queremos poder mover nossa cena usando o controlador.
‫Eu já posso fazer isso quando não estou no modo de jogo.
‫Então, queremos ser capazes de fazer o mesmo tipo de movimento com o pan com o joystick direito
‫e movendo-se para a esquerda e para a direita com o joystick esquerdo.
‫E também podemos subir e descer.
‫Mas isso não é algo que o aplicativo será capaz de fazer porque não é um vôo --.
‫Então o que vamos querer fazer é, em primeiro lugar, é fácil mapear o movimento.
‫O que temos que fazer é ir para as configurações do nosso projeto, ir até onde a entrada está, entradas do motor, e temos
‫nosso eixo de avanço e também temos nosso eixo de movimento à direita.
‫E é bem simples adicionar outro mapeamento, bem como W e S, podemos adicionar em nosso
‫gamepad.
‫Se olharmos no gamepad, você pode ver o thumbstick esquerdo, queremos o eixo y para avançar, para
‫mover para a direita.
‫Vamos adicionar novamente, os gamepads e é o gamepad, ainda o controle esquerdo.
‫Mas desta vez estamos fazendo o eixo xey e podemos ver se esse é o tipo certo de movimento.
‫Então vá em frente e aperte o play.
‫Eu uso o ULP como meu atalho para isso.
‫Em seguida, a esquerda e a direita funcionam para frente e para trás funciona como seria de esperar.
‫Mas obviamente virar não funciona porque ainda não mapeamos isso.
‫Então vamos dar uma chance.
‫Se formos para configurações, configurações do projeto e entrada novamente.
‫Vamos dar uma olhada.
‫Olho para cima.
‫Atualmente, estamos usando o mouse y.
‫O que haveria de errado em apenas adicionar aqui?
‫Por exemplo, o gamepad, o controle direito e desta vez o eixo y?
‫Bem, na primeira tentativa podemos ir brincar um pouco.
‫Isso pode realmente parecer estar bem.
‫Então nós entramos e você pode ver que podemos nos movimentar.
‫Sim claro.
‫É um pouco rápido, mas tudo bem, não é?
‫Não está tudo bem?
‫Bem, na verdade não.
‫E a razão, em última análise, se resume às taxas de quadros e como esses eixos funcionam.
‫Então, o que acontece com um mouse quando estamos rodando um jogo a 30 quadros por segundo?
‫Quando movemos o mouse da esquerda para a direita na tela em uma velocidade uniforme, podemos ver que
‫os valores dos eixos são algo como dez, depois dez, depois dez.
‫E isso está nos dizendo que cada vez que o mouse se move dez unidades para a direita e faz o
‫mesmo a cada quadro.
‫O que acontece se dobrarmos nossa taxa de quadros?
‫Bem, de repente o mouse ainda está se movendo na mesma velocidade porque o jogador ainda está movendo
‫a mão na mesma velocidade.
‫Mas como estamos mostrando quadros com mais frequência, estamos tendo tiques com mais frequência, então o que vai acontecer é
‫que a entrada dos eixos será na verdade reduzida pela metade.
‫Cada vez vamos ter cinco, quatro, cinco, quatro, cinco, cinco, cinco.
‫Muito bom, tudo bem, porque isso significa que ainda estaremos percorrendo nossa tela na
‫mesma velocidade, não importa se temos um computador rápido ou lento.
‫Se movermos o mouse por uma certa quantidade, você notará a mesma quantidade de movimento, que é o que
‫queremos.
‫Agora as coisas mudam um pouco quando olhamos para o controlador, digamos que vamos a todo vapor para
‫a direita com nosso controlador analógico e são 30 quadros por segundo.
‫Temos um, depois um, depois um.
‫Faz sentido, certo?
‫E se for 60 quadros por segundo?
‫Ainda temos um, depois um, depois um, depois um.
‫Mas nós temos mais deles porque estamos conseguindo mais frames.
‫Se você usar isso diretamente para afetar o movimento do seu --, verá que ele se move com o dobro da
‫velocidade, com o dobro da taxa de quadros, não o que queremos.
‫Então, o que queremos fazer é introduzir alguma independência de taxa de quadros aqui.
‫Então, para fazer isso, precisamos ser capazes de multiplicar pelo tempo Delta.
‫Nós meio que queremos usar o eixo de entrada para nos ajudar a modular a velocidade de rotação.
‫Então, isso é um pouco para absorver lá.
‫Mas o que quero dizer é que precisamos ter algo como uma variável de taxa de rotação.
‫Vamos criar uma nova propriedade para isso, que será uma edição em qualquer
‫lugar e teremos um float e será a taxa de rotação.
‫Agora vou usar a mesma taxa de rotação para cima, esquerda e direita.
‫Você pode ir em frente e ter uma variável separada para ambos.
‫E eu realmente não sei qual será uma boa taxa de rotação aqui.
‫Vou apenas dar um palpite aqui porque não tenho certeza de quais são as unidades envolvidas aqui, então
‫vou seguir em frente e dizer dez, mas veremos.
‫Talvez isso seja muito rápido.
‫Talvez isso seja muito lento.
‫Podemos ajustar isso em nosso projeto para que possamos seguir em frente e salvá-lo.
‫Vou passar para o C++ também para mudar para o C++, a propósito.
‫E vamos querer ter um novo tipo de acesso para podermos distinguir entre a mudança.
‫Direita, que é o movimento direto do mouse versus o movimento.
‫Direita?
‫Ou melhor, desculpe, o olhar.
‫Certo, que é a taxa.
‫Então, vamos fazer isso indo para as configurações do nosso projeto e, em vez de ter este joystick esquerdo do
‫gamepad mapeado para o movimento.
‫Certo, desculpe, não o algo da esquerda, mas o da direita mapeado para procurar.
‫Eu continuo cometendo esse erro, removo isso do eixo e adiciono um novo eixo que será o visual.
‫Acima.
‫Direita.
‫E isso vai levar em um gamepad, certo?
‫Então gamepad.
‫Direita.
‫Eixo Y.
‫Porque é uma pesquisa e estamos dizendo que o positivo deve ser o que estamos usando.
‫Então, o que podemos fazer é mapear isso e não queremos mapeá-lo diretamente para o controlador ADD.
‫Você é porque precisamos fazer um pouco de matemática para calcular as taxas e torná-las independentes da taxa
‫de quadros.
‫Então o que vamos fazer é ir até o Ultimo e criar um look up, que com facilidade já
‫temos aqui.
‫E eu vou criá-lo como olhar para cima, certo e seguir em frente e criar essa mudança de controle.
‫P E olha, use meu plug-in de implementação correto.
‫Vamos em frente e fazer uma implementação de taxa de pesquisa.
‫Tem um valor de eixo chegando?
‫Isso é ótimo.
‫Em seguida, queremos ter certeza de que é isso que estamos chamando no componente de entrada do player de configuração.
‫Então vamos criar uma nova linha aqui, duplicar a aparência.
‫Certo, eu vou chamá-lo de olhar para cima.
‫Certo, assim e depois copie e cole o.
‫Referência totalmente qualificada para a função a ser chamada.
‫Eu olho para cima então.
‫Essencialmente, o que queremos chamar no final do dia é adicionar entrada do controlador, entrada de afinação do controlador
‫de afinação.
‫Mas queremos multiplicar isso por algumas coisas.
‫Portanto, o valor de acesso vem como um valor entre zero e um.
‫Se multiplicarmos esse valor do eixo tão multiplicado pela taxa de rotação da taxa.
‫Então o que vamos conseguir é uma velocidade.
‫Mas o que queremos é, na verdade, uma distância.
‫Como quando movemos nosso mouse, nos movemos a uma certa distância, a cada quadro.
‫Era isso que estava entrando.
‫Queremos converter essa velocidade em distância.
‫E se você se lembra de algum tempo atrás, alguma aula de matemática nebulosa, para ir da velocidade à distância,
‫precisamos multiplicar pela quantidade de tempo.
‫Então, fazemos isso obtendo nossos segundos Delta do mundo.
‫Agora, o que é Delta segundos?
‫Essa é a quantidade de tempo que levou para o último quadro.
‫Então é o oposto da taxa de quadros.
‫Ele está nos dizendo quanto tempo leva um quadro, o que é ótimo porque é a quantidade de tempo que
‫precisamos para aplicar esse movimento.
‫Então, se você pensar sobre isso, temos velocidade, temos uma quantidade de tempo que precisamos aplicar
‫essa velocidade.
‫Isso nos dá uma quantidade de movimento que essencialmente queremos aplicar à nossa entrada de afinação do controlador.
‫Então é isso que queremos.
‫Obter o mundo, em primeiro lugar, porque queremos obter o nível de, você sabe, obter o mundo ao nosso redor.
‫E a partir disso, usamos a função de seta para obter Delta segundos, o que nos diz que queremos obter a quantidade de tempo
‫decorrido no último quadro, o que nos dá, novamente, essa aproximação de nossa taxa
‫de quadros no atual momento no tempo.
‫Agora, você deve estar se perguntando por que não estamos fazendo o mesmo com a entrada de movimento.
‫E a razão é que a entrada de movimento, quando você faz uma entrada de anúncio lá, já
‫está supondo que isso é uma taxa, não uma quantidade real de movimento.
‫Então, ele já está fazendo esse cálculo para nós, essencialmente nos bastidores, salva os arquivos, vai para
‫o irreal e compila e vê se vale a pena.
‫Então vamos entrar no jogo e vou tentar usar a entrada do meu controlador.
‫Aqui vamos nós.
‫Estamos subindo e descendo bem devagar.
‫Mas esperamos que isso seja completamente independente da taxa de quadros porque usamos esse tempo delta.
‫Então, o que eu quero que você faça é seguir em frente e implementar a taxa de aparência correta.
‫Então repita o mesmo método configurado para olhar certo como ele fez para olhar para cima e ajuste a velocidade para
‫que não fique muito lento e você possa realmente usá-lo para se mover pelo nível.
‫Pause o vídeo e vá em frente.
‫OK.
‫Bem vindo de volta.
‫Então, o primeiro passo foi criar um novo mapeamento de eixo nas configurações do nosso projeto.
‫Vamos fazer isso de novo, desta vez para o visual.
‫Direita?
‫Direita.
‫Assim que um bocado.
‫Então vamos pegar o gamepad.
‫Os direitos desta vez e o eixo X.
‫É para isso que vamos mapear.
‫E então vamos atirar na cabeça dela todo esse tempo.
‫Vou duplicar a pesquisa agora.
‫Deixe-me apenas mostrar-lhe os arquivos para que você possa ver onde estou do lado esquerdo.
‫Então, novamente, eu tenho em vez de olhar para cima.
‫Direita.
‫Vai ser o look.
‫Direita.
‫Mudança de controle p ótima implementação.
‫E teremos exatamente o mesmo código com a mesma multiplicação que está nos
‫levando, novamente, de uma velocidade para uma quantidade de distância percorrida.
‫Esse é o olhar.
‫Certo, certo.
‫Então, em vez de adicionar o pitch do controlador, precisamos fazer sua entrada desta vez e a taxa de
‫aparência correta precisará ser chamada de nosso componente de entrada do player definido ou precisa ser chamada
‫quando o eixo estiver realmente sendo manipulado.
‫Então, vamos adicionar outro conjunto aprimorado de eixo de taxa de pesquisa.
‫Vai ser a taxa certa de olhar.
‫E então vamos querer copiar essa referência para a função e trazer o e comercial antes e depois os
‫problemas totalmente qualificados.
‫Personagem.
‫Dois pontos, dois pontos.
‫Olhar.
‫Certo, certo.
‫Vamos em frente e salve isso e o cabeçalho do arquivo.
‫Volte para o projeto e saia do jogo que eu deixei para compilar aqui e depois.
‫Devemos ser capazes de mergulhar e brincar.
‫Então.
‫Para cima e para baixo está trabalhando lentamente, esquerda e direita.
‫Não exatamente como eu esperava.
‫Vamos verificar nossas configurações de projeto.
‫Então nosso olhar.
‫Direita.
‫Parece bem.
‫Bastão de polegar.
‫Direita.
‫Acesso ao polegar.
‫Vamos verificar isso.
‫Isso tudo está indo para o C++ corretamente por uma aparência de eixo.
‫Direita.
‫Está chamando olhar.
‫Direita.
‫Função ou costuras em ordem chamando a sua entrada como deveria ser.
‫Dana, o que aconteceu lá?
‫Acabei de clicar em recompilar novamente e depois clicar em play novamente.
‫Às vezes você tem que fazer isso.
‫Mas agora o olhar para a esquerda e para a direita está funcionando para cima e para baixo, embora em um ritmo muito, muito
‫lento.
‫Então, vamos ajustar nosso projeto de personagem.
‫Vamos encontrar o personagem do atirador.
‫Abra seus projetos.
‫E então vamos rolar para baixo e encontrar a taxa de rotação.
‫Então vou multiplicar por dez.
‫Tente obter dez vezes mais rápido do que encontrarei um valor que faça sentido em algum lugar no meio.
‫Esta é sempre uma maneira que você pode tentar encontrar valores é apenas ir e alterar a ordem de magnitude
‫primeiro.
‫Bem, isso é muito mais próximo do estádio certo.
‫Talvez seja um pouco sensível demais, então talvez eu apenas reduza pela metade.
‫Tente cerca de 50 desta vez.
‫Não 500, mas 50.
‫Vamos tentar isso.
‫Aperte o play e mova meu stick.
‫OK.
‫Isso está se sentindo muito mais natural.
‫Você pode querer ir a algum lugar um pouco entre esses dois.
‫Então vá entre os dois.
‫Mais uma vez, direi cerca de 70 desta vez, em vez de ir até 170 pode ser a taxa certa.
‫Vamos ver se chegamos ao ouro.
‫Acho que sim.
‫Acho que 70 será a taxa certa para eu me movimentar.
‫Obviamente, esse é o tipo de coisa que muitas vezes os jogos permitem que você ajuste, permitirá que o
‫jogador ajuste as configurações.
‫Não vamos investigar isso.
‫Está além do escopo desta seção, mas é algo que você pode querer expor aos usuários
‫em seus próprios jogos.
‫Frio.
‫Então, nessa palestra vimos a diferença entre a entrada do controlador e a entrada do mouse e
‫como temos que lidar com taxas em vez de movimentos absolutos.
‫Então, na próxima palestra, vamos olhar para aquela câmera em terceira pessoa que eu sempre insinuei.
‫Vê isso?