Unity3D 播放透明视频的两种方法

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) 三种格式的影片下载连结。

                                   

VideoPlayer — 支援 VP8 编码格式

我们要用 Media Encoder 输出 .webm 的影片,所以首先要安装 WebM for Premiere,这是一个免费的 Premiere、Media Encoder Plugin ,在网页右边根据自己的作业系统下载即可。

                             Unity3D 播放透明视频的两种方法_第1张图片

安装完之后就可以在 Media Encoder 里看到 WebM 格式。

                        Unity3D 播放透明视频的两种方法_第2张图片

                                                                                       格式选择 WebM

                                                   Unity3D 播放透明视频的两种方法_第3张图片

                                                                                    视讯  > Codec 选择 VP8

                                                   Unity3D 播放透明视频的两种方法_第4张图片

                                                                          把下方的 Include Alpha Channel 打勾

比较需要注意的是,如果要输出包含声音的影片,记得把声音的编码格式改成 Vorbis,如果没有改的话在 Unity 里会报错显示不支援 OPUS 声音格式。

                                                        Unity3D 播放透明视频的两种方法_第5张图片

                                                                      音讯  >Codec setting > Codec 选择 Vorbis

接著把输出的影片丢到 Unity 里面,从 Inspector 的预览画面应该就能看出影片是透明的。   

                                           Unity3D 播放透明视频的两种方法_第6张图片

                                                                        Keep Alpha 其实不打勾也行...

直接把影片拖拉到 Hierarchy 上后会自动产生一个 VideoPlayer,指定 Camera 后直接执行,就能看到 Transparent Video 的效果了。

                                                                    Unity3D 播放透明视频的两种方法_第7张图片

                                                                           Camear 设定为 Main  Camera

             Unity3D 播放透明视频的两种方法_第8张图片

AVPro — 支援 HAP 编码格式

首先要有 AVPro 这个插件。虽然在 AssetStore 上只有要价 450美金(!)的付费版,不过其实在官方网站底下可以下载免费试用版。

Adobe 系列目前似乎没有直接输出 HAP 格式的方式,所以要把影片输出之后再做一次转档,有两种转档方式:

  1. 下载 HAP 的 QuickTime Codec,透过 QuickTime Pro 的汇出功能,把影片另存成 HAP 编码的格式。

                      Unity3D 播放透明视频的两种方法_第9张图片

                                                                         下載 ffmpeg,以 Windows 為例

从 Affect Effect 输出影片,在 Render Queue 设定格式选择 QuickTime,Channels 选 RGB+Alpha 输出即可。当然要选 AVI 也可以,不过以本篇的 5秒钟影片为例,AVI 格式输出后的容量高达 1GB 以上,QuickTime (.mov)只要15MB左右…

                                   Unity3D 播放透明视频的两种方法_第10张图片 

方法一:用 QuickTime Pro 转档

要先安裝 HAP Codec for QuickTime。

                        Unity3D 播放透明视频的两种方法_第11张图片

                                                                     用 QuickTime 开启影片,档案 >  汇出

                        Unity3D 播放透明视频的两种方法_第12张图片

                                                      选项 > 设定 > 压缩类型 > 选择 HAP Q Alpha 或是 HAP Alpha

转好档之后,到 Unity 汇入 AVPro。先简单设定一下 AVPro Video uGUI,以下动图给没用过 AVPro 的人参考。

Unity3D 播放透明视频的两种方法_第13张图片

以下是比较需要注意的地方!设定好影片路径之后,还要到 Platform Specific 标签底下设定 Preferred Video API,改成 Direct Show

                                               Unity3D 播放透明视频的两种方法_第14张图片 

                       

如果没有把 Preferred Video API 改成 Direct Show 的话,执行时会报错:Error: Loading failed. File not found, codec not supported, video resolution too high or insufficient system resources.

按下执行,应该就会看到 Transparent Video 的效果了!

   Unity3D 播放透明视频的两种方法_第15张图片

下载连结总整理

QuickTime:下載頁面

HAP codec for QuickTime:下載頁面

ffmpeg:下載頁面

ffmpeg 指令參考:Github 連結

WebM for Premiere:下載頁面

AVPro:官方網站

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

                                 

                                        个人实际使用总结

  1. 视频人员导出视频必须是HAP Q Alpha 或是 HAP Alpha 格式的。具体怎么操作把这个链接扔给专业的视频制作人员,或者自己来个AE搞一下。
  2. 如果视频在Unity 中 播放(加载)不出来加载出来是一个白块,把视频尺寸改为 偶数 或者 2的n次方,重新输出。

你可能感兴趣的:(Unity3D,各种工具)