Design de videogames no Unreal Engine: crie, personalize e reproduza seu mundo | Lucas Ridley | Skillshare
Pesquisar

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Design de videogames no Unreal Engine: crie, personalize e reproduza seu mundo

teacher avatar Lucas Ridley, Professional Animator

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Apresentação

      1:33

    • 2.

      Primeiros passos

      1:28

    • 3.

      Crie o início do jogador

      4:53

    • 4.

      Conecte um personagem personalizado ao jogo

      4:35

    • 5.

      Configure uma máquina de estado

      5:07

    • 6.

      Finalize sua máquina de estado

      13:44

    • 7.

      Conecte a cinematografia ao início do jogo

      10:35

    • 8.

      Crie um temporizador de início

      12:02

    • 9.

      Crie obstáculos com a lógica do jogo

      12:02

    • 10.

      Finalize as áreas de perigo

      3:53

    • 11.

      Compartilhe seu jogo

      4:51

    • 12.

      Considerações finais

      1:41

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

210

Estudantes

--

Projetos

Sobre este curso

Crie seu próprio videogame personalizado para compartilhar e jogar com amigos.

Lucas Ridley, um dos professores de animação mais populares da Skillshare, começou a trabalhar com animação 3D quando pesquisava uma maneira de trabalhar em projetos de filmes com personagens realistas, cenários cativantes e histórias fascinantes sem a necessidade de pesquisar uma locação, obter licenças de filmagem, contratar atores e alugar equipamentos caros. Atualmente animador e cineasta 3D profissional, Lucas trabalhou em filmes como Vingadores: Guerra Infinita e Aladdin, da Disney, bem como em videogames como The Last of Us Part 2 e Suicide Squad: Kill the Justice League — direto da mesa dele. Após obter uma carreira de sucesso, Lucas quer compartilhar como você pode usar a animação 3D para criar seus próprios filmes ou videogames. 

Neste curso, Lucas vai ensinar você a usar o Unreal Engine para criar um videogame inteiro usando a lógica de jogo, um temporizador e obstáculos que qualquer personagem de videogame pode tentar conquistar. Criado para animadores que estão prontos para mergulhar nas profundezas da criação de videogames, cada aula vai fazer você chegar mais perto de um videogame concluído, que você poderá compartilhar e jogar com seus amigos em uma corrida de obstáculos cronometrada.

Com Lucas como seu guia, você vai:

  • Criar um jogador começando do zero 
  • Conectar um jogador meta-humano personalizado ao seu jogo
  • Configurar máquinas de estado para seu personagem, como agachamento 
  • Adicionar uma introdução cinematográfica, temporizador e obstáculos, como objetos rotativos e áreas de perigo

 Além disso, você vai ver os bastidores de como Lucas, um animador 3D em tempo integral, criaria um videogame com uma rápida corrida de obstáculos. 

Quer você sempre tenha sonhado em criar videogames como meio de vida ou apenas queira testar suas habilidades em animação 3D com um projeto interativo e compartilhável, você vai sair deste curso com um videogame exclusivo que poderá compartilhar em seu portfólio, com um potencial empregador ou apenas com seus amigos. 

Para fazer este curso, você deve ter conhecimento intermediário do Unreal Engine para navegar pelo software com mais facilidade. Além do software Unreal Engine, você também vai precisar de um computador e de um mouse de três botões. Para continuar aprendendo mais sobre a animação de videogames no Unreal Engine, explore a Rota de aprendizagem completa do Lucas.

Conheça seu professor

Teacher Profile Image

Lucas Ridley

Professional Animator

