2011年9月6日 星期二

Unity輸出成Flash, 新增功能搶先報

過去的幾個月, 我們(Unity公司)一直在努力工作, 其中一項最有趣的是---讓Unity可以發佈到Flash Player. 這表示除了現有的輸出成Unity的專案, 現在還可以透過Stage3D輸出成Flash. 自從我們第一次宣布, 很多人都對這個方案感興趣, 對於支援Flash這件事有很多疑問, 今天我們來揭開它神祕的面紗吧!

用Unity來做Flash的開發
我們計畫在9月27日發起Flash日, 那天是在Unite會議之前. 針對Flash的開發者, 幫助他們利用Unity加速開發Flash, 那天我們將展示Flash功能上的支援度與利用Unity開發的入門教學.
如果你是Flash開發者, 或是設計師, 想要使用Unity, 這會是一個很棒的契機, 就在Unite Conference之後喔. 如果你想要學更多有關Flash的支援, 你可以在Unity見見Flash團隊, 提問或是看看功能展示, 我們也很期待見到你們喔!

Unity Flash日是完全免費的 (但是要先註冊). 沒辦法出席? 難過嗎? 好消息告訴你, 這邊我們會透漏一些細節, 做些搶先報導.

以下影片展是了由Madfinger Games 公司製作的Shadowgun遊戲, 這款十分令人期待的iOS與Android 遊戲, 現在輸出到Flash Player也可以玩了!


儘管我們還沒完全準備好對Flash的支援, 我們還是忍不住要分享相關影片給您, 因為這對我們來說是一個重大的開發里程碑. 我們扛下了這個計畫, 讓平台可以轉換到Flash, 而現在神奇真的發生了. 遊戲可以在Flash播放器上面跑! 效能超棒而且看起來很有發展性. 請記住, 這只是搶先報而已,還不是最終版本. 我們還在努力研發, 我們比各位還很想早點把新產品交到各位手上呢!

新增功能
很多Unity現有的功能將會直接在Flash裡面使用, 當我們發表了Flash輸出功能以後, 各位如果對這方面有興趣, 但是又對Unity本身不熟悉, 我們將先介紹我們內部研發的Unity版本輸出Flash的功能.

物理
Unity內部有物理模擬方案, 靠的是NVIDIA PhysX的核心. 你可以用在rigidbody, ragdoll 或是寫實的汽車動態上面, 讓你可以有真實的互動與精確的物理效果. 我們有測過在Flash裡面進行複雜的場景模擬, 效果很順也很快, 對於第一版的Flash輸出功能, 可能不會支援布料與soft body. 這些功能加上Unity容易使用的編輯器, 對於產生真實動態的世界有很大幫助.

Lightmapping光照
用寫實的光照營造您場景的氣氛, 可以直接用Unity編輯器達成. 使用內建的Beast lightmapper就可以, 因為lightmapping是在編輯器事先算好的, 對於遊戲的效能影響十分有限, 而且可以讓整個遊戲畫面更加提昇.

Occlusion culling
有了內建的Umbra Occlusion Culling, 對於遊戲的顯示效能會大大的提升. 視覺上, 畫面是一樣的 但是這種玩家畫面以外的東西不顯示, 可以加速算圖!

客製化的Shaders
在Unity裡面所有算圖的東西都涉及到shader ,儘管Unity內建超過60種shader, 你還是可以寫自己的shader. 更棒的是, 我們的Flash輸出功能會自動地將shader轉換成Stage3D AGAL assembly, 替你把最困難的轉換工作辦好, 不需要額外改寫.

lightprobes
這個功能 預計在Unity 3.5會推出, 增加很棒的, 又快速的動態光照. 如同ShadowGun裡面展示的lightprobes對整個場景的照明有很明顯幫助, 相對來說對效能影響小就可以添加許多光照. 甚至動態物件, 讓場景更寫實也更華麗.

粒子系統
火焰, 爆破, 碎片, 螢火蟲. 粒子系統可以讓你的場景增加很多動態細節, 不管是目前的粒子系統或是Unity 3.5的粒子系統, 都能夠完全支援Flash.

Scripting與簡易的.NET功能
Unity現在已經可以把你的遊戲發布到很多不同的平台上, 而script可以由一個平台搬到另外一個平台上, 我們的開法團隊施展了一下魔法以後 (是用熱血 汗水與眼淚換來的). 現在可以在Flash裡面具由相同的功能, 如果你的遊戲script是用C#或是完全都用JavaScript 輸出之後就可以編譯成為ActionScript. 如此讓你的遊戲可以在各個平台轉換, 可以讓現有的C#程式設計師很歡樂地針對Flash平台做開發. 首次發佈的版本我們也將支援基本的.NET函式庫.

導引網格
Unity會自動產生遊戲關卡的導引網格, 漂亮的, 自然的群體模擬效果, 使用RVO 與PLE演算法, 包裝成簡單的API. 代理人可使用內建的群體模擬來尋路找到目標地, 或是可以直接在NavMesh上面移動, 十分類似character controller.

基本的音效
如果能在遊戲裡面添加3D定位的音效會讓玩家體驗到棒的遊戲經驗, 首次的輸出功能發佈只會支援基本的功能, 不會有特效. 但是, 所有基本的編輯功能都會保留, 讓你在Flash遊戲中有基本的音效.

Unity 資產流程
Unity支援無縫的輸入與修改你的遊戲資產, 由3D建模或是Photoshop到Unity之間, 當添加對Flash的輸出支援. 這表示你在創造遊戲資產的時候, 可以如以往一樣平順, 我們認為目前市場上在Flash平台還沒看到這樣無縫的生產流程.

ActionScript管理
針對Flash的支援 你可以讀取不同專案間或是其他的ActionScript編碼, 這表示你不會失去任何Flash的功能, 讓你可以在Flash與Unity之間有緊密結合, 允許Unity在輸出的時候內嵌Flash project 讓你的Unity 與Flash資產可以相互溝通.

準備好來發佈Flash吧
以上只不過是很簡短的說明而已, 我們還在努力研發, 但是有很多功能可能在第一版無法放進去, 我們先說出來這樣你們就可以來準備發佈到Flash了, 以下列出功能限制:

  • 所有需要滑鼠鎖(mouselock) 很不幸的這是Flash Player API的限制, 不能使用滑鼠鎖
  • 用non-strict javascript的語法寫專案 (如果你把js檔案限制在#pragma, 那就沒問題了)
  • 進階的聲音過濾功能 (迴音區, 都卜勒效應)
  • 影片 (除非你是用flash的影片 可以透過ActionScript控制)
  • 延遲算圖(Deferred rendering)
隨著我們的Flash輸出功能的開發 上面的限制清單會越來越少. 至於什麼時候會發布, 我們還不能透露. 下一篇文章或許會說吧.

希望各位會喜歡這次的搶先報, 希望聽到您的回應喔!

更多資訊請洽Unity台灣總代理 奇銳科技 (02)2557-3321

2 則留言:

Ba'tu 提到...

mirax 3d 不錯喔!!
Unity是捨麼程式
我很好奇!!

奇銳科技 提到...

您好

Unity是一個支援多平台發佈的遊戲引擎。
相關介紹可至我們的官網:http://mirax.com.tw/product_info.asp?id=200

或請至Unity官網 http://unity3d.com/