Unity播放透明度视频

本篇教學會說明如何輸出可以用 AVPro 或 VideoPlayer 播放的透明影片。使用的 Unity 版本是 2018.2。

VideoPlayer 是 Unity 5.6 新增的功能,AVPro 是一個功能強大的付費 Plugin,兩者都可以播放透明影片,不過支援的格式並不一樣。

VideoPlayer 支援的影片檔案格式是 .webm,編碼格式是 VP8;而 AVPro 支援的則是 HAP,是為 macOS 設計的 VJ 影片編碼格式。

開始前,可以先用 Premiere 或是 Affect Effect 做有 Alpha 圖層的影片,這裡我是用 Affect Effect 製作。如果你想要這個影片的 Sample 的話,拉到本頁底下有提供 .mov(Animation) .webm(VP8) .mov(Hap Alpha) 三種格式的影片下載連結。

VideoPlayer — 支援 VP8 編碼格式

我們要用 Media Encoder 輸出 .webm 的影片,所以首先要安裝 WebM for Premiere,這是一個免費的 Premiere、Media Encoder Plugin ,在網頁右邊根據自己的作業系統下載即可。

安裝完之後就可以在 Media Encoder 裡看到 WebM 格式。

格式選擇 WebM
視訊 > Codec 選擇 VP8
把下方的 Include Alpha Channel 打勾

比較需要注意的是,如果要輸出包含聲音的影片,記得把聲音的編碼格式改成 Vorbis,如果沒有改的話在 Unity 裡會報錯顯示不支援 OPUS 聲音格式。

音訊 > Codec setting > Codec 選擇 Vorbis

接著把輸出的影片丟到 Unity 裡面,從 Inspector 的預覽畫面應該就能看出影片是透明的。

Keep Alpha 其實不打勾也行…

直接把影片拖拉到 Hierarchy 上後會自動產生一個 VideoPlayer,指定 Camera 後直接執行,就能看到 Transparent Video 的效果了。

Camear 設定為 Main Camera

AVPro — 支援 HAP 編碼格式

首先要有 AVPro 這個插件。雖然在 AssetStore 上只有要價 450美金(!)的付費版,不過其實在官方網站底下可以下載免費試用版

Adobe 系列目前似乎沒有直接輸出 HAP 格式的方式,所以要把影片輸出之後再做一次轉檔,有兩種轉檔方式:

  1. 下載 HAP 的 QuickTime Codec,透過 QuickTime Pro 的匯出功能,把影片另存成 HAP 編碼的格式。
  2. 用 ffmpeg 轉檔。
下載 ffmpeg,以 Windows 為例

從 Affect Effect 輸出影片,在 Render Queue 設定格式選擇 QuickTime,Channels 選 RGB+Alpha 輸出即可。當然要選 AVI 也可以,不過以本篇的 5秒鐘影片為例,AVI 格式輸出後的容量高達 1GB 以上,QuickTime (.mov)只要15MB左右…

方法一:用 QuickTime Pro 轉檔

要先安裝 HAP Codec for QuickTime

用 QuickTime 開啟影片,檔案 > 匯出
選項 > 設定 > 壓縮類型 > 選擇 HAP Q Alpha 或是 HAP Alpha

方法二:用 ffmpeg 轉檔 ( 以 Windows 為例 )

將下載好的 ffmepg 解壓縮後,按著 Shift 鍵對 bin 資料夾點右鍵 > 在這裡開啟 PowerShell 視窗

輸入轉檔指令

ffmpeg -i yourSourceFile.mov -c:v hap -format hap_alpha outputName.mov
以上圖為例,影片 Comp 1 是放在 D槽的根目錄,轉檔後的影片名字為 Comp 2 位置在 D槽

轉好檔之後,到 Unity 匯入 AVPro。先簡單設定一下 AVPro Video uGUI,以下動圖給沒用過 AVPro 的人參考。

以下是比較需要注意的地方!設定好影片路徑之後,還要到 Platform Specific 標籤底下設定 Preferred Video API,改成 Direct Show。

如果沒有把 Preferred Video API 改成 Direct Show 的話,執行時會報錯:Error: Loading failed. File not found, codec not supported, video resolution too high or insufficient system resources.

按下執行,應該就會看到 Transparent Video 的效果了!

下載連結總整理

QuickTime:下載頁面

HAP codec for QuickTime:下載頁面

ffmpeg:下載頁面

ffmpeg 指令參考:Github 連結

WebM for Premiere:下載頁面

AVPro:官方網站

本篇使用的 Sample 影片(Google Drive):.mov(Animation) .webm(VP8) .mov(Hap Alpha)

上一篇
下一篇