###### tags: `Unity Camera` [toc] # Cinemachine Cinemachine可以使用在運鏡上還有camera輕鬆切換,配合timeline可以輕易控制所有物件出現的時間以及動畫轉變。 # 安裝 Cinemachine 現在可以在 Package Manager 裡面下載。 下載好cinemachine套件後視窗上方會多一個選項   **上方的cinemachine需要先完成安裝才會顯示。**  # ------------------------------------------- # 建立 virtual camera  預設MainCamera會自動在Inspector新建一個CinemachineBrain物件,**一定要有cinemachineBrain物件**。 > 這個virtual camera是幹嘛用的呢?剛剛不是已經有創個camera brain了嗎。 可以想像成virtual camera是路上的監視器,而brain則是監控室中的螢幕,可以隨時切換成某一支監視器的觀看畫面! > > [name=blueremedy] [參考資料:[Day9] 攝影機設定](https://ithelp.ithome.com.tw/articles/10236268)  如果沒有出現的話,也可自行新增  - 在Hierarchy出現CM vcam1 即是我們剛建立的virtual camera  --- ## 新增一個空物件專門管理timeline  - 在空物件新增timeline  --- ## 調整virtual camera後加入timeline - 將timeline軸上(timelime管理空物件)沒用到的先刪掉  timeline這個工具就像由開發者寫的劇本,我們可以自由決定所有物件出場的時間,以及動畫何時播放?跟攝影機的切換以及先後順序。 - 在timeline先新增cinemachine Track,並把Main Camera(物件底下有cinemachineBrain)拉進去  - 在timeline的時間軸上右鍵新增cinemachine Shot,並把CM vcam1拖到右方    這樣timeline上就有一個相機了! 不過只有一個相機的鏡頭並不夠看,所以我們可以用相同的方法在建立一個新的virtual camera,或是利用Dolly & track來製作類似攝影軌道的拍攝手法。 --- # 相機晃動 每個virtual camera底下有一個CinemachineVirtualCamera的component,這個元件下有一個Noise屬性  對Noise選擇Basuc Multi Channel  在Noise Profile有多種選擇可以選,一定要選才有效果  這邊我選擇「Handheld_normal_extreme」,當然這些都要看開發者想做出什麼樣的效果來決定,「6D Shake」也是熱門選擇! 我個人認為它的特效很適合做遊戲中地震或是打擊晃動的效果。  - **Amplitude Gain:** 可以調整晃動的強度 - **Frequency Gain:** 可以調整晃動的頻率  最後記得把相機加到timeline上面 --- # Follow 和 LookAt 的不同和應用 Follow是相機跟著我們選定的目標用移動的方式跟進,而LookAt是相機停滯在原地用旋轉的方式跟進。 - 我們用Body來移動camera,Aim來轉動camera。  選擇Follow的話,我們的virtual camera主要是在Body進行調控。 Follow Offset是控制virtual camera的位置: x軸是左右,y軸是上下,z軸是遠近。 Damping是在控制鏡頭挪動時的順暢度(數字越大越順暢)。  選擇LookAt的話,我們的virtual camera主要是在Aim進行調控。 Offset和Damping的部分,和Follow相同。 - Dead Zone 是一個呈現在Game的小方框(理論上,是在畫面正中央的無色區塊),如果目標移動出了Dead Zone,鏡頭才會旋轉跟進。 換句話說,Dead Zone越小,鏡頭就必須越為頻繁地跟進,我們看到的畫面就會越流暢。 - Aim的流暢度需要注意兩個部分:Dead Zone劃出範圍,超出範圍就會造成鏡頭旋轉;Damping控制超出後的誤差,值越小,就會越為即時性地關注目標是否超出Dead Zone。 --- # 利用相同手法在做幾個virtual camera ## 小技巧 Statis:Live Solo 當有多個virtual camera在場景時,我們若想馬上查看其中一個camera的攝影範圍而不想透過執行遊戲查看,我們可以直接點solo,就可以直接查看該相機。  ## 小技巧 Align With View 當新增一個virtual camera在場景時,我們若想先找好一個合適的角度(直接挪動鏡頭有點麻煩~),可以先用滑鼠右鍵和滾輪找到合適的位置,然後點選其中一個camera,選擇GameObject的Align With View,鏡頭就會自動切換成我們事先找到的合適位置。  - 快捷鍵:找好位置,滑鼠留在Scene,然後按Ctrl+Shift+F --- # 依照上述相同的方式建立第二個virtual camera並放上timeline上  - 先來看看兩個相機分別拍攝哪先範圍  - blend兩個相機後  - blend後的結果  --- # ------------------------------------------- # Dolly & Track 可以製作出拍攝軌道的效果  ## 建立Dolly & track  建立後會一次產生兩個物件 - virtual camera - DollyTrack  --- ## LookAt 、Follow virtual camera有兩個屬性可以讓攝影機跟隨物件或是看著該物件。這兩個屬性並非Dolly & Track才能使用,只要是virtual camera都可以使用。 - 將想拍的物件拉近LookAt欄位  會看到game視窗呈現下方的效果  > 在virtual camera 中有個Aim欄位,能針對追蹤工能做細節微調。比較常用到的是Dead Zone Width 及 Dead Zone Height。調整後的結果會即時顯示在Game視窗中,各顏色範圍分別表示 > > **透明:** 自由區,主角在這範圍移動,攝影機不會跟隨。 > **藍色:** 軟跟隨區,主角移動到這個區域時攝影機移動,使主角保持在透明區。 > **紅色:** 死區,主角無法到這個區域,攝影機移動使主角強制保持在紅色區域外。 > > [name= blueremedy] > [資料參考來源:[Day9] 攝影機設定](ht tps://ithelp.ithome.com.tw/articles/10236268) ## 在DollyTrack新增軌道 - 在DollyTrack的WayPoints新增  - 新增軌道後會看到0,就是我們第一個軌道,且與我們的virtual camera距離很遠  - 調整0軌道跟virtual camera的位置,讓0軌道在virtual camera的位子 - 繼續新增軌道 目前我新增了5個軌道,最後一個Path編號為4  在Scene的樣子  ## 將軌道上的畫面錄成Animation - 首先在timeline上加上一個Animation Track,並將Dolly & track的virtual camera加上去   - 運用Amination Track來將我們的軌道錄起來,點選紅色按鈕錄影   接下來要特別留意自己建立了幾個軌道,像我就是建立了5個軌道,因此我在想要結束的時間軸上利用virtual camera 的CinemachineVirtualCamera元件下的Body屬性 : Path Position 來錄影。在想要的timeline時間軸上做變更,每次變更成功會發現時間軸上多了一個key。 在開始的地方新增一個 Path Position 為 0 的 key 在結束的地方新增一個 Path Position 為 4 的 key  透過在下方圖片欄位的調製來讓錄影錄進去。  - 先新增結尾的key,Path Position 為 4  - 新增初始的key,Path Position 為 0,必須新增初始key軌道才能從0開始出發!  - 最後最後 ! 把 Dolly & Track 的 virtual camera 拉到對應的動畫時間軸上  # 完成一個Dolly & Track了! 恭喜發大財! --- # ------------------------------------------------------- # 做出一個粗糙的小劇場 某個人想去某間小屋裡面,但突然發現後面有人跟蹤他!!所以他頭猛一轉 > 請大家不要抨擊我,窩也素剛學55555 > [name=朱妍穎] 前面提過timeline可以放任何的物件,於是我就加了點音效進去 {%youtube D4BgI9Z3lnU %} ---
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up