完成主角操作後,今天要來製作攝影機的操作。我們選擇使用的式untiy內建的
cinemachine
攝影機操作插件。這款插件將許多基本會用到的功能含括在內,例如我們會用到的的主角跟隨、攝影機移動邊界都有,並且他也提供了不錯的editor介面,方便使用者針對細節做調整。話不多說,來看看怎麼使用吧!
首先要先從package manager將cinemachin插件導入現有專案中
導入完成後會發現unity頂部多了一排"cinemachine的列表",裡面會有需要使用到的物件選項。
首先在camera物件上新增"cinemachine brain"元件
接著一樣按上方cinemachine按鈕,按下新增virtual camera功能
這個virtual camera是幹嘛用的呢?剛剛不是已經有創個camera brain了嗎。 可以想像成virtual camera是路上的監視器,而brain則是監控室中的螢幕,可以隨時切換成某一支監視器的觀看畫面!
我們想要創立一支監視器,隨時跟著Oka,點開剛創建的virtual camera 物件,將Oka物件拖入Follow及Look At的框中
Inspector中可以調整orthographic size修改這個監視器的可視範圍。
另外還有個重要參數!priority優先值,當場景中有多支監視器時,監控室的畫面(camera brain 我們看到的畫面) 會優先顯示最高優先度的監視器。
目前已經設定好跟隨效果,但發現主角只會固定在畫面正中間
就像多數2D遊戲一樣,我希望Oka在移動時畫面跟隨要有一些緩衝時間、並且也不會固定在正中間,同樣地,這套聰明的插件考量到這些使用情境,已經把相關功能做成圖形化調整欄位。
在virtual camera 中有個Aim欄位,能針對追蹤工能做細節微調。比較常用到的是Dead Zone Width 及 Dead Zone Height。調整後的結果會即時顯示在Game視窗中,各顏色範圍分別表示
來看看移動狀況
恩!不是死板的卡在中間,效果好多了!
接下來要做的第二件事情是為攝影機規劃可以運行的範圍,例如當主角走到牆邊的時候,我希望攝影機能在適當位置停下,不要看到牆壁背後。沒錯!這功能也能在cinemachine中找到。
首先要建立一個空物件,我將它命名為camera zone,並需要加入trigger元件,建議使用polygon collider2D能更自由調整邊緣。這個trigger範圍是攝影機可看到範圍,所以在設定時要避免框到不想被看到的區域!
接著回到有用來追蹤主角的virtual camera元件,最下放有個Add Extension,選擇加入CinemachineConfiner
接著把剛剛建立的camera zone物件拖至confiner元件中的Bounding shape2D框中就可以了。
下方的Damping可以設定碰到邊緣時的攝影機移動緩衝,如果設為0就是碰到時直接停止。
到這邊為止,最基本的攝影機操作已經完成。明天將會以進階的攝影機功能為主題作介紹。