<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 業(yè)界動態(tài) > 認識VR開發(fā)流程,訂定SOP

          認識VR開發(fā)流程,訂定SOP

          作者: 時間:2019-07-01 來源:電子產(chǎn)品世界 收藏

            高煥堂 (臺灣產(chǎn)業(yè)聯(lián)盟主席、廈門/AR協(xié)會榮譽會長兼顧問)

          本文引用地址:http://www.ex-cimer.com/article/201907/402121.htm

          摘要:由于與各行各業(yè)都有密切關(guān)聯(lián),各行各業(yè)的專業(yè)知識(如水力發(fā)電)與VR技術(shù)的結(jié)合,可以發(fā)展出該行業(yè)最簡潔有效的標準()。這項包括開發(fā)步驟、工具、素材與內(nèi)容格式標準等規(guī)范。

          本文先說明VR內(nèi)容開發(fā)的基本流程,然后把這一般流程對應到醫(yī)療、物流等各行業(yè),而得出各行業(yè)專有的VR開發(fā)SOP。再基于各行業(yè)SOP展開,對應到各行業(yè)單位和開發(fā)伙伴的參與活動。最后,制定這些活動的使用工具(如Unity、UE),和產(chǎn)出(物)的標準規(guī)格。

          關(guān)鍵詞:VR;;SOP

          1 SOP的任務(wù)、工具與平臺

          1.1 應用軟件(VR App)

          應用軟件是VR開發(fā)者依循SOP而產(chǎn)出的可運行的軟件成品,通常將它上傳到應用商店(App Store),讓使用者下載到其VR終端設(shè)備上運行。在運行時(Runtime),就會呈現(xiàn)VR內(nèi)容,并與使用者交互(圖1)。

          1562293796392628.png

            例如《Tilt Brush》3D繪畫應用,它是著名的HTCVive應用,可以讓您在虛擬的3D 環(huán)境下的自由繪畫創(chuàng)作。很逼真、身歷其境!使用者操作一個2D控制板,按照任何角度去調(diào)整和移動整個繪畫平面,來畫出具有景深效果的各種圖形(圖2)。

            1.2 SDK:VR App開發(fā)工具包

            SDK就是App開發(fā)工具包(Software Development Kit)。它是針對特定平臺(如Cardboard移動VR),由廠商提供給開發(fā)者來創(chuàng)建App的開發(fā)工具包。例如,Cardboard SDK for Unity就是Google提供給開發(fā)者的工具包,開發(fā)者可以利用Unity3d的環(huán)境和資源來規(guī)劃、創(chuàng)建適合于Cardboard(運行)平臺的VR 應用程序(圖3)。

          微信截圖_20190705103005.png

            SDK還包括用于除錯及其他用途的軟件工具、程序代碼范例、支持性的技術(shù)注解或者其他說明文件等。

            1.3 VR編輯器:SDK的核心組件

            在游戲開發(fā)領(lǐng)域,Unity/UE是最流行的App編輯器,包含一個完整的游戲設(shè)計、制作環(huán)境和可復用的美術(shù)、燈光等素材資源,協(xié)助開發(fā)者順暢完成一款游戲App。例如,Google基于該Unity編輯器而附加Cardboard運行平臺的新API、相關(guān)資源等成為一套工具包,就稱為基于Unity編輯器的“Cardboard SDK forUnity“。

            以這個Cardboard SDK for Unity為例,其使用流程是:

            第1步:為Unity下載Cardboard SDK。

            第 2 步 : 把 它 導 入 到 你 的Unity編輯項目中。亦即,在Unity主菜單里,點選AssetsImportPackageCustom Package,并選擇CardboardSDKForUnity.unitypackage,然后點擊Import按鈕。

            第3步:為了做出第一個VR游戲體驗,可在Project Browser中的CardboardPrefabs文件夾里,把CardboardMain Prefab拖到場景中,在Inspector中設(shè)定與你的游戲主角一樣的位置。這樣可以展現(xiàn)出你在看他(主角)的眼睛。

            第4步:接下來,選擇主照相機(Main Camera)并且在Inspector中勾選。

            第5步:最后,在Unity編輯器中試運行,就會出現(xiàn)3D場景了。這時,你的照相機隨著頭部的運動而進行旋轉(zhuǎn),您可以左顧右盼了。

            1.4 什么是API?

            SDK通常包含有App軟件框架(Framework)和腳本 的 呼 叫 接 口(API,ApplicationInterface)定義檔。開發(fā)者可以在App(如Android的Java程序代碼)中,通過API來呼叫Cardboard平臺上的軟硬件資源。以Cardboard 的環(huán)繞音頻為例,基于Cardboard SDK和API,可以開發(fā)令人感到身臨其境的VR應用。可以聽到來自四面八方的聲音,例如天空打雷或者是飛機飛過頭頂?shù)穆曇簟?/p>

            目前,Cardboard 開放了SDK和API,協(xié)助開發(fā)者的制作音頻。該SDK新的環(huán)繞音頻功能是很容易上手的。開發(fā)者可以呼叫組件來創(chuàng)建Android系統(tǒng)上的音景。Android的Native開發(fā)者可以使用一套簡單的JavaAPI來模擬虛擬的聲音和環(huán)境,讓使用者就如同在真實世界里所聽到來自周遭四面八方的聲音。

            1.5 App運行平臺(操作系統(tǒng))

            通常,從App Store將App下載了就會在VR終端設(shè)備的操作系統(tǒng)(OS)上運行,例如移動VR App常見的運行平臺是:Android、Windows等。以Google的Cardboard 移動VR為例,這是典型的“Cardboard+手機”簡易型移動VR設(shè)備。雖然Cardboard可以搭配不同品牌的手機,但是在開發(fā)時,使用的SDK會預設(shè)其App適用的運行平臺(如Android、iOS等不同的操作系統(tǒng))。

            此外,還有針對不同平臺的VR助手。VR助手就如同大家耳熟能詳?shù)腁ndroid手機助手一般用來協(xié)助管理移動或VR終端平臺上的App及相關(guān)資源,如終端軟硬件資源的管理、云端資源的搜索、下載、安裝的功能等。

            1.6 素材編輯器

            素材(Material)是用來組合成為VR App的材料,包括美術(shù)、聲音、燈光、課件文檔等等資源。有些素材編輯器與App編輯器是分開的;而有些是兩者整合在一起的。大多數(shù)編輯器可以導入外來(第三方廠商)的素材。例如,Unity3d編輯器可以導入3dsMAX、MAYA所匯出的.max,.mb,fbx等。此外,從網(wǎng)絡(luò)上也能下載一些.max和.mb格式的VR素材模型,包括人物、地形素材等。

            一般而言,素材資源是可以跨平臺共享的。至于App常常使用到特定運行平臺(OS)的SDK和API,是與運行平臺息息相關(guān)的。尤其是VR產(chǎn)業(yè)中,HTC、三星、Google等都各自擁有運行平臺和應用商店(圖4)。

            1.7 內(nèi)容的實時“動態(tài)加載”

            App下載了,用戶將App運行起來。在運行期間,App會連結(jié)到云端的內(nèi)容分發(fā)平臺,取得實時性的內(nèi)容,從VR終端顯示出來,這項功能通稱為“動態(tài)加載”(DynamicLoading)。例如,“VR+教育”的教學App,在其運行時期,可以持續(xù)從內(nèi)容分發(fā)平臺取得最新的教學課件等(圖5)。

            其中的基本需求是:不要將教學課件綁入App里,而直到學生們運行VR App時才到后端分發(fā)平臺去實時取得教學課件里的素材。那么,在實際的Daydream或HTC Vive平臺上,又如何實現(xiàn)這項需求呢? 如果您使用Unity編輯器,最簡單的途徑就是使用Unity的ScriptableObject技術(shù)。我們可以使用ScriptableObject 在 Project view 建立專用的 Asset來做設(shè)定,并將它存放在Resources文件夾中。當VRApp運行中,需要用到時才呼叫 Resources.Load()函數(shù)來取到設(shè)定值,若有任何修改的話,只要打開Project view 內(nèi)的 Resources文件夾修改一下即可。

            通常,一個行業(yè)的VR素材資源是相當多的,而且會時常更新的,這些龐大資源全部綁入App里,并不太合理。于是,就可以進一步將ScriptableObject打包成為AssetBundle。我們的VR App可以掌管主要邏輯或線程,當有需要某些資源(如VR素材),才從外部的 AssetBundle 加載資源,這樣我們常常只需要重新打包資源(VR素材)的部分就能完成更新,而不需要重新編譯App的程序代碼。

            如果您不是使用Unity編輯器,也可采用其他技術(shù),例如運用Android/Linux平臺上的*.SO,或者Windows平臺上的DLL來實踐動態(tài)加載功能。

            2 更完整的的SOP活動

            2.1 添加互動設(shè)計和軟件程序代碼

          在上一節(jié)里,已經(jīng)說明了從素材設(shè)計到App開發(fā)的流程SOP(圖6)。

          1563757976214404.png

          圖6  本  (圖片素材來自:百度圖片)

                 除了素材之外,在開發(fā)流程中,還需要“交互設(shè)計師”來設(shè)計出符合客戶的要求,以及設(shè)備系統(tǒng)的需求(圖7)。

          1563757993189328.png

          圖7  添加互動設(shè)計和軟件代碼(圖片素材來自:百度圖片)

                 此外,還需要“編碼工程師”來撰寫代碼,并添加到素材和App里,才能實現(xiàn)動態(tài)的素材和人機互動的行為(圖7)。  

            2.2 VR的敘事新模式

                在VR設(shè)計上,首先要把自己當成一個引導者而不是一個導演。因為傳統(tǒng)電影的導演給觀眾的是一個框框,而的引導者所給的將是一個完整的世界。VR設(shè)計師若能依循上述原則,而擺脫按照預定腳本來進行的傳統(tǒng)影視制作模式,就能給用戶一種令人意外的方式來改變已經(jīng)構(gòu)筑好的虛擬世界,即可帶來更多深刻的臨場感。

               所以,VR的情節(jié)是受觀眾自由選擇所影響的,而VR設(shè)計師(即引導者)則預先在其中鋪設(shè)世界觀和規(guī)則。例如,《Sequenced》是一個“VR+動漫”的應用。提供了全新的體驗:讓觀眾可以和動畫劇情產(chǎn)生互動。只要你對動畫場景中角色、事物的關(guān)注與互動,就可能將改變角色的對話內(nèi)容和引起其他事件的發(fā)生。

               《Sequenced》讓你沉浸在故事中,完全是下意識的互動,完全忘記了劇情的發(fā)展其實是受互動而影響的。 然而從體驗中,您可以看到其敘述新模式,體會它如何來引導一個VR動漫的情節(jié),并領(lǐng)悟其幕后的互動設(shè)計新模式(圖8)。

          3.png

          圖8  《Sequenced》敘述新模式

            3  后端的云服務(wù)——以法國的Allegorithmic為例

            3.1  簡介Allegorithmic公司的云服務(wù)

            基于Unity3d的Substance Designer、Substance Painter和Substance B2M等系列3D渲染軟件都是Allegorithmic公司的產(chǎn)品。全球超過5萬多位3D設(shè)計師都在使用這些產(chǎn)品來進行游戲的設(shè)計與開發(fā)。

            3.2  擅用新潮的Docker虛擬機技術(shù)

               Allegorithmic公司的平臺使用Docker容器來提供連接服務(wù),包括license服務(wù),故障采集服務(wù),和license分析服務(wù);用于開發(fā)技術(shù)原型,比如一個網(wǎng)頁版的Substance渲染引擎。在部署方面,他們使用私有的Registry服務(wù),開發(fā)者可以將生產(chǎn)環(huán)境中將要用到的鏡像拉過去,只要鏡像構(gòu)建(Build)成功了,就能在最終環(huán)境中運行起來(圖9)。

          1563758025876564.png

          圖9  Docker虛擬機支持VR設(shè)計與開發(fā)

                  在Allegorithmic的開發(fā)環(huán)境里,還有一個預生產(chǎn)的環(huán)節(jié),這里Docker也提供了很大的幫助,大大簡化了部署過程,讓新成員能夠很快上手,也能將設(shè)計師或客戶的新想法迅速實現(xiàn)出來。

            4  結(jié)語

                本文的目的是讓您熟悉VR內(nèi)容的基本開發(fā)流程,做為訂定各行各業(yè)(如軍事&救災領(lǐng)域)專用的VR開發(fā)SOP,以便提升“VR+行業(yè)應用”的發(fā)展速度。在訂定各行業(yè)專用SOP過程中,常會考慮各行業(yè)的特性、既有的技術(shù)、想引進的新技術(shù)等,決定添加上那些新元素。     例如,我常常會添加Docker鏡像(Docker Image)標準,來包裝VR素材。一旦引進了Docker鏡像元素,對既有的SOP就可能會有些改變,讓其更容易管理(因為包裝標準化了)。

            為什么會想引進Docker鏡像標準呢?筆者的考慮如下。

            1)Docker鏡像可以讓3D數(shù)據(jù)模型(如動漫3D素材模型)搭配自己的軟件代碼Lib(如渲染或數(shù)據(jù)處理引擎),VR內(nèi)容的編輯器可以將素材的3D模型與其相關(guān)代碼Lib打包成為標準的Docker鏡像,成為VR的動態(tài)(Dynamic)素材。

            2)3D數(shù)據(jù)模型就如同“信紙”,它含有許多3D數(shù)據(jù)(就是信紙所記載的內(nèi)涵);可稱之為靜態(tài)(Static)素材。

            3)VR內(nèi)容制作時,可將1)數(shù)據(jù)模型;2) 相關(guān)代碼Lib;一起打包成為Docker鏡像。這Docker鏡像就如同“信封”。

            4)“信封”里包裝了靜態(tài)的素材模型及其相關(guān)代碼,就變成為動態(tài)的素材模型。

            5)這種符合Docker標準的“信封”,對于VR素材/應用的云平臺(如VR素材超市)的維護管理是非常有利的。

            6)靜態(tài)素材如同信紙,動態(tài)素材如同信封,素材的云平臺(如Docker鏡像Registry) 如同郵局,Docker引擎如同郵差。

            7)由于信紙和內(nèi)容格式可以百花齊放(例如把語句寫在楓葉上),只要把它加上程序代碼,一并裝進去標準信封就可以了。

            8)所以VR的素材開發(fā)者可以使用不同的編輯器材編輯信紙、內(nèi)容和代碼,然后打包成為Docker標準鏡像(裝進去標準信封)即可。

            9)由此可知,我們可以利用形形色色的VR素材編輯器,并不必限制使用單一的VR內(nèi)容編輯器。

            10)我們不必限制單一的標準3D數(shù)據(jù)模型,也不必限制單一的程序語言(或繪圖引擎);而只需要單一的信封標準(如Docker鏡像標準)即可。

                 由于VR與各行各業(yè)都有密切關(guān)連,許多人都采取通用型的一般開發(fā)流程,其開發(fā)效率是不高的。如果各行業(yè)的專業(yè)知識都能與VR技術(shù)進行更緊密的結(jié)合,訂定出該行業(yè)最簡潔有效的標準開發(fā)流程(SOP),就能更上層樓、事半功倍了。

          (注:本文來源于科技期刊《電子產(chǎn)品世界》2019年第7期第17頁,歡迎您寫論文時引用,并注明出處。)



          關(guān)鍵詞: VR 開發(fā)流程 SOP 201907

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();