在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
技术评审简介1 从构建沙箱开始1.1 AI沙箱简介1.1.1 理解沙箱1.1.2 项目文件组织1.1.3 预先做好的构建1.1.4 使用Visual Studio 2008/2010/2012/2013编译沙箱项目1.1.5 开源库1.1.6 开源工具1.1.7 Lua IDE-Decoda1.1.8 在Decoda中运行AI沙箱1.1.9 创建一个新的Decoda项目1.1.10 调试Lua脚本1.1.11 Decoda的Watch窗口1.1.12 Decoda的Call Stack窗口1.1.13 Decoda的Virtual Machines窗口1.1.14 同时调试Lua与C++代码1.1.15 Visual Studio——附加到进程1.1.16 Decoda——附加到进程1.1.17 Decoda——附加到系统调试器1.1.18 关联Lua脚本代码到Decoda1.1.19 Lua虚拟机1.1.20 Lua堆栈1.1.21 Lua基础类型1.1.22 元表1.1.23 元方法1.1.24 自定义类型1.1.25 C/C++调用Lua函数1.1.26 Lua调用C/C++函数1.1.27 创建自定义数据类型1.1.28 Demo框架1.2 小结2 创建并移动智能体2.1 新建一个沙箱项目2.2 创建文件结构2.3 扩展SandboxApplication类2.4 首次运行沙箱2.5 新建一个Decoda项目2.6 配置Decoda运行的可执行程序2.7 创建一个沙箱Lua脚本2.7.1 创建地板2.7.2 添加光源2.7.3 添加天空盒2.7.4 在沙箱中添加网格2.7.5 创建沙箱对象2.8 发射方块2.9 创建智能体Lua脚本2.9.1 创建视觉表象2.9.2 更新智能体的位置2.9.3 更新智能体的朝向2.10 智能体的属性2.10.1 朝向2.10.2 定位2.10.3 大小2.10.4 物理2.10.5 知识2.10.6 智能体的移动2.10.7 智能体转向力2.10.8 规避2.10.9 规避障碍物和其他智能体2.10.10 群组移动2.10.11 创建一群追随者2.10.12 转向力合计2.11 小结3 角色动画3.1 骨骼和网格3.1.1 网格骨骼3.1.2 加载一个动画网格3.1.3 显示骨骼3.2 附加网格到骨骼上给战士附加武器3.3 动画片段3.3.1 播放战士动画3.3.2 战士动画3.4 战士的姿势武器姿势3.5 操作动画3.5.1 启用和禁用动画3.5.2 循环动画3.5.3 动画的长度3.5.4 动画时间3.5.5 归一化时间3.5.6 重新开始动画3.5.7 播放非循环动画3.5.8 动画速率3.6 动画混合3.6.1 动画权重3.6.2 混合窗口3.6.3 混合曲线3.6.4 线性混合3.6.5 处理混合权重3.7 动画状态机(ASM)3.7.1 状态3.7.2 转换3.7.3 创建动画状态机3.7.4 创建辅助函数3.7.5 添加状态3.7.6 添加转换3.7.7 添加外部辅助函数3.7.8 强制设置状态3.7.9 请求状态3.7.10 更新动画状态机3.7.11 处理状态转换和状态请求3.7.12 更新运行中的动画3.7.13 动画状态机实例3.8 构造一个武器动画状态机3.9 构建战士的动画状态机3.10 更新动画状态机3.11 处理状态3.12 小结4 意识体控制4.1 创建身体4.1.1 创建战士4.1.2 附加动画网格到智能体4.1.3 创建障碍训练场4.2 为动画状态机添加回调4.2.1 处理回调4.2.2 为ASM添加回调4.2.3 更新ASM以调用回调函数4.3 让战士射击4.3.1 骨骼位置4.3.2 骨骼旋转4.3.3 创建粒子效果4.3.4 粒子方向4.3.5 对象删除4.3.6 碰撞效果回调4.3.7 发射子弹4.3.8 处理子弹碰撞效果4.3.9 射击4.4 让战士奔跑4.4.1 设置穿越障碍训练场的路线4.4.2 跑过障碍训练场4.5 创建大脑实现意识体控制的方法4.6 直接动画控制4.6.1 死亡状态4.6.2 空闲状态4.6.3 下落状态4.6.4 移动状态4.6.5 射击状态4.7 一个简单的有限状态机4.7.1 初始化智能体4.7.2 智能体FSM状态处理4.8 间接动画控制4.8.1 动画控制器4.8.2 命令4.8.3 命令队列4.8.4 操作命令4.8.5 姿势改变命令4.8.6 死亡命令4.8.7 下落命令4.8.8 空闲命令4.8.9 移动命令4.8.10 射击命令4.8.11 赋值成员函数4.8.12 初始化控制器4.8.13 添加命令处理函数4.8.14 更新控制器4.9 运行障碍训练场4.9.1 创建直接控制智能体4.9.2 创建间接控制智能体4.9.3 间接控制智能体初始化4.9.4 间接控制智能体更新4.9.5 间接控制智能体的控制4.9.6 产生一个间接控制的智能体4.10 动作延迟4.11 小结5 导航5.1 寻路5.2 创建导航网格5.2.1 配置导航网格5.2.2 可通行高度5.2.3 可通行半径5.2.4 可通行的攀爬高度5.2.5 可通行的斜坡角度5.2.6 最小区域面积5.2.7 构建导航网格5.2.8 绘制导航网格5.3 在导航网格中寻路5.3.1 路径查询5.3.2 查询结果5.3.3 随机导航路点5.4 路径信息5.5 为战士添加随机寻路5.5.1 更新智能体的路径5.5.2 绘制路径5.5.3 初始化导航网格5.5.4 随意移动的智能体5.6 创建更多的导航网格5.7 小结6 决策制定6.1 创建自定义类型6.2 智能体动作6.2.1 添加数据成员6.2.2 动作初始化6.2.3 动作更新6.2.4 动作清理6.2.5 动作的成员函数6.3 创建动作6.3.1 空闲动作6.3.2 死亡动作6.3.3 换弹药动作6.3.4 射击动作6.3.5 随机移动动作6.3.6 移动动作6.3.7 逃跑动作6.3.8 追逐动作6.4 求值器6.5 创建求值器6.5.1 常数求值器6.5.2 是否拥有弹药求值器6.5.3 是否有生命危险求值器6.5.4 是否有敌人求值器6.5.5 是否移动求值器6.5.6 是否存活求值器6.5.7 能否射击敌人求值器6.5.8 50比50机会求值器6.6 决策结构6.7 决策树6.7.1 分支6.7.2 决策叶节点6.7.3 分支求值6.8 构造一棵决策树创建分支6.9 创建一个决策树智能体6.9.1 决策树的优点6.9.2 决策树的缺点6.10 有限状态机6.10.1 状态6.10.2 转换6.10.3 有限状态机结构6.10.4 辅助函数6.10.5 添加状态和转换6.10.6 更新有限状态机6.10.7 添加实例函数6.11 构造有限状态机6.11.1 空闲状态6.11.2 移动状态6.11.3 随机移动状态6.11.4 射击状态6.11.5 逃跑状态6.11.6 死亡状态6.11.7 追逐状态6.11.8 换子弹状态6.12 创建一个有限状态机智能体6.13 有限状态机的优点6.14 有限状态机的缺点6.15 行为树6.15.1 行为树节点6.15.2 辅助函数6.15.3 更新行为树节点6.16 动作6.17 条件6.18 选择器6.19 序列6.20 创建行为树对象6.20.1 行为树辅助函数6.20.2 选择器计算6.20.3 序列计算6.20.4 节点计算6.20.5 继续行为树计算6.20.6 行为树的更新循环6.20.7 更新行为树6.21 构造一颗行为树6.21.1 死亡行为6.21.2 逃跑行为6.21.3 战斗行为6.21.4 换子弹行为6.21.5 射击行为6.21.6 追逐行为6.21.7 移动行为6.21.8 随机移动行为6.21.9 空闲行为6.22 创建行为树智能体6.23 行为树的优点6.24 行为树的缺点6.25 小结7 知识表达7.1 知识源7.1.1 创建知识源7.1.2 知识源求值7.2 黑板7.2.1 创建黑板7.2.2 添加和删除知识源7.2.3 知识源求值7.2.4 设置和返回黑板属性7.2.5 黑板的成员函数7.3 创建战士的知识源7.3.1 选择敌人7.3.2 选择逃离位置7.4 构造战士的黑板7.5 更新决策求值器7.6 更新行为动作7.6.1 死亡动作7.6.2 逃离动作7.6.3 空闲动作7.6.4 移动动作7.6.5 追逐动作7.6.6 换子弹动作7.6.7 射击动作7.7 小结8 感知8.1 事件8.1.1 属性8.1.2 发送事件8.1.3 接收事件8.2 管理事件8.2.1 分配智能体团队8.2.2 处理智能体通信8.2.3 事件类型8.3 创建智能体的感官8.3.1 初始化感官8.3.2 更新感官8.4 智能体视觉检测其他可见智能体8.5 智能体视觉事件8.5.1 看到新敌人的事件8.5.2 看到新的敌人死尸事件8.5.3 看到新的死亡队友事件8.6 处理新看到的智能体8.6.1 间歇性可见的智能体8.6.2 限制智能体可视性的更新8.6.3 创建事件处理8.6.4 添加事件处理函数8.7 智能体的听觉8.8 听觉事件8.8.1 子弹发射事件8.8.2 子弹碰撞事件8.9 处理听觉事件8.10 清理黑板中的事件8.11 清理听觉事件8.12 团队交流8.12.1 选择敌人事件8.12.2 位置更新事件8.12.3 撤退位置事件8.13 更新智能体行为8.13.1 选择敌人8.13.2 评估危险位置8.13.3 计算最佳逃离位置8.14 小结9 策略9.1 影响力地图9.1.1 单元格高度9.1.2 单元格宽度9.2 构造影响力地图9.2.1 配置9.2.2 导航网格的立体像素化9.3 绘制影响力地图9.4 访问影响力9.4.1 设置影响力9.4.2 获取影响力9.5 清除影响力9.6 传播影响力9.6.1 单元格惯性9.6.2 单元格衰减9.7 影响力地图的图层9.8 更新影响力地图9.9 战士的策略初始化和更新策略9.10 团队影响力评分9.10.1 初始化团队影响力9.10.2 更新团队影响力9.10.3 配置团队影响力9.11 危险区域评分9.11.1 利用智能体事件9.11.2 添加事件处理器9.11.3 初始化危险影响力9.11.4 更新危险影响力9.11.5 配置团队影响力9.12 小结思维导图防止博客图床图片失效,防止图片源站外链: http://www.processon.com/chart_image/5e5b3b94e4b069f82a1a630a.png) 思维导图在线编辑链接: https://www.processon.com/view/5e5b3b94e4b069f82a1a6307 |
请发表评论