Unity 利用Cinemachine快速創建靈活的相機系統


在第一或第三人稱ACT和FPS游戲中,相機的運動需求是多種多樣的,Unity內置的Cinemachine包可以助你快速實現不同相機功能,例如范圍追蹤,邊界設置等。

例如,考慮這樣一個功能,這在很多游戲中都是非常常用的:

1.在屏幕中心的一定范圍內攝像機追蹤一個主角單位,但這是一個惰性相機,當且僅當主角快要離開屏幕中心向屏幕邊緣移動時相機才跟隨過去。

2.當攝像機運動到了地圖邊緣時,它不再繼續追蹤目標,也就是說,相機還需要界定一個運動范圍。

觀察上圖,圖中黃色的點為攝像機跟蹤的目標,淡藍色的框為屏幕相機追蹤的過渡區域,只有當追蹤目標移動到淡藍色的框中時,攝像機才開始朝角色的運動方向追蹤,角色運動停止后,攝像機會保證追蹤的主角停止在淡藍色框內,紅色框外。

圖中主角已經運動到地圖的邊緣,所以攝像機不會繼續向上或向右運動,這是因為利用碰撞盒子設置了攝像機的運動范圍。

如上圖,攝像機已經運動到了黃色碰撞盒子的邊界,它無法再繼續向上或向右運動,這樣可以保證攝像機的視野范圍不會超出地圖的邊緣。

 

知道了這些后,再來了解Cinemachine的功能將變得非常容易。

Cinemachine的功能看上去非常之多,但最終還是離不開虛擬攝像機這一組件。

 

我們可以利用菜單欄先創建一個虛擬攝像機:

 

雖然后面有各種各樣的攝像機組件可以選擇,但其實都是虛擬攝像機的不同設置而已,只要弄清楚了這一個組件的用法,其他都可以利用設置或自定義腳本來實現。

基本模塊中比較重要的就是Follow和Look At,Follow是追蹤的主角Transform,也可以運行后動態設置。

Look At根據需要選擇是否設置,如果攝像機需要需要進行視角方位的旋轉變換,則需要有一個Look At的目標,可以根據該目標的朝向來進行視角的旋轉;只是跟隨主角在固定的視角方向進行平移運動的話,就可以不用設置Look At。

 

Body模塊主要功能是處理場景中相機和它的目標之間的位置關系。

 

 

用的比較多的是Ransposer和Framing Transposer,Framing Transposer可以很方便的實現惰性相機,里邊有一個參數是Dead Zone區域設置,默認情況下是零,這時相機始終跟隨目標位置反復移動,當Dead Zone擴大后,相機在屏幕中間的區域就會變得非常懶,就像死了一樣,只有角色移動出死亡區域后相機才重新開始追蹤目標。(如最上面圖中的全透明區域)

 

Extentions提供了額外的擴展組件功能:

 

本例中增加了攝像機的區域設置,選擇之后會自動增加一個腳本:

通過該腳本組件可以指定一個2D或3D的碰撞盒子作為作為攝像機的運動范圍,利用該組件可以快速控制攝像機只在地圖視野范圍內運動。

官方參考:

https://connect.unity.com/p/li-yong-cinemachinekuai-su-chuang-jian-you-xi-zhong-de-xiang-ji-xi-tong


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM