記錄我在大學開發兩年間的心路歷程,分享遇到的困難與解決方式
若其中有錯誤觀念或存在著更好的方式解決,請多務必多多指教
>BehindTheSoundVR | 大學專題心路歷程 #1 | 新手上路<
我們團隊是由一位程式與三位美術組成,我在團隊內主要擔任程式撰寫與編輯Word 、PowerPoint企劃書等文書處理,同時支援3D建模、宣傳等工作。
從大三上學期開始著手這個企劃專題,主題是虛擬實境結合密室逃脫的恐怖遊戲,製作時程持續到了畢業。從沒接觸過VR的我,正是開發噩夢的開始......。
P.S.這篇幾乎都是在講三年級幹了什麼蠢事,沒什麼技術參考價值,要參考可以跳到#2。
三年級上學期 2018 / 07 ~ 12
>初次體驗VR - 架設VR設備 Unity SteamVR SDK安裝
沒用過VR,光是架設就花了不少時間,還要學習設定SDK內獲得VIVE手把上特定按鍵的事件數值,花了大約一個星期才終於可以在Unity上使用。
>撰寫怪物(弱)AI
利用打雷射Raycast判斷與玩家中間是否被遮蔽,並利用角色相對位置判斷視野。配合Unity內建的NavMeshAgent做移動。
後記:雖然稍微拜讀過設計模式,但在如何使用上完全沒概念.....,結果還是使用了大量的switch if else判斷怪物Enum行為,不僅造成維修困難,不同種怪物相同行為程式碼重複性極高,導致要寫一堆註解以免未來自己也看不懂的局面。
>Build-in → LWRP
我喜歡寫程式也喜歡畫圖,時常不知道自己未來該走哪條路才好,在著色器、材質球什麼都不懂的當時,因緣際會發現了 Shader Graph 這個神奇的工具,而轉而升級 LWRP,開啟了我在這領域新世界的大門,同時找到我真正的興趣所在。
Unity2018正是新渲染管道剛開始發佈的版本,為了研究升級 LWRP 專案也是花了不少時間。
三年級下學期 2019 / 01 ~ 07
>棄用 SketchUp 改用 3DsMax
地圖建置一開始是利用SketchUp建模,但匯入Unity後點線法面亂到幾乎無法整理。改用3DsMax拼貼平面後,匯出「一個」尺寸龐大的 FBX 地圖模型檔,因為這個做法還導致後來發生一件始料未及的事。(詳細請見 #2 Lightmapping)
>LWRP → HDRP
當時並不知道LWRP在2019.2有四盞Realtime Light的限制,也不知道什麼是Bake Light 、 Lighting Map,導致設置場景時開了非常大的天窗,於是我們盡快棄用 LWRP 將專案轉向另一個渲染管道 HDRP 。
2019.2 的 HDRP 不是很完整地支援 VR ,但因為 Realtime Light 數量不受限制的關係,因此我們還是選擇轉用 HDRP ,並肆無忌憚的在場景內設置了非常多盞實時光,應該就能解決問題了吧?!
對了,當時鬧出一個很大的笑話,我根本不清楚HDRP材質球貼圖要怎麼塞:「Mask Map是啥?Metallic Smoothness AO跑哪裡去了?」「那我「Mask Map直接塞Metallic Map好了」(補充Mask Map通道),結果導致場景裡亂塞貼圖的物件都看起來超怪。
三年級下學期期末展覽
不懂優化開發VR做大型地圖真是一大災難,在一個沒有經過任何處理的場景,打滿Realtime Light,Post Processing效果也是開好開滿,換到的結果就是VR只剩不到60幀遊玩......。(當初的地圖檔不知道丟哪裡去了,有找到再補圖)
果不其然地,期末提報意見收到大量「非常卡、不流暢」的意見。
摁......,挫折感很重。