网站开发市场成本,推动高质量发展就是要,大栅栏网站建设,建筑学不会画画影响大吗效果 步骤
一、准备行为树和黑板
1. 对我们之前创建的AI控制器创建一个子蓝图类 这里命名为“BP_NPC_AIController_Lion”#xff0c;表示专门用于控制狮子的AI控制器 2. 打开狮子蓝图“Character_Lion” 在类默认值中将“AI控制器类”修改为“BP_NPC_AIController_Lion” 3…效果 步骤
一、准备行为树和黑板
1. 对我们之前创建的AI控制器创建一个子蓝图类 这里命名为“BP_NPC_AIController_Lion”表示专门用于控制狮子的AI控制器 2. 打开狮子蓝图“Character_Lion” 在类默认值中将“AI控制器类”修改为“BP_NPC_AIController_Lion” 3. 创建一个行为树 这里命名为“BT_Lion” 4. 创建一个黑板 这里命名为“Blackboard_Lion” 5. 打开行为树“BT_Lion”在左侧的“黑板资产”选项中设置为刚创建的“Blackboard_Lion” 6. 打开AI控制器“BP_NPC_AIController_Lion”在事件开始运行后运行“BT_Lion”行为树 此时我们就建立了AI控制器、行为树、黑板之间的关联。行为树负责提供AI的行为准则黑板负责存储AI行为参考的数值。
下面我们即将完成的功能是NPC狮子在一定区域内巡逻如果看见玩家就跑过去。因此我们需要将巡逻的点先放入黑板然后在行为树中获取黑板的值并控制狮子。
二、NPC狮子巡逻
1. 打开行为树“BT_Lion”添加一个序列合成节点 接下来我们需要获取一个随机点点击新建任务 这里任务命名为“BTTask_GetRandomLocation” 此时在行为树中就可以搜索到我们刚才创建的任务“BTTask_GetRandomLocation” 在获取到随机点后就通过“Move To”任务节点让NPC狮子移动到指定位置 然后等待1.5s~2.5s时间再次重复执行前两个任务 2. 打开黑板 由于我们需要一个随机点的位置因此在黑板中新建一个向量这里命名为“RandomLocation” 3. 在行为树中双击任务节点进入任务“BTTask_GetRandomLocation” 我们需要在 “BTTask_GetRandomLocation”添加的逻辑是在狮子周围随机添加一个点然后将其保存到黑板中。在这里添加如下节点 4. 回到行为树中选中“BTTask_GetRandomLocation”任务节点可以看到此时默认有两个参数值这两个参数就是我们在任务蓝图中创建的变量 设置默认值 设置“Move To”的目的地为黑板中“Random Location”的值 此时运行可以看到NPC狮子每隔2s左右就随机移动一次。
如果我们希望狮子只是在固定半径范围内随机移动我们可以修改一下任务蓝图的逻辑即只保存1次狮子所在位置然后后面每次移动都以第1次所在位置为中心的区域内进行移动。 最终效果如文章开头所示。