﻿1
00:00:04,360 --> 00:00:05,410
‫你好, 欢迎｡

2
00:00:05,410 --> 00:00:10,570
‫在这节课中, 我们将使用C++类的蓝图子类来制作移动平台,

3
00:00:10,570 --> 00:00:15,700
‫看起来更有视觉吸引力｡

4
00:00:15,700 --> 00:00:17,710
‫让我们深入了解一下它是如何工作的｡

5
00:00:18,430 --> 00:00:21,100
‫别再说这个白色立方体了｡

6
00:00:21,100 --> 00:00:24,370
‫让我们开始使用我们的资产包中的一些资产｡

7
00:00:24,370 --> 00:00:31,180
‫现在, 对于这些移动平台, 我们不希望在每次创建时都重新配置它们｡

8
00:00:31,180 --> 00:00:35,110
‫这就是蓝图类派上用场的地方｡

9
00:00:35,110 --> 00:00:39,520
‫我们可以在蓝图中加入许多配置｡

10
00:00:39,520 --> 00:00:44,650
‫因此, 我将从Seed中删除当前移动平台,

11
00:00:44,650 --> 00:00:48,880
‫因为我想向您展示如何为这些平台创建新的蓝本基类｡

12
00:00:49,180 --> 00:00:55,390
‫所以我们用第三人称角色做了非常相似的过程｡

13
00:00:55,390 --> 00:00:59,560
‫这是一个基于其他类的蓝图类｡

14
00:00:59,560 --> 00:01:03,370
‫现在, 我们可以基于C++类来实现这一点｡

15
00:01:03,370 --> 00:01:08,830
‫我们进入内容抽取, 有几种方法可以做到这一点, 但这是其中之一｡

16
00:01:08,830 --> 00:01:14,830
‫我们可以转到C++类, 转到Obstacle Assault,

17
00:01:14,830 --> 00:01:19,810
‫然后右键单击这里的移动平台类, 创建基于移动平台的蓝图类｡

18
00:01:19,840 --> 00:01:21,040
‫那就去做吧｡

19
00:01:21,490 --> 00:01:28,930
‫我将把它命名为BP, 在移动平台上加下划线, 并将其放在内容路径中, 然后单击创建蓝图类｡

20
00:01:28,930 --> 00:01:33,520
‫然后, 它将弹出我们现在熟悉的蓝图编辑器｡

21
00:01:33,520 --> 00:01:40,750
‫现在, 我将关闭内容浏览器, 您可以看到详细信息窗格, 其中包含移动平台的所有设置,

22
00:01:40,780 --> 00:01:47,850
‫包括移动距离等｡

23
00:01:48,070 --> 00:01:54,310
‫我们还添加了一个默认的场景路径组件, 因为我们在这里没有组件｡

24
00:01:54,310 --> 00:01:58,300
‫所以一个参与者需要有某种组件, 否则它就没有位置,

25
00:01:58,300 --> 00:02:01,390
‫这就是为什么我们必须在前面的实例中添加立方体组件｡

26
00:02:01,630 --> 00:02:08,020
‫所以我想在这里做的是从我们的学习工具包中引入一些资产｡

27
00:02:08,020 --> 00:02:13,340
‫因此, 如果我们转到内容绘制到内容文件夹, 我们将转到学习工具包, 然后看看资产,

28
00:02:13,340 --> 00:02:16,750
‫让我们看看是否有道具｡

29
00:02:16,750 --> 00:02:18,640
‫这里有很多东西很多文件夹｡

30
00:02:18,640 --> 00:02:27,490
‫我现在要做的是过滤, 点击过滤按钮, 找到静态网格过滤器｡

31
00:02:27,490 --> 00:02:31,810
‫这将显示学习包下面的所有静态网格｡

32
00:02:32,080 --> 00:02:35,110
‫我想做一种石柱｡

33
00:02:35,110 --> 00:02:43,480
‫所以有几种方法我可以去做这件事, 但我认为这个工具箱地板是一个可能的途径来探索｡

34
00:02:43,690 --> 00:02:47,830
‫当然, 另一种方法是, 我们在场景中有资产｡

35
00:02:47,830 --> 00:02:55,510
‫让我们飞到另一个平台上, 飞到浮岛上, 看看有什么可用的资产｡

36
00:02:55,510 --> 00:02:58,270
‫我能看到有一块我喜欢的石头地板｡

37
00:02:58,300 --> 00:03:05,320
‫如果我单击它并查看正在使用的静态网格, 您可以看到它是这个静态网格工具包, 即地板网格｡

38
00:03:05,320 --> 00:03:10,280
‫好的, 这就是我在内容绘制中要找的,

39
00:03:10,280 --> 00:03:15,550
‫如果我想这样做, 我可以删除过滤器, 我可以寻找工具包下划线缺陷, 我认为这是｡

