• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      游戲電影制作中虛擬攝像機的半自動控制技術

      2013-09-20 05:31:20劉鑫張昕
      關鍵詞:腳本引擎攝像機

      劉鑫,張昕

      (中國傳媒大學計算機學院,北京100024)

      1 引言

      隨著3D游戲引擎的發(fā)展,游戲的畫面質量幾乎可以和電影相媲美?,F(xiàn)如今,游戲制作和電影大片的界限也逐漸模糊。游戲中的虛擬攝像機和日益強大的游戲引擎使游戲和電影的結合成為了可能[1],游戲電影[2]的前景十分可觀。

      國外已經生產出許多成熟的游戲電影作品。由《魔獸世界》衍生的《遠古傳說3》就是十分出色的游戲電影之一,它在玩家中掀起了很大反響并被譽為《魔獸世界》游戲電影的史詩般作品。由動作劇本改編的《復仇者聯(lián)盟》在視覺上也有一定的沖擊力??梢赃@么說,該電影無論是在熒幕色彩,劇情設計還是配音和字幕等方面都做得非常好。在國內也已經涌現(xiàn)出比如由石頭熊游戲視頻工作室出品的《誅仙》系列游戲電影,夢羅浮的《天堂2-英雄時代》和其他熱門的游戲電影[3]。

      虛擬攝像機在游戲電影的制作中扮演著十分重要的角色,如何對虛擬攝像機進行控制是有待解決的首要問題。有三種方式去控制一個虛擬攝像機:手動控制、全自動控制和半自動控制。

      人工控制是最方便的一種控制方式,利用這種方式使用者只需要利用鼠標或者鍵盤就可以輕松控制他的虛擬攝像機。然而,手動控制虛擬攝像機也有許多的缺點:攝像機可能會顫動或搖擺,攝像機的視角可能變化的不均勻,或者攝像機可能會沿著一個不準確的路線移動等等。例如,在《遠古傳說3》和《復仇者聯(lián)盟》中偶爾會出現(xiàn)屏幕抖動,《天堂2-英雄時代》和《誅仙》的畫面看起來略生硬、有時會抖動并且攝像機缺乏速度控制等。

      在游戲引擎中,電影工作者可以通過編寫腳本來確定一個虛擬攝像機的移動,然后讓這些腳本自動控制攝像機。全自動控制方式避免了上述手動控制的缺點,并能讓攝像機拍攝穩(wěn)定準確和高效。但是這種控制方式通常利用人工智能算法[4-6]去設計攝像機的移動軌跡[7],因此它拍攝出來的鏡頭可能并不是游戲電影導演所期望的。

      第三種方式半自動控制方式既能保留全自動控制的優(yōu)點,同時又能給予游戲電影導演更多的創(chuàng)作自由。它的主要原理是:讓攝像機控制算法參數(shù)化,讓游戲電影導演可以設定并調整這些參數(shù)來實現(xiàn)攝像機的運動。然而,編寫一系列的控制腳本并為每個鏡頭逐個調整參數(shù)的工作量巨大。

      本篇論文從參數(shù)角度把攝像機的控制算法進行分離,抽象出一個通用的攝像機控制腳本(GCCS)。有了這個通用的控制腳本,游戲電影制作者不再需要為不同的鏡頭逐個編寫腳本了。除此之外,論文還介紹了電影視聽語言的理論知識來確定攝像機的運動模式,它也是GCCS的參數(shù)之一。因此,無限的攝像機運動方式被歸納為一個有限的攝像機語言集合,它可以被電影導演反復的使用。論文在最后總結了在Unity3D游戲引擎中的數(shù)據(jù)物體集,其中的每一個都代表著一種通用的攝像機語言(在后面也被稱作“電影語言預置件”或“CLP”)。利用這套技術,工程師只需要復用一個CLP并把它作為參數(shù)傳給GCCS就可以完成一個游戲電影的鏡頭,這樣大大減少了半自動游戲電影拍攝的工作量。

      2 虛擬攝像機概述

      正如電影利用攝像機引導觀眾去了解故事一樣,游戲引擎里的虛擬攝像機用來給玩家展現(xiàn)游戲中的世界。人們可以通過控制虛擬攝像機來拍攝他們想要的游戲場景。

      2.1 利用游戲引擎制作游戲電影的技術支持

      通用的游戲引擎具備創(chuàng)造一個虛擬世界的全部條件,它可以模擬重力和其他基本的物理原理,可以決定物體的運動方式并能讓智能物體對環(huán)境做出響應。在游戲引擎中,游戲電影導演可以像操作真實攝像機一樣操作虛擬攝像機進行自由運動并改變視角。

      2.2 游戲引擎里的虛擬攝像機

      真實的攝像機可以被安放在場景中的任何位置并可以輕松調整參數(shù)去獲得滿意的畫面,虛擬攝像機亦如此[8]。在游戲引擎里,虛擬攝像機是一個特殊的物體,它可以被放置在場景中的任何角落。你可以設置它的位置、旋轉角度、景別、投影和其他參數(shù)去獲得你想要的鏡頭。

      2.3 游戲電影拍攝輸出

      由虛擬攝像機拍攝出來的視頻可以在計算機顯示器上渲染。利用視頻錄制軟件,如 Camtasia Studio、KKCapture等來錄下顯示器上的視頻,然后把它保存成合適的視頻格式。這些視頻文件可以被用作可編輯的游戲電影素材的一部分。因此,在錄制前需要設定好合適的屏幕尺寸和視頻錄制方式。

      3 Unity3D游戲引擎概述

      半自動虛擬攝像機控制技術是基于Unity3D引擎實現(xiàn)的。游戲引擎是游戲的開發(fā)平臺,Unity3D是現(xiàn)在廣泛利用的一個游戲引擎。Unity3D有許多顯著的特點,包括完整的編輯器、跨平臺發(fā)布功能、地形編輯器、材質編輯器、腳本模塊、網(wǎng)絡模塊、物理模塊、版本控制和其他特點等。

      3.1 Unity3D游戲引擎腳本編寫

      在Unity3D游戲引擎中,游戲場景中的所有物體都是GameObject(游戲物體)的實例。一個游戲物體上可以附加許多組件,這些組件描述了游戲物體的不同屬性。被附加到游戲物體的組件繼承于Component Class(組件類)。程序員寫的腳本繼承于MonoBehavior類,它是組件類的一個特殊的子類。圖1用UML語言描述了在Unity3D游戲引擎中GameObject、Component和 MonoBehavior的關系。

      圖1 在Unity3D游戲引擎中GameObject、Component和MonoBehavior的關系

      在Unity3D游戲引擎里,Camera(攝像機)是個特殊的游戲物體??梢酝ㄟ^編寫腳本并把它們作為組件附加到攝像機上來進行控制。

      3.2 Unity3D游戲引擎里虛擬攝像機的技術支持

      幾乎所有的游戲引擎都可以為游戲電影制作提供支持,Unity3D也不例外。最重要的是,我們可以在運行時給攝像機添加Unity腳本或是去掉它,這使得操控攝像機變得更加靈活方便。Unity攝像機的屬性繁多,這些屬性可以在在設計期通過游戲編輯器去進行設置,并且可以在運行期通過腳本去調整和改變。圖2展示了Unity3D游戲編輯器中的攝像機屬性。

      Unity攝像機最重要的屬性是視野,裁剪平面,透視和消隱遮罩。在游戲電影制作過程中,攝像機的某些屬性會在運行時因為腳本的控制而發(fā)生相應改變。

      圖2 在Unity3D游戲編輯器中攝像機的屬性

      4 游戲電影虛擬攝像機的半自動控制技術

      4.1 攝像機控制腳本

      一般來說,要使虛擬攝像機按照一定的方式自動運動進行拍攝的話,首先需要為這個虛擬攝像機寫一個控制腳本。然而在游戲電影制作時,有大量的攝像機運動方式需要具體確定,顯然為每一個鏡頭單獨編寫腳本是如此冗繁的工作。因此減少編寫代碼的工作量是游戲電影制作的關鍵任務。

      通過對大量攝像機控制算法的觀察,發(fā)現(xiàn)這些算法的不同之處在于一些參數(shù)數(shù)據(jù),也就是攝像機運動和改變方式。因此可以把屬性從攝像機控制腳本中分離出來并抽象出一個通用的腳本。有了這個通用攝像機控制腳本,游戲電影制作者不再需要為鏡頭逐個寫腳本。他們所要做的就是為每一個腳本確定不同的攝像機運動參數(shù)。

      4.2 游戲電影的半自動拍攝步驟

      利用通用攝像機控制腳本,可以將游戲電影的半自動鏡頭拍攝歸納為以下步驟:

      1.準備虛擬攝像機:把通用攝像機腳本附加到攝像機物體上。

      2.為攝像機準備“攝像機運動路徑”(CMP):為了使攝像機自動運動,我們需要為它確定一個運動路徑,也就是說在設計時,我們需要在游戲場景里手動放置一系列的結點來確定這條路徑。

      3.為攝像機準備“目標運動路徑”(LTMP):為了讓攝像機可以在正確的視角拍攝,我們也需要為攝像機的目標物體確定一個運動路徑。路徑上的結點也是需要在設計時在游戲場景中手動添加。

      4.為攝像機準備“屬性改變路徑”(CPCP):攝像機的位置和視線會隨著已定義好的路徑改變,攝像機的屬性也會同時相應地發(fā)生改變。因此,需要依照拍攝時通用攝像機控制腳本對攝像機屬性的改變而配置一組屬性值。通常在運行時刻攝像機的兩個屬性會改變:視野和裁剪平面。

      5.為攝像機準備觸發(fā)器:鏡頭觸發(fā)器的作用是確定一些條件,當條件滿足時,虛擬攝像機開始自動拍攝。碰撞機制通常被用來觸發(fā)自動攝像機:把一個會對碰撞事件發(fā)生響應的特殊物體放置到游戲場景中,當攝像機碰到這個物體,通用攝像機控制腳本便會附加到被觸發(fā)的攝像機上。攜帶通用攝像機控制腳本的一些屬性,如上面提到的 CMP、LTMP和CPCP,是觸發(fā)物體的另一個職責。當攝像機碰到觸發(fā)器時,觸發(fā)器所攜帶的屬性便會傳送到通用攝像機控制腳本中。

      在上述過程中,步驟(1)和(5)比較簡單。為了完成不同的鏡頭,必須為通用攝像機控制腳本準備不同的參數(shù),這個過程就是步驟(2)、(3)和(4)。為通用攝像機控制腳本準備參數(shù)是十分繁重的工作,因為這需要仔細地用手動去一一確定這些路徑。這樣的話,減少為通用腳本準備參數(shù)的工作量是游戲電影制作的關鍵任務。

      4.3 視聽語言介紹

      在電影藝術里,鏡頭是組成電影的元素,它是由攝像機從開機到關機所拍攝下來的一段連續(xù)畫面。電影是由鏡頭按照次序排列組成的[9]。攝像機語言(CL)是以一種特殊固定的運動模式來定義的鏡頭序列,它可以用CMP、LTMP和CPCP進行描述。事實上,電影導演常用的鏡頭語言數(shù)目是有限的,例如推拉鏡頭、搖移鏡頭、俯仰鏡頭、跟鏡頭等等[10]。因此無限的攝像機運動可以被分類成一個有限的集合,集合里的元素都可以被電影語言所描述。因此攝像機運動的參數(shù)集合便從無限減變成為有限。

      4.4 在Unity3D中虛擬攝像機語言集合

      因為攝像機語言可以被CMP、LTMP和CPCP所描述,那么便可以抽象出一個三元組來表示一個攝像機語言:

      {CMP,LTMP,CPCP}

      在Unity3D里,可以用一個特殊的游戲物體來裝載上面描述的三元組信息,然后將這個游戲物體裝載到一個“預制件”中(Unity3D的一種機制),它可以被存儲,分享和復用。電影語言在預制品中的結構可以如圖3表示。

      如圖3,“攝像機語言”,“攝像機運動路徑”,“視野目標運動路徑”和“路徑結點”都是Unity3D中GameObject的實例。在這個圖示中,尾部帶有菱形形狀的線在UML語言中表示聚合關系,這表示“攝像機語言”包含“攝像機運動路徑”和“視野目標運動路徑”,而“攝像機運動路徑”和“視野目標運動路徑”也擁有它們自己的子物體“路徑結點”?!皵z像機屬性改變路徑”以特殊的格式保存在配置文件里。

      圖3 攝像機語言的三元組機構

      在Unity3D里,復用一個預制件是十分容易的。你可以在設計時把它拖到游戲場景中或在運行時提到它。為了簡化準備參數(shù)的工作,我們?yōu)槊恳粋€攝像機語言都配置一個預制件,這些預制件可以被電影制作者反復使用然后構建出一個電影語言預制件集(CLP)。有了這個集合,當游戲電影導演想到實現(xiàn)一個攝像機語言的時候,他僅僅只要從這個集合中挑選相應的CLP而無須再從零開始地準備攝像機運動參數(shù)了。導演在使用CLP時,他可能會做一些細微調整來保持個性或者去適應復雜的拍攝環(huán)境等等。

      5 技術應用

      最近我們開發(fā)了一個基于Unity3D引擎的3D游戲“中國航母瓦良格”。為了宣傳,我們?yōu)檫@款3D游戲制作了游戲電影。在這個游戲電影里,我們用虛擬攝像機搖攝整個畫面(圖4),用推拉鏡頭來拍攝瓦良格甲板上的武器(圖5),用俯視鏡頭鳥瞰瓦良格全景。我們還使用這些技術對其他移動的物體拍攝了鏡頭,例如飛機和導彈等。該游戲電影中的所有鏡頭都是基于通用攝像機語言腳本和CLP庫來完成的。

      6 總結

      在制作游戲電影時如何準確、高效又自由地控制虛擬攝像機是本文討論的重點。為此本文提出了一種新的技術來滿足這個需求。這項技術的核心思想包括三點:(1)把參數(shù)從攝像機控制算法中分離出來并得到一個通用的算法;(2)無限的攝像機運動參數(shù)可以被分類成一系列有限的攝像機語言集合;(3)為每一個攝像機語言配置一個可以被電影制作者反復使用的可復用的預制件。第一點避免了電影制作者為每一個鏡頭逐個編寫腳本。第二和第三點為游戲電影制作者想要描述攝像機的運動方式時提供了一個自由且高效的方式。

      圖7 跟鏡頭

      [1]曹淵杰,李亦中.現(xiàn)代電影與電子游戲的交互趨勢[J].當代電影,2008:122-126.

      [2]Christian J,Callum M.Using Machinima to Promote Computer Science Study[J].In Proc Tenth Australasian User Interface Conference,Wellington,New Zealand,2009.

      [3]李晉林.游戲電影給電影行業(yè)帶來新的挑戰(zhàn)和機遇[J].當代電影,2009:126-128.

      [4]R E Korf.Depth-First Iterative Deepening:An Optimal Admissible Tree Search[J].Artificial Intelligence,vol 27,97-109,1985.

      [5]P Burelli,G N Yannakakis.Global Search for Occlusion Minimisation in Virtual Camera Control[J].IEEE Congress on Evolutionary Computation,Barcelona,2010.

      [6]史紅兵,張毅彬,童若鋒,董金祥.虛擬場景自動漫游的路徑規(guī)劃算法[J].計算機輔助設計與圖形學學報,2006:592-597.

      [7]J Blinn.Where Am I?What Am I Looking At?[J].Computer Graphics and Applications,IEEE,vol 8,76-81,1988.

      [8]JR Silva,T T Santos,C H Morimoto.Virtual Reality in Brazil:Automatic camera control in virtual environments augmented using multiple sparse videos[J].Compuetr and Graphics,vol 35,April,2011.

      [9]Wang Daiming.Machinima,the Fusion of Computer Game and Movie[J].Film Art Contents,vol 314,123-125,2007.

      [10]SD Katz.Film Directing Shot by Shot:Visualizing from Concept to Screen[J].Studio City,CA:Michael Weise Productions,1991.

      猜你喜歡
      腳本引擎攝像機
      酒駕
      安奇奇與小cool 龍(第二回)
      數(shù)據(jù)庫系統(tǒng)shell腳本應用
      電子測試(2018年14期)2018-09-26 06:04:24
      藍谷: “涉藍”新引擎
      商周刊(2017年22期)2017-11-09 05:08:31
      看監(jiān)控攝像機的4K之道
      快樂假期
      中學生(2017年19期)2017-09-03 10:39:07
      攝像機低照成像的前世今生
      新安訊士Q6155-E PTZ攝像機
      無形的引擎
      河南電力(2015年5期)2015-06-08 06:01:46
      如何消除和緩解“攝像機恐懼癥”
      新聞前哨(2015年2期)2015-03-11 19:29:25
      安国市| 星子县| 攀枝花市| 灵台县| 静海县| 萝北县| 聊城市| 韶山市| 伽师县| 澄江县| 连州市| 新津县| 陇川县| 罗平县| 青阳县| 西平县| 岫岩| 晋宁县| 贵州省| 丹阳市| 克拉玛依市| 肇东市| 固安县| 噶尔县| 丹东市| 广安市| 昌平区| 九江市| 五河县| 平定县| 武乡县| 五原县| 邵武市| 通州市| 阿克陶县| 且末县| 封开县| 青浦区| 元谋县| 余姚市| 花莲市|