Unity2017版本TimeLine& Cinemachine 技術


Unity2017.1版本中推出了全新的Timeline技術。Timeline不僅僅只是一個可被游戲行業應用的工具,它可以為各個行業(影視制作、廣告、建築等)的互動內容開發者提供支持。下面本人就TimeLine &Cinemachine 以及Frame Recorder等三個方面簡介一下相關技術,希望大家能有所收獲。
一: TimeLine  時間線

   TimeLine 是一種影視動畫與游戲強交互內容的開發工具。一開始的開發目的僅僅是為了游戲中“轉場動畫”而設立的開發工具,但是后來隨着開發的進展開發人員發現可以不斷加入更多的功能,使其更加的強大。TimeLine 就像導演一樣在Unity 中控制序列、使用真實世界相機的設置來合成鏡頭、自動跟蹤指定位置。
     目前基於Unity2017.1 版本,總結Timeline 功能可以分為如下四部分:
  • 預渲染過場動畫(類似3DMax Maya軟件中的預渲染)
  • 實時渲染過場動畫
  • 影視制作(FrameRecorder)
  • 可交互動畫片段(timeline基於assets, 可被重復使用)不僅僅限於游戲使用。

 

    雖然TimeLine 隨着版本的提升,一定會不斷加入新的功能實現,但是目前(2017年)其主要作用還是做“過場動畫”(或者說“轉場動畫”)。 TimeLine 的操作界面類似 時間線,但是本質不同是它可以控制模型、粒子、音頻、攝像機鏡頭、腳本等諸多內容,甚至可以開發完整游戲,見圖1_1所示。
   

 

1_1  本章配套演示項目TimeLine 截圖

 

      與TimeLine 技術配合使用的還有 “Cinemachine”插件(高級虛擬攝像機系統)、“FrameRecorder“幀錄制工具。 前者是虛擬攝像機系統,提供了豐富功能的影視專業級場景跟蹤與拍攝控制技術。后者直接把TimeLine工程場景效果輸出到自定義格式貼圖中,最終利用幀動畫技術完成游戲場景之間的動畫過度,即“過場動畫”。


    提示:這里Cinemachine虛擬攝像機系統,以及Frame Recorder 並不是直接集成在Unity編輯器中使用,而是需要分別通過Asset Store 、Github進行下載安裝后使用。 這樣安排是因為Unity公司認為以上功能的實現還不是最終完善版本,更多內容還在研發之中。所有就把完成度高的部分以插件形式提供廣大研發人員使用,相信后續版本會做到無縫整合在一起。

      因為TimeLine 在內的三大技術規范與內容較多,所以筆者決定以小項目演示的形式,分為若干步驟的講解,帶領讀者學會其核心技術。首先我們先來了解Timeline  的使用與基本功能
    第1步驟:
     新建項目(必須使用Unity2017.1 以上版本),導入必要資源。 因為本演示項目需要用到角色的動畫演示,所以我們打開Asset Store 窗口,在搜索框中點擊“Mecanim Locomotion Starter”查找插件模型。點擊“導入”按鈕后,系統會彈出導入內容確認窗口,我們默認點擊“Import”導入即可。見圖1_2所示。
 

 

1_2  下載Mecanim LocomotionStarter  模型

 

    第2步驟:
    項目視圖中建立TimeLine(鼠標右鍵彈出窗口àCreateàTimeline),然后拖拽到層級視圖中。然后我們建立一個簡單的演示場景,在一個平面上建立一個紅色Cube與黃色Sphere ,如下圖1_3所示
 




1_3  建立演示基本場景



     第3步驟:
     現在我們建立Timeline 的“Activation Track”軌,學習游戲對象的隱藏與顯示基本控制技術。首先點擊Unity頂部菜單Windows-->Timeline Editor ,新建Timeline窗口。然后點擊Timeline左上角的“ActivationTrack”選項,建立“Activation Track”軌(圖1_4),同時把層級視圖的Cube對象拖拽到本軌道控制物體中,見圖1_5所示。
