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

Vizrt在電視新聞類節目中的技術研發的探索與實踐
——Vizrt二次開發具體案例分析

2014-09-12 08:25:20郭軼君
關鍵詞:動畫

郭軼君

(江蘇電視臺 新聞中心,南京 210008)

1 綜述

在線包裝系統是一種新型的電視包裝手段,2000左右年進入中國,但在歐美各國這項技術早已全面應用,即使在東南亞各國也早已具備多年的成熟應用經驗。

目前世界上得到業界認可的有兩家大型在線包裝品牌,vizrt與奧威。下文以vizrt為例,闡述在對vizrt 本身運行機制的深入理解的基礎上,進行二次開發的應用與研究,最終能夠適當的擴展軟件的功能,滿足更為廣泛的包裝需求。

2 新聞類在線包裝二次開發具體案例分析

2.1 UI式的開發DataPool(數據池)

DataPool是viz的一個數據插件模塊,之所以和開發牽連起來是因為它出現的目的是為了簡化我們編寫腳本的工作量。viz的所有圖形操作都基于viz command(viz命令),舉例說明比如建立一個box(盒子)物體和一個字體物體來表述一個直方圖,為了設置其高度我們需要向viz發送命令讓box的高度為10 字體顯示為10。或者我們需要從viz外部改變它的某項屬性,我們需要訪問容納這個box物體的container在場景樹中的層級路徑,并且我們必須訪問它唯一的名稱,這樣我們需要編寫一句命令。反復編寫這樣的代碼工作量比較大而且也比較繁瑣,viz DataPool解決了這樣一個問題,我們需要的是通過viz DataPool DataFiled(數據變量)來存儲數據,進而改變一些圖形的屬性或者控制場景中的各類數據,使各類數據相互配合達到一個比較高級的效果。通過DataPool,將DataText(數據字體)插件加載在字體物體上,將DataScale(數據縮放)加載到cube物體上,通過一個命名為 DataBar的 DataFiled將數據同時傳遞到兩個物體上。這樣當DataField的數據發生變化,二者的屬性將同時變化。當這樣一個DataField注冊到場景中,任何外部的軟件都可以通過名稱直接訪問場景數據,而不需知道具體的場景層級路徑。

通過viz DataPool我們可以強化很多交互效果甚至可以修正很多實際播控中出現的邏輯悖論。從一個最簡單的案例入手,講解一下聯動的效果:在播控中從外部修改數據進而觸發一個數字增長動畫。在DataPool環節我們需要做的工作就是用DataText表征數字的字符串向量,用DataAnim(動畫數據)來控制數據的具體變化。之后通過腳本修改DataAnim的關鍵幀就可以交互式的控制數字增長動畫。由于本節講解DataPool,腳本放在下節講解。第一步,建立一個字體圖形加載DataText將其DataField命名為NO。第二步,建立一個空的Container 加載DataAnim同樣命名為NO。將DataAnim 的Animation Type設置為Float(浮點數),這時只要對Data Anim 的Value(數值)屬性記錄關鍵幀字符圖形將顯示Value的變化數據。

DataPool有幾十種數據控制類型,除了典型的變換屬性,還可以控制關鍵幀屬性、材質屬性、紋理屬性、鼠標數據、鍵盤數據等。通過viz DataPool 我們可以控制viz世界里任意物體的所有屬性,從而擺脫viz UI(用戶界面)的功能限制。

為了更好的理解DataPool再講解一個稍微復雜一些的案例,從而為之后結合腳本程序的案例打下一些基礎。以柱狀統計圖動畫為例,用戶希望可以控制其高度屬性,同時需要一個標識來進行數據的變化展示。之前已經講解過如何實現數字變化,這里我們還需要這個小的數據圖標一直固定在柱狀圖的頂部。這樣的效果,我們可以通過密集記錄關鍵幀實現,但是在線播控階段這是不可能的,那么如何實現這樣的效果呢,首先我們來分析一下思路,這個案例中涉及兩個屬性,一個是柱狀圖的y軸縮放屬性,另一個是圖標的y軸位移屬性。這兩個屬性如何配合就是問題的關鍵。縮放的數據變化是從1開始變化的,且變化速率比較快,數據變化一個單位高度變為原來的兩倍,然而位移屬性增長一個單位根本看不出任何變化。而且起始狀態下,縮放默認為1,而本案例圖標對齊到柱頂位置默認值為-42。如何解決這兩個問題呢?通過調節參數就可以發現二者的數據變化存在一個比例關系,而且這個比例關系肯定是固定不變的,通過人為的經驗測試可以得出這樣的一個常量數據,這里我得出109.5。那么現在需要的是讓縮放的數據除以99.5來控制圖標的位移屬性,這個問題就解決了。對于起始位置有錯位這個問題很容易解決,對位移屬性的控制是基于物體的自身坐標,為了不影響自身坐標的變化,只需要為其建立一個父級別的控制組,通過控制父級別的y軸位移屬性讓起始位置對位。以下我給出具體的制作步驟:

