﻿1
00:00:04,390 --> 00:00:05,440
‫你好, 欢迎｡

2
00:00:05,440 --> 00:00:10,870
‫在这节课中, 我们将研究如何产生枪口闪光, 这样当我们扣动扳机时,

3
00:00:11,350 --> 00:00:13,450
‫我们就能得到粒子效应.

4
00:00:13,450 --> 00:00:16,840
‫让我们深入了解一下如何在C++中实现这一点｡

5
00:00:18,300 --> 00:00:18,450
‫好吧, 我会的

6
00:00:18,510 --> 00:00:22,860
‫所以我们想从枪口产生一些粒子效果｡

7
00:00:22,980 --> 00:00:25,180
‫最好的方法是什么？

8
00:00:25,200 --> 00:00:29,820
‫首先, 我们来看看这里有哪些粒子效应｡

9
00:00:29,910 --> 00:00:31,880
‫我从射击游戏里拿的｡

10
00:00:31,890 --> 00:00:35,650
‫显然, 您可以使用所需的任何粒子效果｡

11
00:00:35,670 --> 00:00:37,800
‫您可以在资产存储中找到它们｡

12
00:00:37,830 --> 00:00:40,500
‫你可以像我一样从示例项目中获取它们｡

13
00:00:40,590 --> 00:00:42,120
‫我们要去的影响｡

14
00:00:42,120 --> 00:00:48,330
‫所以资产包, 射击游戏效果, 然后看看粒子系统, 武器, 突击步枪｡

15
00:00:48,330 --> 00:00:51,270
‫我在找枪口的那个, 至少一开始是这样｡

16
00:00:51,270 --> 00:00:53,640
‫我们要这把突击步枪｡

17
00:00:55,080 --> 00:01:00,180
‫您应该可以看到, 编译着色器需要一点时间｡

18
00:01:00,180 --> 00:01:03,660
‫但这就是枪口火焰的本质｡

19
00:01:03,660 --> 00:01:04,830
‫看起来像是枪口火光｡

20
00:01:04,830 --> 00:01:12,270
‫这就是我们将要用到的, 我们将尝试在C++中生成它, 当我们扣动扳机的时候｡

21
00:01:12,270 --> 00:01:15,550
‫我们来看看枪吧｡

22
00:01:15,570 --> 00:01:16,920
‫我要去拿枪｡

23
00:01:16,920 --> 00:01:24,840
‫而不是这个被击中的日志消息, 不是特别有用, 我们想产生一个粒子效果｡

24
00:01:25,200 --> 00:01:28,980
‫为了做到这一点, 我们将使用一个来自游戏静态的函数｡

25
00:01:29,550 --> 00:01:33,240
‫所以让我们去到游戏静态开始, 并有一个小看看在这里｡

26
00:01:33,240 --> 00:01:39,120
‫我们想产生一个发射器, 他们叫它产生一个发射器｡

27
00:01:39,120 --> 00:01:45,880
‫你会看到, 如果我们看一下这个, 它接收的是一个世界上下文对象｡

28
00:01:45,900 --> 00:01:52,050
‫它采用了一个粒子系统, 也就是他们所说的发射器模板, 位置, 旋转, 缩放, 等等,

29
00:01:52,050 --> 00:01:54,300
‫等等｡

30
00:01:54,420 --> 00:02:04,770
‫或者, 我认为你可以把它连接起来, 这样我们就可以把一个spawn发射器连接起来,

31
00:02:04,770 --> 00:02:11,940
‫这将尝试把它连接到一个组件上, 这样我们就可以看到它会连接到一个场景组件上｡

32
00:02:11,970 --> 00:02:14,190
‫现在, 在这种情况下, 我认为这是我们想要的｡

33
00:02:14,190 --> 00:02:16,860
‫这取决于所讨论的粒子效应｡

34
00:02:17,070 --> 00:02:23,070
‫但是一些粒子效果会在一段时间内保持繁殖粒子｡

35
00:02:23,070 --> 00:02:26,850
‫所以你想让这些粒子不断从枪口出来｡

36
00:02:27,030 --> 00:02:30,660
‫当枪移动时, 他们可能会制造一些烟雾, 一些类似的东西｡

37
00:02:30,660 --> 00:02:35,520
‫如果在射击时移动枪, 则希望粒子效果也随之移动｡

