基于Unreal Engine 2的救援机器人仿真平台开发(一)
Ureal Engine(以下简称UE)是Epic Games开发的游戏引擎。他与游戏Ureal Tournament 2004(UT2004)一起发布。UE和UT2004都分别发布了Windows,Linux和Macintosh版本。UE针对第一人称射击游戏(FPS)提供了丰富的接口,如3D图形,立体音效,武器系统,脚本开发以及物理仿真引擎。UE还提供了强大友好的开发工具,包括用于开发竞技场(arena),3D模型和地形(terrain)的Unreal Editor,脚本编译器UCC。Epic Games还提供一些可选的开发工具和插件,如脚本开发的UDE,从Maya或3dsmax导入模型和动画工具ActorX等。这些工具都可从[1]下载到。
我先简单介绍一下用UE开发游戏的基本方法。前面已经提到UE是针对第一人称射击类游戏开发的游戏引擎,最新版本是Unreal Engine3。基于UE开发的游戏有:Unreal Tournament[2],Mass Effect[3]等等。PC平台游戏大致分为一下几类:
1. FPS(First Person Shooting Game)
可以认为是Action Game的一个分支。Counter-Striker就是一款十分流行的FPS游戏。还有Unreal Tournament,使命召唤系列都是FPS类型。
2. STG(Shooting Game)
会和FPS混淆。STG的特点是玩家操作一个飞行物或其他移动物体完成任务。此类经典游戏有:雷电,沙罗曼蛇,猎杀潜航等。
3. RTS(Real Time Strategy)
目前十分流行的星际,魔兽都是RTS。
4. ACT(Action Game)
FPS和STG都属于ACT游戏。有的ACT游戏出了射击元素外,还有更丰富的内容。比如Ubisoft出的分裂细胞系列游戏就淡化了射击,而更强调近身搏杀和潜入。
5. RAC(Racing Game)
代表作:极品飞车系列。
6. SPT(Sporting Game)
代表作:实况,NBA等。
还有很多其它类型,参见[4]。
FPS | STG | RTS | ACT | RAC | SPT | |
3D图形要求 | 高 | 中 | 低 | 高 | 高 | 中 |
立体声 | 高 | 低 | 低 | 高 | 高 | 低 |
物理仿真 | 高 | 低 | 低 | 高 | 高 | 中 |
实时性 | 高 | 高 | 中 | 高 | 高 | 高 |
AI智能 | 中 | 低 | 高 | 中 | 中 | 高 |
AI策略多样性 | 低 | 低 | 高 | 低 | 低 | 中 |
FPS游戏尽量给玩家提供前所未有的游戏体验。这种体验可以模拟真实的战争场面,也可以模拟科幻场景。FPS游戏还可以进一步细分为竞技类和情节类(我自己分的)。竞技类如CS,游戏没有具体背景,玩家体验很简单,杀人和团队合作的快感。情节类有使命召唤等。此类游戏往往需要一定的背景,可以源于历史,也可以是科幻。玩家不仅能体验杀人的快感,还有更随情节发展体验人物内心,有点像RPG。
UE作为FPS游戏引擎,不仅提供了3D图形引擎,声音引擎和物理仿真引擎,还提供了Unreal Script用于AI开发。UE3还提供了更方便的Kismet[5],让非程序员能用图形化的方式开发游戏流程。本文目的是介绍包含于UT2004的Unreal Engine 2.5。
Unreal Editor
首先介绍Unreal Editor(简称UnrealEd)的主要概念。用UnrealEd构建地图时,最好把UnrealEd中的空间想象未一块足够大的粘土,而你是一个技术高超的雕刻家,高超到可以穿透到粘土里面挖出一块空间。整个地图都包含在这个空间里。然后你还可以向空间中添加各种物体和效果等。
Unreal Editor主界面如下图。
创建基本世界空间
在UnrealEd中,“雕刻”世界空间的工具叫做Brush.UnrealEd提供一些简单常用的Brush可以穿件基本几何体。你也可以用2D编辑器创建复杂点的Brush,也可以从Max,Maya导入。
右击立方体,会弹出Brush属性对话框。
修改后点击Build。
此时立方体空间还没被创建,还需要从粘土中将这一块减掉。怎么减呢?
出现,贴图时默认贴图。
好丑啊!我们先编译一下,点击,发现又变成漆黑一片。因为我们还没加灯光。
然后重新编译
到这里我们基本上完成了一个竞技场的创建,但如果你点击运行地图的话,会弹出错误:
通过最后一行,我们发现原来还没有添加玩家初始点。添加玩家初始点与添加光源相似,右击选择“Add Player Start Here”,出现,然后切换到前视图或左视图,选择初始点,按住Ctrl+鼠标左键,将其拖到立方体底部,如下图。一定要将初始点放在底部,否则编译会出错。重新编译后会发现初始点自动调整到合适位置,然后就可以运行地图了。
下一节我将介绍用3dsmax创建几何体并导入到UE中。
[1]http://udn.epicgames.com/Main/WebHome.html
[2]http://www.unrealtournament.com/
[3]http://masseffect.bioware.com/
[4]http://baike.baidu.com/view/18461.htm
[5]http://udn.epicgames.com/Three/KismetUserGuide.html
基于Unreal Engine 2的救援机器人仿真平台开发(一)相关推荐
- matlab如何打开dcm_MATLAB结合Unreal Engine构建用以自动驾驶仿真测试的逼真驾驶场景...
之前的文章<MATLAB/Simulink自动驾驶工具箱之Driving Scenario Designer>提到了MathWorks自己开发的场景构建工具Driving Scenario ...
- Isaac Sim机器人仿真平台
Isaac 仿真 简介 Nvidia机器人项目的两个目标之一就是机器人的现实仿真.仿真的优势在于机器人系统和算法的开发.测试以及评估都可以在仿真环境中实现,而不需要真实机器人,这加速了开发速度. Is ...
- 干货 | 浅谈机器人仿真平台
" 仿真是机器人学习和研究过程中最重要的工具之一,是指通过计算机对实际的物理系统进行模拟的技术.机器人仿真基于交互式计算机图形技术和机器人学理论,生成机器人的几何图形,并对其进行三维显示,用 ...
- 机器人仿真平台——RobotHw
说明:本次内容基于本博客中每章内容进行代码整合和重构,设计了一个新的机器人仿真平台软件RobotHw(纯完全个人设计) 一.新增和改动内容包括 1.界面UI重构,设计了新的界面操作系统,优化操作逻辑 ...
- 【控制】《多无人机协同控制技术》周伟老师-第12章-基于 Multi-Agent 的多无人机协同控制仿真平台的设计与实现
第11章 回到目录 无 第12章-基于 Multi-Agent 的多无人机协同控制仿真平台的设计与实现 12.1 多无人机协同控制视景仿真系统设计 12.1.1 多无人机协同控制视景仿真系统功能描述 ...
- Webots 机器人仿真平台(一) 系统安装
系统安装 1 Webot介绍 2 Webot安装 2.1 ubuntu环境安装 2.2 Windows环境安装 3 参考资料 1 Webot介绍 Webots是一个开源的三维移动机器人模拟器,它与ga ...
- Webots 机器人仿真平台(三) 新建环境模型
新建环境模型 1 新建世界模型 2 添加机器人模型 3 添加机器人控制器 参考资料 这篇博客介绍如何在webot中新建一个世界并在该环境中加入障碍物.机器人等元素,并添加机器人对应的控制器.这可以帮助 ...
- Webots 机器人仿真平台(五) 新建四轮小车模型
新建机器人模型 1 添加机器人本体 1.1 添加Body 1.2 添加机器人轮子 2 添加距离传感器 3 小结 参考资料 下图为我们这篇博客创建的小车效果,接下来我们一步一步的实现在webots中搭建 ...
- Webots 机器人仿真平台(二) 与ROS通讯
Webot 与ROS通讯 1 Webot Ubuntu客户端与ROS通讯 1.1 配置webots_ros包 1.2 启动webots_ros包 1.3 gmapping建图测试 1.4 键盘遥控we ...
最新文章
- 10个小动作帮你简化生活
- 4G EPS 中的 Control Plane
- P1975 [国家集训队]排队(三维偏序)
- Tensorflow实现线性回归
- Tornado之异步authenticated
- Fortran 语言学习(菜鸟都可以看得懂的入门级教程)(持续更新中ing...)
- WordPress模板制作教程
- Meta-Tracker: Fast and Robust Online Adaptation for Visual Object Trackers
- translation exercise 3
- IMF Fintech负责人:金融科技监管体制设计的五原则
- e4a和php教程,2019开源影视APP优化运营版+对接苹果cms10+全套类库E4A资源+开发文档+搭建教程源码...
- 视频教程-项目管理12个微案例-项目管理
- 酷睿i7 11700什么水平 i711700怎么样 i7 11700属于高端吗
- jm8.6之参数,函数简介
- win10系统通过文件名称快速搜索文件的软件
- 华为荣耀8电信卡显示无服务器,华为荣耀手机实现双电信卡双待双通,5步告诉你真相...
- (附源码)计算机毕业设计SSM基于的仓库管理系统
- 区块链到底是个什么鬼?
- 单调函数的不连续点可数——泛函分析观点
- GNU Radio系列教程(一):什么是GNU Radio?为什么我需要用GNU Radio?
热门文章
- 简单的正片叠底字教程
- 一个人和一家企业的半山腰:在京东完成技术转身之际
- 博诺杯工业机器人比赛2019_嘉兴技师学院 智能制造 师生同台献技艺 赛场争相出佳绩——记2020机械行业“博诺杯”工业机器人维修调试与技术应用大赛...
- Oracle EBS-SQL (SYS-18):检查系统安装的各个表是否打开(PJM%).sql
- Python基础知识:if语句
- 三星商城 S21 优惠券大乌龙后续:用户已收到 4000 元打款
- 新手如何学好C++?
- 排他思想 (Js代码实现,有经典案例)
- Feathers UI 性能优化
- 公众号开发模式下客服消息开发