天天看點

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

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

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

1.在螢幕中心的一定範圍内錄影機追蹤一個主角機關,但這是一個惰性相機,當且僅當主角快要離開螢幕中心向螢幕邊緣移動時相機才跟随過去。

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

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

觀察上圖,圖中黃色的點為錄影機跟蹤的目标,淡藍色的框為螢幕相機追蹤的過渡區域,隻有當追蹤目标移動到淡藍色的框中時,錄影機才開始朝角色的運動方向追蹤,角色運動停止後,錄影機會保證追蹤的主角停止在淡藍色框内,紅色框外。

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

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

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

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

Cinemachine的功能看上去非常之多,但最終還是離不開虛拟錄影機這一元件。

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

我們可以利用菜單欄先建立一個虛拟錄影機:

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

雖然後面有各種各樣的錄影機元件可以選擇,但其實都是虛拟錄影機的不同設定而已,隻要弄清楚了這一個元件的用法,其他都可以利用設定或自定義腳本來實作。

基本子產品中比較重要的就是Follow和Look At,Follow是追蹤的主角Transform,也可以運作後動态設定。

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

Body子產品主要功能是處理場景中相機和它的目标之間的位置關系。

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

用的比較多的是Ransposer和Framing Transposer,Framing Transposer可以很友善的實作惰性相機,裡邊有一個參數是Dead Zone區域設定,預設情況下是零,這時相機始終跟随目标位置反複移動,當Dead Zone擴大後,相機在螢幕中間的區域就會變得非常懶,就像死了一樣,隻有角色移動出死亡區域後相機才重新開始追蹤目标。(如最上面圖中的全透明區域)

Extentions提供了額外的擴充元件功能:

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

本例中增加了錄影機的區域設定,選擇之後會自動增加一個腳本:

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

通過該腳本元件可以指定一個2D或3D的碰撞盒子作為作為錄影機的運動範圍,利用該元件可以快速控制錄影機隻在地圖視野範圍内運動。

官方參考:

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