谷敏+康雪麗
摘要:該文介紹了一個(gè)基于Unity3D開發(fā)平臺(tái)的虛擬場(chǎng)景實(shí)體的約束框架,以使得利用Unity3D生成的虛擬場(chǎng)景在外界實(shí)際數(shù)據(jù)驅(qū)動(dòng)下,仍能以符合現(xiàn)實(shí)世界客觀規(guī)律和主觀要求的形式加以展現(xiàn)。該框架借助物聯(lián)網(wǎng)技術(shù)進(jìn)行數(shù)據(jù)采集,利用Node.js實(shí)現(xiàn)高效信息輸入,利用JSON格式和MongoDB進(jìn)行數(shù)據(jù)存儲(chǔ),最后利用關(guān)系數(shù)據(jù)庫和傳統(tǒng)Web平臺(tái)加以展現(xiàn)。該框架將對(duì)虛擬世界中實(shí)體的約束抽象為主動(dòng)行為和被動(dòng)行為兩大類型,借助于高級(jí)面向?qū)ο笳Z言實(shí)現(xiàn)核心約束方法,具有結(jié)構(gòu)清晰簡(jiǎn)單的優(yōu)點(diǎn)。同時(shí),進(jìn)一步利用主動(dòng)與被動(dòng)對(duì)象的交互降低復(fù)雜度,提高運(yùn)行效率并簡(jiǎn)化分類過程。
關(guān)鍵詞:數(shù)據(jù)驅(qū)動(dòng);約束框架;Unity 3D
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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是一個(gè)跨平臺(tái),層級(jí)式的綜合游戲開發(fā)平臺(tái),是一個(gè)全面整合的專業(yè)游戲引擎,其性價(jià)比很高,Unity3D能夠支持一些開發(fā)語言,可以實(shí)現(xiàn)在3D仿真模擬和可視化情景再現(xiàn)等應(yīng)用中。[1] 但當(dāng)前進(jìn)行3D仿真模擬和情景再現(xiàn)大多屬于固定場(chǎng)景重現(xiàn),即每次運(yùn)行時(shí)環(huán)境和場(chǎng)景都是固定的;許多游戲場(chǎng)景中,某些角色雖然可以自行移動(dòng),但其行進(jìn)路線大多是預(yù)先設(shè)定好的。這就使得虛擬的3D場(chǎng)景無論顯示效果如何逼真,也難以避免內(nèi)容重復(fù)和單調(diào)的問題,正所謂“好看不耐看”、“好看不好玩”,形式華麗而缺乏有意義的內(nèi)涵。古希臘哲學(xué)家赫拉克利特曾有名言“人不能兩次踏進(jìn)同一條河流”,現(xiàn)實(shí)生活中人們的活動(dòng)無論如何單調(diào),也不會(huì)出現(xiàn)兩次完全相同的場(chǎng)景和事件,而在虛擬世界里,這卻是一種常見現(xiàn)象。因此,仿真模擬從其內(nèi)涵方面來看,必須首先破除“不真”:典型特征是場(chǎng)景、事件和角色的重復(fù)單調(diào)問題;其次是努力“仿真”,即讓虛擬場(chǎng)景中的角色和物體行為與現(xiàn)實(shí)相擬合。[2]
基于Unity3D的程序開發(fā)是事件驅(qū)動(dòng)的。當(dāng)Unity3D預(yù)定義的虛擬事件發(fā)生時(shí),Unity3D系統(tǒng)會(huì)調(diào)用開發(fā)人員編寫的事件響應(yīng)腳本,并根據(jù)腳本執(zhí)行后返回的結(jié)果調(diào)整虛擬實(shí)體的狀態(tài)或觸發(fā)新的事件。[3]這種編程模式在許多軟件系統(tǒng)和平臺(tái)上被廣為采用,因此開發(fā)人員非常容易接受。而對(duì)于美工人員來說,他們的責(zé)任到事件發(fā)生為止,不用去關(guān)心事件如何響應(yīng),也不必等待具體的執(zhí)行邏輯和結(jié)果。因此,事件既是Unity3D程序開發(fā)的基礎(chǔ),也是美工和程序員之間的接口,由系統(tǒng)框架提供技術(shù)保證和支持,可謂責(zé)任明確,涇渭分明。這樣的分工充分滿足了各方需要,使得Unity3D得以迅速發(fā)展。
但如果僅僅聘請(qǐng)最好的美工和最有經(jīng)驗(yàn)的程序員,就一定能做出好的游戲或仿真場(chǎng)景嗎?答案顯然是否定的。Unity3D回避了一個(gè)它無能為力但又非常重要的關(guān)鍵點(diǎn):情節(jié)。情節(jié)是一切游戲和虛擬場(chǎng)景的核心問題。很多知名游戲爆紅的第一版畫面并不一定精細(xì)華麗,但外觀更佳的后續(xù)版本往往并不能繼續(xù)得到用戶的青睞,其原因往往是情節(jié)出了問題。