Part-1.  HTC Vive传统开发的迷思(myth)
 
        当我每次与HTC Vive开发者谈应用开发项目时,最大的沟通困扰就是:大部分的HTC Vive开发者都把Real素材与Artificial素材混淆在一起,而且常常把Real素材的行为代码,混淆在U3d引擎的script里,绑死了行业ReaI素材的成长与新陈代谢,阻碍了业主的创新和成长。
 
       VR素材可分为两类: 第1类是App开发阶段使用到的美术、动画、灯光、声音等资源,这是做游戏者最关注的素材。我们常称上述第1类素材为: 人为素材(Artificial Material)。且称第2类素材为:真实素材(Real Material)。在VR游戏体验应用上,两类素材区分并不明显。但在VR行业应用(如VR教育)的开发上,明确区分两类素材,就很关键了。  
 
  那么,如何调整HTC Vive开发流程,来满足的巨大需求呢?  必须从古典的游戏开发思维,更上层楼进入开发思维才行。当今在HTC vive平台上,许多开发者的思维还停留在VR游戏上,但VR行业应用开发潮流已经超越游戏思维的范畴了。开发者必须站在非游戏行业的需求来优化其开发流程,才能正确有效地开发出。 也能加速HTC Vive在游戏之外的广泛行业应用与发展。
 
       由于HTC Vive的传统开发流程,其最大的缺陷是:在开发段(Development-time)把R素材(即Real素材)绑入到App里。 所以我们首先要仔细分辨R素材与App之关系。R素材与App之关系就是:水与水龙头之关系。App是水龙头;R素材是水;R素材平台是水库;Internet是水管。例如,MCU(台北铭传大学)所研发/创造的知识内容(课件),其实就是VR的R素材。R素材(课件)是用户在全球各地教室里执行App时,实时从素材平台下传,从App显示出来。MCU的R素材随时创新、实时呈现在全球各教室。VR App只不过是一种新潮而多样化交互的水龙头。
 
Part-2.  打造开发的Vive SDK
 
        U3d编辑器的用途有二:1)制作A素材;2)开发App。于此,从App开发者视角来看编辑器。在VR开发者终端电脑(即开发环境)的内存里,有编辑器(U3d)的软件模块,以及A素材(即Artificial素材)。
当开发者启动了编辑器(U3d)软件,其UI就呈现于屏幕上,其中主要有三个窗口区域:
接着,进行程序设计,出现一个编辑窗口,让开发者进行编辑App,主要工作就是编辑脚本代码(Script)。
编辑脚本的目的是要让Vive框架(及幕后的Vive OS)来调用(call),然后指示渲染引擎对素材进行运算和渲染,并调用平台(框架)的API。进行编辑脚本时,开发者会点选所要的素材名称,写入脚本代码里,这是UI的部分。此外,还会点选Vive平台API名称,写入脚本代码里。在试行脚本时,Vive平台会透过Vive App框架来调用脚本,处理用户交互的输入事件(Input Event)部分。
接着,就由脚本来指示如何响应(Response)了,包括3D视觉图像的渲染,以及听觉、触觉等输出(Output)了。
以上是古典的编辑器机制和运作模式。现来创造一个VR SDK,首先由软件程序员(programmer)来进行程序设计,撰写出R素材平台的App框架,并订定其强势型API。
透过编辑器的插件(Plugin)来增添编辑器一个新功能,以便将R素材平台的强势型API呈现于编辑器的UI画面上。
接着,开发者进行编辑App,主要工作就是编辑脚本代码(Script)。进行编辑脚本时,开发者会点选所要的素材名称,写入脚本代码里,这是UI的部分。此外,还会点选R素材平台API名称,写入脚本代码里。
在试行脚本时,Vive平台会透过Vive App框架来调用脚本,处理用户交互的输入事件(Input Event)部分。此时,脚本透过R素材API来请求R素材App框架来协助。
R素材App框架拥有控制权,一方面与云平台通信,取得所需要的R素材。另一方面,透过强势API来调用脚本代码。
于是,脚本代码就指示引擎来进行3D图像处理和渲染。
以上,改善了HTC Vive传统开发环境的局限,从游戏开发的迷思中,迈向行业应用开发之路。