1_4  建立“Activation    Track ”軌



   

 
1_5  Cube  賦值給Activation Track

 

現在定位Active 軌道段,快捷鍵Ctrl+D復制一份,點擊Timeline 左邊的控制三角按鈕“Play”,預覽場景。此時我們會發現cube 立方體會隨着時間線的移動顯示與隱藏交替出現,這說明“Active”軌是用於游戲對象的顯示控制。

 

     第4步驟:
     現在我們來建立“AnimationTrack”軌,學習游戲對象與角色模型的動畫控制。首先建立“Animation Track”,把Sphere 拖拽到本軌中,此時會立即顯示“Create Animator on Sphere”彈出框,點擊后我們發現在Sphere 對象上添加了Animator組件,只有這樣“Animation Track”才能控制游戲對象錄制“方位”(Transfrom)動畫。

 

    第5步驟:
    點擊Sphere所屬的“AnimationTrack”右邊的“紅色”點進行錄制,此時會發現本軌道發紅顯示“Recording...”字樣,如圖圖1_6所示。
 



1_6  Animation Track  錄制動畫中

 

    第6步驟:
    拖動Sphere 物體,此時錄制軌會留下白色的“幀點”,然后在錄制狀態下移動時間線。再次拖動Sphere 就會再次留下“幀點”,這樣不斷循環可以記錄下所有位移信息。點擊Timeline 的“Play”三角按鈕,可以在不運行項目的情況下,直接預覽錄制的位移動畫效果。如果認為這種方式比較簡單,則可以點擊紅色錄制按鈕右邊的白色按鈕,顯示其方位曲信息。讀者可以通過拖拽鼠標的方式,進一步調節出更加復雜的方位動畫,見圖圖1_7所示。
 



       1_7  曲線方式調節游戲對象方位動畫

 

    第7步驟:
    “AnimationTrack”軌除了一般的方位(位移、旋轉、縮放)動畫制作,更多是用在角色模型上。現在把角色模型DefaultAvatar.fbx (項目位置:Locomotion Setup-->Locomotion-->Animations-->DefaultAvatar.fbx)拖拽到場景視圖中。然后再建立一個“Animation Track”,把層級視圖中的DefaultAvatar 拖拽到本軌道控制物體中。



    第8步驟:
    點擊“AnimationTrack”右邊(顯示三條橫線Logo的)按鈕,在彈出框中點擊“Add From Animation Clip”,在彈出窗口中添加Idle 、Walk、Run等角色動畫,播放預覽效果。參見圖1_8所示。
 

 

1_8   添加角色動畫剪輯到Timelin

 

          提示:  層級視圖TimeLine對象所屬的Playable Director 組件,改變Wrap Mode屬性 為“Loop”可以不斷循環重復的預覽動畫效果直到滿意,比較實用。

二:  Cinemachine 虛擬攝像機

     Cinemachine 是虛擬攝像機系統,使用它可以像導演一樣在Unity中控制序列、使用真實世界相機的設置來合成鏡頭、自動跟蹤指定位置。Cinemachine虛擬攝像機功能強大,它即可以單獨使用也可以配合Timeline制作功能強大的影視視頻特效。
Cinemachine 目前(2017年)需要在AssetStore 下載,打開Asset Store 窗口搜索關鍵字“Cinemachine”,然后下載安裝。(圖2_1)
 

 

2_1   下載Cinemachine  虛擬攝像機

 

關於Cinemachine攝像機系統筆者還是以小項目演示形式,分為若干步驟進行講解。這里為了方便起見,我們接着前面上一節內容的場景繼續演示開發。

 

     第1步驟:
     插件導入成功后,在Untiy頂部會多出“Cinemachine”菜單,點擊“CreateVirtual Camera”創建第1個虛擬攝像機。在層級視圖上會出現“CM vcam1”的虛擬攝像機對象。"CM vcam1"屬性視圖中,把Sphere 對象賦值給屬性“Look At”,這樣第1台攝像機就會一直“關注” Sphere對象。

 

         
