﻿1
00:00:04,400 --> 00:00:05,330
‫Olá e bem-vindo.

2
00:00:05,330 --> 00:00:11,750
‫Nesta palestra, veremos como podemos criar novos nós em blueprints de C++ para que,

3
00:00:11,750 --> 00:00:17,030
‫essencialmente, possamos chamar a funcionalidade C++ de dentro de blueprints.

4
00:00:17,120 --> 00:00:24,470
‫Vamos mergulhar e ver como isso é feito agora tão bem que posso usar blueprints para chamar nós de blueprint,

5
00:00:24,890 --> 00:00:32,060
‫mas na verdade eu quero ativar nosso grabber a partir deste pedaço de blueprint aqui, não imprimir algumas strings.

6
00:00:32,360 --> 00:00:34,400
‫Então, como eu vou fazer isso?

7
00:00:35,060 --> 00:00:43,340
‫Bem, felizmente, podemos facilmente expor uma função de uma classe C++ para o blueprint.

8
00:00:43,610 --> 00:00:46,160
‫E a maneira como fazemos isso é a seguinte.

9
00:00:46,160 --> 00:00:48,530
‫Então vamos criar uma nova função pública.

10
00:00:48,530 --> 00:00:52,280
‫Então, vou para minha seção pública logo abaixo do componente tick.

11
00:00:52,640 --> 00:00:58,010
‫E aqui vou criar uma nova função com um tipo de retorno void chamado release.

12
00:00:58,310 --> 00:01:03,620
‫Então, vamos pegar mais tarde, mas vamos chamar uma função de liberação por enquanto.

13
00:01:04,040 --> 00:01:07,610
‫Como faço para disponibilizar isso no Blueprint?

14
00:01:07,850 --> 00:01:10,790
‫Bem, eu preciso torná-lo uma nova função.

15
00:01:10,790 --> 00:01:13,130
‫Então você tem novas propriedades para variáveis.

16
00:01:13,400 --> 00:01:20,540
‫Sua função é o equivalente a tornar uma função basicamente visível na terra do projeto.

17
00:01:20,540 --> 00:01:21,530
‫Mas não paramos com isso.

18
00:01:22,130 --> 00:01:23,180
‫Assim como com a nova propriedade.

19
00:01:23,180 --> 00:01:30,290
‫Temos que fazer uma edição em qualquer lugar aqui com a função U, temos que torná-lo um blueprint que pode ser chamado

20
00:01:31,130 --> 00:01:38,030
‫e isso, como o nome sugere, significa que essa função agora se torna um nó ao qual o blueprint tem acesso.

21
00:01:38,510 --> 00:01:42,470
‫Então vamos pegar um CP e criar uma implementação para isso.

22
00:01:42,470 --> 00:01:44,450
‫Será do tipo de retorno void.

23
00:01:44,450 --> 00:01:52,760
‫Vai ser um você pega dois pontos, dois pontos release, sem parâmetros e vamos colocar um corpo de função, que

24
00:01:52,970 --> 00:02:00,830
‫eu vou colocar um novo log in e vou dar a mensagem, ser liberado grabber assim .

25
00:02:00,890 --> 00:02:09,230
‫E então podemos compilar e voltar no nosso BP player, vou deletar o nó da string de impressão

26
00:02:09,230 --> 00:02:17,000
‫e vou arrastar o release aqui e vou procurar por release como uma função aqui.

27
00:02:17,000 --> 00:02:19,070
‫Agora vamos dar uma olhada ao redor.

28
00:02:19,070 --> 00:02:23,090
‫Nada está aparecendo no momento porque eu preciso fazer isso no grabber.

29
00:02:23,120 --> 00:02:30,710
‫Então, vamos pegar o componente grabber, arrastá-lo para o gráfico de eventos para criar uma variável

30
00:02:30,710 --> 00:02:34,070
‫grabber e arrastá-lo e procurar por liberação.

31
00:02:34,430 --> 00:02:36,620
‫Agora, observe que nada está acontecendo neste caso também.

32
00:02:36,620 --> 00:02:38,240
‫E isso porque usamos codificação ao vivo.

33
00:02:38,240 --> 00:02:44,150
‫E às vezes as coisas que são compiladas na codificação ao vivo não aparecem no editor.

34
00:02:44,150 --> 00:02:49,880
‫O que temos que fazer é fechar o editor, fechar a janela de codificação de luz e,

35
00:02:49,880 --> 00:02:57,200
‫em seguida, no código do Visual Studio, pressionar o shift de controle B e compilar usando o Crypt Reader Editor quando o desenvolvimento

36
00:02:57,440 --> 00:03:03,470
‫64 for compilado, esperar que isso seja bem-sucedido e, em seguida, reinicie o editor do arquivo do projeto.

37
00:03:03,650 --> 00:03:10,610
‫Agora, se reabrimos nosso BP player e agora arrastamos o grabber, procuramos por liberação.

38
00:03:10,610 --> 00:03:13,580
‫Você pode ver que agora há uma nota chamada release.

39
00:03:13,970 --> 00:03:17,870
‫E, de fato, tudo o que vai fazer é esfriar nosso C++.

40
00:03:17,870 --> 00:03:25,550
‫Assim, você pode ver como pode realmente usar o Blueprint e o C++ em estreita colaboração dessa maneira, expondo as

41
00:03:25,820 --> 00:03:28,700
‫coisas do C++ ao mundo do Blueprint.

42
00:03:28,700 --> 00:03:32,900
‫Agora vou conectar minha caneta de execução de lançamento ao nó de lançamento.

