WiNote
我之所以還無法完全離開 macOS,一個很大的原因是 Keynote。
你可能會說:「簡報軟體明明滿街都是啊!」LibreOffice Impress、Reveal.js,甚至 PowerPoint⋯⋯替代品明明超多的,為什麼一定要用 Keynote 呢?
我知道,但我根本沒把 Keynote 當簡報軟體,我是把它當「動畫軟體」在用的。
Keynote 對我來說最不可取代的地方是,它能輸出品質很好的 MP4 影片,更重要的是它的影片有動態模糊(motion blur)──就是物件快速移動的時候會自然地糊掉,配合每秒 24 格的設定,會有一種電影質感──輸出檔直接丟到剪輯軟體裡,就是漂亮的 B-roll。
好和弦頻道裡,大部分的動畫都是用 Keynote 做的。
完美的動畫軟體
我已經尋覓 Keynote 的替代品很久,但各種動畫軟體,沒有一個完全符合我的需求。我也嘗試過用 AI 生成動畫,但叫 AI 做動畫就像是在抽獎,你永遠不知道按下「生成」按鈕後,出來的會是什麼東西。
我需要的是「文字花 0.8 秒從座標 (x1, y1) 移到 (x2, y2),等 1 秒,然後往右淡出」這樣超精確的控制。
我心目中完美的動畫軟體,是我可以打開純文字編輯器,打幾行類似這樣的東西:
bg photo.jpg // 背景圖片
text "這是標題" @[0.5,0.4] size:80 // 顯示文字,指定位置和字型大小
wait 1 // 等一秒鐘
text "這是標題下方文字" @[0.5,0.6] size:32 in:typewriter // 用打字機效果進來
wait 1 // 等一秒鐘
然後它就吐出一個超漂亮的 MP4 檔案給我,這樣該有多好?
自己做一個動畫軟體
我發現了一個自由軟體專案叫 HyperFrames。它本來是設計讓 AI 做影片用的,我不想要 AI 的部分;但它的影片輸出引擎很不錯,而且直接可以拿來用。
於是我的計畫是:我寫一份語法規格書,然後叫 AI 幫我寫一個編譯器,把「我的簡單語法」翻譯成「HyperFrames 語法」。這樣一來,我就可以用簡單語法來做影片了!
HyperFrames 並沒有內建像 Keynote 一樣漂亮的動態模糊。但這個很好解決,只要輸出超高影格率(frame rate)的影片,再用世界上最重要的軟體 FFmpeg 來合成就行了。
昨天弄了半天,終於有一個能用的 0.1 版了,我把它叫做 WiNote(Wiwi 的 KeyNote 替代品)。
成果
下面這個動畫,是完全靠手寫的純文字語法,交給 WiNote 輸出的成果,全程沒有用到其他簡報或動畫軟體,更不需要用滑鼠拖拖拉拉。而且它目前已經可以做到一些連 Keynote 都做不出來的靈活移動囉!

當然,目前還有一些 bug,也還有許多需要調校的地方。我可能要自己先用一陣子,等它變得比較成熟後再把原始碼放出來。
現在有 AI 真是太棒了,以後每個人都可以打造自己要用的工具,不用再被專有軟體綁住啦!