Blender 是開源的 3D 創作軟體,它可以做 3D 建模,算圖、剪輯等,因為本人最近又點了這項技能,就寫一下 Blender 的基本操作,以及談輸出格式的話題。

以往我比較熟悉的 3D 繪圖軟體是參數式設計的 SolidWorks、Onshape 等,參數式設計主要應用在需要精確的尺寸與工程標註的機構設計或產品設計上,以及輸出各式工程圖等面向製造的功能,而 Blender 則是藝術創作導向的應用,更重視自由曲面、塑形、光影、動作這些面向,對我來說,以往在 SolidWorks 上的經驗,大概只有三維座標和三維平面的觀念是可以沿用的…。

Blender 的面板切換

剛啟動 Blender,會看到下面這個畫面:

Blender 啟動畫面

上面有好幾個預先訂好的模式,例如選了「Video Editing」則會進入剪輯模式:

Blender Video Editing

每種模式下都幫我們搭配好了預設的面板(pane),並且這些面板都是可以做切換的,因此即使進入剪輯模組,想要臨時調用別的某個面板,也是可以的,例如我想把檔案瀏覽器切換成「圖表編輯器」,從檔案瀏覽器面板的左上角圖示處就可以開啟面板選單,並切換成圖表編輯器:

Blender 切換面板

另外,注意到 Blender 的快速鍵提示,在 Blender 的操作設計上,如同大多數的 3D 繪圖軟體一樣,是需要大量熟悉快速鍵才能有效率的作業的,因此務必要有著「學習 Blender,也要記憶快速鍵」的心態,才能有效率的操作 Blender。

Blender 的捲動軸

Blender 的捲動軸與我們一般認知的捲動軸完全不同,一般的捲動軸只負責捲動與翻頁,而 Blender 的捲動軸,除了捲動與翻頁,還具備縮放的功能。

下圖是一般的捲動軸,我們已經很熟悉了:

捲動軸

來源:tucho_mendez

而這是 Blender 的捲動軸:

Blender 捲動軸

注意到卷軸的兩端,各有兩個小黑點,拖拉小黑點可以做到縮放的功能,例如在上圖中,Y 軸的上下限分別是 10 到 -10,稍微拖拉位於 Y 軸下方的小黑點就可以把下限範圍改到 -2:

Blender 捲動軸

當然,在內容區用滑鼠滾輪也可以做縮放,但如果只想獨立的對 Y 軸做縮放,那就非用捲動軸不可了。

這種捲動軸在 Blender 是極為實用的設計,例如在剪輯的多軌作業下,常常需要在較細的尺度與較粗的尺度下交互作業,此時捲動軸就可以相當有效率的替我們切換。

例如有時候得用巨觀的視角安排片段的順序,此時的時間從 0 秒橫跨到 04:30 秒:

Blender 序段編輯器

但要對那些細小的片段做調整時,就要切換到微觀的尺度作業,此時的時間縮小到從 00:36 到 01:06,並且 Y 軸比例不變:

Blender 序段編輯器

以上是 Blender 的 UX 與 UI 的基礎,而中間的製作與剪輯的過程,我還太菜就不賣弄了,直接跳到最後的輸出的部分。 :p

Blender 的輸出解析度與幀率

下面是 Blender 的輸出參數面板:

Blender 輸出

在解析度的選擇上,目前最普遍的應該是 1920 * 1080 px,用上它就可以榮耀的貼上 Full HD 的徽章:

Full HD

來源:Wikimedia Commons

不過時代不同了,現在不上 4K 都不好意思拿出來說嘴…。

然而,要處理 4K 的素材,那得有相當夠的算力和儲存空間,一個超高品質的 15 秒 4K 素材就吃 1.5 GB,並且不論是剪輯或 render 都會吃爆算力,現實上 1920 * 1080 還是最實際的選擇。

下面要考慮的是「幀率」,預設值是 24 FPS,每種幀率都有它出現的歷史因素,在數位時代突破了很多傳統類比的枷鎖,因此不必侷限在 24 FPS 的傳統,採用 30 FPS 是更好的選擇,因為 30 FPS 要換算成秒數較簡單 :p。

上圖中的第二部分是「框幀區間」,圖中是 1 到 250,也就是從第 1 幀輸出到第 250 幀,用 30 FPS 換算下來,會是 8.3 秒多:

250 frame / (30 frame / second) ≈ 8.3 second

素材的幀率

要注意的是外部素材的幀率與我們設定的幀率之間的轉換。

若有一個原始為 60 FPS,長度 10 秒的素材,則它的總幀數為 600 幀:

60 frame / second * 10 second = 600 frame

若這 600 幀的素材,放到一個 30 FPS 的 Blender 專案中會變成 20 秒:

600 frame / (30 frame / second) = 20 second

具體的感受就是變慢動作了,原本一個一秒長的動作變成兩秒才能演完,因此若幀率不同,得在 Blender 內再對素材做速度調整。

Blender 的輸出格式與編碼

下面是輸出面板的另外一部分:

Blender 輸出

輸出路徑的部分,務必確保路徑是存在的,這樣說好像很多餘,但在跨平台的作業中,Windows 的 D:\output\ 就不存在於 Linux,反之,Linux 的 ~/output/ 也不會存在於 Windows,一旦輸出路徑無效,那 render 是不會有任何畫面的,而且也沒有任何錯誤提示,會令人感到絕望並且懷疑人生,不可不慎。

下面講影片的容器與編碼。

容器

一部影片,除了視訊軌外,可能還有音軌,甚至多國音軌,還有字幕,甚至多國字幕,更完整一點的,還有章節等等,這些視訊軌、音軌、字幕等素材都會封裝在一個所謂的容器檔案內,各種容器格式支援的素材可能不同,普遍來說,多視訊軌、多音軌、多字幕等是基本的。

有的容器與影片的編碼是有搭配的,例如 WebM 容器會搭配 WebM / VP9 編碼,但大部分的容器可以自由決定裡面素材的編碼,例如上圖中的 Matroska,也就是常見的 .mkv 檔案,這是一種較現代化而且被普遍支援的容器格式,除了 .mkv、.webm 外,.mp4 也是一種很常見的容器格式。

編碼

編碼,指的是對影片或音軌的演算法,編碼決定了影片的品質與體積,我們追求的是高品質但又省空間的編碼,另一方面也要有足夠的普及度。H.264 是最被廣泛使用的編碼之一,雖然它有著錯綜複雜的專利問題…,如果擔心潛在的專利風險,那 VP9 或開源的 Theora 編碼也是可以考慮的選項。

編碼速度也是要考慮的因素之一,同樣的,H.264 有著廣泛的硬體支援,不論是 AMD、NVIDIA、Intel 都有支援 H.264 的優化,在 render 時可以更快的得到輸出的成品。

如果想得到更好的效能,那請務必買支援 CUDA 的 NVIDIA 卡,其他家的 GPU 運算函式庫不論是普及度或成熟度都不及 CUDA。

在聲音方面,Opus 有著廣泛的支援度,並且也沒有潛在的專利問題,是不二的選擇,其次是 AAC 與 AC3,然而他們都有潛在的專利費用問題,在壓縮率上也沒有明顯的優勢,沒有特別需求的話不用考慮。


以上是個人近日摸索 Blender 的一些心得,另外在 Blender 的剪輯方面,也有錄了一片談 Animate Property 和 Graph Editor 的操作:

除了 Blender 剪輯,上字幕和錄音也是另外專門的工作,有空再分享上字幕與錄音 的一些心得。