https://medium.com/@pofu.lu/unity-transparent-video-%E7%94%A8-videoplayer-%E6%88%96-avpro-%E6%92%AD%E6%94%BE%E9%80%8F%E6%98%8E%E5%BD%B1%E7%89%87-83b4b6b4aefd
能的可以直接去看原文章
本篇教學會說明如何輸出可以用 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) 三種格式的影片下載連結。
我們要用 Media Encoder 輸出 .webm 的影片,所以首先要安裝 WebM for Premiere,這是一個免費的 Premiere、Media Encoder Plugin ,在網頁右邊根據自己的作業系統下載即可。
安裝完之後就可以在 Media Encoder 裡看到 WebM 格式。
格式選擇 WebM
視訊 > Codec 選擇 VP8
把下方的 Include Alpha Channel 打勾
比較需要注意的是,如果要輸出包含聲音的影片,記得把聲音的編碼格式改成 Vorbis,如果沒有改的話在 Unity 裡會報錯顯示不支援 OPUS 聲音格式。
接著把輸出的影片丟到 Unity 裡面,從 Inspector 的預覽畫面應該就能看出影片是透明的。
Keep Alpha 其實不打勾也行...
直接把影片拖拉到 Hierarchy 上後會自動產生一個 VideoPlayer,指定 Camera 後直接執行,就能看到 Transparent Video 的效果了。
首先要有 AVPro 這個插件。雖然在 AssetStore 上只有要價 450美金(!)的付費版,不過其實在官方網站底下可以下載免費試用版。
Adobe 系列目前似乎沒有直接輸出 HAP 格式的方式,所以要把影片輸出之後再做一次轉檔,有兩種轉檔方式:
從 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。
QuickTime:下載頁面
HAP codec for QuickTime:下載頁面
ffmpeg:下載頁面
ffmpeg 指令參考:Github 連結
WebM for Premiere:下載頁面
AVPro:官方網站
本篇使用的 Sample 影片(Google Drive):.mov(Animation) .webm(VP8) .mov(Hap Alpha)