国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范)

這篇具有很好參考價(jià)值的文章主要介紹了【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

轉(zhuǎn)載請(qǐng)注明出處:??https://blog.csdn.net/weixin_44013533/article/details/131266126

主要參考:

  1. 官方手冊(cè) Cinemachine Documentation(雖然拉但是權(quán)威,結(jié)合下面的中文版一起食用)
  2. up大智官方手冊(cè)翻譯版(文后附翻譯版pdf)
  3. 知乎:Cinemachine Camera詳細(xì)講解和使用(大智版的簡(jiǎn)化版)
  4. (強(qiáng)烈推薦!?。。〣站up IGBeginner0116

注:本文使用的unity版本是2021.3.25f,cinemachine版本為2.8.9

一 速覽

1.1 cinemachine下載

在package manager安裝cinemachine,并導(dǎo)入samples

【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

安裝cinemachine,并導(dǎo)入samples

1.2 官方示例速覽

參考:Unity新手教程7.2.1-Cinemachine介紹安裝和官方示例
【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

1.3 cinemachine定義

Cinemachine是用于操作Unity攝像機(jī)的一套模塊。Cinemachine解決了跟蹤目標(biāo)、合成、混合和切換鏡頭之間的復(fù)雜數(shù)學(xué)和邏輯問(wèn)題。它旨在顯著減少在開(kāi)發(fā)過(guò)程中耗時(shí)的手動(dòng)操作和腳本修訂次數(shù)。

二 cinemachine詳解

gameobject>cinemachine可以看到不同類型的camera
【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

cinemachine選項(xiàng)

2.1 Virtual Camera

Cinemachine中的Virtual Camera(虛擬相機(jī))可以說(shuō)是最核心的組件。

使用Cinemachine時(shí),你需要記住一個(gè)準(zhǔn)則:場(chǎng)景中一般只有一個(gè)Unity相機(jī)(除了需要制作分屏等效果的時(shí)候),上面掛著CinemachineBrain腳本;其他相機(jī)使用虛擬相機(jī),可以有很多個(gè)。

給場(chǎng)景添加一個(gè)虛擬相機(jī)的流程如下:

  1. 菜單欄,選擇GameObject>Cinemachine > Create Virtual Camera。
    Unity會(huì)在場(chǎng)景中添加一個(gè)GameObject,上面有一個(gè)Virtual Camera組件。如果你的Unity相機(jī)上沒(méi)有CinemachineBrain腳本,Cinemachine也會(huì)自動(dòng)添加CinemachineBrain腳本到Unity相機(jī)上。
  2. 如果相機(jī)需要跟隨物體移動(dòng),指定一個(gè)物體到Follow屬性上。虛擬相機(jī)會(huì)自動(dòng)將Unity相機(jī)的位置和Follow物體保持相對(duì)位置,包括Follow物體移動(dòng)的時(shí)候。
  3. 如果相機(jī)鏡頭需要保持對(duì)準(zhǔn)物體,指定一個(gè)物體到Look At屬性上,這樣相機(jī)鏡頭就會(huì)一直對(duì)準(zhǔn)這個(gè)物體。
  4. 虛擬相機(jī)還有很多屬性,你可以根據(jù)需要設(shè)置,后面會(huì)詳細(xì)講解??梢詾槲恢酶S和鏡頭對(duì)準(zhǔn)設(shè)置不同的算法,通過(guò)調(diào)節(jié)參數(shù)得到不同感覺(jué)的相機(jī)。

Virtual Camera中的Aim,Body和Noise屬性,用來(lái)控制相機(jī)在移動(dòng)、旋轉(zhuǎn)時(shí)的動(dòng)畫(huà)是什么樣子。

2.1.1 virtual camera參數(shù)通覽

【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

變量 解釋
solo 切換虛擬相機(jī)是否處于臨時(shí)活動(dòng)狀態(tài)。使用此屬性可在“游戲”視圖中獲得即時(shí)視覺(jué)反饋,以調(diào)整虛擬相機(jī)。
Status : Live/Standby/Disable 當(dāng)前這個(gè)虛擬相機(jī)的狀態(tài)。
Live狀態(tài)為當(dāng)前該虛擬相機(jī)正在操控Unity真實(shí)相機(jī),并且正在跟蹤其目標(biāo)并每幀更新一次。
Standby為當(dāng)前該虛擬相機(jī)正在跟蹤其目標(biāo)并每幀更新一次,但它沒(méi)有控制任何 Unity 攝像機(jī)。這是在場(chǎng)景中啟用的虛擬攝像機(jī)的狀態(tài),但其優(yōu)先級(jí)可能低于實(shí)時(shí)的虛擬攝像機(jī)。
Disable為該虛擬相機(jī)存在但不被允許使用在當(dāng)前場(chǎng)景,他不能實(shí)時(shí)跟蹤其目標(biāo),不消耗任何系統(tǒng)運(yùn)算能力,但是可以在Timeline中生成并使用,如果參與混合也可使用。
Game Window Guides 選中時(shí),Game窗口會(huì)顯示輔助線,顯示出虛擬相機(jī)的各個(gè)屬性。輔助開(kāi)發(fā)調(diào)整參數(shù)屬性。需要LookAt或者Follow屬性其中一個(gè)以上有設(shè)置物體并選擇相關(guān)算法。
Save During Play 如果選中,運(yùn)行中的虛擬相機(jī)屬性可以被保存下來(lái),退出Play狀態(tài)不會(huì)被重置。
Priority 優(yōu)先級(jí),調(diào)整該虛擬相機(jī)的優(yōu)先級(jí)。CinemachineBrain會(huì)根據(jù)這一項(xiàng)來(lái)選擇LiveCamera同步到UnityCamera中。在Timeline中不生效該選項(xiàng)。
Follow 設(shè)置虛擬相機(jī)想要跟隨的目標(biāo)(Body Target),CinemachineComponent管道中的Body組件將會(huì)引用此目標(biāo)并根據(jù)提供給它的規(guī)則和設(shè)置來(lái)定向 vcam。如果該項(xiàng)為空,則虛擬相機(jī)的坐標(biāo)將會(huì)定義相機(jī)的坐標(biāo)。
Look At 設(shè)置虛擬相機(jī)想要關(guān)注的目標(biāo)(Aim Target),CinemachineComponent管道中的Aim組件會(huì)將引用此目標(biāo)并根據(jù)提供給它的規(guī)則和設(shè)置來(lái)定向 vcam。如果該項(xiàng)為空,則虛擬相機(jī)的變換方向?qū)⒍x相機(jī)的方向。
Standby Update:Never/Always/Round Robin 當(dāng)虛擬相機(jī)處于Standby狀態(tài)時(shí)的更新方式。
Never方式為不更新
Always方式為每一幀都更新
Round Robin為循環(huán)更新,將所有待命的虛擬相機(jī)按照優(yōu)先級(jí)大小來(lái)進(jìn)行每一幀的循環(huán)更新(例如有10個(gè)待命的相機(jī),第一幀更新第一個(gè)相機(jī),第2幀更新第2個(gè)相機(jī),…,第11幀更新第1個(gè)相機(jī),以此類推)
Lens 設(shè)置該虛擬相機(jī)的Lens屬性,當(dāng)該虛擬相機(jī)被激活且為活躍狀態(tài)時(shí),會(huì)將這些參數(shù)傳遞給Unity真實(shí)相機(jī)。其中Dutch為為鏡頭旋轉(zhuǎn)(為屏幕空間)。
Transitions 相機(jī)混合時(shí)的設(shè)置。
Body CinemachineComponent管道中重要組件,重要設(shè)置參數(shù),配合Follow使用
Aim CinemachineComponent管道中重要組件,重要設(shè)置參數(shù),配合LookAt使用
Noise CinemachineComponent管道中重要組件,重要設(shè)置參數(shù),可以實(shí)現(xiàn)模擬相機(jī)抖動(dòng)效果
Extensions 可以給虛擬相機(jī)添加額外的擴(kuò)展。

