沈縈華,方瑜驊,呂朝輝,李春紅
(中國(guó)傳媒大學(xué)信息工程學(xué)院,北京100024)
在實(shí)際的舞臺(tái)場(chǎng)景燈光效果設(shè)計(jì)過程中,存在著大量的不確定性,設(shè)計(jì)師們?cè)谠O(shè)計(jì)模擬中,常常需要大量的時(shí)間精力以及能源的投入,這對(duì)于他們是一個(gè)很大的考驗(yàn),同時(shí)也存在著很大的風(fēng)險(xiǎn),這使得舞臺(tái)燈光效果設(shè)計(jì)工作存在著許多不確定性,可控性差而又成本高昂。
因此設(shè)計(jì)師們急需一個(gè)能夠?qū)崟r(shí)模擬場(chǎng)景燈光效果的平臺(tái),能夠方便逼真地模擬實(shí)時(shí)的三維舞臺(tái)場(chǎng)景和燈光環(huán)境。
本文中,通過OGRE提供的三維實(shí)時(shí)模擬功能,我們把設(shè)計(jì)師的靜態(tài)設(shè)計(jì)和創(chuàng)作轉(zhuǎn)化成具有臨場(chǎng)感和交互能力的三維虛擬場(chǎng)景。不僅能夠模擬靜態(tài)的場(chǎng)景和燈光效果,也能模擬動(dòng)態(tài)的場(chǎng)景燈光動(dòng)畫效果。這樣設(shè)計(jì)師們可以實(shí)時(shí)對(duì)舞臺(tái)中各種不同特效進(jìn)行定制,隨時(shí)捕捉并將設(shè)計(jì)者的新穎構(gòu)思以及創(chuàng)意展現(xiàn)出來[1]。而可定制動(dòng)畫功能的加入,也讓設(shè)計(jì)師們能設(shè)計(jì)出更為豐富絢麗的舞臺(tái)場(chǎng)景效果。
這里重點(diǎn)介紹一下動(dòng)畫模擬設(shè)計(jì)的邏輯架構(gòu)。
整體架構(gòu)以O(shè)GRE引擎為基礎(chǔ),底層的資源類和插件類負(fù)責(zé)插件和舞臺(tái)建模資源以及各種特效材質(zhì)資源的導(dǎo)入,引擎框架負(fù)責(zé)控制場(chǎng)景管理器和場(chǎng)景監(jiān)聽器,最終通過執(zhí)行器啟動(dòng)舞臺(tái)場(chǎng)景的創(chuàng)建和舞臺(tái)幀監(jiān)聽器。
主框架如下圖所示:
圖1 系統(tǒng)架構(gòu)圖
OGRE提供了相當(dāng)靈活的動(dòng)畫系統(tǒng),通過它可以做各種各樣的應(yīng)用[2]。
骨骼動(dòng)畫運(yùn)用骨骼結(jié)構(gòu)來定義網(wǎng)格數(shù)據(jù)。
頂點(diǎn)動(dòng)畫保存頂點(diǎn)的快照來決定網(wǎng)格數(shù)據(jù)如何改變。
場(chǎng)景節(jié)點(diǎn)動(dòng)畫根據(jù)預(yù)先定義的路徑來操作場(chǎng)景節(jié)點(diǎn)上掛接的實(shí)體的運(yùn)動(dòng)產(chǎn)生動(dòng)畫效果。
數(shù)值動(dòng)畫OGRE提供擴(kuò)展的類來根據(jù)任何值產(chǎn)生動(dòng)畫效果。
在場(chǎng)景中主要用到了骨骼動(dòng)畫和節(jié)點(diǎn)動(dòng)畫兩種。通過骨骼動(dòng)畫模擬行走的機(jī)器人,通過場(chǎng)景節(jié)點(diǎn)動(dòng)畫來模擬追光燈的效果。
OGRE中定義了關(guān)鍵幀,關(guān)鍵幀可以表示驅(qū)動(dòng)物關(guān)鍵幀的狀態(tài)與相應(yīng)的時(shí)間點(diǎn),這樣可以為一個(gè)可驅(qū)動(dòng)點(diǎn)定義多個(gè)關(guān)鍵幀。把這些關(guān)鍵幀組合起來,形成動(dòng)畫的軌跡[3]。
場(chǎng)景中追光燈的動(dòng)畫效果主要分以下幾步來進(jìn)行創(chuàng)建:
1.創(chuàng)建燈光結(jié)點(diǎn)以及人物的結(jié)點(diǎn)動(dòng)畫對(duì)象。
2.創(chuàng)建人物動(dòng)畫的結(jié)點(diǎn)軌跡以及關(guān)鍵幀的動(dòng)作,讓人物沿著固定的軌跡前進(jìn)。當(dāng)運(yùn)動(dòng)到固定結(jié)點(diǎn)的時(shí)候,改變前進(jìn)的方向。
3.創(chuàng)建燈光的結(jié)點(diǎn)軌跡,讓燈光跟隨人物的運(yùn)動(dòng)軌跡,實(shí)現(xiàn)追光的效果。
4.創(chuàng)建一個(gè)動(dòng)畫狀態(tài)的對(duì)象,把已創(chuàng)建的動(dòng)畫對(duì)象與動(dòng)畫狀態(tài)對(duì)象進(jìn)行關(guān)聯(lián),并通過動(dòng)畫對(duì)象進(jìn)行動(dòng)畫播放控制。
追光燈效果如下圖所示:
舞臺(tái)燈光設(shè)計(jì)師通常要進(jìn)行動(dòng)態(tài)燈光效果的設(shè)置,在舞臺(tái)的不同位置添置燈光,設(shè)置燈光在不同時(shí)間段的特效,朝向,種類等效果。應(yīng)用節(jié)點(diǎn)動(dòng)畫的技術(shù),設(shè)置燈光節(jié)點(diǎn)在每一幀下的信息,設(shè)置完畢后,播放整個(gè)節(jié)點(diǎn)動(dòng)畫[4]。
燈光節(jié)點(diǎn)動(dòng)畫效果如下:
圖4 燈光節(jié)點(diǎn)動(dòng)畫
場(chǎng)景中如果只有燈光動(dòng)畫的話,舞臺(tái)效果就會(huì)顯得單薄,因此需要系統(tǒng)提供場(chǎng)景動(dòng)畫的設(shè)置,使得場(chǎng)景效果也能加到動(dòng)畫序列中來,整體舞臺(tái)動(dòng)畫效果也更為豐富多彩。
場(chǎng)景動(dòng)畫重點(diǎn)要設(shè)置動(dòng)畫的時(shí)序、狀態(tài)、場(chǎng)景效果三個(gè)要素,系統(tǒng)會(huì)在設(shè)置的時(shí)間段內(nèi)播放相應(yīng)場(chǎng)景效果,并根據(jù)時(shí)序改變場(chǎng)景效果狀態(tài)。
場(chǎng)景動(dòng)畫效果如下:
圖5 系統(tǒng)場(chǎng)景動(dòng)畫
下面用流程圖來展示系統(tǒng)動(dòng)畫的實(shí)現(xiàn)過程:
圖6 系統(tǒng)動(dòng)畫實(shí)現(xiàn)
在添加一個(gè)元?jiǎng)赢嫷臅r(shí)候,系統(tǒng)會(huì)根據(jù)用戶的設(shè)定添加元?jiǎng)赢?,根?jù)元?jiǎng)赢嫷姆N類進(jìn)行動(dòng)畫屬性設(shè)置與打包,最終添加到動(dòng)畫序列中。動(dòng)畫播放過程中,系統(tǒng)會(huì)判斷并顯示每個(gè)元?jiǎng)赢嫷母鱾€(gè)屬性值以及運(yùn)行狀態(tài),在動(dòng)畫播放完畢后,用戶可以對(duì)動(dòng)畫進(jìn)行重新編輯,并再次播放。
舞臺(tái)動(dòng)畫效果模擬主要由以下部分組成:
圖7 舞臺(tái)動(dòng)畫效果
動(dòng)畫播放時(shí),會(huì)根據(jù)各個(gè)元?jiǎng)赢嫷臅r(shí)序和狀態(tài),決定動(dòng)畫播放順序[5]。
具體定制播放時(shí)序圖如下所示:
圖8 動(dòng)畫定制時(shí)序圖
系統(tǒng)會(huì)首先進(jìn)行動(dòng)畫定制環(huán)境的初始化,對(duì)動(dòng)畫序列所需的程序和數(shù)據(jù)進(jìn)行準(zhǔn)備工作。
然后根據(jù)用戶選擇的動(dòng)畫種類,針對(duì)場(chǎng)景動(dòng)畫和燈光節(jié)點(diǎn)動(dòng)畫分別給用戶提供不同的動(dòng)畫定制方案。
用戶選擇想要定制的動(dòng)畫并對(duì)動(dòng)畫中各個(gè)參數(shù)進(jìn)行設(shè)置后,便可以把相應(yīng)的動(dòng)畫加入動(dòng)畫序列中,又系統(tǒng)進(jìn)行整體調(diào)度。
系統(tǒng)根據(jù)動(dòng)畫起始時(shí)間,運(yùn)行時(shí)長(zhǎng)和優(yōu)先級(jí)對(duì)動(dòng)畫序列進(jìn)行調(diào)度,設(shè)定各個(gè)元?jiǎng)赢嫷膬?yōu)先級(jí)。
最終播放動(dòng)畫的時(shí)候,系統(tǒng)會(huì)實(shí)時(shí)記錄各個(gè)元?jiǎng)赢嫷牟シ艩顟B(tài),并在交互面板上通知設(shè)計(jì)者。
根據(jù)系統(tǒng)實(shí)現(xiàn),用戶定制動(dòng)畫的流程如下圖所示。
首先系統(tǒng)會(huì)進(jìn)行動(dòng)畫定制環(huán)境的初始化工作,將動(dòng)畫序列清空,并準(zhǔn)備動(dòng)畫所需資源。
接下來用戶會(huì)添加元?jiǎng)赢嫷絼?dòng)畫序列中,這里元?jiǎng)赢嬘袃蓚€(gè)種類,場(chǎng)景類元?jiǎng)赢嫼蜔艄忸愒獎(jiǎng)赢?。用戶選擇想要添加的動(dòng)畫種類,然后可以設(shè)置相關(guān)元?jiǎng)赢嫷母黜?xiàng)參數(shù)信息。
圖9 動(dòng)畫定制流程圖
對(duì)于添加燈光類元?jiǎng)赢?,用戶有多種不同種類的燈光可以選擇,例如聚光燈動(dòng)畫、追光燈動(dòng)畫、柔光燈動(dòng)畫等。選定燈光種類后,用戶可以對(duì)燈光相關(guān)參數(shù)進(jìn)行設(shè)置,包括燈光顏色、強(qiáng)度、中心角、照射范圍、旋轉(zhuǎn)角度等。燈光動(dòng)畫同樣支持一燈多動(dòng)畫,即一盞燈可以在不同的時(shí)段播放不同的燈光動(dòng)畫效果。用戶設(shè)定時(shí)只需在不同的時(shí)間段,給同一個(gè)燈光節(jié)點(diǎn)賦予不同的燈光參數(shù)即可。
對(duì)于添加場(chǎng)景類動(dòng)畫,用戶可以對(duì)常見的場(chǎng)景特效作為動(dòng)畫進(jìn)行添加,這樣舞臺(tái)就可以在特定的時(shí)間播放場(chǎng)景動(dòng)畫。用戶設(shè)定時(shí)只需設(shè)定場(chǎng)景動(dòng)畫的種類和播放時(shí)段,場(chǎng)景特效便能在特定的時(shí)段播放。
動(dòng)畫播放時(shí),用戶可以在前端觀察每個(gè)元?jiǎng)赢嫷牟シ艩顟B(tài)。動(dòng)畫播放完成后,用戶同樣可以對(duì)現(xiàn)有動(dòng)畫序列進(jìn)行重新設(shè)定和播放,支持任意元?jiǎng)赢嬕约皠?dòng)畫序列的可重入功能。
隨著三維仿真技術(shù)的不斷發(fā)展,專業(yè)舞臺(tái)燈光領(lǐng)域也跨入了全面的數(shù)字化時(shí)代。系統(tǒng)建立虛擬仿真3D舞臺(tái),對(duì)舞臺(tái)燈光設(shè)計(jì)及調(diào)整進(jìn)行實(shí)時(shí)呈現(xiàn),同時(shí)為舞臺(tái)燈光設(shè)計(jì)師提供了豐富的系統(tǒng)交互功能,能夠很好的解決這一難題。
本文在全面模擬舞臺(tái)燈光效果的基礎(chǔ)上,重點(diǎn)介紹了舞臺(tái)場(chǎng)景燈光動(dòng)畫效果的模擬。對(duì)于追光燈動(dòng)畫,燈光節(jié)點(diǎn)動(dòng)畫,場(chǎng)景動(dòng)畫以及整體動(dòng)畫序列的定制與播放進(jìn)行了闡述,并對(duì)具體動(dòng)畫播放的效果進(jìn)行呈現(xiàn)。這樣舞臺(tái)燈光設(shè)計(jì)師能夠靈活的定制想要的動(dòng)畫效果,并設(shè)置動(dòng)畫播放的時(shí)間順序,在任意想要的時(shí)間播放。
系統(tǒng)在架構(gòu),友好性以及系統(tǒng)效率與穩(wěn)定性方面都有一定的優(yōu)勢(shì),無論是對(duì)于燈光設(shè)計(jì)師、演出導(dǎo)演、燈光控制操作者,還是對(duì)于燈光美術(shù)教學(xué)和做燈光效果演示等都是一個(gè)非常專業(yè)且實(shí)用的設(shè)計(jì)工具和得力助手。
[1] 金小剛,鮑虎軍,彭群生.計(jì)算機(jī)動(dòng)畫技術(shù)綜述[J]. 軟件學(xué)報(bào),1997,8(4):241-251.
[2] D Heam,P Baker.Computer Graphics C Version,2nd Edition[M]. 北京:清華大學(xué)出版社,1998.
[3] 范巖萍,羅學(xué)科,楊方廷.基于MultiGen Creator的復(fù)雜飛機(jī)模型建模方法研究[J].北方工業(yè)大學(xué)學(xué)報(bào).2009,21(3):14-18.
[4] T Coleman.MAYA角色動(dòng)畫技術(shù)[M].北京:清華大學(xué)出版社,2000.
[5] R Fernando.GPU精粹——實(shí)時(shí)圖形編程的技術(shù)、技巧和技藝[M].北京:人民郵電出版社,2006:100-106.