1.建立空Container 加載 DataAnim 將Data Field命名為 ctr。

2.建立一個Container 加載DataScale將Data Field命名為 ScaleY,另加載一個DataMath數學運算節點,變量一設置為ctr變量二設置為 99.5 算法設置為除法。輸出變量設置為ScaleY。

3.建立一個圖標加載DataPositon 將DataField命名為ctr。為其建立一個父層級的Container,通過改Container將圖標移動到柱圖的頂部位置。現在通過調節,DataAnim的value屬性就得到了最后的效果。

在直播階段通過這樣的裝配可以實現實時的觸發與修改由設計師設計好的動畫,否則所有的動畫形式都只能停留在后期階段,也就失去了在線包裝的在線特性。當然DataPool的功能遠不僅如此,通過與viz conmmand 、viz script (viz的腳本系統)配合幾乎可以實現任何交互控制的動態效果。

以上所講都著重體現在線效果,下面還有一個小案例,說明了DataPool在優化播出流程,提升播出效率方面的能力。

如圖1,該OSP的首次上線,給播控人員造成了一定的播控困難,按照常規思路,該曲線統計圖需要9個數據來進行繪制,就需要播控人員在控制軟件中依次點擊修改18個參數(8個控制曲線數據,8個控制顯示數據),對于播出前的緊張狀態而言,這樣的流程顯然存在一定的風險。那么如何可以簡化播出制作的流程盡量減少修改時間呢?經過思考,我利用DataPool中的DataParameter(數據參數) 實現了同時控制每對數據,并且將所有數據列入一個表單,無需依次點擊修改。

DataParameter 專門用來控制其他功能類或者幾何體類型的插件。

圖1 股市數據統計圖 數據池批量控制曲線圖數據

圖2 股市數據統計圖工程的樹狀分布圖

圖3 股市數據統計圖 首個DataPool插件的屬性面板

圖4 股市數據統計圖 第二個DataPool插件的屬性面板

利用兩套DataParameter分別對LineChart 與 DataLabel 進行了控制,在 vizrt中 LineChart(線狀圖表)屬于幾何物體,DataLabel屬于功能物體。對于加載在與LineChart同一個Container之上的Data Parameter而言,(上圖中用黃色高亮標示出)參數類型,我們必須選擇Gemotry 對參數名而言我們控制的是曲線Y軸方向的數據,手動填寫DataY(Y軸向數據),如圖3。同理,另外的DataParameter中參數類型設定為功能Function(功能),參數名稱在DataLable(數據標簽)中查找為Data,如圖4 。Function Name(功能名稱),填寫DataLabel 表明了功能插件的確切名稱。兩個DataParameter插件中的FieldName都為Line,這樣是用來接收來自控制插件DataControl(數據池外部控制插件)的數據。在同一個Container之上,無法同時加載兩個以及以上的DataPool插件。本案例中,需要同時訪問的參數必須加載在同一個Container之上,通過Use Other Container(使用其他容器)可以實現不同DataPool插件對同一個Container之上的不同數據控制的功能。

3 腳本、DataPool、VizrtCommand在解決各類場景問題與提升交互效果方面的應用

3.1 DataPool與VizCommand配合訪問場景數據

由于viz command 與viz script的加入,我們不必局限于軟件的既有功能。那些利用現成的功能無法直接實現的想法,通過viz Command與viz script的簡單應用便可柳暗花明,巧妙地運用二次開發技術使得設計者的想法不必局限于軟件的默認功能。

圖5多類屬性響應外部數據在建設銀行曲線圖表版式上的應用,需要完成這樣一個線狀統計圖,當播控人員輸入月份與日期之后,Take(播出)該OSP(屏幕圖形文字系統),紅色日期圖標會自動自01動畫至具體的某一個月份,月份與日期也會相應的產生一個增長動畫停止到輸入的日期。這樣的效果如果利用普通的字幕機來完成,必須后期制作成完整的序列幀文件,且無法即時修改,當日期產生變化時,只能重新制作另外一套序列幀,無法滿足在線播控的隨機性,每天消耗人力完成這樣的效果得不償失。利用在線包裝綜合多種相應技術即可完成這樣的效果。

實現方案分析:

