‫Olá e bem-vindo.
‫Nesta palestra, vamos configurar alguns traçados de linha para que possamos atirar nas paredes e ver
‫esses pontos de depuração aparecendo.
‫E vamos fazer isso usando um novo traço de linha de função por canal.
‫Vamos ver por que estamos usando essa linha traçada por tipo de objeto, que é o que usamos antes.
‫Vamos mergulhar e ver como é feito.
‫Então, de volta à nossa fuga de construção, usamos traços de linha e usamos esta função aqui, o traço de linha
‫por tipo de objeto.
‫E é isso que queremos usar?
‫Bem, qual é a diferença entre rastreamento de linha por tipo de objeto e seu irmão muito próximo, que
‫é um rastreamento de linha por canal.
‫Bem, o tipo de objeto diz que quero pesquisar nesta linha e ver se encontro um objeto que corresponda a esse
‫tipo.
‫Então, acredito que o que usamos na construção de escape foi algo como o tipo de objeto de corpo físico e
‫isso é ótimo, atingirá corpos físicos.
‫Mas se você decidir de repente que quer outra coisa para acertar uma bola, isso não deixa muito espaço para
‫opções.
‫Portanto, o canal é melhor para isso porque nos permite definir nossos próprios canais personalizados e, em
‫seguida, definir quais tipos de objetos são transparentes para esse canal e quais o bloqueiam.
‫Então, isso é ótimo porque o que queremos é dizer, ok, talvez um tipo de coisa do tipo Bush não
‫possa bloquear uma bala, enquanto uma parede bloqueará uma bala, mas não sofrerá nenhum dano, mas isso podemos
‫lidar mais tarde.
‫Então canaliza toda a rota que vamos descer e podemos encontrar o método correto aqui fazendo o controle.
‫P E, a propósito, há uma coisinha extra legal que eu aprendi recentemente é que se
‫você usar o símbolo de ato, você pode procurar por símbolos dentro deste arquivo e ou até mesmo em outros arquivos.
‫Mas se você tiver o arquivo aberto, é muito mais rápido.
‫Então você pode fazer algo como traço de linha e você pode ver que está nos dando a lista de
‫todos os símbolos que são funções ou classes ou variáveis, e podemos encontrar essa linha, traço, linha de teste, traço, único por
‫canal por tipo de objeto.
‫Queremos este primeiro traço de uma linha, canal de BI único, que terá um parâmetro de saída
‫para o que atingimos, os pontos iniciais, os pontos finais, o canal de rastreamento de colisão chegará a
‫isso em pouco tempo e, em seguida, alguma consulta parâmetros que têm alguns padrões, então não precisamos
‫nos preocupar.
‫Então, apenas essas primeiras coisas, o hit Iniciar e Trace Channel, o que queremos nos preocupar.
‫Vamos configurar um canal de rastreamento.
‫Vamos para configurações e configurações do projeto para isso.
‫E então estamos procurando no motor para a área de colisões.
‫E aqui embaixo você pode ver que temos canais de objetos e canais de rastreamento.
‫Canais de objeto é, na verdade, apenas outra maneira de dizer diferentes tipos de objeto.
‫Então, se você quisesse ter os conjuntos padrão de objetos como peões e coisas assim, se você quisesse
‫uma nova categoria de objeto, você poderia seguir a rota do canal de objetos.
‫Mas os traços permitem que você defina o extremo oposto do espectro, que é como, você sabe,
‫eu tenho uma bala, que objetos ela pode atingir?
‫Então, vamos seguir essa rota, adicionar um novo canal de rastreamento e chamar esse marcador.
‫E a resposta padrão será.
‫BLOCO O que basicamente significa que todos os tipos de objetos vão.
‫BLOCK A menos que agora especifiquemos o contrário, podemos ir em frente e aceitar isso e podemos ver nossas predefinições
‫aqui.
‫E se nós apenas expandirmos isso, as predefinições mostrarão a você que temos um monte de coisas diferentes
‫que podemos aplicar, coisas que podemos dizer, queremos que isso seja um ator de física, nesse caso é
‫tipo de objeto, que será o que é um canal de objeto predefinido será o corpo físico.
‫Mas se expandirmos isso, você pode ver qual é sua reação aos diferentes tipos de traços aqui.
‫Então nós temos nossos tipos de câmera de rastreamento, nossas próprias balas, visibilidade, ela bloqueia tudo isso e então tem tipos
‫de objetos.
‫Então é assim que ele interage fisicamente com outros objetos, como peões e veículos, etc. Não é assim que ele interage com
‫o traço de linha por objeto.
‫Isso é um pouco confuso e já me confundiu antes.
‫Então o tipo de traço é o que é interessante e podemos apenas dar uma olhada aqui e ver que nenhuma colisão
‫deve ser configurada para não colidir.
‫Então vamos fazer com que nossas balas não colidam com isso também.
‫Então, apenas substituir algumas das predefinições de modo que nosso marcador funcione como seria de esperar, sobrepor todos, por
‫exemplo, deve basicamente se sobrepor ao marcador.
‫E provavelmente a parede invisível e a dinâmica da parede invisível também devem ser ignoradas para os propósitos de nossa
‫bala.
‫Mesmo com dinâmico aqui.
‫Você pode ver que estamos basicamente terminando com algo bastante semelhante a um traço visível.
‫Mas a razão para mantê-lo separado é que podemos querer fazer pequenas distinções, como você pode ver, você
‫não pode ver através deste arbusto, mas você pode atirar através dele.
‫Esse tipo de coisa significa que ter nosso próprio canal de rastreamento é muito, muito útil.
‫Agora gostaríamos de poder usar esse canal de rastreamento no código, e é um pouco estranho como temos que
‫fazer isso porque há um enum aqui, um canal de colisão E, e se formos F12 para sua definição, você pode ver há
‫um monte para os predefinidos, mundo estático -- visibilidade, etc. aqui em baixo, mas há um monte de
‫canais de rastreamento de mecanismo um, dois e o canal de rastreamento de jogo um, dois, três
‫etc. predefinido.
‫Qual dos nossos é esse?
‫Você sabe, é que não temos uma bala aqui.
‫Na verdade, temos que usar um desses canais de rastreamento de jogo.
‫Então é realmente um pouco confuso.
‫Qual é?
‫Então, a maneira de fazer isso é indo para a pasta do seu projeto e entrando em config.
‫E o que queremos é o mecanismo padrão INI e queremos abri-lo em um texto que seja.
‫Então você pode fazer isso em qualquer texto que você gosta.
‫Eu gosto de arrastá-lo para o código do Visual Studio.
‫Portanto, esse código do Visual Studio é quem o abre.
‫E aqui queremos essencialmente procurar nossa bala e ver para que ela foi atribuída.
‫E eu acho que esta primeira linha aqui nos diz que o canal que foi dado é o jogo Trace Channel
‫one.
‫Fantástico.
‫Então é isso que vamos usar quando estivermos fazendo nosso traço de linha.
‫Então vamos começar a colocar a estrutura desse traço de linha no lugar.
‫A primeira coisa que vamos precisar é de um ponto de partida.
‫Nós já temos isso.
‫Essa é a localização da nossa janela de visualização.
‫Também precisaremos de um ponto final para nosso traço de linha que é um pouco mais difícil de calcular.
‫Então vamos criar um vetor F para o nosso fim, e vamos calcular isso usando nosso ponto de
‫parada, mais a rotação multiplicada pela quantidade, a distância que queremos ir e não a rotação, mas o vetor
‫que aponta no sentido da rotação.
‫Um pouco confuso, mas na verdade se você fizer um vetor de ponto de rotação, isso lhe dará um vetor que
‫aponta na direção dessa rotação.
‫É meio que fazendo o oposto do que estávamos fazendo no projeto de animação para obter uma rotação do
‫vetor.
‫Isso vai para o outro lado.
‫Então vamos fazer a localização mais este vetor de rotação, e então queremos essencialmente um alcance máximo.
‫Então eu vou introduzir uma nova propriedade aqui, fazer uma edição em qualquer lugar e vai ser
‫um float chamado Max Range assim.
‫E podemos configurá-lo para um padrão de algo como 10.000 ou um intervalo máximo de mil.
‫Isso vai ser cerca de 100 metros, desculpe, cerca de dez metros.
‫E vamos fazer um vetor de ponto de rotação multiplicado pelo alcance máximo.
‫Então esse será o vetor que obtemos dessa rotação será de tamanho um.
‫Multiplicá-lo pelo intervalo máximo o tornará um vetor de tamanho, qualquer que seja o intervalo máximo.
‫E então adicionamos isso em cima do local para chegar ao ponto final.
‫Não se preocupe se você não seguir essa matemática 100%.
‫O importante é que é assim que queremos chegar ao nosso endpoint.
‫Então ele vai fazer uma linha aqui para adicionar algum rastreamento de linha e eu vou remover esta câmera
‫de depuração de desenho porque eu quero fazer um auxiliar de depuração de desenho diferente aqui.
‫Eu quero desenhar um ponto de depuração que você pode encontrar aqui, pega o mundo, pega uma posição e um
‫tamanho e uma cor.
‫E seja persistente ou não, provavelmente queremos que seja persistente, que seja visível.
‫Então, devemos ser capazes de fazer algo nesse sentido, digamos, desenhar pontos de depuração e vamos fazer um
‫mundo obter logo de cara aqui, e então começaremos com a localização de nossa janela de visualização,
‫assim como um teste para ver como esse ponto de depuração de desenho funciona, dê-lhe tamanho para dar-lhe
‫uma cor f de vermelho e torne sua persistência verdadeira.
‫E então vamos para capital para o ponto e vírgula e ver se isso está funcionando.
‫Vamos compilar no motor e vamos jogar.
‫Então agora eu atiro e me movo ligeiramente para trás.
‫Você pode ver que há um ponto aí.
‫No entanto, é muito, muito pequeno e difícil de ver.
‫Então eles vão aumentar isso para 20.
‫Vamos ver se isso é melhor.
‫Compile e jogue.
‫Sim.
‫Com certeza, agora posso ver um ponto muito, muito claro.
‫Então é hora do seu desafio fazer um rastreamento de linha por canal.
‫Já fizemos isso com tipos de objetos antes, então esperamos poder extrapolar isso para fazer isso por canal.
‫Portanto, use o local e o fim que já definimos como início e fim.
‫Verifique o sucesso do resultado fazendo uma instrução if apenas para obter o parâmetro out bem no parâmetro out
‫do resultado do hit e apenas desenhar um ponto de depuração.
‫Se acertarmos o ponto com sucesso e lembrarmos que estamos usando aquele canal que encontramos no ponto,
‫qualquer arquivo também.
‫Então, pause o vídeo e veja se você pode classificar todos esses parâmetros e argumentos no
‫traço de linha e obter o desenho do ponto de depuração onde atingimos com nosso traço de linha.
‫Agora, neste estágio, não estamos fazendo nada inteligente, como ignorar o ator jogador.
‫Portanto, seu traço de linha pode acabar atingindo o jogador e tudo bem para este desafio.
‫Pausar vídeo.
‫Tente.
‫OK.
‫Bem vindo de volta.
‫Então vamos mergulhar direto.
‫Vamos pegar o mundo, em primeiro lugar, e uma flecha para isso.
‫Vamos fazer um rastreamento de linha único por canal.
‫Então vamos precisar de um resultado de acerto.
‫Portanto, em parâmetros, precisamos primeiro declarar nossa estrutura de resultados de hit para passá-la como um parâmetro de aplicativo.
‫Vai chamar de hit e eles vão passar como o primeiro argumento aqui.
‫Então precisamos da localização.
‫E precisamos do fim.
‫E depois?
‫O que vem a seguir?
‫A colisão.
‫Um canal de colisão.
‫Então esse será um canal de colisão E.
‫Cólon.
‫E então deveria ser e c, o que dissemos?
‫Vamos dar uma olhada no mecanismo padrão.
‫Qualquer canal de rastreamento de jogo CC é aquele que o padrão qualquer configurou para perguntar.
‫Há mais argumentos aqui que precisamos?
‫Vamos junto.
‫Temos os parâmetros de colisão que são padronizados.
‫Então não, não precisamos de nada aqui.
‫E então o que podemos fazer é que precisamos de um resultado booleano para isso.
‫Então B sucesso.
‫E parece muito útil, não é?
‫Seja um sucesso.
‫Digamos que um sucesso B.
‫Vamos querer desenhar esse ponto de depuração.
‫Então vamos mover isso para baixo.
‫Eu posso fazer isso com Alt e então a seta move a linha assim, e então eu
‫posso recuar com um controle e os colchetes direitos no seu teclado e isso faz com que pareça assim.
‫E agora, em vez do local, que é o ponto de partida, na verdade queremos o local de acerto.
‫Então, esse será o local de ponto atingido assim.
‫E parece que está faltando um ponto e vírgula no final desta linha aqui.
‫Vamos construir isso e tentar.
‫Depois de compilar esta peça de sucesso, vá para o mundo e tente atirar em nossas paredes.
‫Ai está.
‫Você pode ver que temos um ponto aparecendo na parede exatamente onde eu atirei.
‫Eu posso fazer isso várias vezes.
‫Parece acertar se eu for muito longe de uma parede, não acerta porque nosso alcance máximo é bastante
‫curto.
‫E você pode ver uma vez que eu chego dentro do alcance máximo, ele acerta e desenha um ponto.
‫Então esse é um desafio concluído com sucesso.
‫Agora podemos mostrar e traçar uma linha até um ponto específico.
‫O próximo passo será fazer com que isso realmente mostre alguns efeitos de partículas, o que será muito mais legal
‫do que apenas desenhar um ponto de depuração para isso.
‫Vejo você na próxima palestra.