2.1.2 Status

在任意時(shí)間,每個(gè)Virtual Camera處于下列的狀態(tài)之一:

  • Live活動(dòng)狀態(tài):活動(dòng)狀態(tài)的虛擬相機(jī)會(huì)控制Unity相機(jī)。當(dāng)Cinemachine Brain控制從一個(gè)虛擬相
    機(jī)混合到下一個(gè)虛擬相機(jī)時(shí),兩個(gè)虛擬相機(jī)都處于活動(dòng)狀態(tài)。當(dāng)混合結(jié)束后,只會(huì)有一個(gè)活動(dòng)虛擬
    相機(jī)。
  • Standby待命狀態(tài):處于待命狀態(tài)的虛擬相機(jī)并不控制Unity相機(jī)。但是它仍然跟隨和瞄準(zhǔn)它的目
    標(biāo)物體,并且每幀更新。處于待命狀態(tài)的虛擬相機(jī)的優(yōu)先級(jí)不高于活動(dòng)狀態(tài)的虛擬相機(jī)。
  • Disable禁用狀態(tài):處于禁用狀態(tài)的相機(jī)既不控制Unity相機(jī)也不會(huì)跟隨或瞄準(zhǔn)他的目標(biāo),也不占
    用運(yùn)行資源。想要禁用一個(gè)虛擬相機(jī),只要禁用它的GameObject即可。在Scene窗口中,被禁用
    的虛擬相機(jī)還會(huì)顯示,但是是禁用狀態(tài)。但是有特殊情況被禁用的相機(jī)仍然可以控制Unity相機(jī):
    虛擬相機(jī)正在參與混合或者Timeline控制。

2.1.3 有關(guān)Dutch angle

斜角鏡頭又稱荷蘭式鏡頭(英語(yǔ):Dutch angle)、荷蘭式上下直搖(Dutch tilt)或破水平,是一種劇烈移動(dòng)鏡頭的電影拍攝手法,這種鏡頭手法通常用來(lái)表示迷失、迷惑的氛圍,令畫(huà)面失去平衡感。雖然名為“荷蘭式”,這種手法和荷蘭并無(wú)關(guān)系,而是德國(guó)表現(xiàn)主義電影作品的常用手法,因英文Dutch和德文Deutsch拼寫(xiě)相近而易混淆。具體的做法是在水平方向上傾斜鏡頭,令其與正常視角的水平線成一角度。

【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

PlayStation 4《GT Sport》回放模式游戲攝影中利用斜角鏡頭和慢快門(mén)表現(xiàn)激烈的賽車追逐

圖片來(lái)源:游戲攝影和我的故事:在電子游戲中尋找定格的藝術(shù)

其他效果可參考:

干貨 | 這種鏡頭快絕跡,我得看它最后一眼

Dutch angle很有意思,是電影鏡頭的傾斜角度,明明出自德國(guó)電影手法,為啥被冠以荷蘭dutch,一查還真有淵源,不是簡(jiǎn)單的拼寫(xiě)相近混淆:

Dutch(荷蘭)VS Deutsch(德國(guó))
哪個(gè)名字才是荷蘭的國(guó)名?Holland?還是Netherland?

Google還有一個(gè)有意思的彩蛋,搜索“Dutch angle”會(huì)有意想不到的場(chǎng)面哈哈哈哈。

2.1.4 Standby Update

Controls how often the virtual camera is updated when the virtual camera is not live.
當(dāng)虛擬相機(jī)處于Standby狀態(tài)時(shí)的更新方式。

  • Never方式為不更新
  • Always方式為每一幀都更新
  • Round Robin為循環(huán)更新,將所有待命的虛擬相機(jī)按照優(yōu)先級(jí)大小來(lái)進(jìn)行每一幀的循環(huán)更新(例如有10個(gè)待命的相機(jī),第一幀更新第一個(gè)相機(jī),第2幀更新第2個(gè)相機(jī),…,第11幀更新第1個(gè)相機(jī),以此類推)

2.1.5 Transitions

從其他虛擬相機(jī)轉(zhuǎn)移過(guò)來(lái)影響本虛擬相機(jī)的參數(shù)。
【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

  1. Blend Hints:blend hint 指的是相機(jī)切換的行為具有怎樣的物理(空間)特征
  • none就是對(duì)角度和位置做差值也就是一條線性的切換
  • Spherical Position也就是球形切換,如果look at 這里有對(duì)象的話,那么就以它為球心做一球形的切換,也就是相機(jī)劃過(guò)的路徑大致處于一個(gè)球面上
  • Cylindrical Position 圓柱形切換,如果lookat 這里有對(duì)象的話,那么就以它為中心在水平平面上做圓形切換,在垂直方向上做線性切換,相機(jī)劃過(guò)的路徑大致處于一個(gè)圓柱體的表面上
  • Screen Space Aim When Target 當(dāng)look at 這里的目標(biāo)不一樣時(shí),在屏幕空間之間做切換。這種切換在位置上使用世界坐標(biāo)系,表現(xiàn)出的是普通的線性切換,在角度上則會(huì)根據(jù)兩個(gè)相機(jī)所構(gòu)成的屏幕空間的夾角間做切換。
  1. Inherit Position
    Inhert position表示這個(gè)虛擬相機(jī)被激活時(shí),不是讓相機(jī)移動(dòng)到虛擬相機(jī)的位置,而是虛擬相機(jī)移動(dòng)到相機(jī)的位置。
    在切換虛擬相機(jī)后,相機(jī)的位置并沒(méi)有發(fā)生變化,反而是虛擬相機(jī)的位置變化。目的是使鏡頭切換不那么突兀。

2.2 virtual cameral關(guān)鍵參數(shù)詳解

2.2.1 Body

CinemachineVitualCamera組件中的Body屬性用于設(shè)置相機(jī)移動(dòng)時(shí)使用什么算法。需要首先設(shè)置
Follow屬性。
【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

選擇不同算法,其下有不同參數(shù)配置

Cinemachine包含以下移動(dòng)相機(jī)的算法:

  • Do Nothing: 不移動(dòng)虛擬相機(jī)
  • 3rd Person follow: 將相機(jī)圍繞玩家水平和垂直旋轉(zhuǎn)到跟隨目標(biāo)
  • Framing Transposer: 在屏幕空間,保持相機(jī)和跟隨目標(biāo)的相對(duì)位置,可以設(shè)置阻尼。
  • Hard Lock to Target: 虛擬相機(jī)和跟隨目標(biāo)使用相同位置
  • Orbital Transposer: 相機(jī)和跟隨目標(biāo)的相對(duì)位置是可變的,還能接收用戶的輸入。
  • Tracked Dolly: 相機(jī)沿著預(yù)先設(shè)置的軌道移動(dòng)。
  • Transposer: 相機(jī)和跟隨目標(biāo)的相對(duì)位置固定,可以設(shè)置阻尼。
