延伸前一天使用cinemachine的經驗,今天要延伸做出另一項常在2D卷軸遊戲出現的機制。想像正在玩遊戲,當操控主角走到懸崖邊卻因為攝影機沒照到前方陷阱,讓你白白損失一條命,這情況是不是很令人不舒服呢?
通常遊戲會設計成當走到某些特定區域時,攝影機會做適當縮放及移動,邦助玩家更好地發現前方障礙物。今天就是要使用cinemachine加上程式控制完成這項功能。
以這張動態為例,因為攝影機畫面不夠大,很難看到右邊有正在擺盪的大石頭。
因此我打算設定當靠近懸崖邊時,攝影機會自動放大至能清楚看到大石頭的範圍。
在一開始要再建立一個新的virtual camera並調整三個參數
調整好視角後我們要開始設定兩台攝影機之間的切換了!
還記得剛剛設定的兩台攝影機優先值嗎,跟隨用的用10、拍攝機關的是15。cinemachine virtual camera 的設計是當有兩台攝影機時,會優先使用優先度大的。
基於這個機制,我可以設計成:平常只有只有追隨主角的virtual camera開啟,但當走到一定範圍內的時候就會開啟特定的virtual camera。類似這種感覺
首先現在底下創立一個trigger並設定好觸發範圍
加入一個程式腳本,內容也很簡單。當主角進入範圍時把virtual camera開啟,離開時則關閉。藉由這個腳本控制能完成這樣的效果
腳本內容則是這樣
最後再稍微提一下怎麼修改中間過度動畫的效果,點選昨天設定的cinemachine camera brain,最下面有個Default Blend選項可以調整過度動畫的快慢及時間長度。
到這邊攝影機的架設已經完成囉,雖然只是個簡單的功能卻能讓遊戲更精細,操作更順利。相信這套cinemacine還有許多更好用的功能,就等讀者自己研究發現囉!