43
00:03:33,260 --> 00:03:38,390
‫Nós vamos entrar em nossa masmorra e vamos apertar o play.

44
00:03:39,320 --> 00:03:46,850
‫E agora, se eu pegar e soltar, você não verá nada porque está no log de saída.

45
00:03:46,910 --> 00:03:52,160
‫Então, vamos abrir o log de saída e encaixá-lo no layout, depois clicar em play novamente.

46
00:03:53,390 --> 00:03:57,800
‫E agora, quando pegamos e soltamos, você pode ver que há uma breve mensagem lá.

47
00:03:57,800 --> 00:04:04,160
‫Ele rola muito rapidamente porque cada tick que estamos fazendo isso atinge a estátua de status de gárgula.

48
00:04:04,400 --> 00:04:09,470
‫Mas então se você parar e olhar para trás através do log, você pode ver que disse vovô liberado.

49
00:04:09,470 --> 00:04:12,800
‫Então nosso código C++ está sendo executado.

50
00:04:12,920 --> 00:04:19,220
‫Ok, agora eu gostaria que você mudasse nosso código de varredura para uma função de captura.

51
00:04:19,220 --> 00:04:22,310
‫Então você vai criar uma função de captura e chamá-la do Blueprint.

52
00:04:22,310 --> 00:04:24,740
‫Você pode fazer da mesma maneira que acabei de fazer a função de liberação.

53
00:04:25,280 --> 00:04:29,540
‫Mas quando você cria o corpo da função grab em vez de apenas imprimir

54
00:04:29,540 --> 00:04:36,410
‫qualquer coisa, vamos mover esse código abrangente e a instrução if e todas as variáveis de preparação do TIC para que ele não faça isso.

55
00:04:36,410 --> 00:04:42,620
‫Toda vez que pegamos dois, apenas quando chamamos essa função de captura, quando pressionamos o botão do mouse

56
00:04:42,620 --> 00:04:49,910
‫ou pressionamos um gatilho em nosso controlador, então recompile e verifique os logs para ter certeza de que isso só está

57
00:04:49,910 --> 00:04:54,560
‫acontecendo quando você pressiona o botão , pause o vídeo e experimente.

58
00:04:57,850 --> 00:04:58,140
‫OK.

59
00:04:58,150 --> 00:04:58,900
‫Bem vindo de volta.

60
00:04:59,290 --> 00:05:03,820
‫Então vamos para o nosso C++ e vamos para o nosso arquivo de cabeçalho.

61
00:05:03,820 --> 00:05:10,180
‫Vou fechar a janela de compilação aqui e acima do release, vou criar um novo

62
00:05:11,290 --> 00:05:16,570
‫blueprints de função que pode ser chamado, que será void chamado grab.

63
00:05:17,230 --> 00:05:20,440
‫E vamos implementar isso no C++.

64
00:05:20,590 --> 00:05:22,480
‫Então, novamente, vai ser um vazio.

65
00:05:22,520 --> 00:05:28,330
‫Você pega dois pontos, dois pontos pega parênteses e depois chaves.

66
00:05:28,900 --> 00:05:34,660
‫E vou mover todo esse código do componente TIC porque estamos configurando nossos vetores de início e todo esse tipo

67
00:05:34,660 --> 00:05:35,860
‫de coisa boa.

68
00:05:36,250 --> 00:05:42,880
‫Vamos descer até o fim e recortar e colar no lugar onde deveria estar.

69
00:05:42,880 --> 00:05:43,750
‫Bem.

70
00:05:43,750 --> 00:05:50,080
‫Agora vamos ver se a codificação ao vivo trará a nova função no player BP.

71
00:05:50,080 --> 00:05:55,090
‫Vamos até o player BP, exclua nossa string de impressão e vamos arrastar isso.

72
00:05:55,090 --> 00:05:58,540
‫Pegue um nó que temos e veja se podemos encontrar uma função de captura.

73
00:05:58,540 --> 00:06:01,900
‫Ok, então desta vez a função grab estava disponível para nós.

74
00:06:02,230 --> 00:06:02,800
‫Isso é ótimo.

75
00:06:02,830 --> 00:06:09,550
‫Agora vamos conectar o pino de execução pressionado, ir até nossa masmorra, apertar play e ter certeza de rolar para baixo até o

76
00:06:09,550 --> 00:06:11,290
‫final do log de saída.

77
00:06:11,410 --> 00:06:17,450
‫Vou clicar com o botão direito do mouse na minha viewport e dar uma olhada ao redor e então eu vou pressionar meu botão esquerdo.

78
00:06:17,480 --> 00:06:20,530
‫Diz que nenhum ator bate e, em seguida, instantaneamente o lançador.

79
00:06:20,530 --> 00:06:23,110
‫Então agora o ator bate e então eu solto a chave.

80
00:06:23,140 --> 00:06:24,520
‫Sem garra de liberação.

81
00:06:24,520 --> 00:06:25,900
‫Agora esqueci minha gárgula.

82
00:06:25,900 --> 00:06:26,470
‫Dê uma olhada nisso.

83
00:06:26,890 --> 00:06:31,240
‫Eu pressiono e diz, Ator atingiu a estátua de Gogol e então eu posso soltar o agarrador.

84
00:06:31,690 --> 00:06:36,430
‫Então agora temos o tipo certo de arquitetura no lugar.

85
00:06:36,730 --> 00:06:38,590
‫Para pegar esta gárgula.

86
00:06:38,770 --> 00:06:42,450
‫Em seguida, precisamos lidar com a parte física dessa configuração.

87
00:06:42,880 --> 00:06:44,080
‫Nos vemos na próxima palestra.

