‫你好, 欢迎｡
‫在这节课上, 我们将建立一个小小的障碍突击训练场, 我们将在这里实施这些小的推动平台,
‫将我们的角色推离｡
‫我们需要对我们的角色类进行一些小的修改｡
‫所以让我们深入了解一下它们是什么｡
‫我想介绍的另一个基本的移动平台部件是一个推动器, 它可以把我们推离壁架｡
‫现在, 我想做的是拿这个立方体｡
‫我认为它被称为魔方A, 它可以是一个立方体, 本质上是一个推动者｡
‫我们将对它的配置与移动平台略有不同｡
‫让我们继续, 导航回我们的平台, 这样我就可以右键单击, 然后单击转到这里,
‫这样我的摄像头就可以聚焦在上面了｡
‫然后我们可以做的是进入我们的内容, 画到C++类, 点击我的搜索, 进入Obstacle Salt,
‫右键点击移动平台, 并基于它创建一个新的蓝图类｡
‫这一次我把它叫做BP下划线推立方体｡
‫我将把它放在内容路径中, 然后单击“创建蓝图类”｡
‫现在我可以关闭内容浏览器了｡
‫我不知道为什么它一直想把那个拿出来, 我会去到内容绘制,
‫去到内容的根, 然后搜索拼图立方体或者一个单词, 我们正在寻找拼图立方体｡
‫这就是这个, 网眼布.
‫我将拖动到我们的蓝图类中, 然后关闭内容, 绘制我的编译结果, 这样我就可以更好地查看视口｡
‫我想放大这个立方体, 因为默认情况下, 它实际上很小｡
‫我会让它在每一个维度上至少大十倍｡
‫我将在scale属性旁边加一个小锁, 这样每个属性的缩放比例基本上都是一样的｡
‫我将其中一个更改为10, 然后其他两个也将扩展为10｡
‫然后我要做的是改变运动的方向｡
‫所以它现在是在X方向移动｡
‫如果我们看看我们的场景, 你会发现这基本上是前进的方向｡
‫我想把它左右移动一下｡
‫显然, 我们可以旋转它,
‫一旦我们把它放在场景中, 这不会有太大的关系, 但我会把它在X轴上改为零, 它需要相当快, 因为它是一个我们需要避免的障碍｡
‫所以我把它设为300, 同时我也把移动距离设得相当大｡
‫所以一开始至少要500美元｡
‫很明显, 一旦我们将其放置在该级别中, 就可以再次对其进行配置｡
‫我们先把它存起来, 进入我们的关卡, 试着把这个立方体放好.
‫我将取消在内容绘制中的搜索, 转到内容的根目录, 并在一个推送立方体中拖动｡
‫它绝对是巨大的｡
‫我绝对把秤弄偏了｡
‫让我们回到Blueprint类, 了解如何在Cube中推送｡
‫看看比例属性, 也许我们只想把它放大四倍, 注意,
‫我是在比例锁定的情况下做的｡
‫所以我把它在每个维度上都放大了四倍, 然后回到原来的水平｡
‫现在看起来更合理了｡
‫所以你可以看到它实际上有点卡在地面上｡
‫所以我们能做的是, 我们可以通过在世界上提升立方体来解决这个问题, 或者我们可以一劳永逸地解决这个问题,
‫然后在推立方体类中提升它｡
‫所以我想我们需要把它抬高大约｡
‫我们把它拖起来看看哪个看起来正常｡
‫我想200把它放在地平面上｡
‫所以保存吧, 回到我们的场景｡
‫就这样｡
‫看起来是正确的｡
‫现在我将移动它, 使其与我们的播放器重叠｡
‫让我们继续, 点击播放, 您可以看到它在前后移动｡
‫它前后移动的距离并不大｡
‫所以我认为我们确实需要改变这一点｡
‫让我们回到类, 转到类, 默认并使移动距离｡
‫我想至少要有1500个这样的｡
‫我们可能希望将移动方向设置为相反的方向, 尽管这可能只是一个偏好问题｡
‫所以让我们回到主窗口, 将立方体拖动到左边, 因为这是它将要移动的方向｡
‫我们开始吧｡
‫好了
‫它走得很慢｡
‫所以我对速度不满意｡
‫让我们改变速度｡
‫我想至少要快三倍｡
‫所以我们来个900次的吧｡
‫就这样｡
‫我们有更大的挑战｡
‫不过, 我们也有一个漏洞｡
‫我们的角色并没有被这个推动立方体以一种非常明智或美好的方式推动｡
‫你可以看到它的小故障｡
‫不顺利｡
‫但是, 我想提请您注意一个小的变通办法｡
‫如果我试图移动, 而它击中了我,
‫你会注意到, 它实际上做得非常顺利, 这是因为字符代码实际上并不检查碰撞, 除非你试图移动｡
‫所以我们有一个小的变通办法来做这个｡
‫我们将转到我们创建的BP第三人称角色｡
‫现在, 您可以通过内容绘制或选择场景中的角色, 转到详细信息窗格,
‫转到“Blueprint”按钮, 然后单击“Open Blueprint Editor”｡
‫我们要做的就是在每一个滴答声中, 把字符向左移动一点,
‫然后再向右移动一点｡
‫现在, 我们要做的是在角色上使用一个叫做角色移动的组件.
‫因此, 在组件窗格中选择该组件, 然后右键单击Blueprint Event图,
‫然后搜索move updated组件｡
‫这个函数的本质是告诉我们｡
‫应该使用其角色移动规则来移动角色的移动组件｡
‫所以你可以看到它需要一个delta, 基本上就是说, 这是你应该移动的距离｡
‫它有一个扫描, 这告诉我们它应该注意沿着的任何碰撞｡
‫所以我们可以让它做一个非常简单的移动, 基本上是在X和Y方向上移动一厘米｡
‫它是否在Z轴上运动并不重要因为我们并不是在寻找那些碰撞｡
‫然后我们就可以把这个价格点拖到我们的行动中｡
‫更新了组件｡
‫如果我们就这样离开它, 这将是有问题的, 因为我们的性格将逐渐漂移｡
‫让我来告诉你如果我点击播放｡
‫你可以看到角色在一帧一帧地逐渐移动一厘米, 在场景中漂移｡
‫所以我们需要做的是也搬回去｡
‫把一个角色移动组件拖到这里, 我将再次拖离这个大头针, 再次寻找移动｡
‫更新了组件｡
‫我将在执行pin中进行线程化, 以便在第一次移动更新的组件后调用它｡
‫然后我会使δ在X方向减1, 在Y方向减1｡
‫所以最终的结果是什么都没有发生,
‫但是, 因为我们已经强迫移动组件去寻找这些与扫描的碰撞, 它将平滑地对推动器做出反应.
‫所以我们继续按播放键, 然后去挡住我们的推杆｡
‫你可以看到我们非常顺利地被推到一边, 就像这样｡
‫所以我想挑战你们用我们放在这里的这个推进器和移动平台部件来做一个你们自己的障碍跑道｡
‫这是我在原型中制作的障碍跑道的例子｡
‫你可以看到我有一些移动平台把我举到一个小岛上这样你就可以用其中一个岛把它缩小成一个平台
‫然后我让推进器前后移动, 我必须通过｡
‫然后是旋转平台, 我们稍后会讲到｡
‫所以别担心
‫但是我们有这些推进器和移动平台, 所以试试吧｡
‫你可以试着复制这个, 或者如果你有创造力,
‫想尝试一些不同的东西, 那么请继续创造你自己的障碍课程, 因为这总是很令人兴奋的｡
‫如果你真的创造了一些独特的东西, 请在讨论中分享它, 这样我们都可以看看, 并获得灵感｡
‫所以暂停视频, 开始吧｡
‫好吧, 我会的
‫欢迎回来｡
‫现在我们已经让我们的推动器工作了, 让我们做一些有趣的事情, 好吗？
‫我要把这个平台旋转一下｡
‫我们的设置长度稍长一些, 我将拖动它沿着
‫角色就在平台的末端, 然后我会把这两个移动平台一个接一个地摆放起来.
‫其中一个, 我会在它的Z轴上加上1000, 然后让它向相反的方向运动.
‫所以这两个平台应该在中间的某个地方会合｡
‫然后我会复制我们站着的浮岛｡
‫通过alt单击并拖动, 我将旋转它,
‫这样它就不会立即看起来明显是同一个平台, 我将它拖出来, 并将它重新缩放一点, 以便我们可以将它放在另一个平台的顶部｡
‫因为最终我想发生的是一旦我们到达这个上层平台的顶部, 我们就被推下来, 这样我们就不会死｡
‫但这给我们带来了一点挫折｡
‫现在, 我要把这些推块｡
‫我会把它们拖到上面的平台上｡
‫我会放几个进去｡
‫我想三个就足够了, 我将把其中一个拖到另一边,
‫然后像这样翻转它的速度｡
‫所以不是9, 而是-900, 我们要反方向去｡
‫让我们来试试这样我就能爬上这些移动的平台了｡
‫他们允许我在这里有一个梯子, 现在我必须试着通过这些家伙｡
‫有趣的是, 我刚刚注意到我们强迫角色移动的方式有一点错误, 我马上就来解释｡
‫但是是的, 这有点挑战性, 但这是可行的｡
‫我们肯定能通过的｡
‫我现在做得不是很好, 但如果我们想的话, 我们肯定能穿过那些立方体｡
‫所以接下来要做的就是修复这个小错误｡
‫现在的问题是, 当我们调用移动更新组件时, 我们在这里设置的旋转不是角色的旋转,
‫这意味着我们总是面向前方.
‫因此, 解决此问题的简单方法是右键单击并获取演员旋转, 然后简单地将演员旋转传递给新的旋转四个“移动更新的组件”｡
‫你可以把它传递给他们两个,
‫但真正重要的是, 我们将为最后一个这样做, 这样我们就可以继续玩, 我们应该能够看到, 我们现在确实可以适当地旋转我们的角色｡
‫很棒的东西｡
‫在这节课中, 我们修正了一个与角色碰撞的小错误, 我们还设置了一个障碍突击课程,
‫让我们开始｡
‫我希望你们玩得开心, 下节课再见.