2.2.1.1 Do Nothing

選中這個(gè)算法時(shí),激活時(shí)Unity相機(jī)會(huì)固定在當(dāng)前虛擬相機(jī)的位置,不會(huì)移動(dòng)。用于固定位置的鏡頭,
也可以通過(guò)自定義腳本來(lái)控制相機(jī)的位置。

2.2.1.2 3rd Person follow

使用Cinemachine Virtual Camera的第三人稱跟隨功能,可以將相機(jī)保持在相對(duì)于跟隨目標(biāo)的恒定位置和距離(受到阻尼控制的影響),跟蹤目標(biāo)的移動(dòng)和旋轉(zhuǎn)。

第三人稱跟隨系統(tǒng)設(shè)置定義了相機(jī)相對(duì)于目標(biāo)的位置和距離。通過(guò)適當(dāng)?shù)募绨蚱圃O(shè)置,這個(gè)系統(tǒng)可以產(chǎn)生第三人稱攝像機(jī)效果,其中角色在畫(huà)面中有一定偏移,并且相機(jī)俯視角色的肩膀。通過(guò)不同的設(shè)置,它還可以產(chǎn)生第一人稱攝像機(jī)效果。

【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

  • Damping 阻尼系數(shù),指攝像機(jī)向x,y,z軸三個(gè)方向移動(dòng)反應(yīng)速度,系數(shù)越小反應(yīng)越快,系數(shù)越大反應(yīng)越慢。官方用rigid和squishier(硬/黏糊柔軟)來(lái)形容。

Rig

  • Shoulder Offset 相對(duì)于跟隨目標(biāo)原點(diǎn)的肩膀支點(diǎn)的位置。這個(gè)偏移量位于目標(biāo)模型空間。
  • Vertical Arm Length 手相對(duì)于肩膀的垂直偏移量。當(dāng)相機(jī)垂直旋轉(zhuǎn)時(shí),arm長(zhǎng)度會(huì)影響跟蹤目標(biāo)在屏幕空間的偏移。
  • Camera Side 明確哪個(gè)位置是相機(jī)的肩膀(0-1,代表left,in-between,right三種狀態(tài))
  • Camera Distance 軸點(diǎn)D(相機(jī))距軸點(diǎn)C(手)的距離

【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

rig參數(shù)實(shí)例,軸點(diǎn)ABCD分別代表原點(diǎn)、肩膀、手、相機(jī)

【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

hhh 官方居然寫(xiě)錯(cuò)單詞

Obtacles :內(nèi)置相機(jī)碰撞解決相關(guān)參數(shù)
第三人稱跟隨組件具有內(nèi)置的碰撞解決系統(tǒng),因此當(dāng)目標(biāo)靠近障礙物時(shí),攝像機(jī)位置會(huì)進(jìn)行調(diào)整,以確保它永遠(yuǎn)不會(huì)位于障礙物內(nèi)部;內(nèi)置的碰撞解決意味著無(wú)論有多少障礙物,攝像機(jī)始終能夠?qū)⒛繕?biāo)保持在視野中。

  • Camera Collision Fiter 相機(jī)碰撞過(guò)濾器,相機(jī)會(huì)自動(dòng)避免阻礙這些layer。
  • Ignore Tag 檢測(cè)忽略的Tag
  • Camera Radius 虛擬相機(jī)會(huì)盡量與遮擋物保持不低于這個(gè)距離。如果你看到由于較大的FOV導(dǎo)致相機(jī)穿透了遮擋物內(nèi)部,可以適當(dāng)增加這個(gè)值。
  • Damping Into/From Collision 鏡頭因躲避障礙調(diào)整位置的阻尼系數(shù)
    【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity
Damping Into Collision為2,Damping From Collision為1的效果(sample AimingRig)

2.2.1.3 Framing Transposer

這節(jié)可以參考b站這個(gè)up的視頻,下面的參數(shù)解釋都很通俗易懂:

  • Unity相機(jī)管理:虛擬相機(jī)旋轉(zhuǎn)Composer屬性詳解【Unity Cinemachine】
  • 俯視角控制器完善:虛擬相機(jī)跟隨Framing Transposer 詳解【Unity Cinemachine】

選中這個(gè)算法時(shí),Cinemachine會(huì)在屏幕空間將相機(jī)和跟隨物體保持固定的相對(duì)位置關(guān)系。只會(huì)改變相機(jī)的位置,不會(huì)改變相機(jī)的旋轉(zhuǎn)。還可以設(shè)置偏移、阻尼、構(gòu)圖規(guī)則等等。

Framing Transposer算法是為2D和正交相機(jī)設(shè)計(jì)的,主要用于這種情況。但是對(duì)于透視相機(jī)和3D環(huán)境也可以使用。

這個(gè)算法工作流程大概是:首先沿著相機(jī)的Z軸移動(dòng)相機(jī)直到設(shè)定的Camera Distance的XY平面上,然后在XY面上平移,直到目標(biāo)物體在屏幕空間到達(dá)期望的位置。 特別注意:使用Framing Transposer時(shí),會(huì)忽略LookAt 目標(biāo)。

也就是說(shuō),當(dāng)我們的屏幕和 follow對(duì)象之間的關(guān)系相對(duì)固定的時(shí)候,我們一般就會(huì)采用這里的 Framing Transposer。所以呢,它通常被用在2D游戲以及正交相機(jī)當(dāng)中。比如我們新建一個(gè) cinemachine中的2D相機(jī),我們會(huì)發(fā)現(xiàn)它其實(shí)就是一個(gè)使用了 Framing Transposer的虛擬相機(jī)。

Framing Transposer參數(shù)詳解

【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

  • Tracked Object Offset:調(diào)整虛擬攝像機(jī)與“跟隨”目標(biāo)的偏移量。
  • Lookahead Time:根據(jù)目標(biāo)的運(yùn)動(dòng),調(diào)整虛擬攝像機(jī)與“跟隨”目標(biāo)的偏移量。Cinemachine預(yù)測(cè)目標(biāo)在在未來(lái)數(shù)秒之內(nèi)到達(dá)的位置(0~1.000秒)。這個(gè)功能對(duì)微動(dòng)的動(dòng)畫(huà)敏感,并且會(huì)放大噪點(diǎn),導(dǎo)致非預(yù)期的相機(jī)抖動(dòng)。如果目標(biāo)運(yùn)動(dòng)時(shí)相機(jī)抖動(dòng)不可接受,降低此屬性可能會(huì)使目標(biāo)動(dòng)畫(huà)更流暢。
  • Lookahead Smoothing:預(yù)測(cè)算法的平滑度。較大的值可以消除抖動(dòng)預(yù)測(cè)但會(huì)使預(yù)測(cè)滯后。
  • Lookahead Ignore Y:如果選中,在預(yù)測(cè)計(jì)算時(shí)會(huì)忽略沿Y軸的移動(dòng)。
  • X/Y/Z Damping:相機(jī)嘗試保持x/y/z軸偏移的阻尼系數(shù)。較小的數(shù)字會(huì)使相機(jī)反應(yīng)更快。較大的數(shù)字會(huì)使相機(jī)的反應(yīng)速度變慢。每個(gè)軸使用不同的設(shè)置可以制造出各種類型相機(jī)的行為。
  • Target Movement Only:如果啟用該選項(xiàng),則阻尼僅適用于目標(biāo)的運(yùn)動(dòng)。相機(jī)旋轉(zhuǎn)變化則無(wú)阻尼效果。
  • Center On Active:選中時(shí),虛擬相機(jī)激活時(shí)會(huì)將鏡頭中心對(duì)準(zhǔn)物體。不選中時(shí),虛擬相機(jī)會(huì)將目標(biāo)物體放置在最近的dead zone邊緣。
    【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity
