2011年9月19日 星期一

Unity3D美術資產管理指南


Unity支援帶貼圖的3D模型, 從不同的軟體製作出來的皆可. 這裡我們(Unity3D)寫了一篇Unity遊戲開發美術指南, 幫助你更有效率地處理遊戲資產, 這些也會合併到官方文件裡面.

尺度與單位
  • 設定系統與場景單位, 讓3D軟體的單位跟Unity一致. 例如: 公尺
  • 尺度對照明與物理模擬都很重要, 例如 Max的預設單位是英吋, 而Maya是公分. Unity對於FBX和3D應用程式的檔案在import的時候會有不同的尺度設定, 請查看FBX import scale 設定選單.
  • 如果對場景尺寸設定有疑慮, 你可以放一個一公尺的方塊在場景, 看看在Unity環境能不能吻合.
  • 動畫影格的播放率每個3D軟體也都不同, 最好這方面也要統一. 例如: 每秒30格
檔案與物件
  • 物件名稱要命的有意義, 名稱要唯一. 這樣可以幫助你找到, 或是找到專案的特定物件.
  • 避免特殊字元: 例如*()?”£$n
  • 使用簡單但是有意義的名稱, 不管是物件或是檔名.
  • 盡可能地讓階層關係間單化
  • 對於3D軟體(例如3ds max)用在大型的專案, 建議把3ds max專案的檔案跟Unity專案的檔案放在不同的資料夾. 這樣可以避免不必要的更新與import不需要的檔案.
  • 有意義的命名規則讓你找東西比較方便
模型
  • 建模的時候 注意布線要有效率, 只在需要的地方布線.
  • 最佳化模型, 很多角色的模型需要花腦筋小心地最佳化, 甚至要整個重建, 如果是從雷射掃描的3D模型 Poser ZBrush這種模型的話. 其他如用Nurbs/Patch的模型也需要重建
  • 如果可以的話, 平均分布建築物, 地形的布線. 這樣可以幫助光照的產生, 避免詭異的錯誤產生.
  • 避免產生狹長的三角面
一步一步踏上高FPS的天堂吧
你建立模型的習慣對於大量重複的物件來說, 會有很大的影響. 以同一個物件來說, 如果一個是156個三角面, 另外一個沒有最佳化是726面. 以模型來說726面聽起來沒有很多, 可是如果在場景中有40個這種東西, 你就會看出差異了. 實用的法則是: 從簡單的開始做, 慢慢添加細節. 因為添加polygon會比拿掉polygon間單.

貼圖
如果你的貼圖一開始的時候就是用2的倍數, 這樣會比較有效率. Unity不需要在build time的時候才去重新縮放尺寸. 例如4096×4096 pixels, 或 512×512 或 256×1024這些都是2的倍數. 而2048×2048對於大部分的顯卡或是遊戲平台來說是最高的解析度了. 網站上有很多專家製作了很多很棒的貼圖 ,但是這些準則可以幫助你工作起來更有效率.

  • 把高解析度的檔案放在Unity專案的外面, 例如PSD 或Gimp file. 你可以從高解析度的圖降低解析度, 但反過來就不行囉.
  • 針對場景的需求, 定下貼圖需要的解析度, 觀察物件在場景中在哪個視角, 顯示的大小.
  • 把場景中所有的貼圖擺在Unity裡面同一個專案資料夾, 例如: \Assets\textures
  • 確保盡可能地利用貼圖的UV空間, 但是請注意, 不同的材質球會需要同一張貼圖的不同部位, 這會導致該貼圖被重複載入好幾次.
  • 如果不同元件需要用到不同shader的話, 建議你不要只用一張, 改用好幾張小張的貼圖.

  • 利用tiling texture的原理, 這樣你可以有更高的解析度表現.
  • 移除貼圖裡面明顯的突兀元素, 最好對比也要注意. 如果要添加細節的話, 你可以用貼花(decals)或是物件來打斷重複的感覺.

  • Unity會幫你針對輸出平台來做壓縮的動作, 除非你原始檔案就是JPG, 不然會建議你用不壓縮的圖檔格式.
  • 當你在現場拍素材時, 盡量能拉近畫面, 如果你拍12個重複的窗戶, 還不如拍近一點只拍一個窗戶 這樣解析度夠大.
有必要拍全部的窗戶嗎?


材質
整理場景的材質, 統一命名規則, 這樣在到了Unity才會更容易找到, 編輯材質.
你可以在Unity產生材質 用以下其中一種方法:

  • 在3D軟體裡面設定好的材質球並不會導入到Unity裡面. 但是Diffuse顏色Diffuse貼圖與命名通常會支援.
  • Shader 種類, specular, normal, 其他的貼圖或是substance material的設定目前都不支援 (但是即將3.5版會支援呦)
  • Unity可以支援兩種類型的檔案 3D應用程式的檔案(例如 .max) 與輸出的檔案 (例如FBX):
