新闻中心

EEPW首页 > 业界动态 > 认识VR开发流程,订定SOP

认识VR开发流程,订定SOP

作者:时间:2019-07-01来源:电子产品世界收藏

  高焕堂 (台湾产业联盟主席、厦门/AR协会荣誉会长兼顾问)

本文引用地址:http://www.eepw.com.cn/article/201907/402121.htm

摘要:由于与各行各业都有密切关联,各行各业的专业知识(如水力发电)与VR技术的结合,可以发展出该行业最简洁有效的标准()。这项包括开发步骤、工具、素材与内容格式标准等规范。

本文先说明VR内容开发的基本流程,然后把这一般流程对应到医疗、物流等各行业,而得出各行业专有的VR开发SOP。再基于各行业SOP展开,对应到各行业单位和开发伙伴的参与活动。最后,制定这些活动的使用工具(如Unity、UE),和产出(物)的标准规格。

关键词:VR;;SOP

1 SOP的任务、工具与平台

1.1 应用软件(VR App)

应用软件是VR开发者依循SOP而产出的可运行的软件成品,通常将它上传到应用商店(App Store),让使用者下载到其VR终端设备上运行。在运行时(Runtime),就会呈现VR内容,并与使用者交互(图1)。

1562293796392628.png

  例如《Tilt Brush》3D绘画应用,它是著名的HTCVive应用,可以让您在虚拟的3D 环境下的自由绘画创作。很逼真、身历其境!使用者操作一个2D控制板,按照任何角度去调整和移动整个绘画平面,来画出具有景深效果的各种图形(图2)。

  1.2 SDK:VR App开发工具包

  SDK就是App开发工具包(Software Development Kit)。它是针对特定平台(如Cardboard移动VR),由厂商提供给开发者来创建App的开发工具包。例如,Cardboard SDK for Unity就是Google提供给开发者的工具包,开发者可以利用Unity3d的环境和资源来规划、创建适合于Cardboard(运行)平台的VR 应用程序(图3)。

