RayFire for Unity 教學

RayFire 是一套支援 Unity 遊戲引擎的外掛程式,讓您可以在 Unity 編輯器對 3D 物件進行破碎,並將它們預粉碎為片段。並在遊戲進行的碰撞時自動創建顆粒碎片與灰塵。若您需要製作 Unity 破碎效果,強力推薦使用 RayFire Studios 推出的破碎外掛程式 RayFire ,製作真實模擬物件破碎的效果,例如在需要時產生破碎,並受到炸彈爆炸、子彈射擊、風與旋渦的力場影響。

 

Simulation Types 模擬類型

- Dynamic - 物體將會受到重力而掉落,並且可能被其他物體碰撞而影響。

- Sleeping - 物件預設為凍結狀態,被其他物件碰撞後將表現為 Dynamic 物件。

- Inactive - 物件將會凍結在空中並且不受重力影響,該物件可以被 activated 並開始表現得像 Dynamic object 動態物件。

- Kinematik - 物件會影響其他物件,但是不受到其他物件影響,該物件可以被 activated 並開始表現得像 Dynamic object 動態物件。

 

Object Types 物件型態

- Mesh. Simulate object using it's Meshfilter's mesh in Mesh Collider.
- Skinned Mesh. 允許 demolish SkinnedMesh 物件。
- Nested Cluster. Simulate object using all it's children Meshfilter's meshes as one solid concave object. At demolition Cluster will detach every child and start to simulate them on their own. If a child is a root for other children with meshes after demolition it will be considered as Nested Cluster as well.
- Connected Cluster. Simulate object using all it's children Meshfilter's meshes as one solid concave object. At demolition Cluster will detach fragments at contact point while the rest of the fragments will stay as solid cluster. At every demolition cluster checks itself for connectivity and if it detects that some groups of fragments are not connected together anymore they will start to simulate as separate Connected Clusters.

 

Demolition Types 型態

Runtime. Demolishes object in runtime relative to the collision point. Supports Windows, Mac OS X, iOS, and Android platforms.
- Reference Demolition. Swap demolished object to predefined reference which can be another scene object, cluster, prefab, or FBX asset. Can be used on any platform.
- Awake Precache. Prepare fragment meshes in Awake and create fragments at demolition.
- Awake Prefragment. Prepare fragments in Awake and keep them deactivated until demolition.
- Reference Demolition. Demolish object to fragments created in Unity and saved as FBX/Mesh Asset or created in other 3d applications.

 

Forces 力場

炸彈 ( Bomb ) 相對於空間中的點狀爆炸物件。

風力 ( Wind ) 類似亂流對對剛體物體的影響。

漩渦 ( Vortex ) 類似渦流對對剛體物體的影響。

 

Helper components 元件

- Connectivity. Establish connectivity for Inactive and Kinematik objects and activate them when they lose connection with Unyielding objects.
- 射擊 - 允許子彈射擊物件,對其造成物理影響,產並生碎屑、灰塵、閃光,造成損壞並拆除物件。
- 切割 - 允許遊戲進行即時切割物件。
- 碎片 - 破碎物件時產生碎片與灰塵。
- 音效 - 物件破碎的同時發出音效。
- Activator. Activates Inactive and Kinematik objects and turns them to Dynamic objects.
- Combine. Combines all children meshes to one single mesh.
- Snapshot. 即時儲存 Demolished / Simulated 物件,並且在 Edit 編輯模式載入到場景,用於製作已被破壞的物件或場景。

 

其他功能

- Collapse. Allows to demolish complex prefragmented structures considering connectivity among fragments.
- Runtime Caching. Allows to distribute runtime demolition process over time and demolish Hi poly object to hundreds of fragments.
- Multi-Material fragmentation. Allows to fragment objects with several different materials and applies defined material to the inner surface.
- Reset & Reuse. Allows to demolish object once and then reset and reuse already cached fragment meshes or fragments.
- 匯出為 Unity 資源,可將已破碎的網格匯出為 Unity 資源以便稍後使用。

 

RayFire 原本是一套支援 3ds Max 的外掛程式,參與不少電影或遊戲的特效鏡頭製作,包括《變形金鋼》、Video Copilot 《Demon Cam 展示影片》。現在支援 Unity 遊戲引擎,而且 RayFire 價格比以前更優惠,讓您快速製作各種破碎效果。

 

RayFire 範例場景

開啟 [ RayFire > Tutorial > Scenes ] 資料夾,您可以透過範例場景瞭解 RayFire 製作的各種破碎效果。

1.1 Shatter. Types. Voronoi

