CGAMES 2012 The 17th International Conference on Computer Games
ROBOT DESIGN USING UNITY FOR
COMPUTER GAMES AND ROBOTIC
SIMULATIONS
William A. Mattingly, Dar-jen Chang, Richard Paris, Neil Smith, John Blevins, and Ming Ouyang
Department of Computer Engineering and Computer Science
University of Louisville
Louisville, Kentucky
E-mail: wamatt02@louisville.edu
Abstract— We present a new approach to robot design, using the
Unity development environment as the primary authoring tool for a functional virtual robot. We also discuss the development of a collection of design assets in the form of Unity packages which we have found to greatly improve the workflow and accessibility of robot design for computer games and robotic simulations.
Keywords- Computer Games, Hierarchical Skeleton Structures, Locomotion Animation, Unity Game Engines, Robotic Simulation.
- INTRODUCTION
In computer games, various kinds of virtual characters are used to make gaming experiences fun and engaging. While the definition of a robot is often varying, they are generally mechanical agents which carry out tasks automatically using some type of programming. Because of their vital role in modern society, and wide use in science fiction, robots are commonly used to fill the role of virtual characters in many different types of games. Robotics generally refers to the design, construction, operation, and applications of modern robots. In the field of robotics, robots are electromechanical systems, which have physical presence in the real world, whereas robots in games are a virtual depiction of a character having robot-like characteristics. Nevertheless, robots in robotics and games share some important design issues related to robot shape, appearance, locomotion, and control programming.
This paper proposes a 3D robot design system based on Unity, a popular game development environment. There are many open source and proprietary robotic simulation software packages offering different features, varying degrees of programmability, and specific application targets [1]. In view of those existing robotic simulation systems, the proposed Unity robot design system provides a rich alternative environment for designing robots for both computer games and robotic simulations. Commercial robotic simulation applications such as V-REF [2] and Webots [3] tend to include an integrated Graphical User Interface (GUI) for robot prototyping and dynamic simulation of robot-environment interaction. To support these functions, they require a basic infrastructure for environment editing, 3D rendering, collision detection, rigid body dynamics, animation, and scripting. Unity includes all of the functions mentioned above in an extremely
flexible and easy-to-use editing system. Thus, using Unity for robot design is natural. The proposed robot design system will support the following tasks: Robot assembly, Robot locomotion or animation clip design, and robot control and simulation.
- UNITY OVERVIEW
Unity [4] is an integrated development environment used to create computer games and 3D visualization applications. Unity applications can be deployed to the web, game consoles (e.g. Xbox, Wii, and PS 3), mobile devices (e.g. iPhone, iPad, and Android devices), or personal computers as stand-alone applications for Windows and Mac.
A. Scenes
Unity#39;s basic design concept is called a scene. Usually a scene is a game level or menu. Through scripting, a new scene can be loaded from the current scene based on user input or game state changes. As such, a complicated game level structure and menu system can be constructed and debugged in a modular and logical manner. A scene consists of a collection of game objects which, in turn, contain various other types of components. The type of components included in a game object will determine the object#39;s function and behavior. For example, a robot arm may contain mesh filter and render components for visualization and a collider component for collision detection. Related game objects can be combined in a hierarchical structure to form a single game object. For example, a robot can be built from arms, legs, and torso with an appropriate hierarchy. Object control and interaction between objects is achieved through scripting.
B. Unity Interface
Unity editing windows include Scene, Game, Hierarchy, Project, and Inspector. The Scene window has a very commonly used GUI for the user to navigate the scene and modify spatial properties of game objects in the scene. New game objects can be added through menu or drag-and-drop interface. Similar interface is applied to adding and modifying game components with the help of Inspector window. The Hierarchy window shows all the game objects present in the scene and the hierarchy among game objects. A very useful
978-1-4673-1121-2/12/$31.00 copy;2012 IEEE 56
CGAMES 2012
debugging and game testing feature allows selected game objects to be disabled in the Inspector window. Finally, the Game window provides game play testing with the 'Maximize on Play' setting. When Maximize on Play is off, all other windows are visible and reflecting progress of the game play. For example, the designer can change the Scene window to see the game progress from different perspectives or how a particular game object behaves even when the game object is not visible in the Game play window. Dynamic game objects, which are created and destroyed during the Game play, can be seen in the Hierarchy window.
C. Scripting in Unity
Unity exposes to its users an object-oriented framework to support runtime and design-ti
全文共18460字,剩余内容已隐藏,支付完成后下载完整资料
Unity电子游戏机器人设计及模拟
路易斯维尔大学电子工程科学学院
摘要:我们提出了一种新的机器人设计方法,使用Unity开发环境作为功能虚拟机器人的主要创作工具。我们还讨论了以Unity软件包形式开发的一系列设计资产,我们发现这些资产可以大大改善计算机游戏和机器人模拟的机器人设计的工作流程和可访问性。
关键词 - 计算机游戏,分层骨架结构,运动动画,统一游戏引擎,机器人仿真。
- 介绍
在计算机游戏中,会使用各种虚拟角色来使游戏体验变得有趣和吸引人。虽然机器人的定义通常是变化的,但它们通常是使用某种类型编程程序来自动执行任务的机械代理。由于它们在现代社会中的重要作用以及在科幻小说中的广泛应用,机器人通常被用来在许多不同类型的游戏中充当虚拟角色。机器人技术通常指现代机器人的设计、构造、操作和应用。在机器人技术领域,机器人是机电系统,其在现实世界中具有物理存在,而游戏中的机器人是具有类似机器人特征的角色的虚拟描绘。然而,机器人学和游戏机器人共享一些与机器人形状、外观、运动和控制编程相关的重要设计问题。
使用三维互动开发引擎(如Unreal Engine3、Unity3D 等),这类工具自带NVIDIA PhysX物理引擎,可以较为真实地模仿机器人的各种物理运动,具有强大的图形资源整合、实时渲染和物理仿真等功能,并且具有相当程度的交互性,可以跨平台使用,用Unity3D是一款具有跨平台特点的虚拟现实开发工具,可较为简单快速地实现机器人的虚拟仿真。使用Unity3D对机器人进行虚拟仿真,设计并实现一套虚拟机器人仿真系统,对机器人的开发、调试以及教学使用,都有着重要意义,并为机器人的虚实交互映射提供了软件基础
本文提出了一种基于Unity的3D机器人设计系统,这是一种流行的游戏开发环境。有许多公用和专有的机器人仿真软件包来提供不同的功能,不同程度的可编程性和特定的应用目标[1]。鉴于现有的机器人仿真系统,所提出的Unity机器人设计系统为用于计算机游戏和机器人仿真的机器人设计提供了丰富的替代环境。商业机器人仿真应用程序,如V-REF [2]和Webots [3],往往包括一个集成的图形用户界面(GUI),用于机器人原型设计和机器人 - 环境交互的动态模拟。为了支持这些功能,它们需要基本的基础设施来进行环境编辑、3D渲染、碰撞检测、刚体动力学、动画和脚本。Unity灵活且易于使用的编辑系统中包含上述所有功能。因此,使用Unity进行机器人设计是很恰当的。所提出的机器人设计系统将支持以下任务:机器人装配,机器人运动或动画夹设计,以及机器人控制和模拟。
- Unity概览
Unity [4]是一个用于创建计算机游戏和3D可视化应用程序的集成开发环境。Unity应用程序可以发布到网页端,游戏控制台(例如Xbox、Wii和PS 3),移动设备(例如iPhone、iPad和Android设备)或作为Windows和Mac的独立应用程序发布到个人计算机。
- 场景
Unity的基本设计概念称为场景。通常场景是游戏关卡或菜单。通过脚本,可以基于用户输入或游戏状态变化从当前场景加载到新的场景,做出场景切换的效果。这样,可以通过模块化和逻辑方式来构造和调试复杂的游戏分级结构和菜单系统。场景由一系列游戏对象组成,这些游戏对象又包含各种其他类型的组件。游戏对象中包含的组件类型将决定对象的功能和行为。例如,机器人手臂可能包含用于可视化的网格过滤器和渲染组件以及用于碰撞检测的对撞器组件。相关的游戏对象可以以分层结构组合的形式来形成单个游戏对象。例如,机器人可以由具有适当层次结构的手臂,腿和躯干构建。对象控制和不同对象之间的交互是通过脚本实现的。
- Unity界面
Unity编辑窗口包括场景、游戏、层次结构、项目和检查器。 “场景”窗口有一个非常常用的GUI,供用户导航场景并修改场景中游戏对象的空间属性。可以通过菜单或拖放界面添加新的游戏对象。在Inspector窗口的帮助下,类似的界面应用于添加和修改游戏组件。“层次结构”窗口显示场景中存在所有游戏对象以及游戏对象之间的层次结构。一个非常有用的调试和游戏测试功能允许在Inspector窗口中禁用所选的游戏对象。最后,游戏窗口提供了“最大化播放”设置的游戏测试。当关闭播放最大化时,所有其他窗口都可见并反映游戏进度。例如,即使是游戏对象在游戏播放窗口中不可见时,设计者仍然可以更改“场景”窗口,以便从不同的角度查看游戏进度以及特定游戏对象的行为。并且可以在“层次结构”窗口中看到在游戏过程中创建和销毁的动态游戏对象。
- Unity脚本
Unity向其用户公开了一个面向对象的框架,以三种语言支持运行时和设计时的脚本:Boo(通过Unity),JavaScript和C#(通过Mono开源.NET)。具体来说,有运行时和编辑器两种对象。运行时用于编写脚本并根据需要将它们附加到游戏对象。换句话说,脚本是一种游戏组件,可以附加到游戏对象上以控制其在游戏运行时的行为。脚本可以附加到几个不同的游戏对象,并且多个脚本可以附加到同一个游戏对象。通过附加脚本对各个游戏对象的分布式控制使得游戏设计的实现非常直观地构建和维护。另一方面,用户可以在设计时使用编辑器将菜单项添加到Unity菜单系统,增强Inspector界面等。有用的应用程序包括编写一个插件来扩展Unity,例如向Unity编辑器添加一种新类型的游戏对象。
- 机器人装配
机器人装配专注于使用Unity设计机器人的骨架结构和形状。我们将其称为机器人装配,以强调装配机器人与预制零件的相似性。一些机器人仿真软件包将此任务称为机器人原型。
- 分级结构
在游戏的背景下,机器人只是由铰接关节组成的刚体,并具有特定的层次结构。蒙皮网格字符具有类似的层次结构,但通常具有带有一些变形方案的单个网格。 Unity使用顶点混合变形方案支持蒙皮网格渲染组件。对于使用Unity的机器人装配,有两个不同的阶段:建立关节的分层结构并将刚体连接到关节。可以使用Unity场景编辑器或来自外部源的输入来完成关节的分层结构的设计。手动设计通常以递增方式完成,并在Unity场景窗口中显示视觉反馈。或者,设计师可以使用分析技术对设计进行补充,并以某种形式记录设计,如图1所示。对于每个关节,设计师附加一个或多个刚体,其中可能包括用于可视化的网格和材料组件以及用于碰撞的刚体组件检测和动态模拟。
图2 机器人设计文档
注意,图1中给出的设计文档仅是人形机器人设计的部分列表。根据设计文档,机器人在Unity中使用单一金属材料创建,显示在Unity Game窗口中,如图2所示。只有Unity中可用的原始形状游戏对象(立方体,球体和圆柱体)用于向机器人添加刚体(或皮肤)。由于机器人旨在用于游戏而不是用于真实的机器人模拟,因此不注意避免刚体部分的重叠。
图2 Unity游戏窗口中的机器人
- 联合创作
在Unity中组装机器人需要各种材料,网格零件和骨架结构,设计师可以根据设计蓝图创建机器人。标准Unity资产包括一些对机器人构造有用的材料和网格游戏对象,但它们不足以用于机器人设计系统。例如,U形旋转接头通常用于类人机器人(例如日本的KONDO Kagaku Co [6]的KHR系列人形机器人套件)。 Unity不包括U形网格游戏对象,但它可以创建为Unity预制(预制)资产,称为U-joint,并在场景中复制,以根据需要制作尽可能多的Ujoint游戏对象。图3显示了如何在Unity中使用U形接头来制造具有线性铰接旋转接头的两个机器人。
图3 U型接头
图3中的四个橙色U形接头全部由相同的预制件制成。甚至完全由这种相对简单的U形接头组成的机器人也可以具有复杂的设计和复杂的行为。现有的工业机器人为机器人设计系统提供了重要的灵感和数据来源。图4显示了在Unity中创建的相当原始的SCARA型工业机器人。 RoKiSim [7]是一种用于六轴PUMA型串行机器人3D仿真的教育软件工具,包括几种流行的工业机器人手臂网格(例如机器人关节的3D模型和夹具和工具的末端执行器)。为研究开发的机器人提供了机器人设计理念的良好来源。例如,根据[8,9]中给出的想法,可以在Unity中创建设计为具有蛇状特征的机器人或蛇形机器人。
- 机器人动画
- 动画曲线
Unity有一个动画视图供用户创作3D关键帧动画片段,动画类用于通过脚本控制动画片段的播放。动画片段由一组动画曲线组成,每个动画曲线确定游戏对象属性(例如变换,颜色和纹理)将如何随时间变化。图5显示了图2中所示机器人的动画视图。其中有四条动画曲线,它们定义了步行循环动画中的四个腿关节x轴旋转。在图5中,在曲线的顶部和上方附近,有八个白色菱形,代表用户插入的关键帧。基于关键帧,Unity在动画曲线上创建相应的键,并使用插值方案连接键以构建动画曲线。
图4 SCARA型工业机器人
- 帧率
Unity游戏通常以可变帧速率运行。某些计算机上的帧速率可能高于其他计算机上的帧速率,并且基于场景更新的复杂性,它也可能在一秒到下一秒之间变化。因此,当Unity播放动画时,它必须以可变帧速率对动画进行采样。由于动画曲线是连续的,因此可以在任何时间点对它们进行采样。结果,无论帧速率如何,都可以以相同的速度播放动画。更高的帧速率总是更好,因为生成的动画看起来更平滑,更流畅。 Animation类包含使用指定的换行模式(一次,循环等)播放动画片段的方法,从一个动画片段到另一个动画片段的淡入淡出,混合(例如添加)两个动画片段等等。甚至可以编写脚本来在播放期间更改动画。
- 机器人设计图书馆
所提出的机器人设计系统的核心是各种资产的库,可以组织成一组Unity包。可以使用带编辑器类的预制件或过程脚本在Unity内部创建库资源,也可以从外部软件应用程序导入库资源(例如,导入包含3D模型的FBX文件和在Maya等建模包中创建的动画片段)。该库包含以下五个组件:
·材料
·网格部分
·骨架
·动画片段
·脚本库
库的设计允许轻松添加新资产。我们将讨论每个组件及其相关资产。
- 材料和网格
Unity中的材质由着色器和着色器使用的属性(例如颜色和纹理)组成。 Unity带有许多标准着色器。适用于机器人的纹理可以在任何图像编辑程序中创建并导入Unity。自定义着色器可以用Cg,高级着色语言或OpenGL着色语言实现。虽然可以使用GUI或程序脚本(如图3中使用的U-joint)在Unity中创建简单的网格部件,但是需要从FBX文件导入更复杂的网格。许多支持FBX文件创建和转换的3D建模应用程序都可用,包括Maya,3D Studio Max和Blender。
图5 Unity中机器人行走循环的动画曲线
- 骨架
骨架是一种关节的层次结构,如图1所示。图书馆中的骨架可能包含也可能不包含网状体,可以在Unity中创建或从动作捕捉数据导入。动作捕捉数据文件(例如ASF / AMC和BVH文件)通常包含一部分骨架定义。卡内基梅隆大学运动捕捉数据库[10]包含许多动作捕捉数据文件(ASF / AMC文件格式),可供所有用途免费使用。使用骨架开始在Unity中创建机器人的一个问题是骨架可能没有附加可见组件。为了解决这个问题,可以编
全文共6275字,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[963]
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。