(1)在播控端需要能夠讀取到播控軟件輸入的日期與月份數據。首先建立三個文本控制權限用來取得外部輸入數據。同時利用場景腳本將數據分別存儲在三個字符變量之中。

con = Scene.FindContainer("KF")

conn =Scene.FindContainer("KFF")

coonn =Scene.FindContainer("KKFF")

圖5

a =con.geometry.text

b =conn.geometry.text

c =coonn.geometry.text

println a

println b

println c

(2)制作月份、日期、圖標位移動畫,由DataAnim、DataText與 DataAnim、DataPosition共同作用。分別將DataAnim的OutPut field name與 相應的DataText DataPosition的FiledName設置為相同名稱。這樣由DataAnim產生的數據變化將直接影響DataText與 DataPosition所控制的插件的屬性。

(3) 實現關鍵幀即時修改功能。在三段相應的動畫中,隨情況不同,日期月份,標簽位置的動畫都不盡相同。即關鍵幀在播控時可以被修改,我們將三個動畫的開始關鍵幀均設置為0,末尾關鍵幀則由外部輸入數據進行修改。我們需要在場景被保存后第一時間實現關鍵幀的修改,故將所有程序寫進VizScript的回調函數:Oninit之中,并且在時間線上對該函數進行調用。首先我們需要獲得三類Channel的關鍵幀變量。

obj =Scene.FindContainer("OB") //存貯日期數據的Container變量

oobj =Scene.FindContainer("OOB")//存貯月份數據的Container變量

oobjj =Scene.FindContainer("bar")//存貯圖標的Container變量

ch=obj.findorcreatechannelofobject("IntValue")

//通過Container對象的成員函findorcreatechannelofobject 返回控制日期的DataAnim動畫Channel

CHH=oobj.findorcreatechannelofobject("IntValue")

//通過Container對象的成員函數findorcreatechannelofobject 返回控制月份的DataAnim動畫Channel

CCHH=oobjj.findorcreatechannelofobject("FloatValue")

//通過Container對象的成員函數 findorcreatechannelofobject 返回控制圖標位置的DataPosition動畫Channel

于是利用所取得的Channel變量,繼而可以訪問channel內部的關鍵幀數據。

temp.delete() //取得的三個屬性的初始關鍵幀數據,由于vizrt可以在時間線同一時刻,記錄無數關鍵幀,所以在修改關鍵幀之前必須取得初始關鍵幀進而對其刪除empb.delete()

tempc.delete()

temp1.delete()

tempb1.delete()

tempc1.delete()

k=ch.addKeyframe(0) //將零幀數據設置為0

k.IntValue=0

KEY=CHH.addKeyframe(0)

KEY.IntValue=0

KEYC=CCHH.addKeyframe(0)

KEYC.FloatValue=0

k=ch.addkeyframe(1) //利用之前存貯的月份日期位置數據對三組末尾關鍵幀寫入數據。

k.Intvalue=cint(a)

KEY=CHH.addkeyframe(1)

Key.IntValue=cint(b)

KEYC=CCHH.addkeyframe(1)

KEYC.FloatValue=(cint(c)-1)*35 //根據時間軸線長度,推到出合理公式,滿足數據時間軸坐標的對應關系。

println k

println KEY

println KEYC

最后在時間線上播放動畫時,將VizCommand寫入關鍵幀調用Oninit函數,驅動所有圖形動畫播放。

如圖6。

圖6 建設銀行圖表版式中Action(一種在時間線上可以記錄viz命令的關鍵幀)關鍵幀的具體位置與具體命令

3.2 VizScript對切換邏輯中邏輯矛盾的修復

2013年初新聞中心全新改版,按照欄目需求字幕條系統分為主標題,副標題,快訊標題,且主標題寬度大于副標題大于快訊標題。按照切換邏輯的常規思路,我們可以實現,三條標題單獨播出,若先播出副標題,播出主標題時,副標題同時縮小,上移動。同理,若先播出快訊標題,播出主標題時,快訊標題同時縮小上移。如果我們想實現,在播出快訊標題后,播出副標題,快訊標題同時上移縮小。那么我們無法同時滿足快訊標題上移縮小的動畫與播出主標題時候產生的上移縮小的動畫。

如圖7所示。為了實現主標題與副標題交互動畫效果,將副標題上移縮放動畫放置于主標題的Director(ZMT)中。當主標題被觸發,同時副標題也發生了上移與縮放動畫,無論此時副標題是否播出實際的空間坐標已經發生了變化。同理我們可以實現主標題與快訊標題的交互動畫,將快訊標題的上移縮放動畫KX放置于同一Director之中。按照相同的思路,實現副標題播出時快訊標題同樣上移,將快訊的上移動畫放置于副標題的Director(FBTLOGIC)之中。如圖8。