40
00:03:16,060 --> 00:03:17,230
‫这就是我们想要的｡

41
00:03:17,230 --> 00:03:21,220
‫实际上有两个版本, 让我们来看看它们之间的区别｡

42
00:03:21,220 --> 00:03:23,980
‫看起来第二个更充实一点｡

43
00:03:23,980 --> 00:03:26,260
‫当我悬停在它上面时, 肯定会有更多的属性｡

44
00:03:26,260 --> 00:03:28,690
‫事实上, 甚至还有一些细节层次｡

45
00:03:28,690 --> 00:03:31,180
‫有四个层次的细节, 其中只有一个为其他｡

46
00:03:31,180 --> 00:03:35,890
‫我将选择第二个, 并将其拖到视口中｡

47
00:03:35,890 --> 00:03:42,820
‫您可以看到它作为一个组件添加到默认场景路径组件下面, 这很好｡

48
00:03:42,820 --> 00:03:47,800
‫我们不必让这个工具包成为全班的绝对中心｡

49
00:03:47,800 --> 00:03:49,570
‫它不必是根组件｡

50
00:03:49,570 --> 00:03:56,530
‫我们可以将其连接到路径上,

51
00:03:56,530 --> 00:04:04,540
‫这样我们就可以移动平台的中心, 使其位于平台的实际中间位置, 而不是该特定静态网格的中心位置｡

52
00:04:04,540 --> 00:04:05,470
‫这就是我所做的｡

53
00:04:05,470 --> 00:04:09,280
‫我把平台移到了稍微偏离中心的位置｡

54
00:04:09,800 --> 00:04:12,130
‫我还要把它做成一个可以升降的平台｡

55
00:04:12,130 --> 00:04:18,940
‫因此, 在组件面板中选择角色, 或者单击工具栏中的类默认值,

56
00:04:18,940 --> 00:04:24,280
‫我将在移动平台部分更改一些属性｡

57
00:04:24,280 --> 00:04:27,280
‫所以我们的平台速度会使它上下运动｡

58
00:04:27,280 --> 00:04:36,310
‫所以我给予它200的速度向上, 速度为零, 然后我给它一个500的移动距离开始.

59
00:04:36,310 --> 00:04:38,350
‫让我们看看它看起来如何｡

60
00:04:38,350 --> 00:04:41,290
‫我将把一个移动的平台带入我的场景｡

61
00:04:41,290 --> 00:04:51,820
‫让我们回到场景, 去寻找第三人称角色的轮廓, 双击他, 把我们带回到另一个岛｡

62
00:04:51,970 --> 00:04:58,360
‫然后, 我将转到内容绘制, 转到内容的根, 取消我的搜索,

63
00:04:58,360 --> 00:05:00,250
‫并在我们的BP移动平台中拖动｡

64
00:05:00,250 --> 00:05:00,700
‫好了, 我们走吧｡

65
00:05:00,700 --> 00:05:03,310
‫这里有个移动平台｡

66
00:05:03,610 --> 00:05:08,920
‫如果我点击播放, 你可以看到它确实是这样上下移动的｡

67
00:05:08,920 --> 00:05:16,030
‫如果我在场景中放置两个这样我就可以拖动另一个, 你会看到它们都以相同的方式反应, 并且它们都是链接的,

68
00:05:16,030 --> 00:05:21,520
‫因为它们都共享蓝图类｡

69
00:05:21,520 --> 00:05:24,700
‫因此, 让我们来挑战您, 让您在这里自定义自己的平台｡

70
00:05:24,700 --> 00:05:29,350
‫你可以选择我的方法, 也可以选择完全不同的方法｡

71
00:05:29,350 --> 00:05:35,110
‫您还可以创建多个蓝图变体类, 以便移动平台｡

72
00:05:35,110 --> 00:05:39,370
‫可能有些是漂浮的, 有些是在外面的, 有些是从地下冒出来的柱子｡

73
00:05:39,370 --> 00:05:45,430
‫我要去找从地下冒出来的岩柱, 就像成语这么说的｡

74
00:05:45,430 --> 00:05:49,900
‫如果你想沿着, 这也是你的挑战, 使它成为一个支柱从地板上出现｡

75
00:05:49,900 --> 00:05:54,610
‫我们要做的是从套件中寻找一些合适的组件, 这些组件可能是支柱的侧面｡

76
00:05:54,640 --> 00:05:58,660
‫然后我们将它们拖到蓝图类中,

77
00:05:58,660 --> 00:06:03,220
‫并将它们放置在适当的位置, 以便它们在我们已经放入的地板组件下面形成基础｡

78
00:06:03,400 --> 00:06:07,660
‫因此, 暂停视频, 并有一个尝试, 使自己的上升支柱｡

79
00:06:10,440 --> 00:06:10,890
‫好吧, 我会的

