以前的案例涉及的動畫效果都是平面展現,可是ivx中也能夠經過3D世界組件展現3D的效果。今天咱們就以跑馬燈爲例來說一下ivx中的3D世界是如何使用的。
一.3D世界
3D世界最基礎的組成部分就是座標系和攝像機。座標系是一個空間直角座標系,3D世界下的全部組件都會有一個XYZ座標來決定它在3D世界中的位置,而攝像機負責控制咱們的視角,下圖中紅圈處就是攝像機的位置,黃線框起來的區域就是咱們的視角範圍。
另外咱們還能夠在3D世界中添加各類光源,字體,圖片,圖片序列和物體模型這些具備展現效果的組件,除此以外還有3D容器,他能夠做爲多個組件的父容器下,統一控制這些子組件的狀態。ide
二.跑馬燈
1.攝像機位置
首先調整攝像機的座標位置,而後在3D世界中添加一個3D容器,統一管理跑馬燈的8張圖片。
咱們點擊3D容器,能夠看見3D容器自身也擁有一個小座標系,在不對3D容器進行XYZ軸旋轉的狀況下其自身座標系是與3D世界這個父容器的座標系方向一致的,天然3D容器內部的組件其實也會以3D容器這個父容器的座標系爲基準的。
總結一下就是每一個組件自身的座標系用於做爲其子組件的XYZ座標的基準和組件自身XYZ軸旋轉的基準。好比咱們將3D容器Z軸旋轉90度,能夠看到其內部的圖片1的座標軸就隨之發生了旋轉。
2.圖片位置
首先將8張圖片的原點設置到中心點上,而後能夠看到圖片自身的座標系,咱們將圖片參照自身Z軸旋轉90°把它橫過來,最後爲了不圖片重疊讓圖片向Y軸正方向移動必定距離,設置圖片的Y軸座標爲100。
其它位置的圖片同理,不在座標軸上的圖片要同時設置Y座標和Z座標,數值是100÷(√2),約等於70.7。至於其餘圖片的旋轉效果易知都是按照圖片自身的X軸旋轉。
3.時間軸
最後就是經過時間軸讓3D容器繞其自身X軸旋轉。
咱們給時間軸添加2個時間標記,分別在0s和1s的位置。這是由於時間軸開啓了循環播放,因此它播放到2s時就會從0s從新播放,即2s與0s是同一時間點,結尾就是開頭。時間標記能夠添加事件,當時間軸播放到該時間點就會觸發。這裏是用一個數值變量來設置3D容器的X軸旋轉角度,每播放到一個時間標記就給該值加10,以此來達到旋轉的效果。
其實細想一下就會發現這個時間軸充當的就是一個觸發器的做用,咱們能夠直接用觸發器替換掉。不過3D世界內不能添加觸發器,咱們把它添加在橫幅下。以下設置後最終效果是同樣的。(數值變量和觸發器不受佈局層級影響)
另外咱們還能夠直接給3D容器添加一個軌跡自動循環播放,初始關鍵幀3D容器X軸旋轉角度0°,末尾關鍵幀360°造成一個閉環,這樣作最終效果也是同樣的。
4.先後翻跑馬燈
上面實現的是上下翻的跑馬燈,實現先後翻的跑馬燈效果原理上也是同樣的,只是變更了一些參考座標軸,你們能夠本身動手嘗試改造一個。佈局
總結
3D世界中最重要的就是各個組件的位置關係了,首先要分清的是哪些屬性值是參照父容器座標系,哪些屬性是參照自身的座標系。其次就是明確它的父容器是誰,它的父容器座標系的基準方向。建議是中間層級的容器儘可能不要進行旋轉,都保持與3D世界的座標系方向一致,這樣是最合乎直觀感覺的,不然中間旋轉來旋轉去很容易出錯。字體