標籤:

無所不能的動畫系統

無所不能的動畫系統

參考了unity3d和creator,設計的基於時間線的動畫系統。

希望達到的目標:可以實時演算劇情動畫,無所不能


  • Animation 動畫播放組件(代碼里可以直接靜態播放,類似audioEngine)
  • AnimationClip 動畫數據(記錄了目標和操作,比如改變物體身上的label的數值)
  • AnimationState 動畫狀態

抽象

  • 動畫不應該和其他任何東西耦合
  • 你的任何操作都可以是動畫!!!
  • 本質就是改變了某個屬性、調用某個api

播放聲音、粒子

labe的數值變化

sprite的紋理變化

所以Animation是獨立的,可以操作任何東西,無所不能

根據時間線的一系列動畫,構成了劇情cg


可復用性

  1. 動畫數據和動畫目標分離,動畫目標可以動態改變
  2. 動畫目標綁定的其實是個 node-tree的結構,包括你動畫中用到的組件
  3. 同一個動畫可以用於不同的目標。只要符合 結構和組件相同,即可復用

嵌套性

  1. 動畫里,可以包含多個獨立的物體和動畫
  2. 可基於時間線的編輯器,並行調用其他動畫(類似總導演級,任意調用自己的動畫和不同角色的動畫,組成劇情)
  3. 子動畫類型的覆蓋(比如 一個燈泡的默認動畫是loop型,導演調用時,可以改成1次的類型,這裡用克隆,不改變原動畫)

功能性

  1. 支持精靈動畫、補間動畫、骨骼動畫
  2. 可以調用到所有的系統組件和系統api(聲音、粒子、active等等)
  3. 可以調用到所有的用戶自定義腳本
  4. 動畫融合(1個3d或者2d骨骼角色的上半身攻擊動畫和下半身移動動畫可以同時播,達到邊砍邊跑的效果)

動畫狀態機(見u3d)

  1. 可以精確的控制動畫轉換的細節
  2. 減少控制動畫的代碼

推薦閱讀:

OpenToonz 學習筆記day2
mg動畫視頻應該怎麼製作?!
宣傳片製作|萬彩動畫大師
Maya通過粒子的物理運算來輔助角色次要動畫的製作(下)
這些「大佬」們的動畫,顛覆你對火柴人的想像

TAG:動畫製作 |