DestroyIt 教學

DestroyIt 是一套支援 Unity 的破壞系統,提供物件破壞、損傷、修復功能,DestroyIt 使用標準著色器以及可自訂的損傷貼圖,物件可製作階段性的破壞,而破壞的物件也可以修復,DestroyIt 可以製作簡易或是真實的破壞效果,從加入粒子效果,到替換成預先製作成損毀狀態的預製物件。

資源商店搜尋 DestroyIt 下載匯入專案。

匯入 DestroyIt 資源後,開啟下圖所示的資料夾,滑鼠雙擊 DestroyIt-Ready 資源包匯入專案。

DestroyIt 提供完整的原始碼與 PDF 教學文件,讓您快速瞭解使用方法。

DestroyIt 可在貼圖中呈現漸進式的損傷(也可以用以製作修復效果),例如汽車受到不同的損壞程度而呈現的方式也不同,例如輕微損傷只是貼圖凹陷,而重度損傷則會冒煙甚至解體。 可配合預置的分割、分解後的物件進行配合,可以達到更奢華的效果。

DestroyIt 可以製作大規模的毀滅,提供限制粒子與碎片數量的選項,遠離攝影機的物件會自動進行優化。

建議先試用 DestroyIt 展示場景,提供完整的功能展示,稍後若不需要可刪除 Demos (safe to delete) 資料夾節省空間。

開啟 [ DestroyIt > Demos (safe to delete) ] 資料夾的 Choose Demo 場景,這是展示場景的選單。

按下 Play 測試遊戲,您可以在 Main Scenarios Scene 場景使用各種武器破壞物件。

 

首先製作一個包含地面的遊戲場景,執行 [ Windows > DestroyIt > Setup - Minimal ] 加入管理物件。

參考 QuickStart Scene 場景的 _GameManager 設定。

執行 [ Windows > DestroyIt > Setup - First Person Controller ] 加入 DestroyIt 提供的玩家角色。

選取 _GameManager 物件後透過 Inspector 屬性編輯器將 Input Manager 的 Third Person Controller 武器特效依照名字加入在 _GameManager 的 Input Manager 元件中。

 

製作可破壞的物件

 

按下 Play 測試遊戲確認武器正常使用,匯入同公司提供的 Destructible Decoratives 套件,這是專供 DestroyIt 使用的可破壞模型。

開啟 [ Destructible Decoratives > Prefabs ] 資料夾,尋找一個未被破壞的物件(即是物件名稱後面沒有Destroyed字樣),並拖曳放入場景上。

此時物件仍無法被破壞,透過 Hierarchy 視窗選取木椅並展開階層,將會發現子物件全部都是碰撞器。

我們先選取全部的碰撞器,再統一加入Tag It元件。

接著可以在物件上做DestoryIt的標籤,因為木椅是木頭製,所以我選擇Wood來當標籤。

全部的Collider設置完成後,將原本在木椅本體上的的Destructible Stub元件刪除,替換成Desteructible元件。

按下 Play 測試遊戲,發現木椅可以被破壞,但是損壞物件的類型似乎與木椅外觀不一樣,我們先點選木椅,在Inspector屬性編輯器將Desteructible下的Destroyed Prefab替換成Destructible Decoratives >Prefabs資料夾中帶有Destroyed名稱的同種類物件(即是使用Wooden Bench的話,就該放置Wooden Bench – Destroyed物件)。

而要製作裂痕效果,需要先修改著色器(Shader)的顯示模式,點選下方材質球,點選Shader旁的Standard > Shader Forge > DestroyIt Moblie選擇DestoryIt自帶的著色器。

點選好之後,在DetailAlbedo上選擇一種裂痕圖片,並依需求縮放。設定好之後,按下Play測試,木椅受到輕微傷害後會產生裂痕。

 

問題:被破壞的物件為何變成白色?

這必須修改Destructible Decoratives >Prefabs內被破壞的物件材質,我們可以先新增一個材質後,將Destructible Decoratives >Textures中的destructible decoratives_Albedo.tif貼圖加入材質球中,並且將被破壞的物件置入場景中,並將材質球分別套用在所有碎片中即可。

 

問題:木椅被破壞後為何變成碎瓦礫?

將物件的 Destructible 元件下的Can Be Obliterated關閉後,即沒有變成碎瓦礫的效果,而是下面自行指定的效果。

利用Blender來製作破碎的預置物件

我們從Unity隨意找個模型來製作,這裡使用Rocks Pack免費岩石包來做說明。

下載完成後並匯入資源,在Rock Package> Mesh中,點選其中一個物件並按下右鍵點選Show in Explorer以檔案總管開啟此資料夾。

接著打開Blender後,先更改使用者設定,點選File > User Prefreences進入使用者偏好設定頁面。

先在最上面的導覽列點下Add-ons後,打開左邊的Object頁面,勾選Object:Cell Fracture選項後,點選Save User Settings儲存設定。

因為 Blender 匯入 FBX 檔案時經常會出現錯誤或不支援,所以樣先轉換成OBJ檔,利用3DsMAX或其他3D軟體進行轉換,此石頭模型本身已是OBJ檔,不須再另外轉換。

我們可以先更換材質,點選右邊面板的材質編輯器,新增材質後將顏色進行更改。

接著按下空白鍵,叫出搜尋面板,輸入 Cell 點選 Cell fracture selected mesho bjects 進入分割物件面板。

修改Source Limit值,決定要切成多少塊,之後將材質更改和把NextLayer關閉再按下 OK 鍵。

此時會發現我們的石頭已經被切成12塊,並保留原來的模型。

我們只要留下分割後的石頭,所以將原本的模型刪除後儲存。

之後將每個碎片都套上材質,以及鋼體並放入已被破壞的物件上,此時按下Play測試就可以發現石頭可以被擊破,不過內部的結構並不是很真實,這個就要透過 3D 軟體製作了。