﻿1
00:00:04,700 --> 00:00:05,570
‫你好, 欢迎｡

2
00:00:05,570 --> 00:00:10,820
‫在这节课中,

3
00:00:10,820 --> 00:00:17,270
‫我们将学习如何将动画与游戏性联系起来, 我们将把角色的速度与混合空间联系起来, 这样我们就可以得到这种效果｡

4
00:00:17,270 --> 00:00:19,130
‫让我们来看看它是如何完成的｡

5
00:00:20,750 --> 00:00:21,140
‫好吧, 我会的

6
00:00:21,140 --> 00:00:27,950
‫因此, 我们有自己的一个混合空间, 以整合到这个AVP射手字符｡

7
00:00:28,400 --> 00:00:32,750
‫首先,

8
00:00:32,750 --> 00:00:37,430
‫我将删除这两个混合, 我们将其用作动画蓝图和动画图形工作方式的示例｡

9
00:00:37,430 --> 00:00:43,610
‫相反, 我们将从右下角的资源浏览器中引入混合空间｡

10
00:00:43,610 --> 00:00:46,670
‫所以我们刚刚创建了这个BBS下划线移动｡

11
00:00:46,700 --> 00:00:52,160
‫如果你把它拖到你的动画图中, 你会看到它在这里带来了这个绿色的小节点｡

12
00:00:52,550 --> 00:01:02,450
‫就像其他的混合节点一样, 我们有自己和一个强加, 我们可以把它拖到输出中｡

13
00:01:02,450 --> 00:01:09,800
‫如果我点击编译, 你可以看到它只是在我们的默认空间,

14
00:01:09,800 --> 00:01:20,990
‫然后你可以看到这个小可视化, 这是很方便的小混合空间, 我们可以继续, 并改变这里的值静态或我们可以输入一些变量到这里｡

15
00:01:21,860 --> 00:01:26,180
‫我们可能会选择后者,

16
00:01:26,180 --> 00:01:33,920
‫所以我会删除左边和前面的两个变量, 因为我们现在知道我们需要的是一个浮点数的角度.

17
00:01:33,920 --> 00:01:40,400
‫我们把它改成浮点型, 我们还需要一个速度变量, 也是浮点型的.

18
00:01:40,610 --> 00:01:47,210
‫我们可以把速度变量中的这两个变量补成速度, 把角度补成角度｡

19
00:01:47,270 --> 00:01:53,450
‫我们将点击编译, 看看我们的动画预览编辑器, 只是调整值｡

20
00:01:53,450 --> 00:01:56,810
‫首先, 速度让我们把速度提高一点｡

21
00:01:57,620 --> 00:02:01,640
‫把速度提高到30.

22
00:02:01,820 --> 00:02:02,600
‫看看会发生什么｡

23
00:02:02,600 --> 00:02:02,940
‫他们走了｡

24
00:02:02,960 --> 00:02:05,990
‫他开始走过去, 把它提高到70｡

25
00:02:06,020 --> 00:02:08,030
‫他离逃跑越来越近了｡

26
00:02:08,030 --> 00:02:09,440
‫我加到100了｡

27
00:02:09,740 --> 00:02:11,030
‫不是十个, 是一百个.

28
00:02:11,030 --> 00:02:13,940
‫然后他全力奔跑我们就可以改变角度了｡

29
00:02:13,940 --> 00:02:20,420
‫所以在90度时他向右转90度, -90度时他向左转｡

30
00:02:20,810 --> 00:02:21,890
‫我们可以在两者之间找个地方｡

31
00:02:21,890 --> 00:02:23,120
‫所以你可以说45度｡

32
00:02:23,120 --> 00:02:30,800
‫你可以看到他以45度角奔跑, 你可以看到它试图在混合空间中挑选的混合空间, 以及什么动画｡

33
00:02:30,800 --> 00:02:37,310
‫这是一种混合在向前的动画和向右90度的动画之间｡

34
00:02:37,700 --> 00:02:39,230
‫所以这很酷｡

35
00:02:39,230 --> 00:02:40,550
‫我们已经做到了｡

36
00:02:40,550 --> 00:02:47,270
‫但正如我们所知, 这需要由我们的实际游戏驱动, 我们为什么要这样做呢？

37
00:02:47,270 --> 00:02:55,820
‫为什么我们不让动画来驱动我们的游戏, 你知道, 我们需要以这样那样的速度前进？

38
00:02:56,120 --> 00:03:02,390
‫好吧, 不这样做的原因, 不使用动画来驱动游戏的原因是,

39
00:03:02,390 --> 00:03:07,730
‫你经常希望你的设计师能够调整关于你的游戏的各种变量｡

40
00:03:07,730 --> 00:03:13,340
‫你希望他们能够说, 好吧, 这个角色以这样的速度奔跑感觉不对｡

