用AE製作向量動畫參考資料

Upwork收到一個工作邀請,雖然因為英文能力還不夠沒辦法接,卻因此找資料發現原來現在AE搭配plugin可以匯出向量動畫。上網找了一下相關文章,中文資料大多是在2021之後發佈,代表這東西還算新(至少不太舊),可以來摸摸看。以下是其他找到的資料筆記

英文資料:

中文資料

幾個重點

  • AE編輯動畫的時候要把置入的ai圖檔轉換成向量圖層:
    預設不管置入什麼檔案,他匯出都是點陣圖檔,所以要做成向量動畫,或是直接在AE內編輯節點位置做動畫效果,圖層都要轉換成向量圖檔。我之前不知道可以這樣,總會覺得ai放到AE內可以做的動畫效果沒有An內來的彈性,如果可以編輯節點,那可以做的效果會多很多,即使不是用在做向量動畫也是會方便很多。
  • AE要安裝Bodymovin的plugin:
    這是可以把AE動畫匯出成不同的SVG動畫格式,上面英文參考資料有兩個影片,一個是匯出成SMIL格式,一個是匯出成Lottie Animation。都是透過這個套件去匯出的。

之前就有疑惑有些網站的向量動畫不知道是怎麼做的,總覺得不太可能是直接寫原始碼去做,當時也不知道相關資料。這次收到的工作邀請裡面提到Lottie Animation,才去查到相關的資訊。感覺這部份很適合我來看怎麼使用。

leafletjs 使用筆記

因為用 google map api 在我的案子上不可行(簡單來說就是客戶不會想支付這部份的費用,也不可能請他們設定綁信用卡跟金鑰給我),那時候合作提案的公司給了我農業易遊網的網址,說那是他們想做的效果。我仔細看了地圖發現他們並不是使用 google map ,就研究一下他們是用哪個套件,想說不難使用的話也許我可以拿來用。

他們用的是這套:https://leafletjs.com/

由於我是 js 苦手,上網找其他說明有時候照貼 code 地圖也跑不出來。下面這個是我測試後確定可以跑起來的寫法:

head 裡面先引用這些

<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" crossorigin=""/>
    <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script>

body裡面則是這些

<div id="map" style="width:100%;height: 400px;"></div>
//地圖顯示的區塊

<script>

	const map = L.map('map').setView([25.06303099468595, 121.53381965219468], 16);
//建立一個新的地圖,中心位置設定在行天宮的經緯度,還有預設的倍率為16

	const customIcon = L.icon({
	  iconUrl: 'https://divi.joyhsu.com/wp-content/uploads/2024/12/icon@2x.png',
	  iconSize: [30, 37],
	});
//建立自定的地標icon圖示

	const tiles = L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
		maxZoom: 19,
		attribution: '&copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
	}).addTo(map);
//引用OpenStreetMap,跟最大放大倍率為19

	const marker_1 = L.marker([25.06303099468595, 121.53381965219468],{icon: customIcon}).addTo(map)
		.bindPopup('<a href="https://www.youtube.com/" target="_blank">行天宮</a>').closePopup();
//第一個地標。如果使用自定icon需要在經緯度後面多加{icon: customIcon}
//因為我預設都不顯示彈跳視窗,所以用closePopup()
//如果要顯示就寫openPopup()

	const marker_2 = L.marker([25.063018150649686, 121.52995702521183],{icon: customIcon}).addTo(map)
		.bindPopup('<a href="https://www.youtube.com/" target="_blank">亞都大飯店</a>').closePopup();
//第二個地標

</script>

map 的 style 用行內樣式寫是因為我要置入在 divi 的區塊內,如果不這樣寫他高度顯示會不正常。如果是自己單獨寫的 html 的話, css 可以不用行內樣式寫。

之後使用比較費工的反而是要去手動查找地點的經緯度。這個就是去 google map 先搜到地點,在地點上按右鍵就會跳出一個框框,顯示該點的經緯度,拷貝起來即可使用。詳細可參考這篇的在 Google 地圖中查看地點座標

wp 的 divi 與 google api 相關設定

主要是有兩個東西會需要設定 google api:

  1. google font
  2. google map

divi 內使用 google font

如果只是要使用google font,在 divi 內設定google api的話,可以很方便的使用所有google font,會比下載字型檔案後上傳引入的方式好用很多。且若上傳,還得額外去調整php.ini裡面單一檔案上傳的限制調大。

設定方式如下:

  1. 到 google cloud 新增一個專案
  2. 啟用「Web Fonts Developer API」
  3. 建立一個憑證,取得金鑰複製起來,如果只使用字體的話,不用綁信用卡
  4. 回到wp後台的 Divi Theme Options ,到 General 的 Google API Key 輸入金鑰,並且把Google Fonts Subsets 改成 enabled (這樣才能選同一字體的子集,以中文來說就是不同的粗細)後儲存
  5. 之後再使用 divi 設定字體的時候,輸入字體名稱(字體名稱要到 google font 去看他的英文,例如思源黑體就是 Noto Sans TC)就可以搜到 google font 的相關字體來使用

divi 內使用 google map

這個主要是使用 google map api 的方式來使用 google map。如果只是使用 iframe 嵌入,不需要額外設定 google api

設定方式如下:

  1. 到 google cloud 新增一個專案
  2. 啟用的API:粗斜體這三個我確定一定要開。特別是 Address Validation API ,這個若不開的話,在 divi 裡面的 map 模組想設定地址去標地標就會沒辦法設定。其他是跟map有關的api,我也有開,但不確定哪幾個跟 divi 的 map 模組有關
    • Maps JavaScript API
    • Geocoding API
    • Address Validation API
    • Maps Elevation API
    • Maps Embed API
    • Maps SDK for Android
    • Maps SDK for iOS
    • Maps Static API
    • Places API
    • Places API (New)
    • Roads API
    • Street View Publish API
    • Street View Static API
  3. 建立一個憑證,取得金鑰複製起來,因為要用 map api ,系統會要求綁訂信用卡
  4. 回到wp後台的 Divi Theme Options ,到 General 的 Google API Key 輸入金鑰
  5. 之後使用 divi 插入 map 模組的時候,map框框內資料就會正常顯示,輸入地址也可以正常把地點 pin 進去