3D應用程式的檔案
Unity可以吃Max, Maya, Blender, Cinema4D, Modo, Lightwave & cheetah3D files, e.g. .MAX, .MB, .MA等等檔案

優點
  • 快速操作 (直接在Unity裡頭儲存與更新)
  • 一開始會比較簡單
缺點
  • 這表示專案裡面所有的電腦都必須要安裝相對應的3D應用程式(例如每台電腦都要裝3ds max 2012)
  • 檔案會很肥大, 因為會有不需要到資料在裡面
  • 缺乏檢查驗證, 要除錯會很麻煩
使用輸出的3D格式(例如FBX)
Unity可以讀取FBX, OBJ, 3DS, DAE & DXF等格式 通用的輸出指南請看這裡

優點
  • 只輸出你需要的資料
  • 在輸出的時候就會驗證資料
  • 檔案會比較小
  • 對模組化的工作流程有幫助(Encourages modular approach)
缺點
  • 這樣的流程會比較慢 用在遊戲原型或是快速修改上會很慢
  • 很容易就丟失檔案的版本 (工作檔或是遊戲輸出的檔案對不起來) 到底是輸出哪個版本啊

Characters & Animation
敬請期待這個單元

[相關新聞]



更多資訊請洽奇銳科技 (02)2557-3321

2011年9月14日 星期三

RayFire 1.56新版發表, 試用下載


Mir Vadim先生宣布RayFire 1.56 Plugin for 3ds Max, 購買用戶現在已經可以開放下載了. 請點這裡進入試用版下載頁.

主要功能
  • 可以透過RayFire的UI介面支援NVidia PhysX Rigid Body
  • NVidia PhysX Force Influence參數讓你可以用外力, space warps或是滑鼠點擊來影響物件
  • 可動態調整的Time Scale屬性 讓你很快速地產生Bullet Time子彈時間的特效(電影駭客任務那樣時間暫停攝影機轉動的效果)
  • Glue讓你可以把碎片黏在一起, 然後靠外力等因素打斷連結關係
  • Interactive Demolition System.for NVidia PhysX engine 互動式的破壞系統, 你可以根據物體的材質與碰撞的強度來決定物理動態或破壞的效果, 每個碎片都還可以再碎一次.
  • 不同的碎裂類型: 產生不同的碎裂圖案RayFire Tool目前提供不規則, 規則, Voronoi, 木條碎裂, 放射狀碎裂... 你也可以用滑鼠切出要碎裂的形狀.
支援版本:
支援到3ds Max 2012版本
支援Nvidia PhysX plugin 2.61

[相關資訊]

Autodesk取得Numenus公司的光跡追蹤技術


Autodesk---3D設計, 工程與娛樂產業的領導品牌, 宣布併購Numenus GmbH公司的數項科技, 這家軟體公司提供高階的視覺技術, 用在有效率的算圖與預覽3D資產. 實際的交易內容不公開.

Numenus的效果

這家成立於2009年, 位於德國的科布倫茨. Numenus公司專長於互動算圖, 針對NURBS的資料, 提供迅速的, 照片寫實的算圖效果, 應用在設計上, 工程上與市場專業銷售上. 在這次的併購Autodesk的軟體用戶應該會獲得更精確的視覺化 花更少的時間就能達到視覺化的表現.

Autodesk套裝軟體, 網路服務, 訂閱部門的副總----Andrew Anagnost說: 迅速的視覺化能力是當今世界設計必備的能力. 結合了先進的光跡追蹤科技與強大的視覺溝通工具 這會對設計師, 工程師, 與市場行銷團隊會有重大蛻變.

這次的併購說明了Autodesk持續對客戶的承諾, 提供廣泛強大的數位元型方案. 針對各種規模的製造業, 提供設計力, 視覺化並在實際生產出來前就進行模擬. 添加了Numenus科技的新血, 會強化Autodesk對高寫真的科技產品視覺化的能力, 而這也是Autodesk對汽車產業工作流程的一個承諾. Numenus公司的創辦人現在也是Autodesk的一員.


[相關資訊]

猩球崛起--動作捕捉專業演員幕後訪談

>譯自HERO COMPLEX

<猩球崛起> 動作捕捉演員Andy Serkis向凱撒喝采!

如果演人猿能夠組個工會的話, Andy Serkis(中譯:安迪薜基斯)可能會成為官方的頭號眼中釘.

這位47歲的英國演員搶得了21世紀兩部跟人猿有關的電影角色, 第一部是Peter Jackson老片重拍的<金剛>; 而現在是<猩球崛起>的凱撒的角色, 這個自主的, 不會說話的黒猩猩, 成為片中的切格拉瓦(知名革命家).

在星期五開幕的, 猩球崛起, 其實是1963年由法國作家Pierre Boulle描寫的超智能的人猿奴役人類的小說所新拍的一部電影, 而現在這部新電影, 由英國導演Rupert Wyatt所導, 所新構想出來的 一群年輕黒猩猩嚐到造反的滋味.

凱撒成為猩球崛起的這場革命的領導

故事一開始的場景是在現代, 舊金山. 一位年輕科學家Will (James Franco) 正在找尋阿茲海默症的解藥, 他的父親(John Lithgow)正是為該疾病所苦. 在一次的實驗中Will不小心製造出一個獨特的黒猩猩寶寶---凱撒.

Serkis說: 儘管他只是個人猿, 他有非常特別的性格. Serkis先生已經成為好萊塢動作捕捉表演的固定班底, 他的第一部經典是在<魔戒>裡面扮演咕嚕. 在金剛裡面扮演---金剛, 並且在今年聖誕節, 史蒂芬史匹柏的電影<丁丁歷險記>裡面扮演配角Captain Haddock.

對於這個原本清純的人猿, 經歷了很重大的自我認識之旅. 他不再屬於拉拔他長大, 愛他的家族. 因此他變成了外人, 一個怪胎, 他必須要找到他到底是誰. Serkis接著在聖地牙哥的一場國際漫畫會議的訪談說: 電影的第二段變得很像<飛越杜鵑窩>的感覺, 這些受傷的人猿會了生存而奮戰, 凱撒牠會有放棄牠特有的人性 , 激發自己來解放這些尋求自由的人猿嗎?

這是電影的中心問題. 去年在溫哥華拍攝, 由Wyatt掌鏡, 這位相對新手2008年執導了一部越獄電影大獵逃, 在日舞影影展首映, 贏得了不少不少掌聲, 也因此贏得這個拍攝機會.

一開始的時候Wyatt就排除了用真的人猿來拍電影, 不管是從實用的角度還是從道德的角度來看. 如果我們拿人猿來拍這部人猿發起的革命對抗人類的話, 會變得很諷刺.

相反的, 猩球崛起採用了先進的動作捕捉科技, 這種技術在1968-73由Charlton Heston飾演的<人猿星球>的系列電影並沒有, 或是2001年由Tim Burton所導演的電影基本上都是靠化妝技術達成的.

在這部電影裡Wyatt有像Serkis這樣的演員, 把凱撒演的栩栩如生. 電影裡面其他的人猿角色也穿戴著動作捕捉套裝還有臉部表情捕捉裝置, 在紐西蘭的Weta Digital大約有450位特效美術人員, 這家公司也製作過金剛, 讓照片寫實的黒猩猩動起來很寫實.

Andy Serkis穿上動作捕捉裝備, 表演猩球崛起凱撒的角色

儘管如此, 這部電影的特效鏡頭還是比最近幾部的科幻片要少. 不到1000個鏡頭, 跟綠燈俠的1300個, 或是超過2000個鏡頭的阿凡達要少很多. 這部電影的預算是九千三百萬美元, 也跟許多暑假電影少了許多.

Serkis說這套技術幾乎不會對他的表演有阻礙, 現在他對這個佈滿標記點的套裝---這個動作捕捉演員必須穿的衣服, 已經十分自在了. 如果是用穿黒猩猩服裝來演戲的話, 會變得十分笨重, 但是有了新科技, 我就能夠體驗像人類般的猩猩的感覺了. 臉部表情會十分細緻, 我看了1960年代的猿人襲地球這部電影, 演員們必須透過一層橡膠猩猩面具來表演.

Serkis與其他扮演人猿的演員, 包含了前太陽劇場表演者Terry Notary飾演凱撒反叛計畫的搭檔---- Rocket, 一開始要研究人猿的影片, 請教靈長類動物學家 了解人猿是怎樣睡覺, 吃東西與其他人猿互動的方式. Notary甚至還設計了客製化的T型拐杖, 讓演員們能夠表演出人猿邊走邊盪的動作.

Serkis專注於黑猩猩的紀錄片---一隻叫做Oliver的黑猩猩, 他是一位能夠站立行走, 具有人臉般的面容, 讓他也懷疑Oliver是不是猩猩與人類的混種, 也因此有人稱它做 猩人. (在1990年代的遺傳檢測 證明這個說法是錯的)

Serkis說: 一般人說這不過就是做一些猴子的動作罷了, 但是對這個角色而言一點也不是這樣. 在飾演金剛的時候, 我很努力地扮演100%大猩猩, 但是換到凱撒, 要怎樣表現出超智慧的人猿呢, 我想像如果是一位很聰明4歲的小孩就會談協奏曲, 或是8歲就會複雜的數學, 大概就是那種狀況吧.
當Serkis演完每個場景, 這些人猿演員都只能看到大致的表演結果, 要花費好幾個月, Weta的特效工作人員才能把整個畫面完成.

Serkis之前在蘭卡斯特大學研習視覺藝術的經驗, 對他很有幫助, 讓他對戲劇, 這個不靠想像力的表演方式產生興趣.

Andy是位相當老練的戲劇演員, 也是很棒的啞劇演員, 身手很讚, 與其說他是演員, 他還更像是舞者.

當動作捕捉效果不好的時候, 通常是因為演員目光呆滯. 因為有些東西還是需要技術來處理, 以凱撒為例, Weta建立及高細節的眼睛模型, 能夠表現出瞳孔擴張, 對光源的反應, 濕潤感. 在拍攝時, 會去追蹤Serkis的瞳孔, 以及依據臉上的標記點來決定臉部肌肉是如何移動的.

Weta的視覺特效主管Joe Letteri說: 如果你可以追蹤臉部所有的肌肉, 你會發現眼皮在做什麼, 你也會知道眼睛在怎樣運動. 但是從視覺得角度來看, 還需要一些因子才能讓眼神更逼真. 眼睛如何對光反應, 如何流淚. 必須要考慮所有因子才行, 如果動作很完美但是外觀看起沒那麼好, 其實沒什關係; 但如果外觀看起來很讚, 可是動作不寫實, 看起來就會很死.

把CG數位的東西融入到角色裡面, 讓觀眾有共鳴, 是電影製作人的終極目標.

Wyatt說: 我希望觀眾專注在故事上面, 而不是猿猴怎麼做出來的. 這部電影的核心在Andy.

– Rebecca Keegan

更多動作捕捉資訊請洽 奇銳科技 (02)2557-3321

2011年9月8日 星期四

RayFire即將支援Bullet physics物理引擎


3ds Max即將出現支援Bullet physics的外掛! 感謝外掛開發者----Mir Vadim先生讓3ds Max的外掛也可以支援Bullet物理引擎了!

根據Vadim放在Youtube上的影片, 下一版的RayFire 這個用在<變形金剛3>裡面破壞與碎裂的外掛軟體, 即將把Bullet物理函式庫整合進去.

目前還沒有正式發表的日期, 但是會支援到3ds max 2012, 而且對RayFire 1.55版的註冊用戶可免費享有這個升級功能.



這會不會是朝向內建支援的一步呢?或是這是讓3ds max內建Bullet物理引擎在鋪路呢? Disney的Dynamica外掛是有支援這個引擎, 而最近Autodesk也宣布了Maya Advantage Pack更新包裡面也會提供對Bullet的支援.

利用RayFire的Bullet physics物理運算1700個凹面物件的倒塌效果


利用RayFire的Bullet physics物理運算, 凹面布林物件碎裂效果



什麼是Bullet physics物理引擎?
Bullet是套開放程式碼的物理引擎, 用在3D碰撞偵測上面, 軟體動態, 剛體動態的運算上. 被應用在遊戲, 或是電影裡面的視覺特效. Bullet的物理函式庫式要根據zlib的授權來發表, Erwin Coumans是主要作者, 從2003年到2010年間, 他服務於Sony Computer Entertainment的研發部門, . 現在他在AMD公司.


Bullet physics的主要功能:
  • 剛體與軟體模擬運算, 不管是不連續或是連續的碰撞偵測
  • 碰撞的形狀包含了球, 方塊, 圓柱, 圓錐, 凸面體, 非凸面體, 或是三角面模型
  • 軟體則是支援了: 布料, 繩索或是變形物件
  • 提供多樣化的剛體與軟體的限制(constraints)功能
  • 目前有支援Maya, Houdini, Softimage的外掛, 也有整合到Cinema 4D, LightWave 3D, 與 Blender裡面, 也可以導入COLLADA 1.4 physics的內容.
  • 能夠對PlayStation 3 Cell SPU, CUDA 與 OpenCL進行最佳化運算.
Softimage外掛Momentum

電影特效:
有幾部好萊塢的電影有用到Bullet剛體模擬運算, 或是用在商業電影的特效上, 包含了:
  • 2012
  • 全民超人
  • 雷霆戰狗
  • 天龍特攻隊
  • 福爾摩斯
  • 麥克邁:超能壞蛋
  • 史瑞克四:快樂4神仙


[相關文章]

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