﻿1
00:00:04,460 --> 00:00:05,150
‫Olá e bem-vindo.

2
00:00:05,150 --> 00:00:11,510
‫Nesta palestra vamos corrigir esses bugs com o Raytracing para que possamos matar o personagem.

3
00:00:11,510 --> 00:00:18,260
‫Eles não estão se matando e podemos atropelar o local onde eles estiveram desativando sua cápsula.

4
00:00:18,260 --> 00:00:20,780
‫Collider Vamos mergulhar e ver como conseguir isso.

5
00:00:21,860 --> 00:00:24,440
‫Então, temos alguns bugs estranhos acontecendo no momento.

6
00:00:24,440 --> 00:00:31,400
‫Então temos um onde o inimigo A. EU. essencialmente parece estar atirando na própria cara, como

7
00:00:31,400 --> 00:00:35,660
‫você pode ver pelo fato de que logo vai se espalhar morto no chão assim.

8
00:00:36,050 --> 00:00:40,220
‫Mas não é só isso, continua atirando enquanto está morto.

9
00:00:40,520 --> 00:00:43,250
‫Então, vamos resolver alguns desses problemas progressivamente.

10
00:00:43,490 --> 00:00:45,260
‫Vamos ver o que está acontecendo.

11
00:00:45,260 --> 00:00:50,840
‫Então, em primeiro lugar, o tiro na cara, pode ser bem fácil ver o que está acontecendo.

12
00:00:50,840 --> 00:00:57,830
‫Então, se formos para a nossa arma, C. P. , e dê uma olhada em como isso

13
00:00:57,830 --> 00:01:04,280
‫está funcionando, no momento estamos fazendo esta linha Trace single por canal para encontrar o resultado do hit, e estamos fazendo isso a partir

14
00:01:04,280 --> 00:01:07,760
‫do local que é a viewport do player, o viewpoint V, desculpe.

15
00:01:08,210 --> 00:01:13,340
‫E com a IA que já discutimos isso, será algo próximo ao nível dos olhos.

16
00:01:13,340 --> 00:01:14,870
‫É daí que vai ser traçado.

17
00:01:15,230 --> 00:01:17,600
‫E você pode ver que pode haver um pequeno problema aqui.

18
00:01:17,600 --> 00:01:21,770
‫Se começares a traçar pelos olhos dele, vais atingir esta cápsula.

19
00:01:22,010 --> 00:01:24,410
‫Na verdade, nós mesmos também temos o problema.

20
00:01:24,410 --> 00:01:29,780
‫A única diferença é que, como temos isso na visão da câmera,

21
00:01:30,110 --> 00:01:37,370
‫na visão do ombro, essencialmente não entendemos o problema porque contornamos essa cápsula e não a acertamos.

22
00:01:37,640 --> 00:01:42,290
‫Mas poderíamos estar atingindo nossa própria cápsula com a mesma facilidade se nossa câmera estivesse em um local diferente.

23
00:01:42,950 --> 00:01:44,090
‫Então, como vamos parar com isso?

24
00:01:44,090 --> 00:01:50,840
‫Então, se voltarmos e definirmos isso, criaremos uma estrutura, os parâmetros de colisão que chamarei de params

25
00:01:51,380 --> 00:01:57,080
‫e podemos adicionar alguns atores que devem ser ignorados como parte de nossa linha.

26
00:01:57,080 --> 00:02:04,040
‫Trace Fazemos isso fazendo params dot add ignore o ator ignorado e então quais são os atores que devemos

27
00:02:04,040 --> 00:02:04,550
‫ignorar?

28
00:02:04,550 --> 00:02:06,560
‫Bem, o primeiro é simplesmente a arma.

29
00:02:06,560 --> 00:02:10,460
‫Então este e o segundo é o dono --.

30
00:02:10,460 --> 00:02:14,570
‫Portanto, os parâmetros não adicionam o ator ignorado ao obter o proprietário.

31
00:02:14,960 --> 00:02:19,400
‫Então, basicamente, o dono da arma não deve ser atingido por sua própria arma.

