2011年6月18日 星期六

Unity 3.4新增功能介紹與2011年展望

(Rochard遊戲畫面)

接近Unity 3.4發佈日, 這裡透漏一下新增功能以及今年下半年的發展方向.

Unity 3.4
本公司(Unity)即將發佈Unity 3.4, 裡面包含了新功能與錯誤修正, 以下做介紹:

整合Allegorithmic Substance程序性材質
程序性材質會直接整合到Unity裡面, Substance程序性材質能夠在Unity直接調整, 甚至在run time就更新材質, 可以用來做舊化效果, 或是客製化遊戲角色.




陰影的改善
Directional lights 有了新的陰影投射模式---稱為“Stable Fit”. 有了這個功能就不會發生當攝影機旋轉時, 陰影會晃動的問題了. 因為我們調校讓陰影投射的更好, 有更少的draw calls, Shadow culling也可以使用occlusion culling data.

Skinning的效能與多核心
有了SSE2最佳化與多核心的改善Skinning在PC上的效能可以達2-3倍快, 在最新的iOS與Android行動裝置上也可以有多線程的skinning支援.

可下載的遊戲內容能對完整場景做快取與資產包裹
這個功能是跨平台的功能, 包含iOS與Android, 對可下載的遊戲內容來說是一大利多. 資產包裹甚至完整的場景可以依需求下載, 在本地端快取, 快取的API讓您能完全地控制何時下載最新版的遊戲資產, 使用快取的API可以很明顯地減少記憶體使用, 對載入時間有會有極大幫助.

Script執行的順序
Unity現在讓你可以控制script執行的順序, 分成Awake, OnEnable 與 Update三種方式. 用容易理解的描述, 你可以針對每個script有不同的執行順序 .

Animation & skinned mesh bounding volumes
預先計算的skinned meshes & animations的bounding volumes , 讓您可以在場景中有更多的動態角色.

圖形最佳化
我們進行了多種圖形最佳化, 從快速的延遲光照, 到快速的OpenGL ES 2.0以及對手機的shaders進行最佳化.

影像特效與水特效
這次對影像與水有重大更新, 這兩個都對效能最佳化, 同時, 視覺品質也改良了, 讓美術人員更調整效果.

Unity Xbox 360 與PS3同時發佈
專案也很容易在不同平台間轉換

Rochard 本公司的第一個PS3遊戲, 才剛剛通過Sony的上傳作業.



更好控制的gizmo/handle
你不需要去寫程式才能在遊戲物件中添加ICON, 現在, 你只要在game object inspector設定icon, 就可以很快速地在場景中看到效果. 如果你想看到像pathfinding nodes這類工具的icon, 只需要在node script上設定icon, 這樣就會在場景中顯示出來了.

你也可以切換每個元件的顯示, 所以現在當你想要寫客製化的編輯器不必再因此躊躇了.

快速碰撞修改
如果你選取一個碰撞物(collider) 然後按住Shift鍵, 會顯示出一個小點用來縮放碰撞物, 這樣一來,你就可以快速很有效率地設定關卡中的碰撞, 讓玩家在手機遊戲上面可以很速地進行遊戲.

上百種的小功能改良與錯誤修正
Unity 3.4改進了許多小東西

下一版則是Unity 3.5
今年我們的目標是要讓用戶能夠把所有的平台都發揮到極致. Unity是一套徹底最佳化的手機遊戲引擎, 我們努力地研發希望在所有的平台都有最佳表現, 對Unity來說, 能夠支援最頂尖的遊戲開發(AAA等級)是一大進步! 我們做了大量的最佳化調校, 更好的多線程與圖形引擎的升級, 同時, 我們也改善了工作流程, 特別是對大的團隊. Unity3.5即將在2011年的 夏季/秋季發佈.

請注意以下是本公司(Unity)的開發願景, 並不是必然的新功能, 不一定會成為最後發表的內容. 如果時機不合我們也不會放到新版軟體裡面.

