﻿1
00:00:04,300 --> 00:00:05,380
‫你好, 欢迎｡

2
00:00:05,380 --> 00:00:05,770
‫这一讲｡

3
00:00:05,770 --> 00:00:10,780
‫我们将学习如何使用动画蓝图的动画图｡

4
00:00:10,780 --> 00:00:17,830
‫这是一个全新的概念, 全新的概念, 使用一系列变量将动画融合在一起｡

5
00:00:17,830 --> 00:00:19,270
‫如你所见, 我在改变变量｡

6
00:00:19,270 --> 00:00:21,700
‫它改变了动画的融合｡

7
00:00:21,700 --> 00:00:24,220
‫让我们深入了解一下它是如何工作的｡

8
00:00:25,380 --> 00:00:27,690
‫所以我们在这里得到了一些动画的外观｡

9
00:00:27,690 --> 00:00:30,030
‫但很明显它不是动态的｡

10
00:00:30,030 --> 00:00:32,130
‫这不是特别有趣｡

11
00:00:32,130 --> 00:00:38,670
‫我们需要能够制作比这复杂得多的动画, 而Unreal有很多很棒的内置系统来做这件事,

12
00:00:38,670 --> 00:00:45,750
‫主要的一个是动画蓝图, 这是一个蓝图, 很明显｡

13
00:00:45,750 --> 00:00:51,420
‫所以我们不会用C++来做这个, 因为动画在Blueprint中做是有意义的｡

14
00:00:51,660 --> 00:01:00,480
‫动画蓝图的要点是将所有的动画逻辑整合在一起,

15
00:01:00,480 --> 00:01:10,470
‫让我们可以在动画之间进行混合､ 合并和切换, 这样我们的游戏逻辑就可以驱动动画蓝图｡

16
00:01:10,620 --> 00:01:15,150
‫现在我们就来创建一个动画蓝图吧｡

17
00:01:15,150 --> 00:01:20,520
‫在内容浏览器中,

18
00:01:20,520 --> 00:01:27,780
‫添加新类或右键单击, 我们将转到动画并在此处选择动画蓝图, 您将立即看到要求我们可能有一个父类｡

19
00:01:27,780 --> 00:01:28,830
‫我们不需要父类｡

20
00:01:28,830 --> 00:01:30,060
‫我们可以只使用默认值｡

21
00:01:30,060 --> 00:01:39,600
‫但它确实需要一个骨架, 因为像动画一样, 像骨架网格一样, 它们都依赖于骨架｡

22
00:01:39,600 --> 00:01:44,880
‫动画蓝图也是如此, 这意味着它可以使用该骨架的所有动画,

23
00:01:44,880 --> 00:01:48,390
‫并且可以在与该骨架相关的任何网格上使用｡

24
00:01:48,930 --> 00:01:55,740
‫现在, 很明显, 我们需要幽灵的骨架在这里, 所以让我们继续, 并选择它, 并点击, 好吗？

25
00:01:55,740 --> 00:02:00,720
‫这将继续下去, 并创建一个动画蓝图的基础上关闭幽灵骨架｡

26
00:02:00,720 --> 00:02:09,150
‫命名规则是, 我们以BP下划线开始, 我称之为just shooter字符,

27
00:02:09,150 --> 00:02:12,060
‫因为我们有不同的前缀.

28
00:02:12,060 --> 00:02:16,200
‫我想这已经足够清楚了, 这是拍摄角色的动画蓝图｡

29
00:02:16,200 --> 00:02:23,760
‫因此, 如果我们继续打开动画蓝图并将其停靠到主窗口, 我们将看到一个动画蓝图编辑器,

30
00:02:23,760 --> 00:02:29,880
‫它在许多方面看起来与您常用的蓝图编辑器相似｡

31
00:02:29,880 --> 00:02:35,250
‫它在中间有一个主图形区域, 但在某些方面它是不同的｡

32
00:02:35,250 --> 00:02:37,680
‫所以我们得到了类似的图形区域｡

33
00:02:37,680 --> 00:02:39,870
‫这是一个与我们以前的图表略有不同的图表｡

34
00:02:39,870 --> 00:02:41,010
‫这叫动画图｡

35
00:02:41,010 --> 00:02:44,610
‫您可以看到还有一个事件图, 就像常规蓝图一样｡

36
00:02:44,610 --> 00:02:47,430
‫他们有一个事件图, 但也有一个叫动画图的东西｡

37
00:02:47,430 --> 00:02:48,720
‫我们一会儿就开始｡

38
00:02:48,960 --> 00:02:53,670
‫有一个详细信息窗格, 其中提供了有关动画蓝图的详细信息｡

39
00:02:53,670 --> 00:02:56,010
‫所以类本身, 你已经有了详细的信息｡

40
00:02:56,580 --> 00:02:59,490
‫请注意, 我们没有针对动画蓝图的任何组件｡

41
00:02:59,490 --> 00:03:01,890
‫这已经是一个值得注意的区别了｡

42
00:03:01,890 --> 00:03:08,670
‫我们有一个动画预览编辑器, 它允许我们在这里的预览窗口中做一些事情｡

43
00:03:08,670 --> 00:03:10,560
‫为什么他们在默认情况下并不亲近｡

44
00:03:10,560 --> 00:03:11,310
‫我不知道我不知道

45
00:03:11,940 --> 00:03:17,940
‫与动画一样, 资产浏览器允许我们轻松浏览动画,

46
00:03:17,940 --> 00:03:26,190
‫并将其导入编辑器｡ 在右上角, 与动画和网格一样,

47
00:03:26,190 --> 00:03:35,850
‫我们可以在骨架､ 网格､ 动画和蓝图之间快速切换, 这些都依赖于同一骨架｡

48
00:03:36,490 --> 00:03:42,550
‫然后在左下角, 我们看到了我的蓝图窗格, 它与我的蓝图非常相似｡

49
00:03:42,550 --> 00:03:48,300
‫在你的标准蓝图上, 你有你的函数, 你的变量, 宏, 这类的东西是一样的｡

50
00:03:48,310 --> 00:03:49,240
‫有什么不同？

51
00:03:49,240 --> 00:03:50,470
‫对了, 我们也有图表｡

52
00:03:50,470 --> 00:03:51,250
‫那也是一样的｡

53
00:03:51,250 --> 00:03:54,970
‫但不同的是这个动画图形和动画层｡

54
00:03:54,970 --> 00:03:57,190
‫现在, 我们不会真正涉及动画层｡

55
00:03:57,190 --> 00:03:59,230
‫这是一个我们不需要的高级功能｡

56
00:03:59,230 --> 00:04:06,100
‫但是这个图, 这确实是非常重要的,

57
00:04:06,130 --> 00:04:13,570
‫因为这个图有点像蓝图, 除了我们没有执行节点, 或者我们得到的是流经这个图的数据, 以及流经这个图的是什么？

58
00:04:13,570 --> 00:04:21,040
‫基本上, 我们要尝试得到这个输出姿势这个输出动画姿势, 我们应该把角色塑造成这个姿势｡

59
00:04:21,370 --> 00:04:25,900
‫我们通过将许多不同的节点连接到这个结果节点来实现这一点｡

60
00:04:25,900 --> 00:04:31,330
‫通过这个过程, 我们最终得到的数据就是我们的输出｡

61
00:04:31,720 --> 00:04:38,230
‫我们可以使用的一个简单输出是, 例如, 将一个动画拖到这个动画图中, 你可以看到它创建了一个节点,

62
00:04:38,230 --> 00:04:44,350
‫它有一个输出引脚, 这是一个动画姿势｡

63
00:04:44,350 --> 00:04:54,310
‫如果我们把这个姿势拖到输出姿势上, 点击编译, 你可以看到它会在预览中显示这个动画蓝图是做什么的｡

64
00:04:54,310 --> 00:05:01,570
‫它基本上只是播放这个能力的动画, 这就是我们现在正在做的, 除了现在我们在我们放一个蓝图之间放了一个额外的层,

65
00:05:01,570 --> 00:05:06,880
‫而不是直接播放动画｡

66
00:05:06,880 --> 00:05:14,560
‫这本身并不是特别有用, 但我们可以对这些姿势进行不同类型的操作｡

67
00:05:14,560 --> 00:05:16,000
‫这才有用｡

