Cinemachine Extensions

擴展

擴展組件可以增強虛擬相機的行爲,例如,Collider擴展組件可用防止相機進入碰撞體裏面,從而導致丟失目標視野。Cinemachine包含各種擴展。通過派生CinemachineExtension類來創建您自己的自定義擴展。

如果要給虛擬相機添加一個擴展:

  • 在Scene窗口或Hierarchy窗口中選擇你的虛擬相機。
  • 在檢查器窗口,使用Add Extension下拉菜單選擇一個擴展。

避免碰撞和評估拍攝質量

當角色和物體在複雜場景中移動時,場景中的障礙物有時會出現在相機和目標之間。類似地,你可能需要將相機移動到場景中另一個遊戲對象已經佔據的位置。

Cinemachine提供了擴展來處理這些情況:

  • Cinemachine Collider
  • Cinemachine Confiner

Cinemachine Collider

Cinemachine Collider是Cinemachine虛擬相機的擴展。它對虛擬相機的最終位置進行後期處理,以試圖保持Loot At目標在虛擬相機的視野內。它通過遠離阻礙視圖的遊戲對象來做到這一點。

添加一個Cinemachine Collider擴展到Cinemachine虛擬相機,可以完成以下幾個功能:

  • 將相機遠離場景中的障礙物。
  • 把相機放在虛擬相機和它的觀察目標之間的障礙物前面。
  • 評估拍攝質量。拍攝質量由虛擬相機的位置和它理想位置之間距離,虛擬相機和目標位置的距離,以及虛擬相機和阻礙視野對象間的距離決定。其他模塊也用了拍攝質量,比如Clear Shot。

Collider使用了Physics Raycaster。因此,Cinemachine Collider要求障礙具有碰撞體。這種需求需要性能成本。如果這個成本在你的遊戲中難以承受,那就考慮用不同的方式來實現這個功能。

屬性   功能
Collide Against   指定導致碰撞的物體處於哪些層,它會忽略不在所選層中的遊戲對象。
Minimum Distance From Target   當障礙物和目標的距離小於此值時會被忽略。
Avoid Obstacles   當目標被障礙物遮擋時,選中將會允許相機移動以避開目標,未選中時,相機將不會移動。
Distance Limit   碰撞檢測射線的長度,Avoid Obstacles勾選時可用,上面提到Collider使用Physics Raycaster射線來判斷是否有碰撞,該值表示射線的最大長度,如果障礙物到相機的距離大於此值時,相機將不會移動。輸入0表示使用當前相機到目標的實際距離。
Camera Radius   相機的半徑,Avoid Obstacles勾選時可用,由於視線被遮擋,相機移動到障礙物之前,相機和障礙物保持的距離,
Strategy   保持目標視線的方式,Avoid Obstacles勾選時可用。
  Pull Camera Forward 移動相機沿着其本地座標系Z軸向前,直到它是在障礙物面前最近的目標。
  Preserve Camera Height 移動相機到另一個視角,同時試圖保持相機在其原來的高度。
  Preserve Camera Distance 移動相機到另一個視角,同時試圖保持相機與目標的原始距離。
Smoothing Time   Avoid Obstacles勾選時可用,相機避開障礙物所需的最小時間。當環境有許多障礙物時,可以減少相機的運動。
Damping   Avoid Obstacles勾選時可用,在遮擋消失後,如何快速將相機恢復到正常位置。小的數字使相機反應更靈敏。較大的數字使相機反應更慢。
Damping When Occluded   Avoid Obstacles勾選時可用,移動相機以避開障礙物的速度。小的數字使相機反應更靈敏。較大的數字使相機反應更慢。
Optimal Target Distance   如果大於0,當目標距離更接近這個距離時,給予更高的拍攝分數(影響拍攝質量)。將此屬性設置爲0以禁用此特性。
Transparent Layers  

這些層上的對象永遠不會阻礙目標的視野。

Minimum Occlusion Time   除非遮擋至少持續了這麼長時間,否則不會有什麼影響。
Maximum Effort   處理障礙物的上限,較高的值會影響性能。設置爲4時,足夠應付大多數情況。
Ignore Tag   帶有此標籤的障礙將被忽略。建議將該字段設置爲目標的標記。

Cinemachine Confiner

使用Cinemachine Confiner擴展來限制相機的位置在一個體積內或一個區域內。

Confiner可在2D或3D模式下運行。模式影響它接受的邊界形狀的類型。在3D模式下,相機在3D中的位置被限制在一個體積內。這也適用於2D遊戲,但你需要將深度考慮在內。在2D模式中,你不需要擔心深度。

屬性   功能
Confine Mode   2D模式還是3D模式,用於判斷是限制相機在體積內還是區域內
  Confine 2D 限制相機在區域內
  Confine 3D 限制相機在體積內
Bounding Volume   當Confine Mode設置爲Confine 3D時可用,提供一個Collider體積使相機限制在裏面運動。
Bounding Shape 2D   當Confine Mode設置爲Confine 2D時可用,提供一個Collider 2D區域使相機限制在裏面運動。
Confine Screen Edges   當相機爲正交相機時可用,勾選將會使相機的視野(也就是屏幕的邊緣)限制在提供的區域內,可防止相機越過場景邊界。否則只限制相機中心在提供的區域內。
Damping   當相機越出提供的限制體積或區域邊界時,如何將相機拉回限制體積或區域內,值越小越靈敏,越大越慢。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章