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 声音格式。
音讯 >Codec setting > Codec 选择 Vorbis
接著把输出的影片丢到 Unity 里面,从 Inspector 的预览画面应该就能看出影片是透明的。
Keep Alpha 其实不打勾也行...
直接把影片拖拉到 Hierarchy 上后会自动产生一个 VideoPlayer,指定 Camera 后直接执行,就能看到 Transparent Video 的效果了。
Camear 设定为 Main Camera
首先要有 AVPro 这个插件。虽然在 AssetStore 上只有要价 450美金(!)的付费版,不过其实在官方网站底下可以下载免费试用版。
Adobe 系列目前似乎没有直接输出 HAP 格式的方式,所以要把影片输出之后再做一次转档,有两种转档方式:
下載 ffmpeg,以 Windows 為例
从 Affect Effect 输出影片,在 Render Queue 设定格式选择 QuickTime,Channels 选 RGB+Alpha 输出即可。当然要选 AVI 也可以,不过以本篇的 5秒钟影片为例,AVI 格式输出后的容量高达 1GB 以上,QuickTime (.mov)只要15MB左右…
要先安裝 HAP Codec for QuickTime。
用 QuickTime 开启影片,档案 > 汇出
选项 > 设定 > 压缩类型 > 选择 HAP Q Alpha 或是 HAP Alpha
转好档之后,到 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.
QuickTime:下載頁面
HAP codec for QuickTime:下載頁面
ffmpeg:下載頁面
ffmpeg 指令參考:Github 連結
WebM for Premiere:下載頁面
AVPro:官方網站
本篇使用的 Sample 影片(Google Drive):.mov(Animation) .webm(VP8) .mov(Hap Alpha)