80
00:06:10,890 --> 00:06:11,610
‫欢迎回来｡

81
00:06:11,610 --> 00:06:14,250
‫所以, 让我们停止玩弄我们的上升支柱｡

82
00:06:14,250 --> 00:06:19,560
‫我将转到BP移动平台, 实际上,

83
00:06:19,560 --> 00:06:27,180
‫我将首先转到场景视图, 然后通过右键单击它并将捕捉视图转到对象, 从而转到另一个岛｡

84
00:06:27,180 --> 00:06:32,430
‫所以我直接拍到那个岛然后我们去找不同的墙, 我可以用｡

85
00:06:32,460 --> 00:06:37,110
‫好的, 这里有几块岩壁, 我看到了, 这可能是一个很好的组成部分.

86
00:06:37,140 --> 00:06:40,980
‫如果你愿意, 你也可以在墙上打个小洞｡

87
00:06:41,010 --> 00:06:47,520
‫有一种倾斜的屋顶, 但这是一种已经在一个角度, 可能不是理想的｡

88
00:06:47,520 --> 00:06:50,640
‫我们也可以利用这些向上的岛屿｡

89
00:06:50,640 --> 00:06:54,810
‫如果我们愿意的话, 这些可以作为一个更多岩石和崎岖的基地的一部分｡

90
00:06:54,810 --> 00:07:00,690
‫但我打算用一面稍微无聊一点的墙, 所以我打算用工具箱墙｡

91
00:07:01,410 --> 00:07:02,860
‫让我们到移动平台那边去｡

92
00:07:02,860 --> 00:07:09,570
‫我将打开内容抽屉, 查找工具包和记分墙, 然后使用"Let's find which element is most

93
00:07:09,570 --> 00:07:11,100
‫appropriate“（让我们找出最合适的元素）｡

94
00:07:11,100 --> 00:07:12,060
‫我想应该是这个｡

95
00:07:12,060 --> 00:07:13,710
‫它有四个层次的细节｡

96
00:07:13,710 --> 00:07:19,680
‫这就是我想要的, 我要把它拖到世界上来, 我需要几个｡

97
00:07:19,680 --> 00:07:22,410
‫但让我们从一个开始｡

98
00:07:22,470 --> 00:07:31,260
‫我将把它放在我们平台的下面, 像这样, 然后我将使用控制C和控制V复制它,

99
00:07:31,260 --> 00:07:37,080
‫然后我可以使用旋转工具旋转它｡

100
00:07:37,110 --> 00:07:37,530
‫好了

101
00:07:37,530 --> 00:07:40,080
‫它的另一面自动制造出来了｡

102
00:07:40,080 --> 00:07:42,300
‫现在让我们再粘贴一次｡

103
00:07:42,300 --> 00:07:46,320
‫使用移动工具将其翻转到另一侧｡

104
00:07:46,350 --> 00:07:50,130
‫我不太小心的定位, 因为我认为这是岩石｡

105
00:07:50,130 --> 00:07:51,840
‫可能会有一点随意｡

106
00:07:51,960 --> 00:07:58,350
‫然后, 我将复制已对齐的一侧, 并将其移到另一侧｡

107
00:07:58,350 --> 00:08:03,090
‫所以我们总共有四个这样的墙元素｡

108
00:08:03,270 --> 00:08:09,480
‫然后我们要做的就是把这四个元素都复制粘贴下来然后把它们拖到下面作为元素,

109
00:08:09,480 --> 00:08:21,120
‫这样就形成了一个漂亮的, 高高的, 岩石柱子, 这样我们就可以从地下钻出来了.

110
00:08:21,120 --> 00:08:27,240
‫我再往下讲一层, 这样我们就可以在特殊的工具环境中使用它｡

111
00:08:27,390 --> 00:08:30,750
‫然后我们保存回到主层｡

112
00:08:30,750 --> 00:08:35,220
‫我们将双击第三人称角色, 将画面缩小, 然后单击“播放”｡

113
00:08:35,220 --> 00:08:41,250
‫现在我找到的这两个岩石柱子在地下进进出出, 一切都很好.

114
00:08:41,250 --> 00:08:43,110
‫你可以看到它们是同步的｡

115
00:08:43,110 --> 00:08:49,710
‫如果我们想的话, 我们可以努力改变这种情况, 但它们会上下移动,

116
00:08:49,710 --> 00:08:55,530
‫而且都有侧面, 所以我不会被困在下面, 也会给它们一点接地的感觉,

117
00:08:55,530 --> 00:08:58,560
‫而不是看起来像魔法般漂浮的平台｡

118
00:08:58,560 --> 00:08:59,040
‫好东西｡

119
00:08:59,040 --> 00:09:04,830
‫我们已经学习了如何从C++类中创建蓝图子类｡

120
00:09:04,830 --> 00:09:06,750
‫我们下节课再见｡