Center On Active效果

二維參數(shù)
【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

  • Screen X/Y:目標(biāo)的水平/垂直屏幕位置。相機(jī)移動(dòng)的結(jié)果是使目標(biāo)處于此位置。
  • Soft Zone Width/Height:當(dāng)目標(biāo)處于此范圍內(nèi)時(shí),會(huì)水平/垂直移動(dòng)相機(jī),將目標(biāo)移回到Dead Zone中。Damping屬性會(huì)影響攝像機(jī)的運(yùn)動(dòng)速度。
  • Bias X/Y:Soft Zone的中心與目標(biāo)位置的水平/豎直偏移。
  • Dead Zone Width/Height:當(dāng)目標(biāo)在此位置范圍內(nèi)時(shí),不會(huì)水平/垂直移動(dòng)相機(jī)。
  • Unlimited Soft Zone:如果選中,Soft Zone沒(méi)有邊界

三維參數(shù)

  • Camera Distance:沿?cái)z像機(jī)軸與跟隨目標(biāo)保持的距離。
  • Dead Zone Depth:當(dāng)相機(jī)在z軸上與目標(biāo)距離小于這個(gè)值,就不需要調(diào)整相機(jī)在z軸上的位置。(相當(dāng)于二維死區(qū)擴(kuò)充到3維中)
    【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity
camera distance 2,dead zone depth 5時(shí)的效果。(圖中灰色方形長(zhǎng)度為5)
可以看到,z軸方向距離小于dead zone depth時(shí),相機(jī)在z軸并不移動(dòng)(不過(guò)負(fù)距離依舊會(huì)跟隨)

至于參數(shù)為什么取這些范圍,比如damping取0-20,dead zone width/height取0-2,bias取-0.5-0.5,screen x/y取-0.5-1.5,damping和dead zone為啥有關(guān)聯(lián),這些問(wèn)題目前沒(méi)找到參考,以后有緣再研究。

2.2.1.4 Hard Lock to Target

Unity相機(jī)保持和目標(biāo)位置一致。換句話說(shuō),目標(biāo)充當(dāng)虛擬相機(jī)的固定點(diǎn)。
【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

2.2.1.5 Transposer

參考:Unity相機(jī)管理:相機(jī)跟隨之Transposer屬性詳解【Unity Cinemachine】

tranposer 的意思是虛擬相機(jī)將在某個(gè)固定的偏移或距離上跟隨自標(biāo)移動(dòng),這個(gè)固定的偏移就是下面的follow offset。
【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity
默認(rèn)offset值是(0, 0, -10),也就是虛擬相機(jī)將在跟隨的過(guò)程中盡量處于相對(duì)于follow目標(biāo)身后10米的位置(damping延緩效果)。至于這個(gè)所謂的身后10米,指的是follow目標(biāo)本地坐標(biāo)系的身后10米,還是世界坐標(biāo)系下的身后10米,則要看下面的binding mode參數(shù)。

Binding Mode綁定模式:從目標(biāo)確定相機(jī)位置時(shí)使用的坐標(biāo)空間。
涉及兩個(gè)知識(shí)點(diǎn):

  1. local space與global space 本地坐標(biāo)系軸和世界坐標(biāo)系軸
    【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity
對(duì)象旋轉(zhuǎn)造成的本地坐標(biāo)系軸與世界坐標(biāo)系軸方向不一致(可通過(guò)toggle tool rotation欄切換查看)

  1. Pitch Axis,Roll Axis,Yaw Axis三種旋轉(zhuǎn)軸
    【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity
Pitch Axis:俯仰軸
Roll Axis:翻轉(zhuǎn)軸
Yaw Axis:航向軸

Binding Mode 詳解:

  • Lock To Target On Assign:
    它表示虛擬相機(jī)會(huì)鎖定自己和目標(biāo)之間的距離,鎖定發(fā)生在這個(gè)虛擬相機(jī)和follow的對(duì)象建立關(guān)系的時(shí)候即assign,此時(shí)虛擬相機(jī)會(huì)出現(xiàn)在目標(biāo)本地坐標(biāo)系下的offset位置。
    on assign指的又是什么時(shí)候呢?在非游戲狀態(tài)下只要follow這里有對(duì)象,那就一直是所謂的on asssign狀態(tài)。
    游戲狀態(tài)下,只有給follow 賦值或激活相機(jī),才是on assign狀態(tài),此后他們之間的位置關(guān)系就鎖定了,對(duì)象的旋轉(zhuǎn)等操作并不影響相機(jī)位置。
    【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity
  • Lock To Target With World Up:鎖定與對(duì)象的距離,并能繞對(duì)象的世界坐標(biāo)系Y軸旋轉(zhuǎn)相機(jī)

【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

  • Lock To Target No Roll:鎖定與對(duì)象的距離,并能繞對(duì)象的本地坐標(biāo)系Y軸旋轉(zhuǎn)相機(jī)
  • Lock To Target:本地空間,鎖定到目標(biāo)物體

【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

  • World Space:offset方位相對(duì)于對(duì)象的世界坐標(biāo)系,且相機(jī)不會(huì)繞軸旋轉(zhuǎn)
  • Simple Follow With World Up:相機(jī)不會(huì)繞對(duì)象的任何一個(gè)軸旋轉(zhuǎn),且盡量不會(huì)在橫向移動(dòng),也就是盡量不會(huì)沿著x軸的方向做移動(dòng)

對(duì)比下繞本地坐標(biāo)系軸旋轉(zhuǎn)和對(duì)象世界坐標(biāo)系軸旋轉(zhuǎn)的區(qū)別:
【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

2.2.1.6 Orbital Transposer

參考:Unity中如何為俯視角色控制器制作相機(jī)行為并讓角色相對(duì)于相機(jī)移動(dòng)【Cinemachine之Orbital Transposer】

【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity
【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity
我們知道body屬性是用來(lái)控制相機(jī)的移動(dòng)的,那么這個(gè)orbital transposer,就會(huì)限制相機(jī)在這個(gè)紅色圓環(huán)上移動(dòng)。