68
00:05:16,000 --> 00:05:19,570
‫如果我们右键单击动画图, 您可以看到这里发生了很多事情｡

69
00:05:19,750 --> 00:05:26,440
‫我想搜索一种叫做混合的东西, 这里有一些不同的东西｡

70
00:05:26,440 --> 00:05:30,580
‫看看我能不能在上面找到我们想要的最有用的｡

71
00:05:30,610 --> 00:05:36,430
‫有几个在这里, 我认为混合混合骨由渠道, 混合多｡

72
00:05:36,430 --> 00:05:38,800
‫我们只需要标准混合节点｡

73
00:05:38,800 --> 00:05:39,760
‫把那个拿进来｡

74
00:05:40,090 --> 00:05:45,580
‫你可以看到这里我们有一个值, 我们有两个输入姿势和一个输出姿势｡

75
00:05:45,580 --> 00:05:49,450
‫所以我们可以在两个不同的动画中拖动｡

76
00:05:50,100 --> 00:05:52,040
‫我们可以坚持下去｡

77
00:05:52,050 --> 00:05:53,490
‫这是一个附加动画｡

78
00:05:53,490 --> 00:05:54,540
‫我不想把这个带进来｡

79
00:05:54,540 --> 00:05:55,880
‫这会让我们困惑的｡

80
00:05:55,890 --> 00:05:58,560
‫让我们使用一些我们可能会用到的动画｡

81
00:05:58,560 --> 00:06:01,920
‫所以我们关注的是未来的发展｡

82
00:06:01,920 --> 00:06:02,760
‫我们有慢跑｡

83
00:06:02,760 --> 00:06:06,030
‫慢跑可能比走路更符合我们的需要｡

84
00:06:06,030 --> 00:06:09,360
‫让我们来看看我们的进展｡

85
00:06:09,360 --> 00:06:15,900
‫这可能是我们可以混合的一件事, 然后另一件事, 我们可以混合是一个慢跑回来｡

86
00:06:15,900 --> 00:06:23,700
‫让我们来看看jog, 我们有jog, jog b, 我想它代表向后, 向前, 向后.

87
00:06:23,970 --> 00:06:28,470
‫让我们把它们放到混合节点中, 然后输出它们, 看看结果会是什么｡

88
00:06:28,470 --> 00:06:35,880
‫当我点击编译时, 你可以看到我在向前慢跑, 如果我把我的alpha移到1, 然后重新编译｡

89
00:06:35,880 --> 00:06:42,750
‫您可以看到, 现在我在向后慢跑,

90
00:06:42,990 --> 00:06:50,310
‫您还可以看到, 在预览运行时, 您可以看到哪些节点的数据基本上是从慢跑向后流过混合节点, 没有任何数据通过该引脚｡

91
00:06:50,340 --> 00:06:53,430
‫因为Alpha会在两者之间混成｡

92
00:06:54,030 --> 00:07:00,720
‫现在我可以做一个0｡  5或两者之间的任何地方, 这将尝试播放两个动画, 并将它们层叠在彼此的顶部,

93
00:07:00,720 --> 00:07:03,840
‫两个动画的一半｡

94
00:07:03,840 --> 00:07:10,740
‫很明显, 当你同时向前和向后慢跑时, 这看起来有点滑稽, 不是吗？

95
00:07:10,740 --> 00:07:17,190
‫我现在要做的是删除向后慢跑, 并放入空闲动画｡

96
00:07:17,460 --> 00:07:19,530
‫那么我们有闲在哪里呢？

97
00:07:21,620 --> 00:07:24,890
‫我将选择这个闲置的非战斗状态, 并将其带到这里｡

98
00:07:25,520 --> 00:07:31,200
‫因此, 现在应该发生的是, 如果我们在50%, 它是一种做这种闲置非战斗｡

99
00:07:31,220 --> 00:07:34,880
‫一半或者一半再一半｡

100
00:07:34,880 --> 00:07:38,870
‫而如果我把它放在1, 它会做100%｡

101
00:07:39,540 --> 00:07:40,200
‫闲着没事｡

102
00:07:41,250 --> 00:07:41,910
‫零｡

103
00:07:41,940 --> 00:07:44,040
‫它会做100%的慢跑｡

104
00:07:44,520 --> 00:07:47,280
‫这并不理想｡