41
00:03:13,340 --> 00:03:15,230
‫他需要以这种速度奔跑｡

42
00:03:15,410 --> 00:03:17,990
‫而且以这种速度走路应该比较方便｡

43
00:03:18,320 --> 00:03:23,120
‫所以你不希望你的动画限制设计和游戏的感觉｡

44
00:03:23,390 --> 00:03:28,190
‫你想要的动画来小康背面你的游戏感觉, 使它看起来很好｡

45
00:03:28,190 --> 00:03:32,870
‫在设计过程中,

46
00:03:32,870 --> 00:03:39,260
‫您可能会意识到, 实际上我们需要一个运行速度更快的动画, 这没关系,

47
00:03:39,290 --> 00:03:48,250
‫但您希望能够首先改变游戏, 而不是去尝试录制不同的运行动画, 或找到不同的运行动画, 然后意识到这实际上并没有改善游戏的感觉｡

48
00:03:48,270 --> 00:03:51,320
‫这就是为什么我想把这两件事尽可能分开｡

49
00:03:51,350 --> 00:03:57,320
‫有些时候, 事情真的必须与动画排成一排, 但这不是其中之一｡

50
00:03:57,320 --> 00:03:59,990
‫所以每个规则都有例外｡

51
00:03:59,990 --> 00:04:04,040
‫所以, 不要把这当成一条完全一成不变的规则｡

52
00:04:04,040 --> 00:04:09,830
‫你肯定会看到一些游戏的实例, 从动画驱动的一些功能, 但一般来说,

53
00:04:09,830 --> 00:04:12,170
‫我们希望这样做的相反｡

54
00:04:12,170 --> 00:04:16,010
‫我们要说的是, 游戏中角色的速度是多少？

55
00:04:16,010 --> 00:04:21,230
‫让我去更新动画的速度, 而不是说, 什么是动画的速度？

56
00:04:21,230 --> 00:04:23,240
‫让我更新一下游戏中角色的速度｡

57
00:04:23,270 --> 00:04:23,510
‫好吧, 我会的

58
00:04:23,510 --> 00:04:26,090
‫那么, 我们该如何做呢？

59
00:04:26,090 --> 00:04:32,360
‫基本上, 它的机制是这个蓝图, 这个动画蓝图,

60
00:04:32,360 --> 00:04:38,330
‫像其他蓝图一样有一个事件图, 这意味着它可以有像TIC事件这样的东西｡

61
00:04:38,330 --> 00:04:46,100
‫如果我转到事件图中看一看, 这里有几个事件节点, 我们可以使用这些节点开始｡

62
00:04:46,100 --> 00:04:48,740
‫我们有这个蓝图更新动画｡

63
00:04:48,740 --> 00:04:59,840
‫如果我们每次更新动画时都从这个位置离开, 它会给予我们一个执行节点, 允许我们继续获取一些状态｡

64
00:04:59,840 --> 00:05:05,000
‫所以我们要做的是每次调用它的时候, 我们去抓取一些状态,

65
00:05:05,000 --> 00:05:10,940
‫注意这里有一个get spawn的所有者, 它说继续, 获取兵对象.

66
00:05:10,940 --> 00:05:16,430
‫让我们提醒自己, 这里是一个字符, 字符是的子类,

67
00:05:16,430 --> 00:05:19,130
‫就是这个哔哔声发射器字符.

68
00:05:19,130 --> 00:05:20,780
‫为什么会是哔哔声发射器？

69
00:05:20,780 --> 00:05:21,500
‫好吧, 让我想想｡

70
00:05:22,730 --> 00:05:27,320
‫因为这个角色, 如果我们选择网格, 转到视口｡

71
00:05:27,860 --> 00:05:33,350
‫它目前运行的只是一个简单的动画,

72
00:05:33,350 --> 00:05:39,380
‫但我们要做的是改变动画模式使用动画蓝图, 我们想使用该应用程序射手字符｡

73
00:05:39,380 --> 00:05:42,530
‫这就是为什么这是——业主｡

74
00:05:42,530 --> 00:05:44,810
‫它使用的是动画蓝图｡

75
00:05:44,810 --> 00:05:47,840
‫所以蓝图现在有了一个兵主｡

76
00:05:48,290 --> 00:05:57,020
‫所以我们在这个更新函数中要做的, 总结一下, 就是我们要从棋子那里获取关于它运动的信息｡

77
00:05:57,020 --> 00:05:59,030
‫我们要说, 你的速度是多少？

78
00:05:59,030 --> 00:06:01,640
‫你的动作角度是多少？

79
00:06:01,970 --> 00:06:03,890
‫这就是我们这节课要计算的｡