圖7 主副標題交互觸發效果的動畫設計部分

圖8 快訊標題與副標題交互觸發效果的動畫設計部分

于是問題出現了,我們應該如何設置這樣一個快訊的上移動畫?將主標題之中的快訊動畫直接復制進入該Director?但是viz的動畫是具有唯一性的。如果一段動畫同時在兩個Director之中播放,那么結果將是兩段動畫的合成。單獨為快訊制作一段上移動畫,按照設計方案,我們不希望快訊被副標題頂起產生縮放動畫,所以只有上移動畫。那么,當我們播出快訊繼續播出副標題,結果將是正確的。如果我們播出快訊之后繼續播出主標題也是正確的。但是當我們播出了快訊,繼續播出副標題,繼續播出主標題,那么錯誤出現了,快訊將不在正確的位置偏離于副標題之上,這就是在主標題與副標題中的兩段快訊動畫產生了合成作用。在這套切換邏輯的制作過程中,我們沒有違反切換邏輯的任何邏輯規則,但是結果是不正確的,切換邏輯本身已經對這樣的邏輯問題沒有解決之道了,于是我們需要借助Viz Script來修正這種情況。這里我將給出程序的編寫與操作思路,具體的代碼就不再逐一解釋。

建立函數ChangeKeyFrame(),根據圖9中的布爾值進行邏輯判斷,當state1時,修改KX 兩端關鍵幀,當ZBTorXBT=true時,POS_1 Scale_1、POS_2 Scale_2;ZBTorXBT=false時,POS_1 Scale_1、POS_3 Scale_3。

SETKX()設置變量ZBTorXBT的值;SETSTATEkx()SETSTATEzbt()SETSTATExbt()設置stage狀態;

當state為 ZBT=true;XBT=false;KX=true時,修改KX 兩端關鍵幀分別為POS_2 Scale_2、POS_4 Scale_4;

當state為 ZBT=false;XBT=true;KX=true時,修改KX 兩端關鍵幀分別為POS_3 Scale_3、POS_4 Scale_4;

State默認狀態均為false;

同時需要在DIRECTOR KX之上建立兩個CommandKeyframe,分別鍵入命令

1:THIS_SCENE*SCRIPT INVOKE SETSTATE

圖9 三類標題的狀態分析

kx true;正向執行

2:THIS_SCENE*SCRIPT INVOKE SETSTATE kx false ;逆向執行

在DIRECTOR ZBT 上建立三個CommandKeyframe,分別鍵入命令

1:THIS_SCENE*SCRIPT INVOKE SETSTATEzbt false;

THIS_SCENE*SCRIPT INVOKE SETSTATE ZBTorXBT true;

THIS_SCENE*SCRIPT INVOKE ChangeKeyFrame();

THIS_SCENE*STAGE*DIRECTOR*KX CONTINUE;正向執行

2:THIS_SCENE*SCRIPT INVOKE SETSTATEzbt true;正向執行

3:在第一個關鍵幀之前建立第三個關鍵幀

THIS_SCENE*SCRIPT INVOKE SETSTATEzbt false;

THIS_SCENE*SCRIPT INVOKE SETSTATE ZBTorXBT true;

THIS_SCENE*SCRIPT INVOKE ChangeKeyFrame();

THIS_SCENE*STAGE*DIRECTOR*KX CONTINUE REVERSE;逆向執行

在DIRECTOR XBT 上建立三個CommandKeyframe,分別鍵入命令

1:THIS_SCENE*SCRIPT INVOKE SETSTATExbt false;

HIS_SCENE*SCRIPT INVOKE SETSTATE ZBTorXBT false;

HIS_SCENE*SCRIPT INVOKE ChangeKeyFrame();

THIS_SCENE*STAGE*DIRECTOR*KX CONTINUE;正向執行

2:THIS_SCENE*SCRIPT INVOKE SETSTATExbt true;正向執行

3:在第一個關鍵幀之前建立第三個關鍵幀

THIS_SCENE*SCRIPT INVOKE SETSTATExbt false;

THIS_SCENE*SCRIPT INVOKE SETSTATE ZBTorXBT false;

THIS_SCENE*SCRIPT INVOKE ChangeKeyFrame();

THIS_SCENE*STAGE*DIRECTOR*KX CONTINUE REVERSE;逆向執行

這樣,利用少量的VizScript程序就解決了之前所產生的問題。

4 結論

在線包裝的設計需要依靠一定程度的編程知識與豐富的經驗來總結科學地提升制作效率的手段,讓在線包裝的在線特點得到有效的體現。由于直播過程中存在很多不確定因素,設計師在從事在線包裝項目時需要考慮到如何能將這些不確定突發的行為變成可以交互式完成的,而不是依賴于大量的重復性勞動來暴力解決。

通過對在線包裝系統二次開發的一些初步探索我希望可以為讀者建立一種觀念:作為一名在線包裝設計師需要考慮的不僅僅是構圖、色彩、動畫、質感這些傳統的圖形設計問題,更需要考慮并能付諸實現的是如何從多方面增強播控的交互性——即如何讓操控者可以更靈活的去控制你所設計的場景、如何去提升整個包裝流程的制作效率、如何保證自己制作的場景可以安全播控、如何為制作團隊提供更多有效可行的實現方案擴展創意思路。以上所述本人也只是初步探索,希望可以有更多的設計師深入探索這一課題,并共同進步。

[1]Vizrt Artist User Manual[M].1059-1076.

[2]金斯利休斯.VBScript程序員參考手冊[M].北京:清華大學出版社,2009.

[3]葉翊霳.FLASH ACTIONSCRIPT程序設計經典商業范例集[M].北京:清華大學出版社,2009.

[4]彼得斯. Flash ActionScript 3.0 動畫高級教程[M].北京:人民郵電出版社,2010.

猜你喜歡
動畫
我們的“動畫偶像”
Clifford hits the big screen
做個動畫給你看
動畫發展史
Mg動畫在慕課中的應用及其制作
我的動畫夢
文苑(2019年22期)2019-12-07 05:28:56
好萊塢動畫與中國動畫對比
流行色(2019年7期)2019-09-27 09:33:28
動畫批評融入動畫教育的思考
新聞傳播(2018年3期)2018-05-30 07:01:39
暖心動畫:最好的禮物
我是動畫迷
學生天地(2016年9期)2016-05-17 05:45:06
主站蜘蛛池模板: 亚洲综合色婷婷| 精品一区二区久久久久网站| 亚洲日韩第九十九页| 热久久国产| 五月婷婷亚洲综合| 国产91成人| 99re经典视频在线| 国产美女视频黄a视频全免费网站| 嫩草影院在线观看精品视频| 亚洲天堂视频在线播放| 日韩高清无码免费| 亚洲一级毛片在线观播放| 亚洲 日韩 激情 无码 中出| 一级不卡毛片| 这里只有精品免费视频| 亚洲第七页| 激情综合网激情综合| 国产精品污视频| 午夜国产精品视频黄| 国产精品视频白浆免费视频| 2021国产精品自产拍在线| 乱人伦99久久| 在线精品亚洲一区二区古装| 日韩美毛片| 久996视频精品免费观看| 亚洲V日韩V无码一区二区 | 一区二区三区四区在线| 99精品这里只有精品高清视频| 国产AV毛片| 毛片网站观看| 美女啪啪无遮挡| 午夜福利网址| 欧美成人精品欧美一级乱黄| 国产成人h在线观看网站站| 国产精品久久久久鬼色| 99精品伊人久久久大香线蕉 | 日韩高清在线观看不卡一区二区| 亚洲成人77777| 91色在线观看| 国产免费福利网站| 国产成人无码久久久久毛片| 国产浮力第一页永久地址| 青青青国产视频| 91成人在线免费视频| 欧美成人午夜视频| 波多野结衣一区二区三区四区| 国产精品久久久精品三级| 亚洲美女一区| 日韩精品免费在线视频| 国产欧美日韩免费| 久久精品中文无码资源站| 国产成人免费高清AⅤ| 国产伦片中文免费观看| 欧美日韩久久综合| 91久久偷偷做嫩草影院| 制服丝袜亚洲| 美女裸体18禁网站| 一级全免费视频播放| 国产美女人喷水在线观看| 欧美精品亚洲精品日韩专区| 久久中文字幕av不卡一区二区| 免费一级毛片不卡在线播放| 国产午夜人做人免费视频| 国产av色站网站| 久久天天躁狠狠躁夜夜2020一| 国产爽歪歪免费视频在线观看| 综合色亚洲| 波多野结衣久久精品| 亚洲av无码成人专区| 亚洲av成人无码网站在线观看| 欧美日韩亚洲国产主播第一区| 国产97公开成人免费视频| 亚洲国产日韩一区| 国产91精品久久| 中文字幕波多野不卡一区| 国产一区在线视频观看| 片在线无码观看| 亚洲欧美日韩天堂| 国产一区二区精品福利 | 亚洲色图另类| 91免费国产在线观看尤物| 国产日韩欧美精品区性色|