參數(shù)詳解:

  • Follow offset 決定了紅圈的相關(guān)屬性,y表示了這個(gè)紅色圓環(huán)相對(duì)于追蹤目標(biāo)的高度,z表示了紅色圓環(huán)的半徑,x則表示相機(jī)在這個(gè)圓環(huán)的切線上的偏移。

  • Binding Mode:決定offset所參考的坐標(biāo)空間以及是否考慮對(duì)象三個(gè)旋轉(zhuǎn)軸,與Transposer算法相同(參看上一小節(jié))

  • Recenter To Target Heading:接收不到用戶輸入時(shí),自動(dòng)歸位。

    【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

    • Enable:是否啟用
    • Wait Time:等待延遲時(shí)間,用戶無(wú)輸入后多長(zhǎng)時(shí)間重新自動(dòng)歸位。
    • Recentering Time:重新自動(dòng)歸位過(guò)程花費(fèi)的時(shí)間
  • Heading
    【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

    • Bias:相機(jī)圍繞軌道旋轉(zhuǎn)的偏移(0為正后方,±180為正前方)

    • Definition:有四個(gè)參數(shù)Position Delta、Velocity、Target Forward、World Forward。官方定義如下:Choose Position Delta to calculate heading based on the difference in the position of the target from the last update and the current frame. Choose Velocity to use the velocity of the Rigidbody of the target. If the target has no Rigidbody component, reverts to Position Delta. Choose Target Forward to use the target’s local Forward axis as the heading. Choose World Forward to use a constant world-space Forward as heading.
      很難理解,根據(jù)我的實(shí)驗(yàn),這里heading不能理解為相機(jī)的旋轉(zhuǎn)朝向,因?yàn)檫@是Aim參數(shù)決定的,Body一定是確定position的參數(shù)。上面binding mode和offset是確定圓環(huán)的大小、方位和相機(jī)在圓環(huán)切線偏移的屬性,這里heading參數(shù)我理解是確定相機(jī)在圓環(huán)的具體位置,翻譯成朝向的話就是指朝向follow對(duì)象的什么位置,或者叫航向?Position Delta和Velocity是通過(guò)對(duì)象位移和速度決定相機(jī)最終停留位置,Target Forward是讓相機(jī)處于follow對(duì)象本地坐標(biāo)軸正后方(Bia為0時(shí)),World Forward是讓相機(jī)處于follow對(duì)象世界坐標(biāo)軸正后方(Bia為0時(shí))。但注意,當(dāng)binding mode為L(zhǎng)ock to Target(包括on assign、no roll with world up),heading選World Forward效果和Target Forward是一樣的,我不知道這是官方的bug還是就是這么設(shè)置的,還是我理解還不到位。

      下面分別解釋(注:下列加了aim屬性更新相機(jī)的rotation方便game窗口追蹤follow對(duì)象)

      1. Position Delta和Velocity類似,通過(guò)follow對(duì)象位移或速度確定相機(jī)最終歸位。bias為0時(shí),相機(jī)始終處于follow對(duì)象移動(dòng)方向的后方。
        【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity
        其中Velocity filter strength目的就是通過(guò)設(shè)置速度采樣窗口大小,來(lái)篩選掉一些不規(guī)則的擾動(dòng),讓相機(jī)的移動(dòng)更加的平滑。如下圖可以看到,filter strength為0時(shí),相機(jī)對(duì)follow對(duì)象微動(dòng)反應(yīng)依舊靈敏;filter strength為10時(shí),相機(jī)對(duì)follow對(duì)象微動(dòng)反應(yīng)不靈敏。
        【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity
      2. Target Forward / World Forward 會(huì)讓相機(jī)保持在軌道的「follow對(duì)象本地 / 世界坐標(biāo)軸后方(-z軸)」(bias為0時(shí))
        【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity
  • X Axis: 相機(jī)在軌道位置控制。此處的設(shè)置控制攝像機(jī)響應(yīng)玩家輸入的行為。具體控制諸如相機(jī)在圓環(huán)上的范圍(range),相機(jī)在圓環(huán)上移動(dòng)速度/加速度等。

2.2.1.7 Tracked Dolly

這個(gè)算法可以讓相機(jī)沿預(yù)定路徑移動(dòng)。使用Path Position屬性來(lái)指定將虛擬相機(jī)放置在路徑上的位
置。使用Auto-Dolly模式可將虛擬相機(jī)移動(dòng)到路徑上最接近Follow目標(biāo)的位置。
【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

  • Path:相機(jī)移動(dòng)的路徑。此屬性必須引用CinemachinePath或Cinemachine Smooth Path對(duì)象。

  • Path Position:沿路徑放置相機(jī)的位置。直接給這個(gè)屬性作動(dòng)畫(huà)或啟用Auto-Dolly。這個(gè)值以Position Units指定的單位為單位。

  • Position Units:路徑位置的度量單位。

    • Path Units: 沿路徑使用路徑點(diǎn)。0表示路徑上的第一個(gè)路徑點(diǎn),1表示第二個(gè)路徑點(diǎn),依此類推。
    • Distance: 沿路徑使用距離。根據(jù)路徑的Resolution屬性對(duì)路徑進(jìn)行采樣。Cinemachine創(chuàng)建一個(gè)距離查找表,并將其存儲(chǔ)在內(nèi)部緩存中。
    • Normalized: 使用路徑的開(kāi)頭和結(jié)尾。值0表示路徑的起點(diǎn),值1表示路徑的終點(diǎn)。
  • Path Offset: 相機(jī)相對(duì)于路徑的位置。X 垂直于路徑,Y 向上,Z 平行于路徑。使用此屬性可使相機(jī)偏離路徑本身

  • X ,Y,Z Damping: 相機(jī)嘗試保持 x ,y,z軸偏移的響應(yīng)程度。小數(shù)字使相機(jī)更靈敏。數(shù)字越大,相機(jī)響應(yīng)越慢。每個(gè)軸使用不同的設(shè)置可以產(chǎn)生廣泛的相機(jī)行為。

  • Camera Up: 如何為虛擬攝像機(jī)設(shè)置向上矢量。這會(huì)影響屏幕構(gòu)圖,因?yàn)橄鄼C(jī) Aim 算法嘗試尊重向上方向。

    • Default 不修改虛擬相機(jī)的向上方向,而是使用Cinemachine Brain中的World Up Override屬性。
    • Path 在當(dāng)前點(diǎn)使用路徑的向上方向。
    • Path No Roll 在當(dāng)前點(diǎn)使用路徑的向上方向,但Roll設(shè)置為零。
    • Follow Target 使用Follow目標(biāo)的向上向量。
    • Follow Target No Roll 使用Follow目標(biāo)的變換中的向上向量,但Roll為零。
  • Auto Dolly: 控制自動(dòng)軌道位置選擇方式。要使用此功能,必須設(shè)置Follow目標(biāo)。

Path
Cinemachine中有兩種Dolly Path組件:

  • CinemachinePath組件:每個(gè)路徑點(diǎn)都可以設(shè)置位置、切線和翻轉(zhuǎn)角度,可以最大程度控制路徑。但是如果切線設(shè)置的不合理,相機(jī)在路徑上運(yùn)動(dòng)時(shí)可能會(huì)有不穩(wěn)定的現(xiàn)象。
  • CinemachineSmoothPath組件:每個(gè)路徑點(diǎn)都可以設(shè)置位置和翻轉(zhuǎn)角度。組件中會(huì)使用Bezier算法來(lái)推算路徑點(diǎn)之間的位置。雖然SmoothPath不能完全控制路徑,但是整個(gè)路徑會(huì)更平滑和連續(xù)。推薦優(yōu)先使用??梢员苊獬霈F(xiàn)盡管路徑位置始終是平滑連續(xù)的,但沿路徑設(shè)置動(dòng)畫(huà)時(shí)仍然可能會(huì)產(chǎn)生不穩(wěn)定的現(xiàn)象。
    【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity
    效果:

