Flash已經更名爲Animate,可見Adobe將其定位成動畫工具。雖然榮光不在,但是,繪圖,動畫,界面編輯功能依舊十分強大。
利用JSFL進行工具拓展,可以將一些體力勞動轉化成一鍵操作。
Flash中筆刷繪製的曲線實際上是二次貝塞爾曲線的點集合。
JSFL解析筆刷,曲線會拆分成多份。畫一條曲線,然後,將其解析成二次貝塞爾曲線隊列,按照隊列順序繪畫出每一段曲線放置到新建的圖層中取。然後,反向取消剛纔的操作,這裏倒敘的過程中,會發現,一條曲線實際上是分成兩段的。[如果是複雜的曲線,會分成更多段...]
相鄰的兩段貝塞爾曲線,如果想要平滑鏈接,需要滿足下圖
也就是兩個控制點和鏈接點需要在一條直線上。我們可以通過這個條件對解析出的節點數組進行再排序。
P2點是兩條貝塞爾曲線的公共點,這個點必須相等纔可以。
P2上兩側與C12和C23運算得到的斜率,其實際值並不是完全一直,多少有些偏差。
所以,這裏將兩端的斜率轉換成角度,通過角度差很小的近似爲一致的方式,進行判斷。(Math.atan2 計算出的值[-180,180])
這裏注意 兩個角分別,接近 -180 或 180 時,實際上是近似爲相等的,所以,每次近似前先將兩角差縮至180以內。
算出這個路徑然後添加上緩動動畫,實際效果如下
由左到右是線段由端至長。
第一排是SineIn
第二排是SineInOut
第三排是SineOut
第四排是 以上三者的疊加動畫。
也可以生成路徑然後在其他軟件中播放。
軌跡動畫隨手幾份
更換筆刷調整粗細,將 In,InOut,Out 旋轉組合,同時開始同時結束。導出到Unity合併altas選擇壓縮。看起來效果還不錯
Altas的大小也還是能接受的。只不過可能還要進行一下壓縮。
下一篇: