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