【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity


2.2.2 Aim

CinemachineVitualCamera組件中的Anim屬性用于設(shè)置相機(jī)旋轉(zhuǎn)時(shí)使用什么算法。需要先設(shè)置Look At屬性。
Aim包含以下旋轉(zhuǎn)算法:

  • Do Nothing: 不控制相機(jī)的旋轉(zhuǎn)。
  • Composer: 保持目標(biāo)物體在鏡頭內(nèi)
  • Group Composer: 保持多個(gè)目標(biāo)在鏡頭內(nèi)
  • Hard Look At: 保持目標(biāo)在鏡頭的中心
  • POV: 基于玩家的輸入旋轉(zhuǎn)相機(jī)
  • Same As Follow Target: 相機(jī)的旋轉(zhuǎn)和目標(biāo)的旋轉(zhuǎn)保持同步

POV比較有意思,參數(shù)都很好懂,這個(gè)相機(jī)視角非常適合3D自由視角游戲游戲
【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity
Recenter Target 參數(shù)說(shuō)一下(選POV時(shí)其實(shí)也能不選look at,但會(huì)影響歸位rencentering)
- None 相機(jī)歸位時(shí)朝向世界坐標(biāo)軸forward軸
- Follow Target Forward :相機(jī)歸位時(shí)朝向與follow對(duì)象本地坐標(biāo)系forward軸一致(無(wú)follow對(duì)象效果同None)
- Look At Target Forward :相機(jī)歸位時(shí)朝向與look at對(duì)象本地坐標(biāo)系forward軸一致(無(wú)look at對(duì)象效果同None)
【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

因?yàn)閎ody選擇framing Transposer,移動(dòng)視角和視角自動(dòng)歸時(shí)都會(huì)自動(dòng)移動(dòng)相機(jī)


2.2.3 Noise

使用Noise屬性可以模擬相機(jī)的晃動(dòng)。Cinemachine中在帶了一個(gè)Basic Multi Channel Perlin算法,可
以給虛擬相機(jī)的運(yùn)動(dòng)添加柏林噪聲。柏林噪音是一種隨機(jī)算法技術(shù),可以給相機(jī)添加比較自然的隨機(jī)運(yùn)
動(dòng)。
【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

添加噪聲可以模擬手持相機(jī)效果,以及角色受傷、鏡頭震動(dòng)等效果

2.2.4 extension簡(jiǎn)覽

詳情參考:Extensions章節(jié)

Cinemachine的虛擬相機(jī)可以添加很多擴(kuò)展,通過(guò)擴(kuò)展來(lái)獲得更強(qiáng)的能力。比如Collider擴(kuò)展可以讓相機(jī)被其他物體遮擋時(shí),自動(dòng)避開(kāi)遮擋的物體。

Cinemachine內(nèi)置了幾種擴(kuò)展,你也可以通過(guò)繼承 CinemachineExtension 類來(lái)實(shí)現(xiàn)你自己的擴(kuò)展。
【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

  • CustomLockCameraY : Cinemachine虛擬相機(jī)的附加模塊,用于鎖定攝影機(jī)的Y坐標(biāo)

  • CinemachineFadeOutNearbyObjects : 一個(gè)用于控制淡出著色器的Cinemachine Virtual Camera示例附加模塊

  • CinemachineCameraOffset :可為攝像機(jī)添加最終偏移量

  • CinemachineRecomposer :可對(duì)攝像機(jī)組成進(jìn)行最終調(diào)整。 它旨在用于時(shí)間軸上下文,您希望在其中手動(dòng)調(diào)整程序或記錄的相機(jī)瞄準(zhǔn)的輸出。

  • Cinemachine3rdPersonAim :強(qiáng)制 LookAt 指向屏幕中心,消除噪音和其他校正。 這對(duì)于需要始終精確瞄準(zhǔn)的第三人稱風(fēng)格瞄準(zhǔn)相機(jī)非常有用,即使存在位置或旋轉(zhuǎn)噪聲也是如此。

  • CinemachineCollider :用于對(duì)虛擬攝像機(jī)的最終位置進(jìn)行后處理。 根據(jù)提供的設(shè)置,碰撞器將嘗試通過(guò)遠(yuǎn)離會(huì)阻礙視線的物體來(lái)保持與虛擬相機(jī)的 LookAt 目標(biāo)的視線。該項(xiàng)可以利用在很多游戲場(chǎng)景。

    碰撞器使用物理射線投射器。因此,Cinemachine Collider 要求潛在障礙物具有碰撞體體積。 此要求存在性能成本。 如果此成本在您的游戲中過(guò)高,請(qǐng)考慮以不同方式實(shí)現(xiàn)此功能

  • CinemachineConfiner :這個(gè)擴(kuò)展可以將相機(jī)的最終位置限定在一個(gè)區(qū)域內(nèi)。Confier可以在2D或3D模式下運(yùn)行。Mode屬性影響其接受的邊界形狀的種類。在3D模式下,是一個(gè)空間的范圍,需要考慮深度;在2D模式下,是一個(gè)平面的范圍,不必考慮深度。

  • CinemachineConfiner2D :使用Cinemachine Confiner 2D擴(kuò)展來(lái)限制相機(jī)的位置,以便屏幕邊緣保持在2D多邊形定義的形狀內(nèi)。這適用于正交或透視攝影機(jī),前提是攝影機(jī)的前向向量保持平行于邊界形狀的法線(即攝影機(jī)正朝多邊形看,而不是斜朝多邊形看)。

  • CinemachineFollowZoom :調(diào)整相機(jī)的FOV來(lái)保持物體在屏幕上的尺寸。

  • CinemachineStoryboard :在屏幕上顯示一張圖片。

  • CinemachineImpulseListener :當(dāng)你給一個(gè)虛擬相機(jī)添加Impulse Listener擴(kuò)展時(shí),這個(gè)虛擬相機(jī)就能對(duì)震動(dòng)做出反應(yīng),最直觀的就是相機(jī)晃動(dòng)。 該組件需要配合Cinemachine Impulse Listener腳本組件一起使用,可以很快的得出物體振動(dòng)引發(fā)的相機(jī)顫抖特效。

  • CinemachinePostProcessing:使用Cinemachine后處理擴(kuò)展將后處理V2配置文件連接到虛擬相機(jī)。

2.3 Cinemachine Brain

參考:Unity相機(jī)管理:Cinemachine Brain屬性詳解

添加任意虛擬相機(jī)后,main camera會(huì)多出一個(gè)Cinemachine Brain組件(注意main camera的transform等屬性此時(shí)無(wú)法被手動(dòng)修改,將由Cinemachine Brain讀取場(chǎng)景中虛擬相機(jī)的配置,并以此配置來(lái)控制真實(shí)相機(jī)的行為)
【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity
Cinemachine Brain是UnityCamera上的一個(gè)組件,相當(dāng)于"大腦",可以在每一幀來(lái)監(jiān)控并計(jì)算場(chǎng)景中所有活動(dòng)的Virtual Cameras的狀態(tài)(位置,方向等),同步選擇其他具有相同優(yōu)先級(jí)的Virtual Cameras中或切換具有更高優(yōu)先級(jí)的Virtual Camera甚至進(jìn)行Virtual Cameras之間的混合(切換)。Virtual Cameras的優(yōu)先級(jí)可以通過(guò)手動(dòng)提前配置或者編寫(xiě)游戲邏輯來(lái)進(jìn)行操控。