32
00:02:19,400 --> 00:02:26,210
‫Quero dizer, obviamente você pode querer acertar seus próprios peões com a arma, mas não, não neste

33
00:02:26,210 --> 00:02:26,690
‫caso.

34
00:02:26,990 --> 00:02:35,180
‫Então os params que vamos passar como o último argumento para nossa linha traçam um por canal e então vamos salvar

35
00:02:35,180 --> 00:02:38,120
‫e construir e ver se isso funciona.

36
00:02:38,240 --> 00:02:44,450
‫Então, agora, idealmente, se apertarmos o play, devemos ver o sim, estamos obtendo o efeito de partículas

37
00:02:44,450 --> 00:02:50,540
‫em nossa cápsula, em nosso jogador e, eventualmente, nossa saúde deve cair para zero e devemos acabar

38
00:02:50,540 --> 00:02:54,820
‫esparramados no chão agora vá esparramado no chão em algum lugar.

39
00:02:54,820 --> 00:02:56,390
‫Parece que caímos.

40
00:02:56,390 --> 00:03:01,430
‫Eu não sei para onde nosso jogador real foi, mas ainda estamos no chão.

41
00:03:01,670 --> 00:03:03,080
‫Mas aqui está outro bug.

42
00:03:03,110 --> 00:03:08,600
‫Você pode ver que ele ainda está atirando em nós e ainda está atirando e acertando uma cápsula.

43
00:03:09,110 --> 00:03:10,940
‫E a mesma coisa realmente acontece.

44
00:03:10,940 --> 00:03:15,140
‫Se eu fosse matar esse cara, vamos em frente e matá-lo.

45
00:03:15,140 --> 00:03:20,420
‫Eles vão ficando muito mais difícil sem algo para apontar na tela.

46
00:03:20,420 --> 00:03:21,980
‫Mas você é capaz de pegá-lo.

47
00:03:22,730 --> 00:03:24,770
‫Mas ele ainda está atirando ainda atirando em mim.

48
00:03:25,250 --> 00:03:29,390
‫E o que teríamos visto também é que sua cápsula ainda está ativa.

49
00:03:29,390 --> 00:03:35,600
‫Então, há algumas coisas que queremos fazer quando nossos personagens são mortos, tanto o cara quanto o jogador.

50
00:03:35,990 --> 00:03:42,440
‫Então vamos para o CP do personagem atirador e vamos encontrar nossa função de receber dano.

51
00:03:43,130 --> 00:03:44,840
‫E basicamente queremos adicionar uma instrução F aqui.

52
00:03:44,840 --> 00:03:46,820
‫Queremos dizer se está morto.

53
00:03:47,360 --> 00:03:49,340
‫Então, basicamente, sofremos danos pela última vez.

54
00:03:49,340 --> 00:03:50,030
‫Agora estamos mortos.

55
00:03:50,510 --> 00:03:53,060
‫Precisamos fazer algumas coisas, fazer alguma limpeza.

56
00:03:53,720 --> 00:03:56,720
‫A primeira coisa que precisamos fazer é separar o controlador deste personagem.

57
00:03:56,720 --> 00:03:58,850
‫O controlador não é mais responsável por esse personagem.

58
00:03:58,850 --> 00:03:59,660
‫O personagem está morto.

59
00:03:59,870 --> 00:04:03,980
‫Você não pode fazer nada que nos impeça de atirar.

60
00:04:04,070 --> 00:04:06,770
‫Portanto, a IA não estará mais atirando quando estiver morta.

61
00:04:06,800 --> 00:04:07,850
‫Isso meio que faz sentido.

62
00:04:08,180 --> 00:04:12,710
‫E, além disso, não poderemos mais tentar nos movimentar pelo mundo.

63
00:04:12,980 --> 00:04:18,890
‫Tudo isso está sendo desabilitado fazendo uma desconexão do controlador pendente de destruição.

64
00:04:19,310 --> 00:04:20,090
‫É isso que vamos fazer.