1.2 Shatter. Types. Splinters

1.3 Shatter. Types. Slabs

1.4 Shatter. Types. Radial

1.5 Shatter. Types. Custom

1.6 Shatter. Types. Slices

1.7 Shatter. Types. Tets

1.8 Shatter. Types. Decompose

1.9 Shatter. Clusters

2.1 Rigid. Simulation Types

2.2 Rigid. Object Types

2.3 Rigid. Mesh Demolition Types

 

讓物件變成破碎物件

選取物件後套用 Rayfire Shatter 元件,按下 Fragment 按鈕。

預覽下方的 Color 按鈕,可用不同的顏色預覽碎片。

按下 Delete Last 按鈕可刪除目前的碎片,重新製作破碎效果。

以下是不同的 Fragment Types 破碎類型(遊戲畫面將不顯示橘色框線):

- Voronoi. Low poly, convex, physics friendly fragments.

每次執行 Fragment 隨機產生不同的破碎效果,可設定碎片的數量。

使用 Splinters 方式的破碎效果。

- Splinters. Low poly, convex, stretched along one axis.

使用 Slabs 方式的破碎效果。

- Slabs. Low poly, convex, stretched along two axes.

- Radial. Low poly, convex, creates radial fragments pattern.
- Custom. Low poly, convex, uses custom User defined Point Cloud for fragments distribution.

使用 Slices 方式切割物件,必須先將切割用的平面與物件重疊,再進行切割處理。

- Slice. Slice object by planes.

- Tetrahedron based fragments.

- Fragments clustering with debris. Allows to glue fragments together and produce complex high poly concave fragments.

 

建立一個方塊物件,套用 RayfireRigid 腳本,修改以下 2 個選項:

Initialization = (預設值 By Method)

Demolition Type = (預設值 None)

按下 Play 測試遊戲,物件將會向下掉落,碰撞物件時將會產生破碎效果。

 

Rayfire Ridig - Physics 物理設定

設定破碎物件的物理材質,將影響掉落後的物理效果,例如選擇 Ice 冰塊時將會滑動較遠的距離(預設是水泥)。

 

Rayfire Ridig - Activation 設定

啟用破碎的設定。

 

Rayfire Ridig - Limitations 設定

破碎限制的設定。

 

Rayfire Ridig - Mesh Demolition 網格破碎設定

設定破碎的數量、隨機效果等。

 

讓物件變成破碎物件

選取物件後套用 Rayfire Shatter 元件。

按下 Fragment 按鈕,此操作並不會改變原物件,而是另外產生許多碎片物件。

預覽下方的 Color 按鈕,可用不同的顏色預覽碎片。

若不滿意破碎效果,按下 Delete Last 按鈕

按下 Play 測試遊戲,碎片並不會受重力影響而掉落,選取碎片的上層物件套用 Rayfire Rigid 元件。

套用 Rayfire Connectivity 元件。

破碎時若需要產生灰塵,套用 Rayfire Dust 元件。

破碎時若需要另外生成碎塊,套用 Rayfire Debris 元件。

希望維持原狀的部份,可套用 Rayfire Unyielding 元件,可同時使用多個。

 

開槍射擊的破碎效果

建立一個物件並套用 Rayfire Gun 腳本,需要指定 Target 射擊的目標,建立空物件並拖曳到 Target 欄位。

按下 Play 測試遊戲,從 Inspector 屬性編輯器的 Rayfire Gun 元件按下 Single Shot 按鈕,即可模擬射擊。

若需要提供玩家開槍射擊可修改 RayfireGun 腳本,以下範例是使用 Oculus Quest 虛擬實境控制器的情況。

 

物件撞擊的破碎效果

本段教學說明如何製作物件撞擊後產生的破碎效果。

建立一個空物件並套用 Rayfire Activator 元件。

按下 Play 測試遊戲,物件受到 Activator 物件撞擊時將會出現破碎效果。

 

碎塊效果

附加 RayfireDebris 動態生成碎塊,勾選 On Demolition 在破碎時生成。

注意!實際上加入 Debris 是動態生成指定物件,並非從原本物件產生的碎塊,可以透過 Inspector 設定使用的碎塊。

Debris Reference 可選擇自行製作的物件或使用 RayFire 提供的 Debris 物件。

 

加入粉塵效果:附加 RayfireDust 動態生成粉塵,從 Dust Material 設定材質。

為物件新增 RayfireDust 元件,即可在破碎時產生粉塵效果。

勾選 On Activation 與 On Impact 選項,然後 Dust Material 選擇紛塵的材質。