多線程的算圖器
我們會把大部分的算圖工作從原本Unity的計算線程搬到另外一科CPU核心, 這是目前就在進行的工作. 只是說目前只在PC上面有效, 我們希望在多核心的平台上都有這樣的功能, 從桌機到手機. 除此之外, 我們還將進行更廣泛的多核心應用 (完全地利用CPU核心數目). 例如culling與粒子系統, 到底Unity3.5能不能做到這個目標, 或是在怎樣的平台能達到, 還不確定. 但是我們可以說在效能方面會有不錯的進展.

路徑搜尋
Unity會從你關卡的模型自動產生導引網格(navigation meshes), 以RVO和 PLE演算法能做出優美 自然的群體模擬. 打包在簡單的API裡面, AI代理人可以找到路徑與目標, 透過內建的群體模擬工具 會是直接在NavMesh上移動, 跟character controller很類似.

新的粒子系統
我們從頭寫了粒子系統, 新的粒子系統是完全由曲線與gradient來操控的, 還有提供模組化的功能 提昇了整體功能性, 而且能在所有的平台上面, 發揮多核心CPU的效能.

UI架構
我們把遊戲中的GUI系統從基礎上改寫了, 讓這個系統更簡單與直覺就能產生現在具有大量動畫與特效的遊戲介面, 這所有都是透過視覺化的GUI編輯器. 在GUI系統方面進行了很多最佳化, 減少run-time的效能影響, 這要歸功於自動的texture atlases與主動的coverage-based batching.

針對角色進行Light probes光照計算
Light probes是先進的光照技術, 針對動態物件或是角色產生高品質的烘焙光照, 我們會在場景中特定的點(也就是所謂的light probes),捕捉入射光與反彈光, 當角色走進場景的時候, 最接近他的light probe會被選中, 並與周遭的light probe進行內差計算. 結果是傳遞到角色的shader產生光照效果. 要進行這樣的計算很難有效率, 要感謝我們有tetrahedra-based空間分割演算法, 讓整個計算變得很有效率.



RNM lightmaps
為了要讓lightmapping解算更有彈性, 我們添加了烘焙方向性的lightmaps的選項, 這個功能同時也會啟動bump 與 specular在模型表面的效果.

支援LOD
內建關卡搭LOD支援 LOD目前是透過手動的編輯方式產生的, 但是目前我們有在研發自動LOD產生的功能.

直覺的編輯工具讓您設定, 或是檢視LOD效果也會整合到製作流程裡面. 根據命名原則自動產生LOD, 還會提供以螢幕空間進行的抖色處理(dithering), 讓你在進行LOD切換時有更平順的轉換效果.

整合的Perforce與Subversion版本控制功能
我們現在全力開發與Perforce 和Subversion的支援 極將會有完整的UI以及鎖檔的功能

用文字檔寫成的場景與/prefab/格式
Unity即將把所有的資料寫成文字檔類型的格式, 對場景 prefabs 材質與其他的專案資料夾裡面的binary檔案. 這個格式會用YAML為基礎, 並讓其更方便行營合併檔案. 遊戲開發團隊裡面的成員可以同時編輯同一個場景, 然後事後再把資料合併.

Prefabs
我們改寫了Prefabs系統, 讓您可以添加, 移除元件卻不會把prefab的連結打斷. 材質在進行instance的時候, 也會讓prefab產生instance. 這對巢狀prefab來說極為方便.

改良的Profile與 allocator
新的allocator架構讓記憶體使用與碎裂化的狀況減少, 增強效能. 現在 Unity有更好的記憶體使用狀況.

GameCenter與 社群 APIs
我們目前在開發可以用外掛的方式的社群API, 作為Facebook 和 Apple Game Center的後端.
像是OpenFeint這樣的公司, 或是想有社群平台的出版商, 可以輕易地產生自己的社群平台後端. 這樣讓各平台的遊戲連接的更容易.