微信截图_20190705103005.png

  SDK还包括用于除错及其他用途的软件工具、程序代码范例、支持性的技术注解或者其他说明文件等。

  1.3 VR编辑器:SDK的核心组件

  在游戏开发领域,Unity/UE是最流行的App编辑器,包含一个完整的游戏设计、制作环境和可复用的美术、灯光等素材资源,协助开发者顺畅完成一款游戏App。例如,Google基于该Unity编辑器而附加Cardboard运行平台的新API、相关资源等成为一套工具包,就称为基于Unity编辑器的“Cardboard SDK forUnity“。

  以这个Cardboard SDK for Unity为例,其使用流程是:

  第1步:为Unity下载Cardboard SDK。

  第 2 步 : 把 它 导 入 到 你 的Unity编辑项目中。亦即,在Unity主菜单里,点选Assets\ImportPackage\Custom Package,并选择CardboardSDKForUnity.unitypackage,然后点击Import按钮。

  第3步:为了做出第一个VR游戏体验,可在Project Browser中的Cardboard\Prefabs文件夹里,把CardboardMain Prefab拖到场景中,在Inspector中设定与你的游戏主角一样的位置。这样可以展现出你在看他(主角)的眼睛。

  第4步:接下来,选择主照相机(Main Camera)并且在Inspector中勾选。

  第5步:最后,在Unity编辑器中试运行,就会出现3D场景了。这时,你的照相机随着头部的运动而进行旋转,您可以左顾右盼了。

  1.4 什么是API?

  SDK通常包含有App软件框架(Framework)和脚本 的 呼 叫 接 口(API,ApplicationInterface)定义档。开发者可以在App(如Android的Java程序代码)中,通过API来呼叫Cardboard平台上的软硬件资源。以Cardboard 的环绕音频为例,基于Cardboard SDK和API,可以开发令人感到身临其境的VR应用。可以听到来自四面八方的声音,例如天空打雷或者是飞机飞过头顶的声音。

  目前,Cardboard 开放了SDK和API,协助开发者的制作音频。该SDK新的环绕音频功能是很容易上手的。开发者可以呼叫组件来创建Android系统上的音景。Android的Native开发者可以使用一套简单的JavaAPI来模拟虚拟的声音和环境,让使用者就如同在真实世界里所听到来自周遭四面八方的声音。

  1.5 App运行平台(操作系统)

  通常,从App Store将App下载了就会在VR终端设备的操作系统(OS)上运行,例如移动VR App常见的运行平台是:Android、Windows等。以Google的Cardboard 移动VR为例,这是典型的“Cardboard+手机”简易型移动VR设备。虽然Cardboard可以搭配不同品牌的手机,但是在开发时,使用的SDK会预设其App适用的运行平台(如Android、iOS等不同的操作系统)。

  此外,还有针对不同平台的VR助手。VR助手就如同大家耳熟能详的Android手机助手一般用来协助管理移动或VR终端平台上的App及相关资源,如终端软硬件资源的管理、云端资源的搜索、下载、安装的功能等。

  1.6 素材编辑器

  素材(Material)是用来组合成为VR App的材料,包括美术、声音、灯光、课件文档等等资源。有些素材编辑器与App编辑器是分开的;而有些是两者整合在一起的。大多数编辑器可以导入外来(第三方厂商)的素材。例如,Unity3d编辑器可以导入3dsMAX、MAYA所汇出的.max,.mb,fbx等。此外,从网络上也能下载一些.max和.mb格式的VR素材模型,包括人物、地形素材等。

  一般而言,素材资源是可以跨平台共享的。至于App常常使用到特定运行平台(OS)的SDK和API,是与运行平台息息相关的。尤其是VR产业中,HTC、三星、Google等都各自拥有运行平台和应用商店(图4)。

  1.7 内容的实时“动态加载”

  App下载了,用户将App运行起来。在运行期间,App会连结到云端的内容分发平台,取得实时性的内容,从VR终端显示出来,这项功能通称为“动态加载”(DynamicLoading)。例如,“VR+教育”的教学App,在其运行时期,可以持续从内容分发平台取得最新的教学课件等(图5)。

  其中的基本需求是:不要将教学课件绑入App里,而直到学生们运行VR App时才到后端分发平台去实时取得教学课件里的素材。那么,在实际的Daydream或HTC Vive平台上,又如何实现这项需求呢? 如果您使用Unity编辑器,最简单的途径就是使用Unity的ScriptableObject技术。我们可以使用ScriptableObject 在 Project view 建立专用的 Asset来做设定,并将它存放在Resources文件夹中。当VRApp运行中,需要用到时才呼叫 Resources.Load()函数来取到设定值,若有任何修改的话,只要打开Project view 内的 Resources文件夹修改一下即可。

  通常,一个行业的VR素材资源是相当多的,而且会时常更新的,这些庞大资源全部绑入App里,并不太合理。于是,就可以进一步将ScriptableObject打包成为AssetBundle。我们的VR App可以掌管主要逻辑或线程,当有需要某些资源(如VR素材),才从外部的 AssetBundle 加载资源,这样我们常常只需要重新打包资源(VR素材)的部分就能完成更新,而不需要重新编译App的程序代码。

  如果您不是使用Unity编辑器,也可采用其他技术,例如运用Android/Linux平台上的*.SO,或者Windows平台上的DLL来实践动态加载功能。

  2 更完整的的SOP活动

  2.1 添加互动设计和软件程序代码

在上一节里,已经说明了从素材设计到App开发的流程SOP(图6)。

1563757976214404.png

图6  本  (图片素材来自:百度图片)

       除了素材之外,在开发流程中,还需要“交互设计师”来设计出符合客户的要求,以及设备系统的需求(图7)。

1563757993189328.png

图7  添加互动设计和软件代码(图片素材来自:百度图片)

       此外,还需要“编码工程师”来撰写代码,并添加到素材和App里,才能实现动态的素材和人机互动的行为(图7)。  

  2.2 VR的叙事新模式

      在VR设计上,首先要把自己当成一个引导者而不是一个导演。因为传统电影的导演给观众的是一个框框,而的引导者所给的将是一个完整的世界。VR设计师若能依循上述原则,而摆脱按照预定脚本来进行的传统影视制作模式,就能给用户一种令人意外的方式来改变已经构筑好的虚拟世界,即可带来更多深刻的临场感。

     所以,VR的情节是受观众自由选择所影响的,而VR设计师(即引导者)则预先在其中铺设世界观和规则。例如,《Sequenced》是一个“VR+动漫”的应用。提供了全新的体验:让观众可以和动画剧情产生互动。只要你对动画场景中角色、事物的关注与互动,就可能将改变角色的对话内容和引起其他事件的发生。

     《Sequenced》让你沉浸在故事中,完全是下意识的互动,完全忘记了剧情的发展其实是受互动而影响的。 然而从体验中,您可以看到其叙述新模式,体会它如何来引导一个VR动漫的情节,并领悟其幕后的互动设计新模式(图8)。

3.png

图8  《Sequenced》叙述新模式

  3  后端的云服务——以法国的Allegorithmic为例

  3.1  简介Allegorithmic公司的云服务

  基于Unity3d的Substance Designer、Substance Painter和Substance B2M等系列3D渲染软件都是Allegorithmic公司的产品。全球超过5万多位3D设计师都在使用这些产品来进行游戏的设计与开发。

  3.2  擅用新潮的Docker虚拟机技术

     Allegorithmic公司的平台使用Docker容器来提供连接服务,包括license服务,故障采集服务,和license分析服务;用于开发技术原型,比如一个网页版的Substance渲染引擎。在部署方面,他们使用私有的Registry服务,开发者可以将生产环境中将要用到的镜像拉过去,只要镜像构建(Build)成功了,就能在最终环境中运行起来(图9)。

1563758025876564.png

图9  Docker虚拟机支持VR设计与开发

        在Allegorithmic的开发环境里,还有一个预生产的环节,这里Docker也提供了很大的帮助,大大简化了部署过程,让新成员能够很快上手,也能将设计师或客户的新想法迅速实现出来。

  4  结语

      本文的目的是让您熟悉VR内容的基本开发流程,做为订定各行各业(如军事&救灾领域)专用的VR开发SOP,以便提升“VR+行业应用”的发展速度。在订定各行业专用SOP过程中,常会考虑各行业的特性、既有的技术、想引进的新技术等,决定添加上那些新元素。     例如,我常常会添加Docker镜像(Docker Image)标准,来包装VR素材。一旦引进了Docker镜像元素,对既有的SOP就可能会有些改变,让其更容易管理(因为包装标准化了)。

  为什么会想引进Docker镜像标准呢?笔者的考虑如下。

  1)Docker镜像可以让3D数据模型(如动漫3D素材模型)搭配自己的软件代码Lib(如渲染或数据处理引擎),VR内容的编辑器可以将素材的3D模型与其相关代码Lib打包成为标准的Docker镜像,成为VR的动态(Dynamic)素材。

  2)3D数据模型就如同“信纸”,它含有许多3D数据(就是信纸所记载的内涵);可称之为静态(Static)素材。

  3)VR内容制作时,可将1)数据模型;2) 相关代码Lib;一起打包成为Docker镜像。这Docker镜像就如同“信封”。

  4)“信封”里包装了静态的素材模型及其相关代码,就变成为动态的素材模型。

  5)这种符合Docker标准的“信封”,对于VR素材/应用的云平台(如VR素材超市)的维护管理是非常有利的。

  6)静态素材如同信纸,动态素材如同信封,素材的云平台(如Docker镜像Registry) 如同邮局,Docker引擎如同邮差。

  7)由于信纸和内容格式可以百花齐放(例如把语句写在枫叶上),只要把它加上程序代码,一并装进去标准信封就可以了。

  8)所以VR的素材开发者可以使用不同的编辑器材编辑信纸、内容和代码,然后打包成为Docker标准镜像(装进去标准信封)即可。

  9)由此可知,我们可以利用形形色色的VR素材编辑器,并不必限制使用单一的VR内容编辑器。

  10)我们不必限制单一的标准3D数据模型,也不必限制单一的程序语言(或绘图引擎);而只需要单一的信封标准(如Docker镜像标准)即可。

       由于VR与各行各业都有密切关连,许多人都采取通用型的一般开发流程,其开发效率是不高的。如果各行业的专业知识都能与VR技术进行更紧密的结合,订定出该行业最简洁有效的标准开发流程(SOP),就能更上层楼、事半功倍了。

(注:本文来源于科技期刊《电子产品世界》2019年第7期第17页,欢迎您写论文时引用,并注明出处。)



关键词: VR 开发流程 SOP 201907

评论


相关推荐

技术专区

关闭