主流游戲相機(jī)實(shí)現(xiàn) 之Cinemachine 概述

《主流游戲相機(jī)實(shí)現(xiàn)》通過(guò)Unity 3D引擎和Cinemachine組件來(lái)實(shí)現(xiàn)主流游戲的相機(jī)設(shè)置,切換和管理的概念,習(xí)慣,基本原理,經(jīng)驗(yàn)參數(shù)等。實(shí)現(xiàn)內(nèi)容以動(dòng)作游戲相機(jī)為主,但不限于動(dòng)作游戲,也可以用于橫版格斗、FPS、RPG等類(lèi)型,需要自行調(diào)整和研究。

課程屬于基礎(chǔ)和進(jìn)階課程,適合對(duì)鏡頭控制感興趣的讀者。

《主流游戲相機(jī)實(shí)現(xiàn)》目錄

1|Cinemachine 概述

2|《戰(zhàn)雙》相機(jī)分解和實(shí)現(xiàn)

3|《Sifu/師傅 》戰(zhàn)斗相機(jī)部分分解與實(shí)現(xiàn)

4|多目標(biāo)相機(jī)實(shí)現(xiàn)

5|《對(duì)馬島之魂》戰(zhàn)斗相機(jī)部分實(shí)現(xiàn)

6|相機(jī)碰撞和場(chǎng)景交互處理

7|Demo工程


本文節(jié)選自UWA學(xué)堂的《主流游戲相機(jī)實(shí)現(xiàn)》第一節(jié)《Cinemachine 概述》。

1 基本組件組成

Cinemachine核心組件包括Brain和Virtual Camera(虛擬相機(jī)),Brain負(fù)責(zé)相機(jī)的切換,虛擬相機(jī)負(fù)責(zé)拍攝。

Virtual Camera

虛擬相機(jī)主要由六個(gè)模塊組成,分別是:

Lens:包括調(diào)整FOV等參數(shù);

Body:負(fù)責(zé)處理相機(jī)和跟蹤目標(biāo)之間的相對(duì)位置的這樣一個(gè)關(guān)系;

Aim:負(fù)責(zé)處理焦點(diǎn)和跟蹤目標(biāo)在鏡頭中的相對(duì)位置;

Noise:模擬手持相機(jī)的晃動(dòng);后處理模塊:讓每個(gè)鏡頭有不同的后處理效果;

Extnesions可擴(kuò)展模塊:包括碰撞處理等功能。

Body屬性提供了下列算法來(lái)移動(dòng)虛擬相機(jī):

- Do Nothing:不移動(dòng)虛擬相機(jī)。

-?Framing Transposer:在屏幕空間,保持相機(jī)和跟隨目標(biāo)的相對(duì)位置,可以設(shè)置緩動(dòng)。

-?Hard Lock to Target:虛擬相機(jī)和跟隨目標(biāo)使用相同位置。

-?Orbital Transposer:相機(jī)和跟隨目標(biāo)的相對(duì)位置是可變的,還能接收用戶的輸入。常見(jiàn)于玩家控制的相機(jī)。

-?Tracked Dolly:相機(jī)沿著預(yù)先設(shè)置的軌道移動(dòng)。

-?Transposer:相機(jī)和跟隨目標(biāo)的相對(duì)位置固定,可以設(shè)置緩動(dòng)。

Aim屬性提供了下列算法來(lái)旋轉(zhuǎn)相機(jī)對(duì)準(zhǔn)Look At的目標(biāo):

-?Composer:將目標(biāo)保持在相機(jī)鏡頭內(nèi),可以設(shè)置多種約束

-?Group Composer:將多個(gè)目標(biāo)保持在相機(jī)鏡頭內(nèi)

-?Do Nothing:不旋轉(zhuǎn)相機(jī)

-?POV:根據(jù)用戶的輸入旋轉(zhuǎn)相機(jī)

-?Same As Follow Target:將相機(jī)的旋轉(zhuǎn)和跟隨目標(biāo)的旋轉(zhuǎn)同步

-?Hard Look At:將Look At目標(biāo)固定在鏡頭中心的位置。

組織結(jié)構(gòu):

1.1 Brain和Virtual Camera執(zhí)行過(guò)程

CinemachineBrain每幀通過(guò)VirtualCamera計(jì)算真實(shí)相機(jī)的位置,并同步到真實(shí)相機(jī)上。 真正的數(shù)據(jù)計(jì)算又是通過(guò)VirtualCamera上的流水線來(lái)計(jì)算的。 這是一個(gè)簡(jiǎn)化的流程說(shuō)明,真實(shí)計(jì)算還有相機(jī)切換時(shí)的混合、流水線之外的Extension、和CinemachineCore對(duì)Cinemachine的全局管理等。

1.2 CinemachineBrain詳細(xì)調(diào)用流程 主要可以分為兩個(gè)時(shí)間節(jié)點(diǎn)和三件事。

- 時(shí)間節(jié)點(diǎn)

? ? ?- FixedUpdate之后

? ? ?- LateUpdate

- 三件事

? ? ?- 維護(hù)虛擬相機(jī)的狀態(tài),永遠(yuǎn)在LateUpdate。

? ? ?- 通過(guò)虛擬相機(jī)計(jì)算State,根據(jù)UpdateMethod的設(shè)置,在FixedUpdate之后或LateUpdate。

? ? ?- 將虛擬相機(jī)的State同步到真實(shí)相機(jī)上,根據(jù)BlendUpdateMethod的設(shè)置,在FixedUpdate之后或LateUpdate。

VirtualCamera中State計(jì)算流程

VirtualCamera中 Pipeline Stage

流水線階段


適合讀者

1、從事第三人稱(chēng)3D游戲研發(fā)的策劃、程序、美術(shù)、分鏡師以及獨(dú)立制作人

2、希望提升游戲體驗(yàn)設(shè)計(jì)和實(shí)現(xiàn)能力,系統(tǒng)理解業(yè)務(wù)與技術(shù)如何結(jié)合的開(kāi)發(fā)者

3、具備一定Unity引擎相機(jī)基礎(chǔ)的同學(xué)

4、對(duì)鏡頭控制感興趣的同學(xué)

5、重視3C和提升相機(jī)表現(xiàn)品質(zhì)的群體

你將獲得

1、主流游戲相機(jī)控制的實(shí)現(xiàn)思路和技巧

2、優(yōu)化玩家體驗(yàn)的能力

3、優(yōu)化產(chǎn)品品質(zhì)和表現(xiàn)力的思路

4、運(yùn)行視頻以及Unity工程源碼


更多精彩內(nèi)容,歡迎關(guān)注UWA學(xué)堂:edu.uwa4d.com

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容