音效
我們在開發低延遲的音效緩衝擷取功能(low latency audio buffer access) , 這功能讓你可以自行撰寫音效的濾鏡, 特效, 或是讓聲音檔更精確的在遊戲中表現, 或是動態混音 或是程序性地產生音效採樣.

所有的平台也會支援麥克風, 麥克風的輸入可以直接用AudioClip進行擷取.

網路攝影機的支援
我們要增加對從攝影機來的影片串流的支援, 或是其他類型的硬體, 讓您可以增加AR(擴增實境)的開發效果, 或是支援上傳的圖片整合到社群網路, 或是線上服務. 這項功能在上週的NinjaCamp(忍者訓練營)就已經整合進去了!

改寫Umbra sPVS
改寫Umbra sPVS遮擋剃除(occlusion culling), 整個從頭重新改寫. 現在的演算法可以保證不受改變的PVS結果, 並且讓烘焙的PVS可以快上十倍左右.

還有一堆功能喔
一如往常, 我們還會在Unity 3.5發佈提供超多的小功能與錯誤修正.

很多新功能目前還在開發, 不一定會在哪一版發佈. 再次強調, 目前在開發的功能不表示再幾週後就會發佈這些功能, 只是想要讓各位用戶知道我們目前的工作計畫也有可能異動.

支援FLASH的輸出
我們目前在努力研發讓Unity的專案能夠在瀏覽器上面, 透過Molehill外掛, 使遊戲能在網頁上運作. 我們能讓很多的Unity功能在Flash播放器上面表現, 而且我們還期望在新的Flash播放器上面發揮3D功能.

快取伺服器
大家都喜歡Unity的全自動資產流程與能夠快速修改專案裡面的資產而不需大費周章調整

對大型開發團隊, 每個成員都重複地import遊戲資產, 如果能夠有三千倍快的速度來import資產那有多好?! 我們有辦法, 前期的測試讓我們可以對有1GB的專案資料夾, 在9秒就可以進行import了!

HDR與 gamma校正算圖
內建HDR, 與線性空間照明. 讓整個流程 shaders與reder target聯合運作產生的結果是美術人員預期的效果. 要讓這個功能支援跨平台有點麻煩, 這就是為什麼我們想要把這個功能寫出來的原因.

材質串流
我們開發材質串流有一陣子了, Unity會預先載入需要的材質解析度的材質, 硬體會有材質記憶體的限制. 因此, Unity只會把最重要的材質載入, Unity會自動分析場景, 但是你還是需要手動指定需要的材質與解析度.

有這個功能, 你就可以設定更高解析度的貼圖了, 特別是在手機等行動裝置上面, Unity會自動分析場景讓材質預先快取(prefetching). 即使在iOS上面我們也能讓串流的材質達到60FPS的更新率

音效的改良
支援FMOD designer 你可以輸入FMOD designer banks (.FSB)格式與event files (.FEV) 作為標準的聲音片段.

音效DSP圖表, 讓您可以完全地存取混音引擎產生客製化的路由與進階的訊號路線, 這都可以透過視覺化的節點編輯器, 或是簡單的API達成.

動態的混音. 混音似乎是當今音效領域的一大問題, 我們正在開發動態混音的功能, 讓您可以群組整個音源, 然後混音, 套用特效, 調音, 並且把這個設定儲存起來成為設定檔 . 你可以從腳本或是動畫來觸發這個設定檔, 這樣你可以更精確地控制關卡音效產生的時間與效果.

以上只是我們正在努力開發的片段內容而已喔! 我們還在開發其他更遠大的功能呢!

4 則留言:

michael 提到...
作者已經移除這則留言。
Eric 提到...

請問Unity 3.5支援flash player後,遊戲玩家要玩unity開發的遊戲時,還需要下載&安裝unity web player嗎?

Eric 提到...

請問Unity 3.5支援flash player後,遊戲玩家要玩unity開發的遊戲時,還需要下載&安裝unity web player嗎?

Oscar Wu 提到...

不需要,發佈Flash版本,就是改用Flash Player來執行。