105
00:07:47,280 --> 00:07:49,950
‫事实上, 我一直在改变这个alpha, 不得不点击重新编译｡

106
00:07:49,950 --> 00:07:53,490
‫所以我们可以在蓝图中加入一个变量｡

107
00:07:53,490 --> 00:08:00,780
‫它需要是一个浮点数, 这样我们就可以继续在细节窗格中将变量类型更改为浮点数｡

108
00:08:01,050 --> 00:08:05,730
‫我将把它改成混合量｡

109
00:08:06,870 --> 00:08:18,630
‫然后我们可以将其拖入, 这样我们就可以将蓝图中的任何变量拖入动画图中, 并将其连接到一些点击编译的引脚｡

110
00:08:18,630 --> 00:08:21,360
‫现在我们回到动画预览编辑器｡

111
00:08:21,360 --> 00:08:23,100
‫你可以看到它出现了｡

112
00:08:23,100 --> 00:08:26,370
‫这些变量就像我们在这里创建的混合量｡

113
00:08:26,520 --> 00:08:35,160
‫这意味着, 如果我在运行时移动它, 我就可以看到和预览将要发生的事情｡

114
00:08:35,160 --> 00:08:40,470
‫接下来,

115
00:08:40,470 --> 00:08:46,830
‫我们的游戏将驱动动画蓝图中的这些变量, 以在游戏过程中的任何特定时刻获得正确的动画｡

116
00:08:46,860 --> 00:08:50,580
‫这就是我们在这一节稍后要讨论的问题｡

117
00:08:50,580 --> 00:08:57,480
‫但现在, 我们要试着让这个动画看起来正确, 当我们有正确的变量时｡

118
00:08:58,790 --> 00:09:00,610
‫所以是时候来点挑战了｡

119
00:09:00,620 --> 00:09:06,730
‫看看你是否可以得到一个动画蓝图设置和发挥周围的动画图｡

120
00:09:06,740 --> 00:09:09,050
‫所以我希望你再加一种混合物｡

121
00:09:09,050 --> 00:09:11,000
‫我们要把它们按顺序加起来｡

122
00:09:11,000 --> 00:09:12,800
‫首先你要做一次混合｡

123
00:09:12,800 --> 00:09:18,020
‫它的输出将进入下一个混合的输入, 然后选择一个有意义的动画, 比如向右或向左移动,

124
00:09:18,020 --> 00:09:25,580
‫并添加一些同样有意义的变量, 这样你就可以调整它们, 查看预览, 然后你可以混合所有的动画,

125
00:09:25,580 --> 00:09:31,430
‫空闲, 向前移动和你选择的动画, 无论是向左还是向右移动,

126
00:09:31,430 --> 00:09:36,140
‫诸如此类｡

127
00:09:36,320 --> 00:09:37,940
‫暂停视频, 开始体验｡

128
00:09:37,940 --> 00:09:41,690
‫试着用这些混合物, 看看你能不能弄清楚动画图｡

129
00:09:43,170 --> 00:09:43,980
‫欢迎回来

130
00:09:44,010 --> 00:09:46,160
‫所以希望你有一点尝试｡

131
00:09:46,170 --> 00:09:48,960
‫我们将添加另一个混合节点｡

132
00:09:48,960 --> 00:09:51,630
‫所以搜索混合, 然后向上滚动｡

133
00:09:51,630 --> 00:09:54,470
‫由于某种原因, 这可能是与我的屏幕缩放｡

134
00:09:54,480 --> 00:09:58,260
‫让我们去混合, 并带来了｡

135
00:09:58,290 --> 00:10:00,270
‫看到这些闲置动画了吗？

136
00:10:00,270 --> 00:10:01,140
‫我想做什么？

137
00:10:01,170 --> 00:10:05,460
‫我想我想让它向左移动｡

138
00:10:05,460 --> 00:10:14,160
‫我将在资源浏览器中查找慢跑, 并查找向左慢跑动画｡

139
00:10:14,310 --> 00:10:18,180
‫顺便说一句, 我知道混合并不是理想的方法｡

140
00:10:18,180 --> 00:10:23,820
‫在下一节课中,