Professor
Level: Advanced

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Apresentação: O que eu adoro nos videogames é que você pode criar quebra-cabeças interessantes para outras pessoas explorarem e resolverem Oi. Meu nome é Lucas Ridley Sou desenvolvedor de jogos e animador 3D e trabalho na indústria cinematográfica e de videogames Você pode ter visto alguns dos meus trabalhos se já jogou videogames como The Last of Us, Part II ou Suicide Squad: Kill the Justice League. É incrível para mim que eu possa fazer isso como uma carreira. Acho que o sonho da maioria das crianças jogar videogame para viver Nesta aula, você aprenderá a criar um videogame inteiro. Vamos começar com um filme que se mistura à jogabilidade, onde podemos criar uma lógica de jogo que mostra um cronômetro, cria obstáculos para nosso personagem e, finalmente, podemos exportar tudo isso você possa compartilhá-lo com Estou empolgado em ensinar sobre esse tópico, porque criar videogames é, na verdade, bastante acessível. Você não só tem software livre como o Unreal Engine, mas também pode fazer isso em casa, no seu próprio computador Você deve fazer este curso se tiver conhecimento intermediário do Unreal Engine Não vou mentir, vamos mergulhar nas profundezas do Unreal Engine, criando lógica de jogo com plantas Para acompanhar, tudo o que você precisará é do Unreal Engine, um computador e de um mouse de três botões No final desta aula, você realmente terá um videogame finalizado que poderá compartilhar com seus amigos e competir com eles em uma pista de tempo até os obstáculos Espero que você saia desta aula realmente aprimorando suas habilidades e sentindo uma sensação de realização, porque vamos realmente criar algo impressionante juntos Quer jogar um jogo? Vamos começar. 2. Primeiros passos: Bem-vindo a esta aula. Estou tão feliz que esteja aqui. Neste projeto, vamos criar um videogame cronometrado jogável Será uma que você poderá compartilhar com seus amigos, para que possa competir com eles nesta pista de obstáculos cronometrada Então, vamos criar um cronômetro por meio da lógica do jogo que pode aparecer na tela Assim, você pode competir com seus amigos e comparar pontuações. Vamos criar obstáculos para dificultar isso. Então, se você se deparar com eles, ele realmente simulará a física do Ragdoll em seu jogador e reiniciará o nível, para que você possa começar No final desta aula, vamos exportá-lo como um videogame jogável completo Meu primeiro emprego na indústria de videogames foi na verdade, em um videogame de realidade aumentada, onde pegávamos um livro com marcadores de rastreamento e esse era o controle real do jogo e você podia manipular os jogadores Meu trabalho nesse projeto foi, na verdade, dar vida a esses personagens por meio da animação nas páginas daquele livro de realidade aumentada Eu nem conhecia o Unreal Engine na época. Então, se você terminar esta aula, você já estará à minha frente. Vou lhe dar algumas habilidades excelentes que podem promover sua carreira em design de videogames. Para fazer esse curso, você deve se sentir confortável usando o Unreal Engine, navegar pela janela de exibição e até mesmo saber que os projetos são algo que existe. Será útil, pois vamos nos aprofundar muito mais e criar nossos próprios Então pegue seu computador, seu mouse de três botões e me encontre na próxima lição, onde criaremos um player start para que tenhamos um lugar para começar nosso videogame 3. Crie o início do jogador: Nesta lição, abordaremos como criar um Player Start do zero, se você criou seu próprio nível personalizado, e também faremos um pouco de depuração para melhorar nossa taxa De volta ao Unreal Engine, vou começar com um nível que eu projetei Se você não acompanhou as outras classes e criou seu próprio nível, você pode usar o projeto modelo de terceira pessoa e usar o nível que vem com esse modelo. Esse nível já tem um Player Start, mas precisaremos criar um se você tiver seu próprio nível personalizado. Porque se eu clicar em “Jogar” agora, meu personagem jogável aparecerá onde quer que a câmera Então, eu poderia estar fora do jogo real e não conseguir entrar porque depende da câmera que eu usei. Vou clicar em “Escape” para sair e quero colocar o jogador no ponto que eu quero que o jogo real comece. Vou fazer isso onde criei o filme introdutório que será publicado mais tarde, e quero combinar a posição com a largada do meu jogador Vou adicionar o player, começar clicando no botão de adição aqui e digitando start Você pode ver que temos um Player Start e, como não há mais nada na cena, isso iniciará automaticamente o player onde quisermos. Eu quero igualar a posição do filme. Vou apertar “W” e tirar isso do caminho por um momento. Vou clicar no filme e obter sua posição clicando com o botão direito do mouse nesse valor e escolhendo “Copiar”. E então eu quero escolher o Player Start novamente e colar esse valor clicando com o botão direito do mouse e colando Podemos ver um pouco pelo chão. Vou apenas levantá-lo um pouco e, em seguida, aperto o botão “End” no meu teclado, E-N-D, e isso o colocará no chão Então eu só quero girá-lo porque vamos ver a seta azul apontando para o lado Eu queria apontar na direção do labirinto que criei no meu nível Agora, se eu clicar em “Jogar”, podemos ver que a partida dos jogadores começará exatamente onde esperávamos , nessa posição Agora, se você pode dizer uma coisa, é que a reprodução está muito lenta A taxa de quadros não é ótima, e podemos testar isso ativando os quadros por segundo. Podemos escolher este ícone de três linhas do Hamburger aqui e descer para mostrar FPS, que é a abreviação de quadros por segundo Quando eu clico nisso, você pode ver no canto superior direito aqui, que temos 18 quadros por segundo. Também posso pressionar “Reproduzir novamente” e esses quadros por segundo devem persistir. Podemos ver que é ainda pior quando estamos brincando. Dez, 11 quadros por segundo. Agora, uma das razões para isso na minha cena é por causa das árvores de altíssima definição que temos em nosso ambiente. Se você seguir a classe de ambiente, saberá onde esse ativo reside nessa floresta gerada processualmente Vou trocar isso por um ativo de resolução mais baixa para um ativo de resolução mais baixa que possamos trabalhar muito mais rapidamente Isso é chamado de depuração. Queremos depurar nosso jogo enquanto jogamos e resolver quaisquer problemas que enfrentamos à medida que avançamos Porque resolvendo isso agora, tornaremos tudo mais rápido mais tarde enquanto estivermos trabalhando na cena, que resultará em muito tempo economizado Vou clicar em “Barra de espaço de controle” e vou navegar até onde esse ativo está na minha pasta gerada processualmente e vou abrir o gráfico PCG onde esse Agora, novamente, se você estiver usando o nível de modelo, você não terá isso. Isso é para as pessoas que talvez tenham acompanhado a aula anterior. Vou gerar uma malha estática diferente aqui, então vou substituir as árvores de alta resolução uma de baixa resolução Vou mostrar esse descritor, e é aqui que vive a malha estática da árvore Vou escolher um ativo que vem com os ativos do PCG Vou digitar na árvore e posso ver que existem essas árvores de espaço reservado de PCG, que têm uma resolução muito mais baixa, e é isso que vou usar em vez da alta Podemos ver que ele já foi trocado e observar o que acontece com nossos quadros por segundo Já estamos com cerca de 30 quadros por segundo. Agora, a outra coisa que eu poderia fazer é reduzir o número de pontos também, então eu poderia escolher o amostrador de superfície e em vez de 0,08 pontos por metro quadrado, eu poderia escolher algo pela metade, ou seja, Podemos ver que realmente não ganhamos muito, então vou deixar em 0,08, mas esse é o tipo de teste que você quer fazer para garantir que o jogo que você está criando seja performativo Agora, quando eu pressiono “Play”, você deve obter uma reprodução muito mais suave e ganhamos muitos quadros por segundo Nesta lição, aprendemos como criar um player do zero , caso você tenha seu próprio ambiente personalizado. Caso contrário, basta usar o projeto modelo de terceira pessoa e usar o Player Start que já existe nesse nível. A única coisa a ter em mente é que, se você deseja que um filme comece no início do seu videogame, basta garantir que Player Start esteja exatamente alinhado com essa sequência de níveis Encontre-me na próxima lição, onde vamos conectar nosso personagem jogável personalizado 4. Conecte um personagem personalizado ao jogo: Bem-vindo de volta. Nesta lição, abordaremos como conectar nosso personagem MetaHuman personalizado com nosso personagem jogável em terceira pessoa Vamos voltar ao nosso projeto e começar. Agora eu quero trocar nosso próprio personagem MetaHuman personalizado pela terceira pessoa pela Já abordamos isso em uma aula anterior, mas vou abordar novamente aqui para que possamos nos familiarizar rapidamente com nosso próprio personagem MetaHuman personalizado como personagem jogável Eu já mostrei como migrar personagens de outros projetos em que talvez os tenhamos criado. Tudo o que você precisa fazer é “clicar com o botão direito” em um ativo e escolher Ações do ativo, Migrar Em seguida, escolha o projeto para o qual você deseja migrar se você tiver um MetaHuman de um projeto diferente Nós já fizemos isso, e é por isso que isso existe aqui. Agora tudo que eu preciso fazer é configurar esse personagem para ser jogável Preciso acessar as Configurações da turma e escolher o plano de terceira pessoa como turma principal O personagem em terceira pessoa já tem muita lógica configurada, então podemos usá-la em todas as suas animações apenas com nosso próprio personagem personalizado Agora eu vou escolher isso. Eu vou até o Viewport, para eu possa ver o que está acontecendo, e eu posso ver que meu personagem e a terceira pessoa estão na mesma cena agora Agora eu posso mover essa raiz, clicar e arrastá-la para baixo da malha, e agora posso redefinir a raiz, para que ela corresponda ao personagem em terceira pessoa Estamos todos voltados para a mesma direção agora. Vou redirecionar esse personagem personalizado para a animação que está acontecendo para a terceira pessoa Eu posso fazer isso ativando o redirecionamento ao vivo. Posso escolher a variável de retargeting ao vivo e verificar UseLiveRetargetMode Agora eu posso ver essas linhas, e eu só preciso tornar o personagem em terceira pessoa invisível Posso clicar em sua malha e procurar por visível. Posso desativar a visibilidade e a renderização. Preciso ativar sempre a pose do carrapato e refrescar os ossos. Atualizaremos o personagem em tempo real. Agora posso clicar em “Compilar” e salvar. Quero abrir o plano em terceira pessoa e copiar e colar toda a lógica e entradas do jogo que não temos aqui Porque se eu olhar meu gráfico de eventos, que controla toda a lógica do jogo, na verdade não há nenhum. Não há nada que diga, ei, se eu apertar esse botão, então faça essa coisa. Está totalmente vazio aqui. Temos algumas coisas de AR e face, mas não há entradas reais que tornem isso jogável Quero abrir a planta em terceira pessoa onde ela mora e copiar e colar essas informações Podemos simplesmente roubar todo trabalho árduo que eles já fizeram por nós Vou “clicar duas vezes” nesse esquema, clicar e arrastar, selecionar todas essas informações e copiá-las e colá-las pressionando “Ctrl C”, pulando de volta para minha planta e pressionando “Ctrl V” em uma área vazia para V Então Ctrl V. Agora temos toda essa informação de que eles fizeram todo o trabalho duro por Agora só precisamos dizer quando isso começa a ser reproduzido, depois lançar e começar a fazer todo o mapeamento de entrada que queremos fazer. Posso simplesmente excluir este CustomEvent e usar esse evento, BeginPlay, e mapeá-lo em nossa transmissão para nosso personagem jogável nossa transmissão para nosso personagem Agora eu posso compilar e salvar esse plano, e agora eu só preciso dizer ao meu jogo para realmente usar esse personagem, porque se eu pressionar “Jogar” agora, ele ainda estará usando o personagem padrão Para mudar isso, preciso acessar as Configurações do meu projeto em Editar, Configurações do projeto, Mapas e modos. No modo de jogo selecionado, preciso mudar a classe de peão padrão Eu posso escolher o modo de jogo em terceira pessoa, e então isso me permitirá mudar o plano pelo qual estamos gerando Vou fazer BP_ e agora posso encontrar meu plano para meu MHI_Lucas Agora, quando eu fecho isso e pressiono “Play”, devemos ver nosso próprio personagem personalizado, e ele deve ser jogável pressionando as teclas W, A, S e D. Além da entrada de salto, você pode clicar em “Barra de espaço”. Agora é a sua vez. Pegue seu próprio personagem personalizado e mapeie-o para o personagem jogável em terceira pessoa, ou simplesmente use o personagem em terceira pessoa e clique em “Jogar” e brinque Lembre-se de que é sempre importante tirar proveito de qualquer trabalho que já tenha sido feito para nós, e é por isso que vamos encontrar coisas no conteúdo inicial, copiá-lo e colá-lo Não há vergonha em usar trabalho que já foi feito para você Encontre-me na próxima aula. Vamos criar uma nova máquina estatal para nos agacharmos. 5. Configure uma máquina de estado: Bem-vindo de volta. Nesta lição, abordaremos esquemas de animação e máquinas de estado As máquinas de estado são uma forma de fazermos a transição de diferentes estados em nosso personagem, como ficar ocioso, andar, correr, e vamos adicionar agachamento nesta lição É importante saber que as máquinas de estado, embora sejam coisas próprias, na verdade vivem dentro do esquema de animação Então, é aí que vamos trabalhar. Agora vamos voltar ao nosso projeto. Esta lição lhe dará uma ideia de como criar uma animação de agachamento para nosso personagem Então, vamos imaginar que temos algum tipo de obstáculo que realmente precisamos nos agachar embaixo para poder empurrar um desses blocos, mas ainda não podemos nos Então, precisamos criar uma entrada de agachamento para que nosso personagem possa se agachar e, em seguida, empurrar esse bloco para ultrapassar essa barreira Então, vamos começar isso agora. Para começar, precisamos adicionar uma ação de entrada para sabermos qual pressionamento de tecla realmente permitirá o agachamento Então, vou passar para as ações de entrada do meu personagem em terceira pessoa, porque isso é realmente o que está controlando nosso personagem personalizado é o plano dos pais em terceira pessoa Então, aqui vemos que temos uma pasta chamada input. Dentro daqui, temos esse padrão principal, que é o contexto de mapeamento de entrada. Esse é o grupo principal que controlará as ações. Precisamos de uma nova ação chamada Crouch. Você pode ver que pulamos, olhamos, nos movemos e podemos adicionar qualquer outro tipo de ação que queremos começar a ativar. E neste exemplo, vamos habilitar uma nova ação e entrada do Crouch Então, eu preciso criar uma ação de entrada. Então, vou para a entrada e a ação de entrada clicando com o botão direito do mouse e escolhendo essa opção. Vou escolher I A para ação de entrada e vou chamar isso de Crouch Agora, quando acessamos esse tipo de ativo de dados mestre das ações de entrada, podemos ter um novo mapeamento para o Crouch Assim, posso apertar o botão de adição e escolher Crouch no menu Agora, nesta opção, é aqui que eu posso adicionar quais teclas eu quero que isso seja adicionado Então, eu posso escolher entre as opções aqui, ou eu poderia simplesmente clicar neste botão e, em seguida, apertar o botão real do teclado no meu teclado. Então, vou escolher o controle esquerdo porque estamos usando uma configuração W, A, S e D. Então, vamos clicar em Salvar. E agora permitimos que ele receba essa entrada. Agora só precisamos conectar essa entrada a todos os eventos e a lógica para reproduzir a animação correta e alterar os componentes do personagem para Crouch Então, precisamos seguir o plano do nosso personagem, que para mim é o meta-humano, esse Para você, pode ser a terceira pessoa personagem, se você optar por usá-la. Agora, no gráfico de eventos, é aqui que precisamos adicionar nossa própria ação de entrada. Você pode ver que olhamos, movemos, pulamos e precisamos adicionar a ação de entrada de agachamento Mas antes de fazer isso, precisamos dizer ao componente de movimento que podemos realmente nos agachar Portanto, ele tem as variáveis e coisas que procuramos quando estamos agachados Porque se agachar é uma coisa normal de se fazer. Na verdade, isso já está disponível para nós no componente de movimento do personagem, que é onde todos esses tipos de personagens jogáveis valorizam, como a rapidez com que nos movemos, o que é a gravidade Então, se começarmos a digitar e pesquisar por agachamento, você verá que, na verdade, não podemos nos agachar até verificarmos Isso disponibilizará algumas funções integradas para que ele saiba ativar e desativar o agachamento Você também pode alterar a velocidade que está se movendo quando está agachado E também a altura que você alcançará quando estiver agachado. Então, vou verificar isso. E agora, no meu gráfico de eventos, que mostra toda a lógica das entradas e o que elas vão permitir Assim como o salto aqui, quer estejamos pulando ou não, precisamos criar uma ação de entrada para o Crouch Então, vou começar a digitar Crouch, e isso deve existir porque já criamos esse evento de ação de entrada Portanto, queremos o evento e não o valor, e podemos escolher iniciado e concluído mesma forma que nosso evento para a ação de entrada do salto. Então, para começar, nós realmente temos essa função embutida chamada Crouch E é por isso que habilitamos o agachamento. Portanto, temos essa variável disponível para nós antes de começarmos esta etapa. Então, vou clicar e arrastar para concluir e digitar Crouch novamente e escolher Un Crouch para E isso é tudo o que realmente precisamos fazer. Se quisermos comentar isso, assim como esses outros, podemos pressionar C e digitar crouch input Então, agora só precisamos compilar e salvar, e devemos ver que esses aspectos do componente de movimento já afetam nosso personagem exemplo, a velocidade do Crouch será afetada, mesmo que ainda não tenha nenhuma animação para ser reproduzida Se eu estiver correndo e apertar Crouch ou o botão de controle, na verdade vamos diminuir Mas, na verdade, ainda não temos uma animação de agachamento, e é isso que precisaremos ajustar Então, vamos criar a animação que realmente precisamos agachar Nesta lição, aprendemos como começar a criar uma nova ação de entrada para nosso personagem, para que possamos nos agachar Terminamos vendo que isso pode afetar nossa velocidade e só precisamos inserir as animações certas agora Vamos fazer isso juntos na próxima lição. 6. Finalize sua máquina de estado: Bem-vindo de volta. Nesta lição, continuaremos criando nossa máquina de estados Crouch Vamos pegar nossa ação de entrada que já fizemos e conectá-la a uma animação para agachar-se ocioso e caminhar agachado Em seguida, afetaremos a velocidade com que nos movemos enquanto caminhamos agachados , para que ela se sincronize com a velocidade com que nossos pés Vamos voltar ao projeto. Vamos criar a animação de que precisamos para realmente nos agachar. Felizmente, para nós, se entrarmos lançador da Epic Games no mercado e pesquisarmos os fundamentos do MCO Mocap Na verdade, temos um recurso gratuito aqui que tem uma animação Crouch para Basta pesquisar o ativo e adicioná-lo ao seu projeto. Depois de adicionados ao seu projeto, podemos encontrar esses ativos no navegador de conteúdo acessando o conteúdo, e você pode ver que uma nova pasta foi criada chamada MCO Mocap Aqui podemos encontrar uma animação do Crouch. Eu posso simplesmente procurá-lo no navegador de conteúdo aqui. Você pode ver que temos algumas caminhadas diferentes, agachadas e Basicamente, temos uma versão local e uma versão ambulante. Queremos a versão pronta. Vou selecionar o Crouch in place e o in place walk, e quero clicar com o botão direito do mouse e escolher animações de redirecionamento porque isso está em um esqueleto antigo do Mannequin, e queremos redirecionar para o novo esqueleto do Mannequin e queremos Vou digitar Manny. Agora você pode ver que temos o novo Mannequin Skeleton aqui, e podemos pesquisar esses ativos apenas Se clicarmos duas vezes nele, podemos ver que temos aquele que está saindo do local. Mas queremos aquele que está andando no local. Vamos escolher esses dois e exportar essas animações. Neste básico do MCO Mocap, vou criar uma nova pasta chamada retargeting, clicar com o botão direito do mouse e escolher Nova pasta e colocá-la na pasta Agora, a planta do personagem é onde informamos onde estava a ação de entrada Fizemos isso em nosso projeto para nosso personagem. Mas onde realmente adicionamos as animações? Isso está no plano da animação e não nesse plano. Precisamos encontrar o plano da animação. Se eu clicar duas vezes na nossa, você verá que a classe de animação aqui é Anim Blueprint queen C, e eu posso navegar até esse ativo e clicar duas vezes nele, e ele é na verdade filho do Manny Na verdade, queremos a animação Blueprint de Manny e não a rainha Se eu clicar nesta classe de pais aqui, também posso encontrá-la na pasta, que fica ao lado da rainha, e clicar duas vezes nela. Você pode ver que temos o gráfico de eventos do Animation Blueprint Isso é diferente do esquema do personagem, qual acabamos de adicionar a ação de entrada É aqui que indicamos a variável para agachamento, se estamos agachados ou não, para que ela saiba para que ela Para fazer isso, precisamos conectá-lo ao componente de movimento, que já temos. Vou copiar e colar uma versão aqui e clicar e arrastar para fora dela. Vou digitar agachado. Você pode ver que já temos a variável para isso porque habilitamos a capacidade de se agachar Ele já tem essa variável embutida. Se eu clicar com o botão direito do mouse, posso promovê-la para uma variável. Podemos acessá-lo na máquina de estado para definir isso como uma regra para reproduzir as animações de agachamento ou as animações de agachamento Agora, ele não está conectado a nada, então precisamos adicionar um novo pino a essa sequência, que é o que atualiza os valores em cada quadro para que ele possa descobrir se algum estado mudou, como cair, agachar-se ou Precisamos adicionar esse novo pino aqui para que possamos conectá-lo a essa nova variável que temos. Posso clicar duas vezes em qualquer lugar dessa linha para criar um nó de redirecionamento e, se eu segurar a tecla Control, posso movê-lo para fora do caminho Podemos ficar um pouco organizados aqui. Também posso clicar e arrastá-los e pressionar C para comentar e mover isso para baixo. Agora que finalmente criamos as ações de entrada, temos nossas animações prontas e criamos a capacidade de ver como uma variável se estamos ou não agachados Posso renomear isso para Crouching. Agora estamos prontos para realmente conectar as animações à locomoção Podemos encontrar isso no gráfico anim. No momento, estamos no gráfico de eventos, que você pode ver neste diretório hierárquico aqui Posso pular para a guia do gráfico Anim aqui ou clicar nela aqui No gráfico anim, podemos realmente ver as máquinas de estado, que controlam quais animações estão sendo O que mais nos preocupa é a máquina de estado da locomoção. Se eu clicar duas vezes nele, posso entrar nele e ver que há um ídolo e uma corrida de caminhada Essas são principalmente as duas coisas que podemos fazer com esse personagem. Você pode ver agora que está pré-visualizando a animação do ídolo aqui na janela esquerda Queremos adicionar outro estado chamado Crouching. Posso clicar com o botão direito aqui e adicionar um novo estado. Vou chamar isso de Crouching and it inner. Posso clicar duas vezes e entrar nisso e agora posso adicionar minhas animações aqui Temos duas animações, uma para quando não estamos nos movendo e estamos apenas agachados, e outra para nos agacharmos e outra para Vou clicar em Arrastar essas duas animações para a máquina de estado e preciso dizer quando estamos ociosos e quando estamos É por isso que temos essas variáveis para nos dizer se estamos nos movendo ou não. Isso já foi configurado em nosso gráfico de eventos. Aqui atrás, você pode ver que havia uma configuração de RD chamada Should move. Podemos usar isso para saber se estamos agachados, ociosos ou andando agachados Precisamos combinar esses dois com base nessa variável. Eu posso pegar essa variável dizendo que get deve se mover, e isso controlará qual dessas animações estamos reproduzindo Precisamos de outro nó para determinar isso, e isso é uma mistura de Boolean, que significa que está ligado ou desligado, então podemos digitar poses de mistura de Bole, e agora temos uma pose verdadeira e uma pose falsa Ele será controlado por um valor ativo. O verdadeiro estado será caminhar, então podemos conectar isso ao verdadeiro. Podemos conectar o estado ocioso, a animação ociosa em falso O que vai controlar isso é essa variável aqui. Se devemos nos mudar ou não esse será o valor ativo. Agora, inserimos isso no resultado. Agora voltamos à nossa locomoção. Só precisamos criar uma regra para quando isso estiver acontecendo. Quando estamos agachados? É quando a variável que criamos para agachamento é ativada, com base no fato de estarmos inserindo ou não o pressionamento de tecla correto, que inserimos como controle na ação de como Tudo isso já está configurado. Só precisamos definir a regra para essa variável. Posso clicar e arrastar essa caixa e apontá-la para agachada Eu posso ir do corredor para o agachamento agora com a regra que vou definir Eu posso passar de agachado para ocioso com outra regra. Indo do corredor para o agachamento, quero clicar duas vezes Veja se essa variável está agachada. Se estivermos agachados, queremos entrar na animação agachada Agora, se não estivermos mais agachados, podemos simplesmente definir essa regra para voltar ao modo Queremos dizer, obtenha essa variável novamente, mas acione essa transição se isso não estiver acontecendo. Podemos digitar não e escolher a opção booleana in. Agora precisamos fazer a mesma coisa com as transições de caminhada e corrida A caminhada, a corrida até o agachamento deve acontecer quando estamos Devemos sair desse estado de agachamento voltar a correr, se não estivermos agachados Agora que criamos as regras para se agachar, criamos as animações e, quando elas começarem, podemos clicar em Compilar e salvar, e devemos ser capazes de ver nosso personagem capaz personagem Agora vamos jogar e experimentar. Agora, ao pressionar Control, consigo me agachar e você pode ver que estou me movendo, mas o agachamento e você pode ver que estou me movendo, para de se mover porque não ativamos Podemos voltar ao nosso plano de animação, que podemos acessar em nossos Manequins, animações e Manny Precisamos ter certeza de que a caminhada está configurada para ser circular. Podemos digitar em loop para encontrá-lo e só precisamos ativar a animação em loop. Vamos compilar e salvar. Agora você pode ver que ela realmente gira enquanto estamos gravando. Mas estamos nos movendo muito mais rápido do que nossos pés. Se você se lembra, podemos ajustar a velocidade do agachamento para que ela corresponda mais de perto à animação e à velocidade com que os pés estão realmente Vamos abordar o componente de movimento do personagem em nosso projeto Vou entrar no projeto dos metahumanos. Vou até o componente de movimento do personagem onde ativamos o Crouching Se eu pesquisar por Crouch, posso ver que nossa velocidade máxima de caminhada para Crouch Vamos reduzir isso pela metade, compilar, salvar e testar essa velocidade Vamos segurar Crouch e seguir em frente. Agora você pode ver que estamos nos aproximando muito mais da velocidade com que nossos pés estão realmente se movendo na animação. Ainda está deslizando um pouco, então vou voltar e continuar ajustando esse valor até gostar de como ele combina com a animação real que temos que reproduzir Agora criamos a habilidade de realmente se agachar sob os obstáculos que criamos Agora, só precisamos ter certeza de criá-los em uma altura que faça sentido para nosso personagem. Agora, se a velocidade for muito abrupta, podemos ajustá-la nas configurações de mesclagem das transições . Vamos ver como fazer isso. Basta clicar uma vez aqui e podemos ver que há uma duração de uma combinação de 0,2 segundos. Podemos aumentar isso para algo como 0,5, e podemos fazer isso nas duas direções. Agora dobramos o tempo necessário para percorrer cada estado de agachamento entre a caminhada e a corrida Agora eu quero clicar em play. Podemos correr e depois nos agachar. Demora muito mais para que essa transição ocorra agora, então espero que não seja tão chocante Uma configuração final que podemos ajustar é a câmera estourar quando nos agachamos, sai altura da cabeça do personagem e depois pula até a cabeça do personagem agachado Podemos ativar um atraso que mesclará a câmera com mais facilidade Vamos abrir a planta dos personagens e acessar boom da câmera e a janela da guia de componentes Você precisa parar de jogar para que possamos realmente acessar essas funções, e podemos rolar para baixo para ativar o atraso da câmera Se apenas habilitarmos isso, as configurações padrão funcionarão muito bem. Podemos ajustar essas configurações se quisermos, mas podemos clicar em compilar e salvar, e podemos voltar a jogar e testar o novo lag out da câmera Agora, ele se mistura muito mais perfeitamente e também tem um pouco de atraso quando estamos fazendo outras coisas, mas funciona muito bem para resolver o problema da câmera Crouch Nesta lição, abordamos muitos materiais complicados. Parabéns por acompanhar. Você aprendeu como realizar uma ação de entrada e realmente implementá-la. Redirecionamos a animação e agora temos um novo estado em que nosso personagem está, que é agachado Sinta-se à vontade para substituir essas animações que usamos outras animações que você encontra no mercado ou em no mercado ou Entre e realmente ajuste esses valores. Você sabe, mudamos a animação de mesclagem para 0,2-0,5, mas talvez haja um valor melhor aí Brinque com esses valores e torne-os o mais simples possível. Divirta-se com isso. Me conheceu na próxima aula, onde vamos conectar o cinema ao início do jogo 7. Conecte a cinematografia ao início do jogo: Bem vindo de volta. Uma nota importante desta lição é o fato de que você vai querer ter assistido uma aula anterior desta série, na qual aprendemos a animar nosso personagem em uma sequência de níveis Onde eu começo aqui, eu já tenho essa sequência de níveis criada. Se você não sabe como criar uma sequência de níveis, volte para uma das minhas aulas anteriores desta série, onde aprendemos como criar uma sequência de níveis. Essa aula tem tudo a ver com animação de personagens. Agora que isso acabou, vamos pegar nosso filme e combiná-lo perfeitamente com a jogabilidade Quando começamos nosso videogame, podemos realmente assistir a um playout cinematográfico e, em seguida, ele se mistura perfeitamente para que o jogador possa realmente retomar controle do mesmo personagem e começar Vamos mergulhar de volta . Vamos imaginar quando clicamos em “Jogar” em nosso jogo, queremos realmente ver uma jogada cinematográfica primeiro Eu criei uma sequência de níveis, que eu discuti como criar na aula anterior, e nessa sequência de níveis, eu posso abri-la para ver a animação. Vou clicar em “Abrir sequência de níveis” e podemos ver imediatamente alguns problemas. Uma delas é que meu personagem está no chão e, quando eu limpo a linha do tempo da sequência de níveis, não há nenhuma animação Podemos resolver esses problemas um por um e, em seguida, vincular esse filme para ser reproduzido exatamente como jogamos nosso jogo e, em seguida, integrá-lo perfeitamente à animação do Vamos primeiro resolver alguns desses problemas. A primeira é que quero que esse personagem que eu trouxe corresponda ao início do jogador. Posso selecionar o início do player e copiar esses atributos no painel de detalhes do local da transformação. Depois, posso clicar no próprio personagem e colá-lo clicando com o botão direito do mouse e escolhendo colar. Agora eu só preciso obter a orientação correta. Ao clicar em Início do jogador, posso ver que é um 50 positivo, só preciso selecionar o jogador e obter 50 positivos também. Agora, eles correspondem à mesma orientação e direção de onde o jogador realmente vai começar, bem como ao personagem da sequência de níveis. Eles devem coincidir quando misturamos e saímos do cinema com a jogabilidade O outro problema é que não consigo ver a reprodução da animação, porque ativamos meta de pintura para esse personagem Bem, o personagem que estamos vendo aqui é, na verdade, a versão da classe de spawn desse personagem É uma versão criada do nosso personagem jogável do nosso projeto Nesse plano, ativamos a segmentação por pintura. Para a sequência, queremos desativá-la, dessa forma, ela não pretende reproduzir a pintura como alvo; em vez disso, estamos tentando deixar a animação na sequência Em nossa meta de pintura, posso marcar isso para usar a meta de biblioteca para a versão do plano de desova de Eu posso desmarcar isso, e então devemos ser capazes de esfregar e Ele atualizará e reproduzirá a animação em que incentivamos o jogador a realmente começar a jogar Essa foi a escolha de desempenho que fiz para o meu filme. O seu pode ser diferente. Como fazemos com que essa sequência de níveis seja reproduzida e depois se misture perfeitamente à nossa animação de jogo Queremos entrar em um novo tipo de planta chamada planta de nível Podemos acessar esse plano de nível acessando o ícone de árvore aqui em cima e alternando para o plano de nível aberto Normalmente, não há nada aqui no gráfico de eventos, e é aqui que podemos realmente usar o início do jogo do evento nesse nível para reproduzir a sequência que temos. A primeira coisa que eu quero fazer é selecionar uma sequência de níveis. Início da sequência de níveis é o meu nome. Eu posso escolhê-lo no contorno da janela de exibição. Agora, quando clico com o botão direito do mouse, posso dizer, criar uma referência para a sequência de níveis Sem essa seleção, isso não seria uma opção. Certifique-se de selecionar primeiro a sequência de níveis antes de clicar com o botão direito do mouse aqui Agora que criamos essa referência à nossa sequência de níveis, precisamos clicar em arrastar para fora dela para encontrar o próximo nó de que precisamos. Quando você clica e arrasta os nós, isso é contextual para esse nó Se eu tentar encontrar a mesma coisa que procuraremos aqui no início do evento, não conseguirei encontrá-la. Você quer ter certeza de que está clicando e arrastando os nós corretos para encontrar os que estamos procurando Quero encontrar o player de sequência de reprodução e, quando clico nele, recebo algumas notas aqui, e podemos arrastá-las para fora. Agora temos uma maneira de nossa sequência ser reproduzida, mas ela não sabe como realmente possuir o personagem mas ela não sabe como realmente possuir o personagem com o qual vamos jogar, e isso está em nossa sequência. Precisamos de alguma forma de pegar nosso personagem, e podemos clicar com o botão direito do mouse e dizer: pegue o peão do jogador Isso significa pegar o peão do personagem que está sendo gerado e com o qual estamos jogando Isso é isso. Em seguida, queremos criar uma tag para um personagem para que ele saiba qual personagem possuir. Podemos controlar de forma muito específica e manual o que essa sequência de níveis está controlando. Ao clicar e arrastar novamente, temos que sair disso. Posso procurar um conjunto de vinculação por nó de tag Agora, a única coisa que resta a fazer é conectar algumas dessas coisas e também criar essa tag aqui. Vou minimizar esse primeiro segundo e criar nossa tag. Se eu clicar com o botão direito do mouse no blueprint, posso criar uma tag Agora, a parte complicada sobre o metahumano é que, na verdade, existem vários componentes que compõem esse projeto Temos o corpo, temos o rosto e, especificamente, o que estamos tentando possuir e filtrar por uma etiqueta é, na verdade, o corpo. É aí que está a animação. Queremos realmente adicionar a tag ao corpo. Vou clicar com o botão direito do mouse e adicionar a tag ao corpo. Vou clicar em “Controle A” e “Controle C” para selecionar tudo e copiar para ter certeza de que vou digitá-lo incorretamente em nosso esquema de nível Vou clicar em “Enter” para criar essa tag, e podemos ver que ela existe aqui ao lado do nosso corpo. Se eu clicasse em “Jogar agora”, podemos ver que a animação é reproduzida, mas gera outro personagem Vamos corrigir isso adicionando a tag ao modelo do personagem também. Também vou adicionar a tag ao próprio blueprint, e isso deve resolver esse problema Vou reabrir o esquema de nível e posso colar aqui essa tag de vinculação que acabamos Agora ele sabe a que se vincular com base no ator que vamos dar a ele O ator é o peão do jogador, vou conectar isso. Vamos obter uma pequena matriz que será criada automaticamente. Agora tudo o que precisamos fazer é conectar tudo da esquerda para a direita. Quando o jogo começar a ser jogado, definiremos essa tag e, em seguida jogaremos a sequência com base nessa tag, e eu clicarei em “Compilar” e “Salvar”. Também vou encerrar o sequenciador porque às vezes o Unreal se confunde se estamos tentando jogar a sequência no jogo ou na linha do Vou encerrar isso apenas por uma questão de segurança. Podemos ver que funcionou e nossa animação volta. Agora, o problema é que precisamos combiná-lo um pouco mais suavemente com essa animação ociosa Vou entrar na sequência de níveis e criar uma mistura. Vou clicar na sequência de níveis e vou abrir a sequência de níveis. Quando vejo a animação, há um atributo muito sorrateiro que podemos ajustar, que é a mistura Agora, se eu mantiver o mouse baixo aqui, na verdade estou alterando a duração da animação em si. Mas o que eu quero fazer é pegar o canto superior, onde podemos ver esse pequeno triângulo. Isso controlará a combinação real da animação. Em vez de estourar, teremos cerca de um segundo para voltar à animação ociosa final do nosso Como eles não coincidem exatamente posição dos pés de nossos personagens, por exemplo, teremos uma boa mistura suave entre qualquer incompatibilidade com a imposição de nossa sequência de níveis e o início de nossa animação inicial Agora, quando eu jogo, devo conseguir ver minha animação ser reproduzida e devemos ter uma mistura mais suave com o modo inativo O único problema com isso é que, se eu começar a tentar inserir informações , estou combatendo a animação aqui. Se eu estou tentando me mover enquanto ele está jogando, é meio que lutando um contra o outro. Preciso desativar a entrada por um determinado período de tempo, vou para o plano de nível e vou desativar a entrada Então, eu quero atrasá-lo por um certo período de tempo com base na duração da animação em si. Digamos que três segundos. Então, eu quero poder inserir novamente quando terminar. A última peça do quebra-cabeça é dizer qual é o alvo e o controlador do jogador. Precisamos pegar o controle do jogador e, em seguida, fora desse controle do jogador, eu quero encontrar o peão controlado O alvo será o peão controlado. Posso clicar duas vezes nele e clicar com a tecla Control para que fique um pouco mais organizado, e o controle do player será o que pegamos aqui Apertar o controle para que eu possa segurar e usar outra versão disso aqui Clique duas vezes e agora isso deve funcionar para desativar a entrada durante a reprodução cinematográfica Se eu pressionar o teclado, não conseguirei me mover até acabar com o atraso Você pode ver que eu mudei um pouco durante isso. Na verdade, posso simplesmente aumentar o atraso em nosso cronômetro aqui para algo como quatro, compilar e salvar, e isso deve impedir que possamos mover nosso personagem durante o filme Estou pressionando W e nada está acontecendo, e então ele começa a se mover quando o filme termina Nesta lição, aprendemos como criar uma mistura perfeita entre o modo cinematográfico e o modo de jogo para nosso personagem Aprendemos como criar uma mistura perfeita ajustando alguns valores Sinta-se à vontade para personalizá-lo e torná-lo uma mistura perfeita da cinematografia de sua escolha com a animação ociosa de Se você estiver tendo problemas para fazer com que essa combinação perfeita ocorra, certifique-se de que o início do jogador e sua sequência de níveis estejam orientadas da mesma maneira Encontre-me na próxima lição, onde vamos criar um cronômetro de início 8. Crie um temporizador de início: Bem vindo de volta. Nesta lição, vamos criar um cronômetro de início para nosso jogador, que ele saiba o quanto é bem-sucedido no nível que criamos para ele. Vamos mergulhar de volta. Vamos criar rapidamente uma linha de partida aqui. Para criar a linha de partida, vou usar uma caixa de gatilho. Vou digitar a caixa de gatilho na parte superior do botão do anúncio aqui. Eu quero uma caixa de gatilho. Não quero um volume de gatilho ou qualquer outra coisa. Eu quero uma caixa de gatilho. Vou usar isso e posso simplesmente escalar isso e garantir que cubra toda a linha de partida aqui. Claro, eu também poderia colocar alguns outros elementos aqui que indiquem para o jogador que essa é realmente a linha de partida Mas, por enquanto, eu só quero ter certeza de que os elementos do jogo estão presentes. Depois, podemos sempre voltar e adicionar algumas obras de arte ou malhas estáticas para tornar os elementos funcionais do jogo mais claros para o Vou me certificar de que o gatilho da caixa cubra totalmente essa seção e que seja alto o suficiente para que você não possa pular por cima dela como jogador. Quando o player passar por isso, vamos acionar esse volume. Vamos começar a configurar essa lógica para que tenhamos uma variável em segundos e possamos criar um pequeno cronômetro que será exibido na janela Mas precisamos criar uma variável para os segundos e acioná-la com base na nossa passagem por esse volume. Para fazer isso, quero editar o modo de jogo. O modo de jogo está localizado ao lado do plano de terceira pessoa e é chamado de modo de jogo em terceira pessoa Posso clicar duas vezes aqui e abriremos a janela de configurações. O que queremos é o editor de plantas completo real. Precisamos clicar neste botão aqui para acessar o editor de plantas do modo de jogo Agora que temos isso, podemos começar a criar nossas variáveis que precisaremos. O primeiro é em segundos. Precisamos de alguma forma de medir o tempo e, claro, segundos são a maneira mais comum e fácil de fazer isso. Há diferentes tipos de variáveis. Isso é um material relacionado à matemática da ciência da computação. Se todos esses nomes realmente não fizerem nenhum sentido, não se preocupe com isso. Você pode pesquisar isso ou simplesmente me acompanhar. Só queremos escolher flutuar por enquanto. Agora podemos criar um evento personalizado que será acionado, para eu possa adicionar um evento personalizado clicando com o botão direito do mouse e dizendo: Adicionar evento personalizado. Eu posso chamar isso de temporizador de início. Quando esse evento personalizado é acionado, quero definir os segundos zero porque precisamos começar do zero. Vou clicar e arrastar a variável para fora e escolher Definir segundos. O valor padrão já é zero, então só precisamos conectar isso. Agora, preciso de outra variável que eu possa rastrear se o cronômetro está funcionando ou não Dessa forma, posso usá-lo mais tarde, quer estejamos rastreando se o cronômetro está ligado ou desligado e se quisermos exibir um cronômetro da linha de chegada, por exemplo Vou adicionar outra variável chamada B timer running, e B é para booleano Queremos mudar isso para um tipo booleano, que é um valor verdadeiro ou falso Se você passar o mouse sobre elas, também poderá ver quais são essas variáveis Para este, eu só preciso saber se está funcionando ou não está funcionando? Quando iniciarmos o cronômetro, ele estará funcionando Posso configurar a variável de execução do cronômetro para estar ativada, para que eu possa conectá-las e marcar esta caixa Quando o evento do cronômetro de início acontece, ele define a variável segundos como zero e define o tempo ou a variável de execução como ativada Mas como contamos os segundos? Precisamos de alguma forma de adicionar tempo a essa variável chamada segundos. Bem, podemos usar algo chamado de marcação de evento. Se eu clicar com o botão direito do mouse e disser a marcação do evento, há um evento que já está incorporado ao Unreal Engine Se eu passar o mouse sobre ele, você pode ver o evento chamado de cada quadro. É uma maneira fácil de obter um valor baseado no tempo dentro do Unreal Quero pegar o valor inicial de zero e adicionar, para poder clicar e arrastar e escolher Adicionar. Quero adicionar os segundos Delta, ou seja, a quantidade variável de segundos. Os segundos delta já são rastreados neste nó de marcação de eventos. Eu posso clicar e arrastar isso, e agora estamos adicionando a essa variável. Mas agora precisamos configurá-lo depois de adicioná-lo. Posso clicar e arrastar isso para fora e escolher Definir segundos. Você pode ver que temos nossa variável personalizada aqui embaixo e agora podemos definir os segundos na marcação do Evento. Mas não queremos fazer isso o tempo todo. Só queremos fazer isso quando o cronômetro estiver realmente funcionando. Podemos usar esse valor para diversificar essa tecnologia de eventos. Podemos dizer ramificação, e podemos dizer, se isso for verdade, se o cronômetro estiver funcionando, então faça isso Em seguida, defina o número de segundos com base no Delta na marcação do evento. Se isso for falso, não faça nada. Agora, criamos nosso evento personalizado do cronômetro de início, que rastreará o número de segundos e também definirá uma variável para a qual o cronômetro está sendo executado Em seguida, ele definirá os números de segundos que podemos chamar em nossa interface de usuário e, na verdade, usará esse valor, para que ele se preencha de forma dinâmica e Vamos criar o elemento de interface agora que o jogador pode ver. Vou clicar com o botão direito do mouse e escolher Interface do usuário, Widget Blueprint Só há uma opção, então vamos escolher essa. Vou chamar desta vez de Widget. Dentro daqui, temos um Canvas qual podemos adicionar texto, para exibir coisas na tela para o nosso jogador como estado de saúde ou, no nosso caso, esse cronômetro A primeira coisa que preciso fazer é adicionar um Canvas. Agora posso ver qual é o formato da minha janela à qual estou adicionando coisas. Eu posso clicar e arrastar isso para dentro, e agora podemos ver qual é a borda da nossa cena. Agora eu posso começar e começar a arrastar o texto. Neste bloco de texto, quero ligar para esse cronômetro, pressionar um espaço e dois pontos Agora temos nosso cronômetro. Vou colocar isso no canto superior esquerdo. Você pode colocá-lo no centro, onde quiser. Vou adicionar outro pedaço de texto que será nosso segundo. Essa é a variável que acabamos de criar. Vou vincular esse texto a essa variável. Neste pequeno menu suspenso, posso escolher Criar encadernação. Vou vincular a variável a esse texto. Agora temos essa função que pergunta: a que você deseja se vincular Precisamos obter o modo de jogo, porque é aí que mora essa variável , aquela variável de segundos. Eu posso clicar e arrastar isso para fora, e dizer lançar para o modo de jogo em terceira pessoa. Basicamente, estamos apenas tentando obter esse modelo do modo de jogo em terceira pessoa e, quando o tivermos, podemos dizer que sim, obter o modo de jogo, e agora podemos acessar a variável clicando e arrastando a partir daqui e escolhendo obter segundos Agora você pode ver que temos nossa variável aqui e podemos clicar e arrastá-la para o texto. Ele converterá o valor flutuante em uma string, para que possa ser usado como texto Vou compilar e salvar. Vou voltar aqui, compilar e salvar, e apenas me certificar de que estamos todos prontos Preciso mostrar o cronômetro que fizemos. Preciso mostrá-lo na tela real. Posso clicar no botão Designer aqui em cima e voltar e fazer os ajustes que preciso fazer, mas precisamos de alguma forma de realmente mostrá-lo na tela. Podemos fazer isso na planta do personagem. Vou clicar duas vezes na planta do personagem. Quando o jogo começa no Event start play, tudo isso acontece. Eu só quero acrescentar algo a isso. Quero dizer que, quando isso começar, crie também o widget e o exiba Eu posso clicar e arrastar isso para fora e escolher Widget, Criar widget Posso selecionar o widget dessa classe e podemos tentar encontrar nosso widget de cronômetro aqui e podemos tentar encontrar nosso widget de cronômetro aqui. Agora nós o criamos. Agora eu quero exibi-lo na janela de exibição. Posso clicar e arrastar isso para fora e dizer, adicionar à janela de visualização Agora eu preciso saber o que adicionar à janela de visualização, e podemos simplesmente retornar esse valor aqui Eu posso compilar e salvar. A etapa final é, na verdade, conectar a caixa de ativação ao nosso evento personalizado que criamos no modo de jogo. Precisamos de alguma forma de acionar tudo isso, para que eu possa entrar no plano de nível e criar um evento personalizado com base na caixa de ativação que criamos É mais fácil se eu selecionar essa caixa de gatilho primeiro e, em seguida, clicar com o botão direito do mouse, obtenho um evento de adição para a caixa de gatilho 0. Ele sabe qual caixa de gatilho eu selecionei e eu quero adicionar um evento de colisão Add on Actor start overlap é o que queremos, e quando começarmos a sobrepor essa caixa de gatilho, faça alguma coisa e diremos a ele o que fazer Se você se lembra, nosso evento personalizado está em nosso modo de jogo em terceira pessoa. Precisamos chamar esse modo de jogo em terceira pessoa para acessar esse evento personalizado. Vou clicar e arrastar para fora, e dizer, modo de jogo em terceira pessoa, e vamos simplesmente usar isso e obter o modo de jogo. Então, tudo o que eu quero fazer é chamar esse evento personalizado, para que eu possa começar a digitar o cronômetro de início do evento personalizado Podemos simplesmente clicar e arrastar isso como destino, compilar e salvar Agora, conectamos tudo o que precisamos conectar. Criamos um evento personalizado que rastreará o tempo. Criamos um elemento de interface do usuário e conectamos essa variável personalizada de segundos a essa caixa de texto. Em seguida, criamos um widget alternativo para a janela de visualização no início do jogo Conectamos tudo isso a uma caixa de ativação, então ela ativará nosso evento personalizado que criamos no modo de jogo em terceira pessoa. Isso não está funcionando porque, na verdade, adicionamos tudo ao projeto de terceira pessoa, não ao nosso projeto metahumano Vamos copiar e colar o que fizemos em nosso projeto metahumano Se você estiver usando um metahumano personalizado, precisará executar essa etapa dentro do seu projeto metahumano personalizado Vou pular até meus metahumanos e vou abrir esse Vou apenas copiar e colar isso no Begin play, que está aqui em cima. Eu posso ver que o Begin play está acontecendo aqui, e eu só quero copiar e colar tudo isso aqui. Agora vou compilar e salvar, e isso deve funcionar para nosso personagem personalizado Agora você pode ver que na verdade já temos o cronômetro no canto superior esquerdo. Sabemos que está funcionando. Está mostrando a tela. Se eu correr por aqui, ele não está fazendo nada, mas assim que eu cruzar o volume invisível do gatilho, ele deve começar a exibir uma hora. Você pode ver que estamos rastreando a hora agora em nosso jogo. Ótimo trabalho ao concluir esta lição. Nós cobrimos muita coisa. Estávamos trabalhando em alguns projetos diferentes e lentamente conectamos cada um desses componentes Criamos um evento personalizado, criamos uma variável personalizada. Adicionamos essa variável para que pudéssemos rastrear o tempo. Em seguida, criamos nossa própria interface de usuário para que o jogador pudesse realmente ver tudo isso acontecendo e, em seguida, usamos a caixa de gatilho como uma forma de realmente fazer com que tudo isso fique visível para o jogador. Há muitas informações aqui. Não se apresse e consulte esta lição se precisar. Encontre-me na próxima lição, onde vamos criar um obstáculo para nosso personagem superar 9. Crie obstáculos com a lógica do jogo: Bem vindo de volta. Nesta lição, vamos criar um obstáculo para nosso personagem jogável superar Esse obstáculo será uma caixa giratória, de modo que, se o personagem realmente se deparar com ela, estimulará a física de Rag Dall em ela, estimulará a física de Rag Dall nosso personagem e depois Na verdade, é apenas um obstáculo ou desafio perigoso para nosso jogador tornar nosso nível mais interessante Abrindo nosso projeto novamente, vamos começar. Primeiro, vamos criar o obstáculo. Vou criar um novo obstáculo na minha área de projeto metahumano Se eu estivesse criando vários obstáculos, eu poderia me organizar para criar uma pasta para si mesma. Mas, por enquanto, vou criar uma nova aula de blueprint Vou clicar com o botão direito do mouse no navegador de conteúdo, classe Check Blueprint, selecionar o Ator e vou chamar isso de BP Underscore Vou clicar duas vezes nesse Blueprint vazio. No interior, temos essa tela em branco onde podemos criar nosso obstáculo Vou adicionar uma malha estática clicando em Adicionar e digitando em Malha estática Vou escolher a malha estática e vou encontrar um obstáculo para nosso tipo de malha, e quero adicioná-lo ao nosso Blueprint No conteúdo inicial de VR, há uma malha básica chamada cubo SM 03 Por ter contornos vermelhos, acho que vai funcionar bem para nosso objeto giratório Vou usar essa malha estática. Agora eu quero adicionar um componente de movimento rotativo. Quando pressiono simular, podemos ver que ele está realmente girando, mas está girando na direção errada e está girando muito rápido Eu posso simplesmente escolher um eixo diferente para girá-lo. Vou escolher a malha estática e pressionar E, posso ver que será Y ou X e que quero girá-la em um desses dois Eu vou para o componente de movimento rotativo. Em vez de z, quero transformar isso em zero. Eu não quero que ele gire em Z, e eu quero que ele gire em X ou Y. Eu quero girá-lo Vou escolher um valor menor que 180. Eu quero escolher 90, e agora, quando pressiono simular, posso ver que ele está realmente girando em outra direção, algo mais desejável para esse objeto Vou desligar a simulação. Agora eu quero criar um volume de gatilho que corresponda ao tamanho desse obstáculo Vou adicionar uma colisão de caixas. Com essa colisão de caixas, vou aumentá-la e fazer com que corresponda ao tamanho dessa caixa Vou pressionar R no meu teclado para abrir o atalho do manipulador de escala Agora, quero torná-la um pouco maior do que as dimensões da malha estática para ter certeza de que o jogador realmente possa colidir com essa caixa Vou compilar e salvar, e vou clicar e arrastar essa planta diretamente para a nossa cena Vou girá-lo para cima e vou apertar play Agora eu posso ver que tenho um objeto giratório na minha cena, e se eu me deparar com ele, nada acontece Eu posso simplesmente colidir com ele e não me machucar de forma alguma O que eu realmente quero fazer é desencadear um evento de boneca de pano. Meu personagem basicamente fica mole e morre e enrola bonecas de pano quando entra nessa caixa Precisamos criar essa lógica de jogo e conectá-la a esse obstáculo Além disso, se eu quiser mover isso para o lado, posso simplesmente girá-lo para baixo pressionando E no meu teclado e girando-o em 90 graus Eu também posso ampliar esse objeto. Se eu quiser que essa escala seja mais longa, posso fazer isso e pressionar R no teclado e balança e também W para movê-la para mais perto do chão. Dessa forma, está bloqueando o caminho. Vamos criar a lógica do jogo para um personagem de Rag Dall seguindo seu plano Se você estiver usando um personagem de planta em terceira pessoa, você entrará nessa planta e fará tudo o que estamos prestes a fazer Mas eu estou usando um metahumano personalizado, então vou entrar aqui e criar esse evento personalizado Queremos que nosso personagem seja Rag Dall, então vou chamar meu evento personalizado de Rag Vou clicar com o botão direito do mouse no gráfico de eventos do Blueprint e começar a digitar o evento personalizado Vou adicionar um evento personalizado e chamá-lo de evento Rag Dall Para este evento personalizado, quero simular a física desse personagem Vou clicar e arrastar isso e começar a digitar simular Eu quero configurar a física simulada na malha. Vou configurar a física simulada na malha. Podemos ver que já está mapeado. Se eu escolher o componente errado ou quiser alterá-lo posteriormente, sempre posso clicar e arrastar o componente e mapeá-lo até o destino. Vou ativar a simulação porque essa é a razão pela qual estamos criando esse nó é para simulá-lo. Então eu quero reiniciar o nível. Vou criar um atraso primeiro porque quero ver a simulação ocorrer por alguns segundos. Vou atrasar isso para que possamos realmente ver o efeito ocorrer em talvez 2 segundos. Então eu quero subir de nível novamente. Quero obter o nome do meu nível atual. Vou digitar get current level name e, a partir disso, quero carregar esse nível pelo nome. Eu vou dizer nível aberto pelo nome. Então, posso simplesmente inserir o valor de retorno aqui. Isso criará um pequeno nó de conversão de conectores para nós. Agora temos um evento personalizado que aciona a física da nossa malha e atrasa o próximo evento em alguns segundos, e então ele carrega novamente o mesmo nível em que estamos Basicamente, recomeçamos depois de colidirmos com a caixa. Mas precisamos estabelecer esse relacionamento. Tudo o que fizemos foi criar o evento personalizado, mas nada o está acionando no momento Agora, há uma última coisa que queremos fazer sob a malha é ir até a seção de colisão e, na seção de colisão, queremos ter certeza de que escolhemos o ator de física Por padrão, isso é malha de caracteres, e queremos mudar isso para Physics actor. Agora que fizemos isso, podemos compilar e salvar. Agora podemos conectar esse evento personalizado ao obstáculo em si. Vou abrir a planta do obstáculo pressionando a barra de espaço de controle e, em seguida, abrindo Dentro deste plano, quero dizer que os atores do evento começam a se sobrepor Mas eu quero fazer isso especificamente para a caixa. Vou clicar com o botão direito do mouse e dizer no evento no componente, começar a sobreposição Quero pegar o evento personalizado que acabamos criar e que está no projeto do meu metahumano, ou do seu personagem em terceira pessoa, se você estiver usando isso Queremos aproveitar isso para que possamos realizar esse evento personalizado. Vou falar com nosso ator, e vou chamar esse evento personalizado. Lembro que o chamei de Rag Dall, então vou digitar Rag Dall, e aqui temos O alvo aqui é ele mesmo, para o qual estamos nos dirigindo. Agora eu posso compilar e salvar, e podemos testar isso. Eu só preciso correr até essa barreira, e ela deve acionar o pano Dall, e você pode vê-la Funcionou. Ele criou um efeito rag Dall, simulou a física e reiniciou o nível Agora estou de volta ao começo. Mas havia algumas coisas estranhas. A cápsula que contém o personagem ainda estava colidindo com esse obstáculo depois que o Rag Dall foi iniciado e está movendo minha As coisas ficam um pouco caóticas lá. O que podemos fazer é voltar ao plano deste evento Bag Dall e adicionar mais algumas Depois de começarmos a simular a física, vamos destruir o componente da cápsula para que ele não colida mais com o Vou clicar e arrastar para fora daqui e começar a digitar destroy component e escolher o componente da cápsula O que acontece é que, se olharmos na janela de exibição, o componente da cápsula é essa gaiola de arame, e é isso que está colidindo com o obstáculo depois de já termos Queremos desligar isso depois de acionarmos para simular o Rag Dall na malha do personagem Queremos desligar o componente da cápsula, para que ele não colida mais com o obstáculo depois de morrermos Destruímos esse componente depois de simularmos a física, atrasamos a próxima etapa em 2 segundos, para que possamos realmente ver a física acontecer, e então eu quero criar uma transição de morte um pouco melhor para transição de morte um pouco melhor o nível inicial novamente Vamos criar um fade de câmera. Mas para fazer isso, não podemos simplesmente clicar e arrastar para fora daqui. Primeiro, precisamos pegar o gerenciador de câmeras e clicar e arrastar para fora dele. Primeiro, precisamos obter o gerenciador de câmeras. Agora eu posso clicar e arrastar isso e dizer, inicie o desvanecimento da câmera Isso só está disponível para nós se estivermos clicando e arrastando para fora do gerenciador de câmeras do player A câmera começará a desaparecer após o atraso e logo antes de nosso nível carregar novamente. Vou colocar isso no processo. Queremos, digamos desaparecer de uma cor vermelha porque morremos Estamos fazendo com que fique um pouco vermelho escuro só para sabermos que está desaparecendo porque morremos Quero que a duração ocorra em mais de 2 segundos. Você pode jogar com esse valor e aumentá-lo, algo como 5 segundos. Eu quero diminuir 0 -1. Quero ativar completamente o efeito, o que é um deles. Vou digitar um aqui. Agora, para ver isso acontecer, para ver esse desvanecimento acontecer, precisamos de outro atraso aqui Vou copiar e colar esse atraso e colocá-lo aqui para que possamos realmente ver o desvanecimento ocorrendo Você deseja que esse atraso seja tão longo quanto a transição e o desbotamento da câmera ocorrerem Agora temos um evento personalizado. Ele será chamado quando colidirmos com a caixa. Isso estimulará a física, destruirá a cápsula, então não colidiremos mais com o obstáculo em si depois de já morrermos, e poderemos assistir isso por alguns segundos, e então começaremos a ajustar a câmera e recarregar o nível em que estamos câmera e recarregar o nível em que Vou compilar, salvar e testar essas alterações. Isso funcionou, não estamos mais colidindo com o obstáculo depois que a simulação é acionada e o nível Agora que criamos esse obstáculo para nosso jogador, podemos pegar esse perigo sublinhado do Blueprint ou o que quer que você chame de seu próprio Blueprint e, na verdade, basta clicar e arrastá-lo para nossa cena quantas vezes quisermos arrastá-lo para nossa cena quantas vezes Não precisamos continuar criando esse obstáculo repetidamente nos Blueprints Nós o fizemos uma vez e podemos usá-lo repetidamente onde quisermos em nosso nível. Uma etapa que você deve garantir é tornar a colisão da caixa maior do que o próprio obstáculo Caso contrário, o jogador nunca poderá realmente colidir com ele porque está dentro do obstáculo Queremos tornar a colisão da caixa maior do que o obstáculo para que possamos realmente acionar todos esses eventos Brinque com isso, crie obstáculos de diferentes formas e tamanhos, escolha diferentes malhas estáticas e posicione-as ao redor do seu nível Na próxima lição, mostrarei outra maneira de usar esse modelo 10. Finalize as áreas de perigo: Bem vindo de volta. Nesta lição, vamos pegar esse modelo de obstáculo e adicionar uma explosão a Também vamos adicionar um som e depois reutilizá-lo, para possamos usá-lo em mais lugares em nosso nível. Vamos começar. Então, vou abrir espaço para esse evento de ragdoll, clicar, arrastar e começar a digitar no emissor de spawn Eu vou dizer que o emissor de spawn está anexado. O anexo será o componente real da cápsula. Então, vamos anexá-lo ao componente da cápsula. Mas precisamos fazer isso antes que seja destruído. Então, vou avançar um nível. Então, posso dizer anexar a esse componente. O que queremos emitir é uma explosão de estoque que, na verdade, vem com um motor irreal Então, vamos emitir uma explosão no local do componente da cápsula Eu também quero tocar um som com a explosão. Vou mover isso para baixo e vou sair e dizer, toque som 2D. Posso visualizar esses sons pressionando o botão play. Então, vamos encontrar uma explosão. Todos esses sons vêm com um motor irreal. Então, vou escolher o de explosão e vou compilar e salvar Agora, quando nos deparamos com esse objeto, devemos ver uma explosão e ouvir um som. Agora, se quisermos ter o mesmo efeito nosso obstáculo de fogo ou em qualquer outro obstáculo, não precisamos ter a malha estática Podemos criar um novo plano de obstáculos. Então, vou clicar com o botão direito do mouse e duplicar isso, e vou chamar isso de gatilho de perigo Porque o que podemos realmente fazer é simplesmente remover a malha estática e podemos ter esse componente de gatilho. Podemos desativar a rotação porque não precisamos que ela gire Eu posso simplesmente redefinir a balança, então, quando trouxermos esse componente de perigo, podemos redimensioná-lo para o que precisamos Vou clicar e arrastá-lo para a fogueira e escalá-lo para que cubra toda a fogueira. Mas quero mantê-lo baixo o suficiente para que não suba mais do que a própria caixa. Eu só vou diminuir isso um pouco. Agora vou testar esse volume do gatilho. É assim que você cria obstáculos e reaparece no início do jogo Nesta lição, criamos uma explosão para nosso obstáculo, bem como para o som, e reaproveitamos a planta do obstáculo de maneiras diferentes para que possamos aumentá-la em todo o nível. Ou seja, na próxima lição, vamos pegar todo esse videogame e empacotá-lo para que possamos compartilhá-lo com nossos amigos. 11. Compartilhe seu jogo: Bem-vindo de volta. Nesta lição, aprenderemos como podemos empacotar o videogame que você criou e compartilhar com amigos. Dessa forma, você pode saber quem é o jogador mais rápido do seu videogame. Vamos começar. Em primeiro lugar, queremos garantir que o jogo carregue o nível correto para o jogador ao abri-lo. Precisamos definir isso nas configurações do projeto. Vamos editar as configurações do projeto e, nos mapas e modos, podemos selecionar o mapa padrão do jogo. Atualmente, ele está definido como o Mapa Mundial Aberto padrão, que não é o nível que criamos. O nível que eu criei se chama New Landscape 01. O nível que você escolher será o que você escolher para nomeá-lo. Eu só preciso abrir esse menu e clicar no meu nível que eu criei. Agora, quando empacotarmos nosso jogo, ele realmente carregará o mapa correto quando começarmos a jogar. Vou encerrar isso e, para começar a empacotar nosso jogo para nossos amigos jogarem, podemos acessar as plataformas e escolher a plataforma na qual queremos publicar. Vou escolher o Windows e o projeto de pacote. Mas temos um erro aqui. É porque não temos o STK para Windows instalado, então vou clicar em Cancelar Se eu voltar às plataformas, às janelas e olhar para a parte inferior aqui, posso ver quais versões são permitidas. Então, tudo que eu preciso fazer é pesquisar no Google Windows, STK, baixar o instalador e instalar o STK para A instalação demorará um pouco e, quando terminar, você poderá voltar ao real e usar as plataformas. Em seguida, clique em Atualizar status da plataforma primeiro, a menos que você já tenha fechado e reaberto Agora, ele deve ser atualizado e ser capaz de usar o pacote STK que instalamos Agora vamos para plataformas, janelas e projetos de pacotes. Agora, não recebemos um erro e ele está apenas perguntando onde queremos salvar esse projeto de pacote. Fomos recebidos com um erro de falha e posso abrir o registro de saída e ver por que ele falhou Parece que ainda falta um componente, que é o Visual Studio 2022. Vou encontrá-lo on-line , instalá-lo e tentar novamente. Se o instalador estiver parado em zero, você poderá cancelar e certificar-se de executar como administrador clicando com o botão direito do mouse e selecionando executar como administrador. Certifique-se de incluir também o material do C++ na instalação , então marque esta caixa Agora podemos voltar para plataformas, janelas e tentar o projeto de pacote novamente. Se recebermos esse aviso, queremos ter certeza de que permitimos o acesso. Esta etapa vai demorar um pouco, então deixe-a funcionar. Terminamos de empacotar nosso jogo, então temos uma pasta do Windows aqui e, dentro dessa pasta, podemos ver o ícone do Unreal Engine Tudo o que preciso fazer para jogar nosso jogo é clicar no ícone do Unreal Engine que é um aplicativo executável Agora temos nosso jogo e ele está pronto para começar. Agora, se quisermos sair do jogo, basta pressionar a tecla tilda, que está no canto superior esquerdo da maioria dos teclados, logo abaixo da tecla escape, e podemos digitar sair e pressionar “Enter” Se quiser compartilhar este jogo com seus amigos, você pode clicar e arrastar tudo e, no Windows, clicar com o botão direito do mouse e escolher a pasta zip compactada S two Isso criará um arquivo que você pode compartilhar com seus amigos e que eles podem compactar, e lembre-se de que esse pode ser um arquivo bem grande. Acho que o meu tem cerca de 4 gigabytes. Você vai querer usar algum serviço de transferência de arquivos como wetransfer.com ou Google Drive para compartilhá-lo com seus amigos Nesta lição, abordamos como realmente empacotar o jogo que criamos para que possamos compartilhá-lo com nossos amigos. Tivemos que instalar duas coisas para o Windows. Tínhamos o Windows STK e o Visual Studio. Você pode ter algumas dessas coisas já instaladas se for um grande programador de computador, mas eu não sou, então tive que instalá-las Demoram um pouco, minha ficou parada em 0% por um longo tempo, então tente ser paciente com essas instalações Lembre-se de que o tamanho do arquivo pode ser muito grande para eles. Você vai querer encontrar um serviço de transferência de arquivos que permita arquivos grandes. Eu gosto de usar transfer.com ou Google Drive e aí está Você tem seu jogo, você pode baixar e compartilhar. 12. Considerações finais: Parabéns por terminar esta aula. Se você está acompanhando todas as aulas da série e até maiores, parabéns porque é muito material. Agora que você terminou esta aula, você tem um conjunto de habilidades incrível. Aprendemos como adicionar um estado a uma máquina de estados. Aprendemos como criar obstáculos para nossos personagens e cronometrar seus movimentos em um nível para que possamos criar um videogame competitivo e até mesmo compartilhá-lo com nossos amigos. Eu adoraria ver o que você fez. Faça um vídeo de captura de tela do seu jogo e compartilhe-o na galeria do projeto. Se você estiver interessado em levar isso ainda mais longe, jogue seu videogame favorito. Veja quais tipos de recursos e componentes existem neles e tente recriá-los em seu próprio videogame Agora, considere todas as complexidades de seus videogames favoritos e pense em como você pode levar seu videogame para o próximo nível Você pode adicionar um jet pack ao seu personagem. Você pode adicionar um sistema inimigo, um sistema de combate, um sistema de inventário de armas. Há muitas maneiras diferentes de aumentar o nível do seu jogo. Você pode se inspirar em seus jogos favoritos. Depois de percorrer cada um desses caminhos, reconheça que cada um é sua própria disciplina profissional Se você gosta de criar inimigos e descobrir o comportamento da IA, essa é sua própria disciplina em uma empresa de jogos Ou se você gosta de fazer o design de níveis e descobrir a lógica do jogo de como o jogador interage com o ambiente, essa é sua própria disciplina Continue explorando o máximo que puder, porque cada caminho tem seu próprio caminho para uma carreira gratificante Muito obrigado por fazer este curso. Mal posso esperar para jogar seu jogo quando ele for lançado no mundo.