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

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

Blender 的 面板切換

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

Blender 啟動畫面

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

Blender Video Editing

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

Blender 切換面板

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

Blender 的捲動軸

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

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

捲動軸

來源:tucho_mendez

而這是 Blender 的捲動軸:

Blender 捲動軸

注意到卷軸的兩端,各有兩個小黑點,拖拉小黑點可以做到縮放的功能,例如在上圖中,Y 軸的範圍是 10 到 -10,稍微拖拉 Y 軸的小黑點就可以把範圍改成 10 到 -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,個人較偏好 30、50、60 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 檔案,這是一種較現代化而且被普遍支援的格式。

編碼

編碼,指的是對影片或音軌的演算法,我們追求的是高品質但又省空間的編碼,另一方面也要有足夠的普及度。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 剪輯,上字幕和錄音也是另外專門的工作,有空再分享上字幕與錄音 的一些心得。