数据驱动的Unity3D 场景约束框架的分析与设计

2016-01-09 14:04谷敏康雪丽
电脑知识与技术 2015年30期
关键词:程序开发开发人员单调

谷敏+康雪丽

摘要:该文介绍了一个基于Unity3D开发平台的虚拟场景实体的约束框架,以使得利用Unity3D生成的虚拟场景在外界实际数据驱动下,仍能以符合现实世界客观规律和主观要求的形式加以展现。该框架借助物联网技术进行数据采集,利用Node.js实现高效信息输入,利用JSON格式和MongoDB进行数据存储,最后利用关系数据库和传统Web平台加以展现。该框架将对虚拟世界中实体的约束抽象为主动行为和被动行为两大类型,借助于高级面向对象语言实现核心约束方法,具有结构清晰简单的优点。同时,进一步利用主动与被动对象的交互降低复杂度,提高运行效率并简化分类过程。

关键词:数据驱动;约束框架;Unity 3D

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2015)30-0180-04

Analysis and Design of a Data-driven Unity3D Scene Constraints Framework

GU Min1, KANG Xue-li2

(1.The Chinese people's Liberation Army 93246 Troops,Changchun,Jilin 130051, China;2.College of Transportation Management, Dalian Maritime University, Dalian,116026, China)

Abstract:This paper introduces a virtual scene based on the unity 3D development platform entities constrains framework , to make use of Unity3D generated virtual scene ,which in the outside world and is driven by real data can still be in accordance with the real world and can show in the form of objective law and subjective requirements.The framework with the help of the Internet of things technology for data collection, using Node. js for information input effectively, using JSON and MongoDB for data storage, the use of relational database and Web platform to show.The framework abstract the entities in the virtual world as active behavior and passive behavior two types, by using advanced object-oriented language implementation core constraint method, has advantages of clear and simple structure.At the same time, to increase the use of active and passive object interaction reduce complexity, improve operation efficiency and simplify the classification process.

Key words:data driven;constraints framework;unity 3D

1 概述

Unity3D是一个跨平台,层级式的综合游戏开发平台,是一个全面整合的专业游戏引擎,其性价比很高,Unity3D能够支持一些开发语言,可以实现在3D仿真模拟和可视化情景再现等应用中。[1] 但当前进行3D仿真模拟和情景再现大多属于固定场景重现,即每次运行时环境和场景都是固定的;许多游戏场景中,某些角色虽然可以自行移动,但其行进路线大多是预先设定好的。这就使得虚拟的3D场景无论显示效果如何逼真,也难以避免内容重复和单调的问题,正所谓“好看不耐看”、“好看不好玩”,形式华丽而缺乏有意义的内涵。古希腊哲学家赫拉克利特曾有名言“人不能两次踏进同一条河流”,现实生活中人们的活动无论如何单调,也不会出现两次完全相同的场景和事件,而在虚拟世界里,这却是一种常见现象。因此,仿真模拟从其内涵方面来看,必须首先破除“不真”:典型特征是场景、事件和角色的重复单调问题;其次是努力“仿真”,即让虚拟场景中的角色和物体行为与现实相拟合。[2]

基于Unity3D的程序开发是事件驱动的。当Unity3D预定义的虚拟事件发生时,Unity3D系统会调用开发人员编写的事件响应脚本,并根据脚本执行后返回的结果调整虚拟实体的状态或触发新的事件。[3]这种编程模式在许多软件系统和平台上被广为采用,因此开发人员非常容易接受。而对于美工人员来说,他们的责任到事件发生为止,不用去关心事件如何响应,也不必等待具体的执行逻辑和结果。因此,事件既是Unity3D程序开发的基础,也是美工和程序员之间的接口,由系统框架提供技术保证和支持,可谓责任明确,泾渭分明。这样的分工充分满足了各方需要,使得Unity3D得以迅速发展。

但如果仅仅聘请最好的美工和最有经验的程序员,就一定能做出好的游戏或仿真场景吗?答案显然是否定的。Unity3D回避了一个它无能为力但又非常重要的关键点:情节。情节是一切游戏和虚拟场景的核心问题。很多知名游戏爆红的第一版画面并不一定精细华丽,但外观更佳的后续版本往往并不能继续得到用户的青睐,其原因往往是情节出了问题。

猜你喜欢
程序开发开发人员单调
数列的单调性
数列的单调性
APP应用程序开发模式探究
Semtech发布LoRa Basics 以加速物联网应用
基于TestStand的自动检测程序开发
基于嵌入式系统Windows CE的应用程序开发
基于App inventor 2手机程序开发过程的学习与实——以“喵喵定时器”APP开发为例
旋转摆的周期单调性
三星SMI扩展Java论坛 开发人员可用母语