999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2013-09-20 05:31:20劉鑫張昕
關鍵詞:引擎游戲語言

劉鑫,張昕

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

1 引言

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

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

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

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

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

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

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

2 虛擬攝像機概述

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

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

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

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

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

2.3 游戲電影拍攝輸出

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

3 Unity3D游戲引擎概述

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

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

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

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

4.1 攝像機控制腳本

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

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

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

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

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

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

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

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

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

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

4.3 視聽語言介紹

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

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

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

{CMP,LTMP,CPCP}

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

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

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

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

5 技術應用

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

6 總結

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

圖7 跟鏡頭

[1]曹淵杰,李亦中.現代電影與電子游戲的交互趨勢[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]李晉林.游戲電影給電影行業帶來新的挑戰和機遇[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]史紅兵,張毅彬,童若鋒,董金祥.虛擬場景自動漫游的路徑規劃算法[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.

猜你喜歡
引擎游戲語言
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
讓語言描寫搖曳多姿
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
累積動態分析下的同聲傳譯語言壓縮
數獨游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
第八章直接逃出游戲
小學科學(2015年7期)2015-07-29 22:29:00
我有我語言
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
主站蜘蛛池模板: 亚洲日本中文综合在线| 91精品国产自产在线老师啪l| 浮力影院国产第一页| 欧美精品啪啪| 91精品免费高清在线| 日韩精品一区二区三区swag| 伊人蕉久影院| 成人国产精品一级毛片天堂| 99久久国产精品无码| 欧美激情第一区| 国产无套粉嫩白浆| 中文一级毛片| 亚洲久悠悠色悠在线播放| 亚洲天堂精品在线观看| 久久中文字幕av不卡一区二区| 伊人激情综合网| 99久久亚洲综合精品TS| 亚洲欧州色色免费AV| 尤物在线观看乱码| 日韩精品资源| 极品尤物av美乳在线观看| 在线欧美日韩| 乱系列中文字幕在线视频 | 国产91全国探花系列在线播放| 国产欧美成人不卡视频| 思思热精品在线8| 亚洲综合九九| 亚洲永久视频| 国产视频一区二区在线观看 | 免费在线成人网| 四虎永久在线视频| 99在线视频免费观看| 五月综合色婷婷| 日本一区中文字幕最新在线| 亚洲视频免费播放| 日韩精品无码一级毛片免费| 在线免费不卡视频| 久久国产高清视频| 亚洲AⅤ无码国产精品| 99视频在线看| 人人艹人人爽| 成人另类稀缺在线观看| 欧美成人日韩| 国产不卡网| 狠狠久久综合伊人不卡| 四虎精品国产AV二区| 夜色爽爽影院18禁妓女影院| 日韩无码视频网站| 日本精品中文字幕在线不卡| 欧美激情综合| 国产亚洲欧美在线视频| 狠狠亚洲五月天| 黄色免费在线网址| 亚洲AV无码精品无码久久蜜桃| av无码久久精品| 特黄日韩免费一区二区三区| 国产午夜人做人免费视频中文| 国产精品一老牛影视频| 2021国产乱人伦在线播放| 亚洲第一视频网站| 人妻少妇久久久久久97人妻| 亚洲成a人片77777在线播放| 女人av社区男人的天堂| 日韩中文精品亚洲第三区| 亚洲激情99| 99热这里只有精品免费| 老司机午夜精品网站在线观看| 国产精品刺激对白在线| 日韩区欧美国产区在线观看| 青青草国产一区二区三区| 浮力影院国产第一页| 国产剧情国内精品原创| 日本一区二区三区精品视频| 欧美在线导航| 丝袜高跟美脚国产1区| 欧美日韩成人| 精品夜恋影院亚洲欧洲| 看国产毛片| 国产日韩丝袜一二三区| 国产成人高清亚洲一区久久| 国产亚洲欧美在线人成aaaa| a欧美在线|