2.3.1 Cinemachine Brain 參數(shù)詳解

  • Live Camera 當(dāng)前激活的虛擬相機(jī)(真實(shí)相機(jī)使用此虛擬相機(jī)的配置控制相機(jī)的行為)

  • Live Blend game play狀態(tài)下,顯示相機(jī)切換狀態(tài)
    【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

  • Show Debug Text game窗口顯示所使用的相機(jī)名稱和相機(jī)切換狀態(tài)

  • Show Camera Frustum 默認(rèn)相機(jī)只有選中相機(jī)對(duì)象,才會(huì)顯示相機(jī)視錐體,但如果勾選“Show Camera Frustum” 無(wú)論選中什么對(duì)象,都能顯示live 相機(jī)的視錐體。

  • Ignore time scale:表示相機(jī)的行為是否受時(shí)間縮放值的影響

  • World Up Override:用拖入的游戲?qū)ο蟮膟軸來(lái)代替相機(jī)重置時(shí)所用的默認(rèn)世界坐標(biāo)系下的y軸

相機(jī)在運(yùn)鏡的時(shí)候會(huì)有一個(gè)“上方”的概念,默認(rèn)情況下這個(gè)“上方”就是世界坐標(biāo)系下的“上”,也就是世界坐標(biāo)系下y軸的方向。這個(gè)“上方”的概念是干什么用的呢,在相機(jī)發(fā)生旋轉(zhuǎn)的時(shí)候如果相機(jī)本地坐標(biāo)下的y軸,和世界坐標(biāo)下的y軸之間的夾角大于90度時(shí),相機(jī)會(huì)重設(shè)自己的方向,讓本地的y軸和世界坐標(biāo)系y軸之間的夾角小于90度(如果夾角大于九十度會(huì)出現(xiàn)上下顛倒的畫(huà)面所以要始終保持小于90度的邏輯)。

有時(shí)候我們不希望這種視角的自動(dòng)調(diào)整,按照unity給出的說(shuō)法,在俯視角游戲中這種情況最為明顯,那么我們就可以在這里放置一個(gè)游戲?qū)ο?,使用這個(gè)游戲?qū)ο蟮膟軸來(lái)代替相機(jī)默認(rèn)的“上方”,也就是用這個(gè)游戲?qū)ο蟮膟軸來(lái)代替世界坐標(biāo)系下的y軸。

【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity??????【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

無(wú)worldUp override效果 (有突兀鏡頭切換)?????????????????????????????????有worldUp override效果(有鏡頭向下顛倒)

  • Update Method :指的是何時(shí)更新虛擬相機(jī)的位置和旋轉(zhuǎn)。fixed update就是虛擬相機(jī)行為與物理引擎同步;late update就是虛擬相機(jī)行為與畫(huà)面繪制同步;smart update就是 unity 會(huì)根據(jù)實(shí)際情況,幫我們選擇如何進(jìn)行同步;manual update就是我們自己編寫(xiě)代碼,控制相機(jī)的行為的同步時(shí)間。推薦默認(rèn)選擇SmartUpdate。

  • Blend Update Method :兩個(gè)虛擬相機(jī)的切換行為與什么同步。這里只有與物理引擎同步(Fixed Update)和與畫(huà)面繪制同步(Late Update)。

  • Default Blend :虛擬相機(jī)之間的切換模式,可以選擇慢速切出切入(Ease In Out)、快速切入(Hard In)、勻速切換(Linear)等

  • Custom Blends :建立資源文件,為不同相機(jī)間定義不同切換方式
    【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范),unity,c#,學(xué)習(xí),筆記,unity

  • Camera Cut Event 在這個(gè)列表上的事件只要當(dāng)前場(chǎng)景任何一個(gè)虛擬相機(jī)激活并且沒(méi)有混合時(shí)就會(huì)觸發(fā)

  • Camera Activated Event 這個(gè)列表上的時(shí)間只要任何一個(gè)虛擬相機(jī)激活。如果涉及混合,則事件將在混合的第一幀上觸發(fā)

三 總結(jié)

本篇用了很長(zhǎng)的篇幅學(xué)習(xí)了cinemachine的基礎(chǔ)知識(shí),詳細(xì)了解了虛擬相機(jī)的各個(gè)參數(shù),包括body、aim、cinemachine brain等,著重學(xué)習(xí)了相機(jī)移動(dòng)和旋轉(zhuǎn)的各種算法(Do nothing、3rd Person Follow、Framing Transposer、Hard Lock To Target、Orbital Transposer、Tracked Dolly、Transposer),也了解了一些其他知識(shí)點(diǎn)如Binding Mode中的roll yaw pitch等。利用現(xiàn)在所學(xué)的知識(shí),已經(jīng)能夠很方便地實(shí)現(xiàn)第一/第三人稱視角、2d相機(jī)跟隨、3d自由視角等各種相機(jī)操作。

下一步將繼續(xù)學(xué)習(xí)多相機(jī)系統(tǒng),以及相機(jī)切換等行為,結(jié)合官方案例學(xué)習(xí)如何在不同游戲場(chǎng)景利用cinemachine這個(gè)強(qiáng)大的插件。

四 感想

  1. 對(duì)比官方手冊(cè)和大佬們的博客視頻,我發(fā)現(xiàn)官方手冊(cè)有很多解釋不夠清晰的地方,但如果有前輩深刻體會(huì)后,簡(jiǎn)單一解釋就很好理解了。(官方手冊(cè)太拉,解釋不到位不說(shuō),還不全。而且還有賣(mài)弄嫌疑,遣詞造句不夠通俗易懂,生怕別人理解了的感覺(jué)。。。)

  2. 所以后續(xù)學(xué)習(xí)要注意找前輩們的視頻和博客,真的很能節(jié)省時(shí)間抓住精髓。其實(shí)前輩與前輩之間還是有差距的,大佬總能用自己的理解抓住事物的本質(zhì),幾句話講透。而有些前輩只能人云亦云,充當(dāng)個(gè)翻譯,不求甚解,我要以此為戒。

  3. 學(xué)習(xí)一個(gè)章節(jié)第一步先看要學(xué)什么東西,確定哪些是重點(diǎn),然后搜集已有博客、視頻、官網(wǎng)手冊(cè),確定筆記整體思路和大綱,每一要點(diǎn)依舊按照先面后點(diǎn)的思想,先確定某個(gè)知識(shí)點(diǎn)是干什么的,然后才深入學(xué)習(xí)具體知識(shí)。
    具體知識(shí)點(diǎn)的漸進(jìn)學(xué)習(xí)有幾個(gè)層次,第一層熟悉這是什么,以及怎么用;第二層為什么這么用,什么原理;第三層就是如何更好地運(yùn)用,有什么技巧、經(jīng)驗(yàn)等。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-677950.html

到了這里,關(guān)于【學(xué)習(xí)筆記】Unity基礎(chǔ)(九)【cinemachine基礎(chǔ)(body、aim參數(shù)詳解)】(多fig動(dòng)圖示范)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Unity學(xué)習(xí)筆記】DOTween(1)基礎(chǔ)介紹

    【Unity學(xué)習(xí)筆記】DOTween(1)基礎(chǔ)介紹

    本文中大部分內(nèi)容學(xué)習(xí)來(lái)自DOTween官方文檔 DOTween是一個(gè)動(dòng)畫(huà)插件,Tween是補(bǔ)間的意思。這個(gè)插件以下簡(jiǎn)稱DOT,DOT很方便使用,只需要記住四個(gè)類,三個(gè)方法: 四個(gè)類 Tweener Sequence Tween Nested Tween 三個(gè)方法 DO Set On DOT中的方法名是很統(tǒng)一的,因此我們從前綴就可以大概知道這個(gè)方

    2024年02月11日
    瀏覽(17)
  • Unity Timeline學(xué)習(xí)筆記(3) - SignalTrack信號(hào)軌道和自定義帶參數(shù)的Marker信號(hào)和軌道

    Unity Timeline學(xué)習(xí)筆記(3) - SignalTrack信號(hào)軌道和自定義帶參數(shù)的Marker信號(hào)和軌道

    信號(hào)軌道,顧名思義就是運(yùn)行到某處發(fā)送一個(gè)信號(hào)。 普通用法就是沒(méi)有任何封裝的,個(gè)人感覺(jué)特別難用,但是有必要理解一下工作原理。 添加信號(hào) 我們添加一個(gè)信號(hào)資源 生成后可以看到資源文件,這個(gè)是可以拖到SignalTrack上的。 我們?cè)赥imeline上添加兩個(gè)信號(hào)軌道,并拖動(dòng)信

    2024年04月13日
    瀏覽(55)
  • Unity之Cinemachine教程

    Unity之Cinemachine教程

    Cinemachine是Unity引擎的一個(gè)高級(jí)相機(jī)系統(tǒng),旨在簡(jiǎn)化和改善游戲中的相機(jī)管理。Cinemachine提供了一組強(qiáng)大而靈活的工具,可用于創(chuàng)建令人印象深刻的視覺(jué)效果,使開(kāi)發(fā)人員能夠更輕松地掌控游戲中的攝像機(jī)行為。 主要功能和特性包括: 1.虛擬攝像機(jī)系統(tǒng): Cinemachine引入了虛擬攝

    2024年01月24日
    瀏覽(16)
  • 學(xué)習(xí)筆記:C++環(huán)境下OpenCV的findContours函數(shù)的參數(shù)詳解及優(yōu)化

    這個(gè)是Visual Studio2019版本在OpenCV環(huán)境配置好后所顯示的 6個(gè)參數(shù) ,也即為全部參數(shù) 但是, 常用參數(shù)僅有四個(gè) (參見(jiàn)程序里的第二行注釋) ?參數(shù)1? ? image? : 單通道圖像矩陣。待提取輪廓的圖像,可以是灰度圖, 常用的是二值圖 (C++中可選擇使用Canny,拉普拉斯等邊緣檢測(cè)算法

    2024年02月07日
    瀏覽(18)
  • Unity Cinemachine制作簡(jiǎn)單震屏

    Unity Cinemachine制作簡(jiǎn)單震屏

    導(dǎo)入和基本使用之前我有寫(xiě)過(guò)一篇,今天直接進(jìn)入設(shè)置.階段 1.進(jìn)入CinemachineVirtualCamera組件 2.選擇Noise ,選擇? Basic Multi Channel Perlin 3.Noise Profile 選擇自己喜歡的震動(dòng)模式(可以挨個(gè)自己測(cè)試) 4. 重點(diǎn)是AmplitudeGain和FrequencyGain.前面是允許幾個(gè)震動(dòng),設(shè)置為0不會(huì)震動(dòng),后面數(shù)值控制震動(dòng)幅

    2024年02月16日
    瀏覽(13)
  • 【學(xué)習(xí)筆記】Unity基礎(chǔ)(十)【Unity界面之Scene窗口工具欄】

    【學(xué)習(xí)筆記】Unity基礎(chǔ)(十)【Unity界面之Scene窗口工具欄】

    轉(zhuǎn)載請(qǐng)注明出處:??https://blog.csdn.net/weixin_44013533/article/details/131707918 主要參考: 官方手冊(cè) Scene視圖 注:本文使用的unity版本是2021.3.25f Scene 視圖是正在創(chuàng)建的世界的交互式視圖。Scene 視圖可用于選擇和定位景物、角色、攝像機(jī)、光源和所有其他類型的游戲?qū)ο蟆?本節(jié)將詳細(xì)

    2024年02月06日
    瀏覽(78)
  • unity cinemachine相機(jī) (案例 跟隨角色移動(dòng))

    unity cinemachine相機(jī) (案例 跟隨角色移動(dòng))

    會(huì)在maincamera中生成一個(gè)組件cinemachineBrain 只能通過(guò)虛擬相機(jī)操控?主相機(jī) 在固定的地方 默認(rèn)的模式 20 把playere拖進(jìn)來(lái) 把playere拖進(jìn)來(lái) body改為世界坐標(biāo)

    2024年04月27日
    瀏覽(24)
  • unity相機(jī)跟隨和相機(jī)邊界(Cinemachine)

    unity相機(jī)跟隨和相機(jī)邊界(Cinemachine)

    1.在 Unity 編輯器中打開(kāi) Package Manager(菜單:Window Package Manager) 2.找到 Cinemachine 條目,然后單擊右下角的 Install。 1.要開(kāi)始使用 Cinemachine,你需要在頂部菜單欄上選擇 Cinemachine Create 2D Camera 條目,從而將 Cinemachine 2D 攝像機(jī)添加到場(chǎng)景中。 2.此時(shí)將創(chuàng)建一個(gè)名為 CM vcam1 的新游戲

    2024年02月11日
    瀏覽(32)
  • 【學(xué)習(xí)筆記】Unity基礎(chǔ)(七)【uGUI基礎(chǔ)、利用render Texture實(shí)現(xiàn)小地圖功能】

    【學(xué)習(xí)筆記】Unity基礎(chǔ)(七)【uGUI基礎(chǔ)、利用render Texture實(shí)現(xiàn)小地圖功能】

    轉(zhuǎn)載請(qǐng)注明出處:??https://blog.csdn.net/weixin_44013533/article/details/130808689 本篇基本是大綱性質(zhì),參考價(jià)值不大,只有最后一小節(jié)“利用render Texture實(shí)現(xiàn)小地圖功能”花了點(diǎn)時(shí)間,可以看看,不過(guò)也用到了上面的canvas、UI image等知識(shí)、以及input等腳本功能,也算一個(gè)小練手吧 倒是

    2024年02月08日
    瀏覽(24)
  • Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心

    Unity學(xué)習(xí)筆記(零基礎(chǔ)到就業(yè))|Chapter03:C#核心

    這系列的學(xué)習(xí)筆記主要是根據(jù)唐老獅的unity實(shí)戰(zhàn)路線課程整理的,加入了自己的一些補(bǔ)充和理解,該課程涉及的知識(shí)內(nèi)容非常多,我并未學(xué)完,而是根據(jù)就業(yè)需求挑選學(xué)習(xí)的,也對(duì)后續(xù)框架部分進(jìn)行了一些修改,希望能通過(guò)整理并時(shí)常閱讀這些筆記鞏固開(kāi)發(fā)知識(shí),也希望能跟

    2024年02月20日
    瀏覽(91)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包