2_2   給“CM vcam1 ”對象賦值“Look At ”屬性
    第2步驟:
    依次點擊菜單“Cinemachine”-->"CreateFreeLook Camera" 創建第2台虛擬攝像機。先禁用“CM vcam1”, 把層級視圖的“DefaultAvatar”賦值給 "Create FreeLook Camera" 攝像機的Look At參數。再把層級視圖的“DefaultAvatar”模型下的“RightLeg”賦值給 "Create FreeLook Camera" 攝像機的Follow參數。運行游戲(或者點擊Timeline窗口的運行按鈕),這時我們發現,圍繞着“DefaultAvatar”角色對象, Create FreeLook Camera攝像機形成了上、中、下可隨玩家鼠標移動(上下左右)而自由旋轉的自由靈活攝像模式。見圖2_3所示。
 

 

2_3  Create FreeLook Camera 虛擬攝像機

 

    第3步驟:

 

2_4   創建Cinemachine Track


     目前為止各個攝像機應用還是各自為戰,如何有效按照開發意圖管理各種攝像機呢?這樣我們就想到了Cinemachine Timeline 結合使用,即用Timeline 管理各個虛擬攝像機。

首先建立Timeline 的“CinemachineTrack”軌,管理各虛擬攝像機。點擊TimeLine 的"Add" 按鈕,建立“Cinemachine Track”軌,把主攝像機賦值給“Cinemachine Track”,見圖2_4所示。



    第4步驟:
    點擊“Cinemachine Track”軌, 鼠標右鍵點擊彈出框“AddCinemachine Shot Clip”選項。點擊“Cinemachine  Shot”編輯軌,在屬性視圖中對VirtualCamera 屬性添加我們上面建立的虛擬攝像機,見圖2_5所示。現在運行程序,我們發現兩台攝像機(“CM vcam1”與“CM FreeLook1”)已經按照事先定義的順序依次在Game視圖輸出場景信息了。

 

     提示:這里的虛擬攝像機實際並不直接輸出場景信息,而是建立時給主攝像機加入了“Cinemachine Brain (Script)”腳本組件。Unity從而通過這個組件來管理各個虛擬攝像機,單一時間點只有一個虛擬攝像機把場景信息轉發主攝像機,玩家從Game 視圖看到最終的影像。

 

 

 

       2_5  完成Cinemachine Track 軌編輯




三:  Frame Recorder 幀錄制器

Frame Recorder 幀錄制器是Unity公司開發的一個高級“截圖工具”。本質是從Timeline 中獲取最終輸出場景信息,然后轉制為JPEG、PNG、EXR 三種格式的圖片與視頻信息。具體使用步驟如下:
3_1  Recorder  窗口



     1步驟:

     Github 下載FrameRecorder 幀錄制器。下載鏈接地址:https://github.com/Unity-Technologies/GenericFrameRecorder   或者也可以直接在本章節的配套資料中獲取。

 

     第2步驟:
   由於FrameRecorder是開源項目,所以直接把下載后的Zip包解壓縮,導入本項目中即可。導入成功后,Untiy頂部菜單會多出一項“Tools”,我們依次點擊“Tools”-->"Recorder"-->"Video"把彈出窗口停靠Unity編輯器一側,如圖3_1所示。



     第3步驟:
   對Recorder 窗口的如下參數賦值,它是錄制輸出信息內容的關鍵:
  • Output format:輸出格式(JPEG、PNG、EXR)選擇
  • Output Path:  輸出路徑
  • File Name:    輸出文件名稱


   第4步驟:
   Timeline 中點擊“Add”按鈕,建立“RecorderTrack”軌。然后鼠標點擊選擇“Add Recorder Clip”,這時就會發現Recorder Track 上增加了“RecorderClip”。點擊Recorder 窗口的“Start Recording”開始正式錄制,見下圖3_2所示。
 




3_2   增加RecorderClip ,點擊“Start Recording ”錄制






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM