1. 動畫介紹
????????無論動畫如何實現,它都必須考慮所需的動作、時間、產生所需流動性所需的幀數以及序列中的關鍵點。這個介紹應該有助于理解Babylon.js是如何進行動畫的,以及它們是如何實現的。
????????動畫由一系列圖像、幀生成,這些圖像、幀一個接一個地顯示。這一系列的幀可以是單獨的繪圖,也可以是定格動畫,即逐幀略微移動的模型照片
????????在設計階段,創作者需要考慮畫面序列應該花費多長時間以及需要多流暢。運動越平滑,需要的幀就越多。一旦知道了幀數,就可以推斷出每秒的動畫數量。此外,了解對象的起始位置和結束位置以及需要多少幀將決定對象每幀的移動。
????????在Babylon.js 中,就像在定格動畫中一樣,單個對象必須一個接一個地移動。我們既可以將物體的整個完成的片段稱為一段動畫,也可以把動畫當作一個特定的對象,它詳細說明了轉換、定時和循環,然后可以將這個“動畫”應用于任何網格對象、攝像機或光線。并在動畫數據中添加了關鍵幀的值,Babylon.js 將計算幀之間要發生的轉換。
2.?動畫文檔中使用的術語
以下是有關動畫的專業術語:
- 執行者(Performer):可執行動畫的物體,例如網格物體、燈光或攝像機。Performer一般為場景內的一個節點(一般比節點更寬泛一些)。Performer 還可以是著色器上的顏色屬性值、燈光的強度屬性、另一個動畫上的重量屬性。
- 幀(Frame):動畫幀,不是場景的渲染幀。
- 動畫(Animation):類似于戲劇或電影的劇本,但僅為Performer的一個屬性。它包括
- 1 要更改的屬性,例如位置、強度或旋轉的值
- 2 屬性變化率(單位:秒幀)
- 3?正在變化的屬性的類型,例如矢量、浮點數或矩陣
- 4?循環條件
- 5?關鍵幀上屬性的值
- 腳本執行者(Scripted Performer):Performer+由Performer執行的所有動畫
- 性能(Performance):Scripted Performer按照腳本執行的操作。在Babylon.js中,是一個名為animatable的對象。
- 剪輯(Clip):表演的可視化結果。在實踐中,有兩種類型的剪輯——游戲剪輯和電影剪輯。在電影剪輯中,用戶對相機沒有控制權,并且根據剪輯創建者設置的相機動畫來觀看剪輯。在游戲剪輯中,用戶能夠根據場景中使用的相機來移動。-- 除非這個詞可能會引起混淆,否則動畫章節的整個文檔都會使用“剪輯”一詞。
- 卡通(Cartoon):一定時間間隔播放的一系列剪輯片段。