80
00:06:03,890 --> 00:06:06,680
‫我们只做速度, 因为这是最简单的｡

81
00:06:06,710 --> 00:06:13,430
‫这个角度需要一点变换, 我们下节课会讲到.

82
00:06:13,430 --> 00:06:23,000
‫所以我们需要的节点是, 我们的兵主人的速度, 它给出了这个矢量.

83
00:06:23,390 --> 00:06:29,850
‫然后在这个矢量的后面, 我们想找到它的大小或者长度, 这样我们就可以从这个矢量中拖出,

84
00:06:29,850 --> 00:06:33,290
‫搜索大小｡

85
00:06:33,290 --> 00:06:38,450
‫注意, 这里很聪明, 我搜索了大小, 但是它给了我一个叫做向量长度的函数｡

86
00:06:38,450 --> 00:06:42,470
‫他们所记录的幅度是如此清晰, 以至于它是矢量长度的同义词｡

87
00:06:42,470 --> 00:06:45,260
‫为什么我们要得到向量的长度而不是向量本身呢？

88
00:06:45,260 --> 00:06:50,810
‫因为我们要寻找一个浮点数, 也就是速度矢量, 包括方向和速度,

89
00:06:50,810 --> 00:06:53,570
‫我们需要用它来计算角度｡

90
00:06:53,600 --> 00:06:57,080
‫但它不是我们计算速度所需要的｡

91
00:06:57,080 --> 00:06:59,060
‫给你们一个小小的挑战｡

92
00:06:59,090 --> 00:06:59,750
‫你说吧

93
00:06:59,750 --> 00:07:02,510
‫在这节课上没有其他的挑战｡

94
00:07:02,540 --> 00:07:06,920
‫继续使用此向量长度设置速度｡

95
00:07:06,920 --> 00:07:09,020
‫记住如果你需要任何执行别针｡

96
00:07:09,020 --> 00:07:11,750
‫我们尝试在蓝图更新动画中执行此操作｡

97
00:07:11,750 --> 00:07:12,830
‫所以暂停视频, 开始吧｡

98
00:07:12,860 --> 00:07:13,520
‫好的欢迎回来｡

99
00:07:13,520 --> 00:07:16,160
‫因此, 速度就是我们要设置的｡

100
00:07:16,160 --> 00:07:22,100
‫因此, 如果我将其拖到蓝图中并单击设置速度, 您可以看到我们已经获得了所需的执行引脚｡

101
00:07:22,100 --> 00:07:27,950
‫我们将从“蓝图更新”动画中获取该值, 并且需要数据引脚, 该值是速度,

102
00:07:27,950 --> 00:07:32,060
‫来自获取速度的矢量长度｡

103
00:07:32,240 --> 00:07:35,060
‫所以它应该能够继续保存和编译｡

104
00:07:35,060 --> 00:07:42,080
‫你可以看到它把速度重置为零因为现在它试图从一个不存在的兵主那里设置速度.

105
00:07:42,740 --> 00:07:49,160
‫所以我们要做的就是在这个世界上玩一玩, 看看我们有什么｡

106
00:07:49,400 --> 00:07:50,420
‫好了, 这样好多了｡

107
00:07:50,420 --> 00:07:58,700
‫我们有一个棋子在地上静止不动, 除了我移动的时候, 它会给我一些速度.

108
00:07:59,270 --> 00:08:07,580
‫如果使用控制器等模拟输入, 则可以通过改变模拟输入来改变速度｡

109
00:08:07,580 --> 00:08:12,590
‫我们可以改变这家伙的移动速度｡

110
00:08:14,580 --> 00:08:16,460
‫很明显, 这里有两个问题｡

111
00:08:16,470 --> 00:08:21,060
‫第一个是, 如果我偏离了一个角度, 它只是使用绝对速度｡

112
00:08:21,060 --> 00:08:23,970
‫所以在我们的混合空间中, 它并没有调整这个角度｡

113
00:08:23,970 --> 00:08:25,830
‫所以动画看起来是错误的｡

114
00:08:26,220 --> 00:08:31,620
‫另一个问题是, 我们在这里肯定会有一些脚步滑动,

115
00:08:31,620 --> 00:08:34,650
‫因为我们的动画速度与游戏中角色的速度不匹配｡

116
00:08:34,680 --> 00:08:39,150
‫这也是我们在下一节课中要讨论的问题｡

117
00:08:39,330 --> 00:08:40,070
‫好东西｡

118
00:08:40,080 --> 00:08:51,920
‫希望你现在明白了动画应该如何使用动画蓝图来连接到游戏中, 你应该能够去并将其应用到你自己的游戏中｡

119
00:08:51,930 --> 00:08:58,920
‫下节课见, 我们会把这些角度连接起来, 让这个动作看起来更自然｡