65
00:04:20,870 --> 00:04:28,040
‫Então a próxima coisa é que queremos desligar essa colisão de cápsula para que possamos fazer os componentes da cápsula

66
00:04:28,130 --> 00:04:31,850
‫e então precisaremos fazer uma inclusão de hash no topo.

67
00:04:32,710 --> 00:04:37,480
‫Para os componentes da cápsula que incluem componentes e o componente da cápsula ali.

68
00:04:38,710 --> 00:04:40,690
‫Em seguida, rolando de volta para baixo para receber dano.

69
00:04:41,210 --> 00:04:46,010
‫Eu vou fazer um operador de seta e vamos fazer um conjunto de colisão habilitado.

70
00:04:46,610 --> 00:04:48,860
‫Então, nós meio que queremos defini-lo como não ativado.

71
00:04:48,860 --> 00:04:49,370
‫Isso é o que estamos fazendo.

72
00:04:49,370 --> 00:04:55,040
‫Essa colisão está habilitada o suficiente para que a colisão possa ser habilitada, dois pontos, dois pontos, sem colisão.

73
00:04:55,580 --> 00:05:00,230
‫Então, estamos configurando nosso colisor de cápsulas para nenhuma colisão, o que deve nos ajudar imediatamente.

74
00:05:00,860 --> 00:05:01,250
‫OK.

75
00:05:01,250 --> 00:05:04,220
‫Então, vamos em frente e construir e ver se isso ajudou.

76
00:05:04,490 --> 00:05:06,430
‫Bem, pelo menos o compilador foi bem sucedido.

77
00:05:06,430 --> 00:05:07,400
‫Vamos e aperte o play.

78
00:05:07,400 --> 00:05:09,110
‫E então ele está atirando em mim.

79
00:05:09,110 --> 00:05:10,580
‫Eu posso atirar nele até que ele esteja morto.

80
00:05:11,300 --> 00:05:11,700
‫Aqui vamos nós.

81
00:05:11,780 --> 00:05:12,270
‫Ele está morto.

82
00:05:12,830 --> 00:05:17,000
‫Posso passar por cima da cápsula dele e não vou mais colidir com ela.

83
00:05:17,330 --> 00:05:21,560
‫Você também pode ver que ele não está mais atirando com sua arma, o que é fantástico.

84
00:05:21,980 --> 00:05:24,020
‫E vamos ver também se ele vai e nos mata.

85
00:05:24,020 --> 00:05:24,800
‫Qual é o comportamento?

86
00:05:24,920 --> 00:05:27,020
‫Então só temos que esperar pelos dez tiros.

87
00:05:27,140 --> 00:05:32,410
‫E você pode ver que eu me esparramei morto tanto quanto ele e ele continua atirando em mim.

88
00:05:32,420 --> 00:05:32,900
‫Tudo bem.

89
00:05:32,960 --> 00:05:39,110
‫Ele não está mais batendo em um colisor vazio, e eu não posso mais controlar minha câmera porque estou morto.

90
00:05:39,140 --> 00:05:39,500
‫Impressionante.

91
00:05:39,500 --> 00:05:41,750
‫Então, temos o básico de um jogo de tiro em primeira pessoa aqui.

92
00:05:41,750 --> 00:05:45,580
‫Temos um inimigo que nos segue, atira em nós, podemos atirar nele.

93
00:05:45,590 --> 00:05:46,760
‫Nós dois temos saúde.

94
00:05:46,760 --> 00:05:48,560
‫Nós dois podemos morrer.

95
00:05:49,010 --> 00:05:55,460
‫Então, a próxima coisa é realmente configurar algumas condições de final de jogo para que possamos exibir uma mensagem agradável para

96
00:05:55,460 --> 00:06:00,620
‫nosso jogador dizendo que você perdeu ou que ganhou se matou todos os jogadores no nível.

97
00:06:00,650 --> 00:06:02,240
‫E esse será o assunto da próxima palestra.

98
00:06:02,270 --> 00:06:02,750
‫Então você isso.

