‫Olá e bem-vindo.
‫Nesta palestra, vamos fazer plataformas rotativas e móveis.
‫Vamos fazer isso aprendendo sobre o tipo de rotador F em C++ para que possamos adicionar um
‫pouco mais de outro elemento ao nosso quebra-cabeça.
‫Vamos mergulhar e descobrir como isso funciona.
‫Então, vamos falar sobre o preenchimento da nossa função de plataforma de rotação.
‫Então, para fazer a rotação, é muito semelhante à maneira como fazemos a localização e temos funções muito
‫semelhantes.
‫Podemos chamar em vez de chamar, obter a localização do ator, podemos chamar, obter a rotação do ator.
‫E se eu colocar parênteses no final desta linha e apenas passar o mouse sobre a
‫função, o Visual Studio IntelliSense nos mostrará que o valor de retorno disso é um rotador F.
‫Usamos o vetor F ao trabalhar com locais e falamos sobre rotadores nas seções
‫anteriores.
‫Então vamos dar uma olhada em colocar este rotador F em uma variável local.
‫Então o tipo vai ser F rotator e vamos chamar isso de rotação atual igual à rotação do ator get, coloque um
‫ponto e vírgula no final da linha.
‫Também vou excluir a instrução de log porque não precisamos mais dela.
‫E então o que queremos fazer é essencialmente exatamente o mesmo que fizemos com
‫a velocidade da plataforma, que é um tipo de velocidade rotacional multiplicada pelo tempo delta adicionado à rotação atual.
‫Então, qual deve ser essa velocidade de rotação?
‫Bem, é aí que queremos ir para o arquivo de cabeçalho e adicionar uma nova propriedade U.
‫Então, vou adicioná-lo abaixo da distância de movimento e vou ter uma propriedade U editada em qualquer lugar e, em seguida, dar-lhe uma
‫categoria igual a este tempo, vou chamá-lo de rotação e vou alterar o nome da categoria
‫da plataforma móvel para a mudança em ambas as instâncias.
‫Então vamos ter uma categoria para movimentação, uma categoria para rotação.
‫Então, abaixo da propriedade, vamos colocar um rotador F chamado velocidade de rotação e não vamos dar a ele um valor
‫padrão aqui porque, por padrão, não quero que nenhuma de nossas plataformas gire.
‫Portanto, o valor padrão será 000, e é exatamente o que precisamos.
‫Então, vou colocar um ponto e vírgula no final da linha aqui e agora podemos voltar ao
‫arquivo C++ e usar essa variável de membro em nossa função de plataforma de rotação.
‫Então, o que queremos fazer é a rotação atual igual à rotação atual mais a velocidade de rotação multiplicada pelo tempo Delta e colocar
‫um ponto e vírgula no final da linha.
‫E agora a peça final do quebra-cabeça é definir nosso ator para essa nova rotação.
‫Então, exatamente como você esperaria, talvez um pequeno mini desafio para você, na verdade, é como
‫você faria isso sozinho?
‫Bem, o que usaríamos é a função set ator de rotação e passaríamos um argumento de rotação atual assim
‫e colocaríamos um ponto e vírgula no final da linha.
‫Agora, infelizmente, não funciona tão simplesmente assim.
‫Chegou ao meu conhecimento, alguns alunos apontaram no assistente de ensino.
‫Dan, muito obrigado, apontou que apenas adicionar rotações assim nem sempre funcionará por causa de algumas
‫das complicações em torno das rotações que se enrolam em si mesmas.
‫Se você for até -90 graus de rotação, em algum momento você precisará virar para mais 90 graus
‫de rotação e assim por diante.
‫Portanto, uma maneira melhor de contornar isso, em vez de definir a rotação ativa, é chamar a rotação local do
‫ator adicionar.
‫E você pode notar aqui que existem algumas transformações locais de atores adicionados também e deslocamento local que é
‫para localização.
‫Então você pode usar isso também em vez de adicionar localização.
‫No entanto, não há o mesmo tipo de problemas que encontraremos nos casos extremos em torno da
‫rotação.
‫Então, o que eu recomendo que você faça é adicionar a rotação local do ator aqui e, em
‫seguida, basta colocar a velocidade de rotação multiplicada pelo tempo Delta e ele faz o restante desse código automaticamente para você.
‫Então, podemos ir em frente e nos livrar dessas linhas.
‫E você tem uma adição direta à rotação local acontecendo aqui, e você também pode se
‫livrar disso obtendo a rotação atual porque não precisamos mais disso.
‫Então vamos para o editor e aperte o botão compilar.
‫E quando isso for feito, feche o log.
‫Vamos selecionar uma das plataformas no nível que qualquer uma delas fará e dar uma olhada nas categorias.
‫Então temos nos movendo e temos rotação e temos a velocidade de rotação então.
‫Então, eu quero girar esta plataforma em torno de seu eixo Z provavelmente, digamos, cerca de 90 graus por segundo.
‫Portanto, leva 4 segundos para fazer uma rotação completa.
‫Vamos em frente e aperte o play.
‫E aí vai.
‫Temos uma plataforma giratória e móvel.
‫Assim, ao contrário do mecanismo da plataforma móvel, não precisamos nos preocupar com a nossa plataforma giratória realmente indo para
‫trás e para frente.
‫Se você quiser fazer isso, essa é uma extensão possível que você poderia pensar.
‫Mas para mim isso é suficiente, porque queremos que essas coisas continuem girando e girando na
‫mesma direção.
‫Então deixe-me remover a rotação dessa plataforma em particular porque não queremos que essa
‫plataforma gire.
‫Então eu gostaria de desafiá-lo a fazer uma plataforma giratória de bip, basicamente mais uma variante para usarmos
‫e encontrarmos uma malha apropriada.
‫Eu iria com algo que é vagamente circular para que faça sentido como uma plataforma giratória e
‫daria a ela uma velocidade de rotação padrão e a colocaria no nível para criar um quebra-cabeça de plataforma
‫giratória para você atravessar.
‫Pause o vídeo e vá em frente.
‫OK.
‫Bem vindo de volta.
‫Então, vamos avançar em nossa gaveta de conteúdo e procurar as classes C++, Obstacle Assault e clicar com o botão direito
‫do mouse na plataforma móvel para criar um dispositivo de classe blueprint derivado disso.
‫Vamos chamá-la de plataforma rotativa de sublinhado da BP e vamos colocá-la na rota de
‫conteúdo e criar classe blueprint.
‫Assim que o editor aparecer, vamos encaixá-lo em nossa janela principal.
‫Vou fechar meu navegador de conteúdo que parece querer aparecer toda vez, e vou para o
‫nosso nível principal e vou para a ilha com todos os nossos recursos de teste no botão direito.
‫Vá aqui e vamos ver se há algo que parece bom.
‫Eu gosto da aparência dessas plataformas aqui.
‫Se eu clicar nele com o botão direito ou se eu simplesmente clicar nele, então a malha que está sendo usada aqui na
‫malha estática é a plataforma SM A. Então vamos procurar por essa.
‫Vamos para nossos projetos, abrir o conteúdo, desenhar, ir para todos e então procurar por plataforma
‫sublinhado M, sublinhado A e então temos a malha, que é esta aqui.
‫A segunda para mim.
‫Vou arrastá-lo para nossa janela de visualização para ter nossa plataforma.
‫Agora vamos ver onde isso está centralizado.
‫Ela é centralizada no meio?
‫Sim, é, o que é bom e importante porque precisamos que gire no meio.
‫Caso contrário, esta plataforma circular vai parecer um pouco estranha.
‫Também podemos escalá-lo um pouco nas dimensões x e Y para tornar esta plataforma um pouco maior e podemos ir para os padrões da classe
‫para remover qualquer velocidade da plataforma porque não queremos que ela se mova e defina a distância de movimento para zero
‫potencialmente e, em seguida, olhar para a seção de rotação e definir isso para cerca de bem,
‫tentamos 90 graus por segundo e isso parecia bastante razoável.
‫Então vamos em frente e salvar esta plataforma rotativa.
‫Nós iremos para o nosso nível principal e então clique com o botão direito na pequena ilha flutuante onde temos nosso nível, configure
‫nosso quebra-cabeça, clique, vá aqui.
‫Então, no topo desta ilha, quero colocar nosso novo projeto.
‫Então vamos cancelar a busca, ir até a raiz do conteúdo e encontrar nossa plataforma rotativa e colocá-la no
‫nível.
‫E instantaneamente estou vendo que realmente quero que seja um pouco maior.
‫Então vamos em frente e escalá-lo.
‫Mais algumas unidades, talvez três vezes, deve ser bom.
‫Vamos dar uma olhada.
‫Agora, acho que poderia ser ainda maior, então vou aumentar um pouco mais para que essencialmente no X e
‫no Y seja cinco vezes maior do que era originalmente.
‫Ok, esse é um bom disco giratório amplo e pode ser bastante desafiador para nós atravessarmos.
‫Então, vou duplicar isso usando alt e arrastar para fazer alguns deles na plataforma
‫e tentar posicioná-los adequadamente e, em seguida, arrastar mais alguns.
‫Para que tenhamos um pequeno conjunto de quebra-cabeças aqui para tentarmos resolver.
‫Então, apenas mexi um pouco até que eu conseguisse colocá-los praticamente de ponta a ponta.
‫E é aqui que poder ter um modo de jogo realmente ajuda, porque podemos clicar com o botão direito
‫perto das plataformas e o clique jogar daqui, e aqui estão todas as nossas plataformas rotativas para pisarmos.
‫E é um pouco desafiador agora para nós encontrarmos nosso caminho através dessas plataformas móveis de maneira fácil e agradável.
‫Agora há essa zona morta no meio que poderíamos tentar apagar,
‫mas na verdade é muito difícil chegar e permanecer na zona morta, então não vou tentar colocar nada lá
‫especificamente para tentar impedir isso.
‫Mas você pode ver lá você vai.
‫É um desafio factível que podemos superar, mas é um pouco complicado e isso é divertido.
‫Coisas boas.
‫Então, nesta palestra, vimos como fazer plataformas rotativas aprendendo sobre um novo tipo, o rotador
‫F e como podemos usá-lo para definir a rotação de nossos atores.
‫Vejo você na próxima palestra.