iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 10
0

延伸前一天使用cinemachine的經驗,今天要延伸做出另一項常在2D卷軸遊戲出現的機制。想像正在玩遊戲,當操控主角走到懸崖邊卻因為攝影機沒照到前方陷阱,讓你白白損失一條命,這情況是不是很令人不舒服呢?

通常遊戲會設計成當走到某些特定區域時,攝影機會做適當縮放及移動,邦助玩家更好地發現前方障礙物。今天就是要使用cinemachine加上程式控制完成這項功能。


以這張動態為例,因為攝影機畫面不夠大,很難看到右邊有正在擺盪的大石頭。

因此我打算設定當靠近懸崖邊時,攝影機會自動放大至能清楚看到大石頭的範圍。

Step1:

在一開始要再建立一個新的virtual camera並調整三個參數

  • 優先度調成15 (只要大於跟隨主角的camera就行了)
  • orthographic size (調整攝影機範圍大小)
  • 攝影機位置
    這個攝影機不需要追蹤任何物件,所以Follow / Look At保持空白
    https://ithelp.ithome.com.tw/upload/images/20200918/20130414vdIxfwFoRf.jpg
    新的攝影機視角則是這樣,是不是好多了呢

調整好視角後我們要開始設定兩台攝影機之間的切換了!

Step2:

還記得剛剛設定的兩台攝影機優先值嗎,跟隨用的用10、拍攝機關的是15。cinemachine virtual camera 的設計是當有兩台攝影機時,會優先使用優先度大的。

基於這個機制,我可以設計成:平常只有只有追隨主角的virtual camera開啟,但當走到一定範圍內的時候就會開啟特定的virtual camera。類似這種感覺

首先現在底下創立一個trigger並設定好觸發範圍
https://ithelp.ithome.com.tw/upload/images/20200918/20130414I76Fvvqpe3.jpg

Step3:

加入一個程式腳本,內容也很簡單。當主角進入範圍時把virtual camera開啟,離開時則關閉。藉由這個腳本控制能完成這樣的效果

腳本內容則是這樣
https://ithelp.ithome.com.tw/upload/images/20200918/20130414DZgVRUMMQ4.jpg

Step4:

最後再稍微提一下怎麼修改中間過度動畫的效果,點選昨天設定的cinemachine camera brain,最下面有個Default Blend選項可以調整過度動畫的快慢及時間長度。
https://ithelp.ithome.com.tw/upload/images/20200918/201304143bN8ZIubov.jpg

完成效果

到這邊攝影機的架設已經完成囉,雖然只是個簡單的功能卻能讓遊戲更精細,操作更順利。相信這套cinemacine還有許多更好用的功能,就等讀者自己研究發現囉!


上一篇
[Day9] 攝影機設定
下一篇
[Day11] UI介面
系列文
Unity遊戲開發與實踐-BlueRemedy內容分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言