38
00:02:35,880 --> 00:02:40,320
‫所以我们要用的是这个附加的spawn发射器｡

39
00:02:40,410 --> 00:02:49,440
‫正如这里所说的, 它将接收发射器模板和场景组件, 我们需要附加到它们｡

40
00:02:49,470 --> 00:02:51,700
‫所以这些就是我们最需要的东西｡

41
00:02:51,720 --> 00:02:56,250
‫它还有一个连接点名称, 将是一个套接字｡

42
00:02:56,250 --> 00:03:02,490
‫所以这对我们来说非常方便, 我们可以把它直接装在枪口上｡

43
00:03:02,490 --> 00:03:06,360
‫我们不需要任何类型的补偿, 让我们来看看｡

44
00:03:06,360 --> 00:03:11,670
‫如果我打开我的BP步枪, 我们已经知道我们已经提到了这是一个骨架网格｡

45
00:03:11,670 --> 00:03:18,570
‫我将在内容浏览器中找到步枪并打开步枪网格｡

46
00:03:19,230 --> 00:03:24,930
‫在左边你会看到, 如果你有可见的骨架树窗格,

47
00:03:24,930 --> 00:03:33,450
‫那么你会看到我们有这个步枪路线, 我们有步枪杂志, 大概可以换掉什么的, 但是我们对这个不特别感兴趣｡

48
00:03:33,450 --> 00:03:35,850
‫还有这个枪口闪光插座｡

49
00:03:35,850 --> 00:03:40,260
‫所以我们要在那里制造枪口闪光｡

50
00:03:40,260 --> 00:03:45,570
‫如果它没有, 或者你的网格没有, 那么你可以继续添加一个,

51
00:03:45,570 --> 00:03:48,960
‫因为我们总是可以用前面课程中看到的方法添加套接字｡

52
00:03:49,260 --> 00:03:51,750
‫让我们来看看如何生成它｡

53
00:03:51,750 --> 00:03:59,610
‫我们首先需要的是一个粒子系统参考, 最好的方法是, 我所知道的最好的方法是创建一个新的属性,

54
00:03:59,610 --> 00:04:07,140
‫然后在蓝图中进行｡

55
00:04:07,140 --> 00:04:12,420
‫还有其他方法可以通过命名引用来实现, 但我真的不喜欢使用命名引用｡

56
00:04:12,420 --> 00:04:18,210
‫他们很容易打破, 如果你重命名的东西, 所以更容易做到这一点, 在蓝图, 所有这一切都是为您处理｡

57
00:04:18,360 --> 00:04:26,400
‫我们将把它设为属性编辑默认值, 或者实际上可以在任何地方编辑, 因为如果我们在游戏过程中改变它, 你可能会想这样做, 如果你试图调整一些东西,

58
00:04:26,400 --> 00:04:32,190
‫然后说, 哦, 好吧,

59
00:04:32,190 --> 00:04:37,320
‫这个粒子效果看起来比这个更好, 那么它实际上会工作｡

60
00:04:37,320 --> 00:04:40,800
‫下一次拍摄时, 将创建不同的粒子效果｡

61
00:04:41,100 --> 00:04:43,390
‫然后它的类型需要是U｡

62
00:04:43,410 --> 00:04:49,920
‫粒子系统指针, 我们称之为枪口闪光｡

63
00:04:50,100 --> 00:04:53,040
‫这就是我们要在蓝图中设置的｡

64
00:04:53,040 --> 00:05:02,610
‫让我们回到C++中的pull trigger方法, 我们想把它叫做U游戏静态函数｡

65
00:05:03,180 --> 00:05:11,970
‫所以, 你的游戏静态注意到, 它不是自动完成的, 因为我需要一个散列包含, 通过悬停在游戏静态上,

66
00:05:11,970 --> 00:05:15,930
‫这样你就可以看到它在引擎类下｡

67
00:05:15,930 --> 00:05:17,550
‫Kismet游戏静态｡

68
00:05:17,640 --> 00:05:24,900
‫因此, 我们需要做的是命运游戏静态阶段, 我们应该有你的游戏静态自动完成, 我们要产卵,

69
00:05:24,900 --> 00:05:31,350
‫这可能会或可能不会工作, 因为我在虚幻的版本｡

70
00:05:31,350 --> 00:05:38,220
‫我们要把发射器装在上面然后在这里装上这个枪口闪光灯.

