‫你好, 欢迎｡
‫在这节课中,
‫我们将从敌人那里得到一条视线, 这样我们作为玩家, 就能躲在障碍物后面而敌人的追随者就不会有障碍物.
‫一直瞄准我们直到我们弹出来让他们看见｡
‫所以你可以看到这里我藏在一个角落里, 他找不到我｡
‫让我们深入研究一下, 看看如何使用虚幻的工具来实现这一点｡
‫所以这个敌人A. 一､ 现在可以跟踪我们｡
‫不管我们走多远不管我们躲在柱子后面它还是会找到我们
‫它还是会来继续瞄准我们｡
‫我们想纠正这一点, 我们将通过检查从敌人到玩家的视线来做到这一点｡
‫现在, 就像《虚幻》中的很多东西一样, 眼睛控制器中已经有了一个功能, 叫做视线｡
‫如果你去搜索它, 你会发现有一个函数返回一个布尔值｡
‫所以告诉我们是否有视线,
‫然后它需要我们检查视线的演员, 它会自动考虑到一些事情, 比如说棋子的眼睛位置｡
‫所有这些东西都已经被编码成虚幻真的很酷, 所以它应该是相当简单的｡
‫如果我们转到人工智能控制器DHCP, 我们基本上要做的是在TIC中进行更改,
‫以便我们首先执行if视线｡
‫然后我们要做的是, 如果我们有视线, 我们要移动到, 我们要设置焦点｡
‫但是, 如果我们在别的方面不这样做, 我们要做的就是明确焦点｡
‫记住, 我们之前已经看过这个函数了, 我们现在要做的是让我们看看停止运动｡
‫这是另一个我们还没见过的函数｡
‫所以我现在要做的是, 如果你有信心的话, 我可以向你挑战, 让你自己实施整个计划｡
‫另外, 这个else是我们之前没有见过的更复杂的部分, 因为另外两个, 我们已经做了一个演员的动作,
‫我们已经做了我们的设置焦点, 我们以前做过｡
‫这就是我们刚才看到的视线｡
‫很简单｡
‫你可以实现它｡
‫但是这个呢？
‫让我们来尝试实现just the ELT子句｡
‫它不会被编译, 因为你显然需要在else之前有一个if, 但是让我们直接写出ELT子句.
‫所以首先要明确的是, 基本上我们是说, 不要试图跟踪球员, 因为你看不到球员｡
‫你不应该给人一种你知道球员在哪里的印象, 即使眼睛显然可以,
‫因为它可以访问球员的位置等等｡
‫但我们需要给予人一种错觉, 即人工智能只知道它能看到的那么多｡
‫所以我们要做的是跟注, 以明确重点｡
‫如果我们转到人工智能控制器H, 看一下清除焦点, 你可以看到它接受了我们需要清除的优先级｡
‫现在, 提醒一下, 这些优先事项基本上是不同层次的重点｡
‫因此, 我们通常默认的移动和游戏性游戏性是最高优先级的事情｡
‫我们默认设置的是游戏优先级｡
‫所以我们要做的是清除游戏优先级, 这意味着如果我们已经基于移动聚焦,
‫例如, 如果我们的眼睛然后想移回它的守卫点, 那么焦点将不会被清除,
‫它将离开移动回它的守卫点｡
‫这就是专注的工作方式｡
‫这就是优先权制度的运作方式｡
‫所以我们要做的就是复制一个关于冒号游戏的焦点优先级代码, 这就是我们要在这一行中清除的优先级｡
‫然后另一件事是停止运动｡
‫所以我们想再看一下人工智能控制的RH, 看看停止运动｡
‫当然, 有一个简单的无参数函数, 叫做停止移动, 它允许我们这样做｡
‫所以你去那里｡
‫这基本上是书面声明｡
‫所以现在只是提醒一下, 用if视线实现if部分以及移动到并设置焦点对你来说仍然是一个挑战｡
‫你基本上要删除这里的代码｡
‫我只想注释掉它, 然后整理出你想要的位置｡
‫所以暂停视频｡
‫没有挑战, 滑到这里｡
‫你自己去执行这三条线吧｡
‫好吧, 我会的
‫欢迎回来｡
‫我们就从这个开始吧｡
‫如果是这样的话, 如果开括号视线到, 然后我们想做视线到演员, 这是球员兵,
‫我们想获得访问｡
‫我们先取消对这个兵的注释, 它会把缩进的部分弄乱.
‫让我们来解决这个问题｡
‫然后我们需要括号, 这里的花括号, 我们要移动到actor.
‫实际上, 我们可以复制并取消对actor的注释｡
‫我们要取消注释它｡
‫是的, 我们走吧｡
‫我们也可以移动焦点｡
‫现在, 焦点,
‫不管你是在移动到演员之前还是之后, 因为移动到演员确实设置了焦点, 它设置了一个较低的优先级, 移动焦点而不是游戏焦点｡
‫所以这两个操作的顺序并不重要｡
‫最后我们可以删除这条注释掉的线, 在这里我们在开始游戏中得到了玩家的兵,
‫因为我们不再需要它了, 现在一切都在滴答声中了, 所以我们可以删除开始游戏｡
‫我打算把它留在身边, 以防我们以后需要它, 这样就保存了把它加回去的麻烦｡
‫让我们前往虚幻和编译, 当这完成, 让我们玩｡
‫我们来看看能不能躲过这个演员｡
‫我会尽量快速地绕过拐角｡
‫这有点棘手, 因为它们的移动速度和你一样快, 但如果你像那样转过弯, 它们就会说,
‫他看不见我了.
‫他不再追我了｡
‫我可以在角落里偷看, 看到我在移动｡
‫他没有改变瞄准因为我们已经明确了目标｡
‫可以从另一个角落偷看｡
‫让我想想｡
‫在这里捡｡
‫你去那里｡
‫你可以看到他还在瞄准我最后所在的位置｡
‫但如果我突然出现在视线中, 他就会继续瞄准, 并在接受半径内移动｡
‫说到这个, 我希望这个接受半径可以由设计师配置｡
‫所以让我们把它移到一个新的属性中｡
‫我将在此处创建一个具有新属性的私有分区｡
‫这将是一个编辑任何地方｡
‫我们希望它是一个浮点数, 称为接受半径, 并将其默认值设为200｡
‫然后这个接受半径我们可以继续使用, 并在我们移动到演员｡
‫如果你编译它, 它会给予你完全相同的行为,
‫除了现在你可以在AI控制器蓝图中改变它｡
‫这节课就讲到这里｡
‫我们已经发现视线的功能, 使我们能够检查眼睛是否能看到什么｡
‫我们已经实现了这个基本的隐藏功能, 这样人工智能就不会在看不到我们的时候跟踪我们｡
‫下节课｡
‫我们将从这个自定义编程的人工智能中提升一个档次, 并使用行为树｡
‫一个非常强大的工具, 在虚幻中, 使我们的人工智能只是更酷｡