141
00:10:23,820 --> 00:10:29,730
‫我们会看到一种更好的方法, 那就是使用一种叫做混合空间的东西, 它可以自动地让我们以一种非常好的方式混合运动动画｡

142
00:10:29,730 --> 00:10:34,470
‫但我们这样做只是为了在深入研究更复杂的事情之前, 先了解一下动画图的概念｡

143
00:10:34,740 --> 00:10:41,280
‫所以我们要混合在一起, 让我们看看, 左和前, 我想｡

144
00:10:42,170 --> 00:10:50,240
‫在这里向左, 我们将复制, 剪切或向前移动到这里｡

145
00:10:50,870 --> 00:10:59,930
‫然后我们将把这个混合输出中的信号连接到下一个混合的输入中, 不管是空闲的还是不空闲的｡

146
00:11:00,260 --> 00:11:01,280
‫这真的有意义吗？

147
00:11:01,280 --> 00:11:02,570
‫让我们考虑一下变量｡

148
00:11:02,570 --> 00:11:04,220
‫变量的名称应该是什么？

149
00:11:04,220 --> 00:11:09,560
‫我将有一个叫前进的｡

150
00:11:10,750 --> 00:11:18,910
‫向前看, 这很简单, 它被称为右或左, 因为我们选择的是左动画｡

151
00:11:18,940 --> 00:11:20,170
‫它也将是一个花车｡

152
00:11:20,380 --> 00:11:26,440
‫因此, 其中一个混合需要在向前和不移动之间进行选择｡

153
00:11:26,440 --> 00:11:32,110
‫这就是我们的第一个混合物｡

154
00:11:33,120 --> 00:11:42,990
‫我们将把偶像战斗与α挂钩, 这样在α为0时, 它将不会以1移动, 而forward是1｡

155
00:11:43,140 --> 00:11:45,990
‫让我们把这个正向变量和alpha变量连接起来｡

156
00:11:45,990 --> 00:11:52,620
‫它会向前移动, 然后我们会把它移到零, 向左移动.

157
00:11:53,920 --> 00:12:01,690
‫左变量向上0, 向左移动, 在1, 向左移动, 在B, 基本上,

158
00:12:01,690 --> 00:12:03,760
‫我们要向左移动｡

159
00:12:04,060 --> 00:12:07,150
‫所以如果我们把它编译出来, 那就有点太草率了｡

160
00:12:07,150 --> 00:12:08,530
‫但希望你能明白｡

161
00:12:08,530 --> 00:12:15,400
‫如果我们转到动画预览编辑器并向前移动, 你可以看到我们开始慢跑, 重置它, 如果我们向左移动,

162
00:12:15,400 --> 00:12:19,840
‫你可以看到我们开始向左移动｡

163
00:12:20,080 --> 00:12:25,180
‫最重要的是, 如果我们同时向左移动并开始慢跑｡

164
00:12:26,180 --> 00:12:28,970
‫我们应该能看到一种混合, 两者都有一点｡

165
00:12:28,970 --> 00:12:30,770
‫我们把那个前锋混在一起了｡

166
00:12:30,770 --> 00:12:36,320
‫如果我需要稍微少一点左拳, 50%的左拳, 你可以看到我在移动｡

167
00:12:36,320 --> 00:12:37,460
‫这是一个奇怪的动画｡

168
00:12:37,460 --> 00:12:45,530
‫它的混合效果不是很好, 但你可以看到它同时播放了左慢跑和前慢跑｡

169
00:12:45,530 --> 00:12:50,660
‫现在, 正如我所说的, 我们将保留这些变量或多或少的不变,

170
00:12:50,660 --> 00:12:56,570
‫但我们将更改实际执行混合的机制, 以使其更有意义, 并使用更多我们在资源浏览器中看到的动画, 如向前慢跑､

171
00:12:56,570 --> 00:13:01,700
‫向后慢跑､ 向左慢跑等｡

172
00:13:01,700 --> 00:13:03,650
‫但这是下节课的全部内容｡

173
00:13:03,650 --> 00:13:11,450
‫这一个, 我们已经涵盖了或多或少的动画蓝图和如何动画图的工作原理, 以及为什么我们有它摆在首位｡

174
00:13:11,450 --> 00:13:14,540
‫下节课我们会看到更多的动画｡

