‫Olá e bem-vindo.
‫Nesta palestra, veremos como conectar o movimento do nosso personagem para que possamos avançar na
‫luta e olhar ao redor do nosso mundo.
‫Os clássicos de se movimentar em um jogo de tiro em primeira ou terceira pessoa.
‫Vamos mergulhar e ver como é feito.
‫Então, continuando na veia de tentar fazer nosso movimento de personagem funcionar, primeiro
‫vamos querer vincular alguma entrada, mas também saberemos a que vincular essa
‫entrada.
‫Felizmente, quando se trata de personagens, há muitas coisas simplificadas acontecendo para nós.
‫Afinal, Unreal é realmente um motor otimizado para fazer coisas como jogos de tiro, jogos de
‫personagens.
‫E vamos dar uma olhada em algumas das funções de movimento que já são fornecidas para nós pela classe de ator de personagem, não apenas
‫o componente de movimento de personagem, mas também a classe de ator de personagem fornece isso e muitas
‫vezes passa muito disso para o componente de movimento de personagem , mas não necessariamente.
‫Vamos ver com quais funções de movimento vamos lidar.
‫Em primeiro lugar, vamos adicionar entrada de movimento.
‫Adicionar entrada de movimento basicamente pega um vetor e informa em qual direção você vai se mover.
‫Então, se for um vetor direto, você avança.
‫Se for um vetor para trás, você se move para trás.
‫Se fosse vetor certo, você se move para a direita e assim por diante.
‫E o tamanho do vetor vai determinar o quão rápido você se move nessa direção.
‫A próxima coisa é que adicionamos a entrada de afinação do controlador.
‫Trata-se de olhar para cima e para baixo, o que obviamente é muito útil.
‫Quando você tem o mouse, você quer olhar para cima e para baixo movendo o mouse para cima e para baixo.
‫Em seguida, como adicionar controlador, sua entrada, que está indo para a esquerda e para a direita.
‫E, finalmente, há uma função de salto que é apenas que talvez você aperte a barra de espaço e pule.
‫Então, com essas coisas em mente, queremos seguir em frente e fazer é criar algumas ligações em uma classe de
‫ator de personagem que liga alguma entrada.
‫Então algumas entradas no seu teclado, seu mouse, seu controle para essas funções para que possamos fazer algumas e então vamos fazer
‫um desafio para fazer o resto.
‫Então vamos para o código do Visual Studio e eu estou filmando um ponto de personagem h e notamos que já temos aqui
‫a configuração de uma função de componente de entrada do jogador.
‫É aqui que precisamos vincular nossas entradas e pressionar F12 para ir para o C++.
‫Eu vou apertar Alt oh para ir para o C++ e descobrir onde temos essa configuração.
‫Então, a primeira coisa é que nos dá esse componente de entrada da planta com o qual queremos vincular.
‫Se você se lembra, é assim que fazemos.
‫Temos um componente de entrada do player, usamos o operador de seta e, em seguida, fazemos uma função de ligação aqui.
‫Portanto, é um acesso de ligação ou uma ação de ligação, dependendo se é uma ação discreta, como pular, ou
‫se é uma ação que tem um valor, como olhar para cima e para baixo ou se mover.
‫Agora, mesmo quando fazemos movimento com uma tecla, ainda tendemos a vinculá-la usando um eixo.
‫Então, na verdade, vou cometer um pequeno erro de digitação na primeira parte deste vídeo.
‫Vou corrigi-lo mais tarde, mas vá em frente e use o eixo de ligação em vez da ação de ligação aqui.
‫Então, para realmente dar um passo ainda mais para trás, precisamos ir em frente e configurar essas ações e eixos nas configurações do
‫nosso projeto.
‫Então vamos voltar para o Unreal.
‫Vá para configurações, configurações do projeto, e então vou encaixar isso para que possamos ver com
‫muita clareza e vamos para a seção de entrada.
‫Portanto, insira e configure alguns mapeamentos de eixos e alguns mapeamentos de ação.
‫Então, os que vou lidar logo de cara são os mapeamentos de eixos, pois teremos,
‫antes de tudo, um avanço.
‫E também vamos dar uma olhada.
‫Agora, lembre-se, não temos um movimento para frente e um movimento para trás porque podemos fazer isso
‫com escala negativa.
‫Então, por exemplo, quero configurar meu W Quay para ser meu avanço.
‫Então essa é a escala um.
‫Mas se eu quiser que meu esky seja meu movimento de volta, ainda posso usar avançar, mas dê a escala de menos
‫um.
‫Apenas um lembrete rápido para você.
‫O mesmo que olhar para cima.
‫Vou usar o mouse para isso cobrir a entrada do controlador.
‫Na próxima aula vamos usar o mouse y.
‫Agora, lembre-se, por que é aquele que sobe e desce em vez de esquerda e direita?
‫Porque é um pouco mais alto, não é?
‫Por que é uma letra um pouco mais alta que um X?
‫É assim que eu me lembro de qualquer maneira.
‫Então Mouse Y está para cima e para baixo.
‫E então teremos que ajustar com a escala, ver se está indo na direção certa.
‫Mas basicamente, isso nos dará valores negativos se estivermos caindo e valores positivos se estivermos subindo.
‫Portanto, podemos precisar ajustar com o olhar para cima para ver se isso vai na direção certa.
‫Mas você tem a ideia de que podemos inverter a escala ou não, dependendo do tipo de entrada que está chegando
‫aqui.
‫Assim que obtivermos o nome de acesso, podemos voltar ao C++.
‫Vamos vinculá-lo usando a macro de texto e o texto do nome de acesso.
‫Então precisamos dizer para quem vamos chamar a função e qual função vamos chamar.
‫Atualmente não temos uma função que queremos chamar.
‫Então, vou criar uma nova função privada no meu arquivo de cabeçalho C++.
‫E será uma função void que será chamada de avançar.
‫E vai pegar o float, que vai ser o valor do eixo.
‫Termine com um ponto e vírgula e eu tenho um pequeno truque, uma pequena extensão aqui que me ajuda a
‫implementar essas coisas um pouco mais rápido fazendo control shift p e.
‫Se eu digitar criar implementação, ele vai em frente e cria essa implementação para mim no arquivo C++.
‫Muito bom e fácil.
‫O nome dessa extensão.
‫Se eu for, sempre esqueço os nomes das minhas extensões, então vou dar uma olhada no que pode
‫ser.
‫Eu acho que é este pequeno doozy aqui, o auxiliar C++.
‫Se você for em frente e instalar este para o seu código de voz, ele apenas permitirá que você faça esse tipo de coisa, o
‫que é muito bom, muito útil.
‫Portanto, esta é a função que queremos configurá-la para chamar.
‫Então, em primeiro lugar, dizemos isso.
‫Este é o alvo.
‫O objeto atual é o destino para esta função.
‫Então vamos em frente e colocamos o problema para o problema da função totalmente qualificada, para caractere, dois pontos,
‫dois pontos, avançar, e isso deve se vincular a essa função.
‫E então, finalmente, o que queremos fazer é passar esse valor de eixo para a função que realmente
‫queremos chamar, que é uma função pai.
‫Então não temos que fazer nada.
‫Podemos apenas fazer o movimento do anúncio.
‫Insira assim.
‫Então, como esse é o método de avanço, queremos ter o vetor de avanço do ator.
‫Então, a maneira como fazemos isso é fazer um vetor de avanço de ator assim, e então queremos que ele seja encaminhado na quantidade que
‫nosso valor de acesso nos dá para que possamos multiplicar pelo valor do eixo.
‫E isso vai nos dar o resultado certo.
‫Então vamos ter o vetor direto multiplicado pelo valor do eixo.
‫Se for um, avançamos, se for menos um, um vetor para frente se torna um vetor para
‫trás e retrocedemos apenas com essa função.
‫Então, isso nos preparou para seguir em frente.
‫Excelente.
‫A próxima coisa é vincular para nossa pesquisa.
‫Então vamos copiar.
‫Sempre gosto de copiar essas referências de string para que eu não cometa erros.
‫Dê uma olhada e em vez de vincular para avançar, vamos voltar ao
‫cabeçalho do arquivo e criar algo novo que será pesquisado e novamente, um valor de acesso flutuante.
‫Igual a.
‫E se eu controlar o turno P e fizer isso, a implementação vai adiante e me economiza um pouco de tempo.
‫E desta vez, em vez de adicionar entradas de movimento, queremos usar uma dessas outras funções que
‫tínhamos à disposição.
‫Ou seja, a entrada de pitch do controlador de anúncios porque eu quero apresentar basicamente.
‫Então, desta vez, podemos fazer o controlador de anúncios.
‫Afinar as entradas e passar e diretamente o valor do eixo.
‫Agora.
‫Agora seja um pouco mais experiente programadores C++ entre vocês podem dizer Ei, esta função basicamente não faz
‫nada.
‫Ele está apenas chamando alguma outra função com o mesmo parâmetro.
‫Então não está fazendo muito.
‫E você estaria certo.
‫Então o que podemos fazer é fazer uma filmagem, um personagem olhar para cima.
‫Assim, poderíamos chamar a função que foi definida nesta classe de personagem atirador.
‫Ou poderíamos dizer, bem, há entradas de controle de afinação que poderíamos chamar diretamente, não podemos?
‫Então, se usarmos F12 para descobrir onde isso está definido e você navegar até ele, poderá ver que está
‫sendo definido na verdade -- ponto h.
‫Então, se você rolar para cima, você pode ver todo o caminho até aqui em algum lugar onde vamos encontrar um classless.
‫Poderia até mesmo procurar por classe, espaço, algo assim.
‫E aqui temos uma é a classe.
‫Então, vamos voltar para a filmagem do personagem e o que podemos tentar e tornar isso um pouco
‫mais curto dizendo, em vez disso, vamos fazer um -- dois pontos, dois pontos adicionar entrada de pitch do controlador para que ele automaticamente chame diretamente
‫essa função pai em vez de ter que ir através de nossa própria função.
‫Esta é uma maneira válida de fazer isso também, mas simplesmente não é necessário.
‫Então eu vou comentar para que você possa consultar e ver se você quiser fazer dessa maneira.
‫Mas eu recomendaria fazer a rota um pouco mais curta assim.
‫Vou tentar compilar.
‫Percebi que, em vez de chamar atrás de acesso, como eu queria fazer, estou fazendo uma ação
‫às cegas.
‫Então você provavelmente esteve gritando na tela o tempo todo.
‫Vamos em frente e construir isso novamente.
‫A propósito, estou fazendo isso com uma mudança de controle B e selecionando a opção de construção.
‫Esse é o simples editor de atiradores ganha 64 build de desenvolvimento, o que é apenas um passo rápido para mim do que ir
‫e apertar o botão de compilação.
‫Vou olhar e não consigo acertar minha sintaxe hoje.
‫Claro, precisamos usar o e comercial na frente dessa função para dizer basicamente que queremos
‫obter o ponteiro.
‫Queremos usar o e comercial na frente dessas funções para realmente ter a sintaxe correta aqui.
‫OK.
‫Então, depois de corrigir esses dois erros muito comuns, um é que eu tenho a chamada de função errada e o
‫outro é que eu não tenho um e comercial na frente das funções que estou tentando usar.
‫Vamos para Unreal e ver se isso está realmente funcionando.
‫Se eu for em frente e apertar o play e usar a tecla W e a tecla, você pode ver que posso avançar e retroceder.
‫É incrível.
‫E com o mouse posso olhar para cima e para baixo.
‫Mas está se sentindo invertido no momento ao meu movimento.
‫Então, eu vou até as configurações e aperte menos um lá e vá em frente e aperte play.
‫E agora, se eu subir e descer, parece correto.
‫Observe que na verdade estou gerando em dois locais diferentes.
‫Isso é porque eu tenho que jogar uma partida.
‫Quando coloquei o segundo, não percebi que já havia um no nível, e é por isso que
‫às vezes estou jogando aqui, às vezes jogando em um local diferente.
‫Você pode encontrar a mesma coisa.
‫Então é hora do desafio.
‫Vamos fazer com que vocês vinculem seus movimentos e seus direitos de aparência para que tenhamos controle total de nosso
‫movimento.
‫Então, repete o processo que acabei de fazer na palestra para esses dois, e você
‫provavelmente está acompanhando.
‫Se não, você pode ir e assistir para revisar.
‫E também gostaria que você tentasse a função de salto também se estiver se sentindo corajoso, faça uma pausa, faça um vídeo e
‫tente.
‫OK.
‫Bem vindo de volta.
‫Então vamos dar uma chance a isso.
‫Em primeiro lugar, estamos repetindo as etapas acima para avançar e olhar para cima.
‫Então nós vamos ter movimento, certo?
‫E nós vamos ter ao invés de olhar para cima, nós vamos ter o olhar certo.
‫E podemos ir em frente e copiá-los para configurar nossos eixos nas configurações do projeto.
‫Então adicione outro par de mapeamentos de eixos.
‫O primeiro será o movimento, à direita, que vou mapear para a chave, um quatro à esquerda.
‫Então esse vai ser o menos um vai ser menos um porque na verdade deixamos o lado direito
‫oposto.
‫E D vai fazer quatro agora.
‫Obviamente, você também pode adicionar as teclas de seta aqui.
‫Eu só não estou fazendo isso economizar tempo.
‫Mas você pode ir em frente e fazer a mesma coisa.
‫Você pode simplesmente adicionar mais chaves aqui.
‫Quantos casos você quiser mapear para essa aparência de eixo único.
‫Certo, vamos usar o mouse x.
‫E acho que um deve ser suficiente em vez de menos um.
‫Eu não acho que temos que inverter este.
‫E então o que vamos fazer é vincular isso de maneira um pouco diferente.
‫Então eu vou alt oh para ir e criar uma função de movimento certo aqui.
‫Agora você deve estar se perguntando, por que estamos fazendo isso de forma diferente?
‫Por que o movimento é certo?
‫Por que não estamos apenas ligando diretamente para adicionar entrada de movimento?
‫A diferença é que aqui estamos fazendo um pouco de cálculo.
‫Estamos somando nesta multiplicação por um vetor, que está somando um pouco de informação e justificando
‫a existência desta função.
‫Então, desta vez, em vez de fazer o ato avançar, queremos obter o vetor correto do ator assim e multiplicá-lo
‫pelo valor do eixo e, em seguida, queremos chamar em vez de avançar.
‫Quer estar ligando para o movimento agora mesmo para olhar.
‫Direita.
‫Em vez de adicionar a entrada de afinação do controlador, queremos fazer as suas entradas.
‫Lembre-se de roll pitch e você é de aviões.
‫Você pode procurar na Wikipedia se não tiver certeza de qual é qual.
‫Vá em frente e construa aquele.
‫Espero que desta vez eu não tenha errado a sintaxe.
‫Vamos até o editor e aperte o play e eles vão. Posso olhar ao meu redor.
‫Isso parece bom.
‫Eu posso metralhar para a esquerda e para a direita.
‫Eu posso ir para frente e para trás.
‫Então o que resta para nós é pular, que será um mapeamento de ação ao invés de um eixo, porque é
‫uma ação discreta, meio que chame, pule e copie.
‫Vá para o código do Visual Studio.
‫E acabei de fechar minha janela de compilação.
‫E aqui vou, em vez de encontrar um eixo, você tem.
‫Vou vincular uma ação vincular ação.
‫Simples assim.
‫Vai começar ainda com o texto aqui.
‫De salto.
‫Mas a coisa que é diferente com os eixos, como você provavelmente se lembra.
‫E então precisamos usar uma sintaxe I input events, que é um enum, o que significa que basicamente
‫pode levar várias dessas opções diferentes, clique duplo, press release, etc.
‫Nós vamos querer pular na imprensa assim.
‫Então.
‫Então isso é IEEE Underscore Press.
‫E então uma vez que sabemos disso, podemos ir em frente e fazer o mesmo e então queremos estar chamando
‫para pular.
‫Agora, onde está o salto para encontrar?
‫É na piscina?
‫Vamos dar uma olhada.
‫Não, mas pode estar no personagem.
‫Então eu vou fazer um controle P e procurar um personagem.
‫H.
‫Abra isso e dê uma olhada aqui, veja se eles têm uma função de salto definida aqui.
‫Pular e abrir colchetes geralmente é uma boa maneira de procurar funções nos arquivos de cabeçalho.
‫Com certeza, temos essa função.
‫Você pode ver a documentação.
‫Muitas vezes, gosto de usar o código-fonte diretamente, em vez de procurar qualquer arquivo de documentação.
‫Eu só acho às vezes muito mais rápido de acessar, especialmente quando você tem acesso ao controle p e ao
‫Visual Studio Code.
‫Então, o que precisamos fazer é, em vez de fazer dois pontos, dois pontos, precisamos fazer um caractere dois pontos.
‫Kalonzo Vai ser e comercial, uma coluna de caracteres de dois pontos.
‫Isso ocorre porque essas são as classes definidas em que não podemos procurar na hierarquia quando
‫estamos fazendo esse operador de dois pontos, dois pontos e então será apenas salto.
‫Então personagem, dois pontos, salto dois pontos.
‫E não se esqueça que eu preciso de um ponto e vírgula.
‫O sublinhado vá em frente e construa e veja se consegue pular agora.
‫Bem, o cinto funcionou corretamente.
‫Vamos para o nível sandbox.
‫Aperte o play e tente pular.
‫Eu não tenho nenhum limite de chave, então isso pode me atrapalhar.
‫Adicione a barra de espaço como a tecla que eu quero pular e vá em frente e aperte play.
‫Yay.
‫Eu sou capaz de pular para cima e para baixo e me mover pelo ar e me mover.
‫Fantástico.
‫Então, aprendemos como vincular eixos e ações onde não aprendemos.
‫Nós o revisamos, mas vimos o que queremos vincular em um personagem para que esse
‫personagem clássico pule, mergulhe, se mova e olhe com sua câmera que todos conhecemos e amamos de nossos
‫atiradores.
‫Na próxima aula, veremos as nuances necessárias para mover com um controlador e um teclado.
‫Um rato.