71
00:05:39,430 --> 00:05:42,310
‫我们想把它附加到场景组件上｡

72
00:05:42,310 --> 00:05:48,520
‫在这种情况下, 我们要把它连接到我们的枪网, 我们要把它连接到适当的插座,

73
00:05:48,520 --> 00:05:55,450
‫同样, 我让你填写, 如果我们走到枪, 它是枪口闪光插座｡

74
00:05:55,450 --> 00:06:02,260
‫我将直接从那里复制它, 然后在行尾放一个分号, 把它放在最前面｡

75
00:06:02,350 --> 00:06:03,910
‫所以这应该可以｡

76
00:06:03,910 --> 00:06:08,050
‫让我们在引擎中单击compile｡

77
00:06:09,050 --> 00:06:15,520
‫编译完成后, 我们可以进入BP Underscore步枪,

78
00:06:15,530 --> 00:06:22,970
‫打开完整的蓝图编辑器, 我更喜欢处理这个问题, 看看我们的, 看看我们是否可以找到根｡

79
00:06:23,000 --> 00:06:27,050
‫实际上, 参与者本身或类默认值将转到详细信息窗格｡

80
00:06:27,050 --> 00:06:33,050
‫你可以看到我们有了枪口闪光的特性, 新的, 我们需要在这里找到粒子效应｡

81
00:06:33,050 --> 00:06:36,380
‫我要去找关键词枪口｡

82
00:06:36,380 --> 00:06:37,310
‫让我想想｡

83
00:06:37,940 --> 00:06:40,490
‫也许枪口不是我们要找的｡

84
00:06:40,490 --> 00:06:42,120
‫是MF突击步枪｡

85
00:06:42,140 --> 00:06:43,100
‫我想是的｡

86
00:06:43,130 --> 00:06:44,030
‫枪口闪光｡

87
00:06:44,030 --> 00:06:45,410
‫这就是它的意思吗？

88
00:06:45,410 --> 00:06:47,960
‫所以突击步枪｡

89
00:06:48,530 --> 00:06:52,250
‫这就是我们要编译并保存的｡

90
00:06:52,250 --> 00:07:00,410
‫我们会进入我们的沙箱, 点击播放, 看看射击是否真的发射了我们的枪口闪光｡

91
00:07:00,410 --> 00:07:03,680
‫而且你可以看到它此刻正在连续拍摄｡

92
00:07:03,680 --> 00:07:07,790
‫所以我们希望它只是一个单一的枪口闪光｡

93
00:07:09,030 --> 00:07:12,150
‫所以我想我会选择一个不同的枪口火焰｡

94
00:07:12,150 --> 00:07:17,880
‫我想我会用幽灵特工包里的那个, 我们有狙击手和主武器.

95
00:07:17,880 --> 00:07:22,860
‫我会选择主要的只是因为我不想创造一个快速射击武器｡

96
00:07:22,860 --> 00:07:25,170
‫这是一种稍微不同的做事方式｡

97
00:07:25,170 --> 00:07:30,120
‫这并不是很大的不同, 只是更多的是一种一旦你拿着, 你启动发射器,

98
00:07:30,120 --> 00:07:33,460
‫一旦你完成了它, 你想关闭它｡

99
00:07:33,480 --> 00:07:36,570
‫在这种情况下, 我们只想发射一次发射器｡

100
00:07:36,570 --> 00:07:43,740
‫所以我们要再做一次超高压看看我们是否在那里, 我们去, 现在我们开枪,

101
00:07:43,740 --> 00:07:46,320
‫我们得到一个单一的闪光枪口和一切都很好｡

102
00:07:46,320 --> 00:07:52,170
‫它似乎是重视很好地结束了枪以及我走动, 无论我走动,

103
00:07:52,170 --> 00:07:55,440
‫无论我面对枪口闪烁在正确的方向｡

104
00:07:55,440 --> 00:07:55,860
‫好的, 谢谢

105
00:07:55,860 --> 00:08:00,570
‫好吧, 这真的开始看起来更像一个射击游戏与粒子效果｡

106
00:08:00,570 --> 00:08:06,990
‫所以在下一节课中, 我们将学习光线跟踪的第一步,

107
00:08:06,990 --> 00:08:12,240
‫实际上是去和我们的角色所有者取得一些信息｡

108
00:08:12,240 --> 00:08:13,320
‫我会在那里见到你的｡

