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 ,在网页右边根据自己的作业系统下载即可。

                             

安装完之后就可以在 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 编码的格式。

                      

                                                                         下載 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

转好档之后,到 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)

                                 

                                        个人实际使用总结

  1. 视频人员导出视频必须是HAP Q Alpha 或是 HAP Alpha 格式的。具体怎么操作把这个链接扔给专业的视频制作人员,或者自己来个AE搞一下。
  2. 如果视频在Unity 中 播放(加载)不出来加载出来是一个白块,修改视频大小 - 必须是4的倍数,重新输出。
  • 17
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: Unity3D是一个非常强大的游戏引擎,可以用来开发各种类型的游戏和交互式应用程序。在开发过程中,经常需要使用视频和音频元素来增强用户体验。最近,一种新的视频格式“H265”已经广泛应用于多媒体领域。那么,Unity3D是否支持H265视频播放呢? 答案是肯定的。Unity3D已经内置了对H265视频格式的支持。使用Unity VideoPlayer组件,我们可以轻松地在场景中播放H265视频。要实现这一点,首先需要将H265视频文件添加到项目中。然后,使用VideoPlayer组件创建一个新的视频对象,并将视频文件分配给该对象。在播放期间,VideoPlayer组件会自动解码H265视频,并将其渲染到指定的渲染器上。 在Unity3D中,我们还可以使用第三方插件进行H265视频播放。例如,我们可以使用FFmpeg Unity3D插件将H265视频文件转换为Unity可识别的格式,并将其加载到场景中进行播放。这些插件通常具有更复杂的功能,如定制字幕、多语言支持等。 总之,Unity3D支持H265视频格式,我们可以使用内置的VideoPlayer组件或第三方插件来播放H265视频。这为游戏和应用程序开发者提供了一个新的选择,以提高用户的体验。 ### 回答2: Unity3D是一种跨平台的开发引擎,可以用来制作游戏和应用程序。H265是一种高效的视频编码格式,它可以提供更好的视频质量和更小的文件大小。 在Unity3D播放H265视频需要两个步骤。首先,您需要使用适当的工具将视频转换为H265编码。可以使用各种工具来完成这项任务,如FFmpeg。 然后,您需要将H265视频添加到Unity3D项目中,并使用适当的组件进行播放Unity3D中的VideoPlayer组件可以帮助您实现这一目标。在设置VideoPlayer组件时,您需要指定视频文件的路径和格式。您还可以指定其他选项,如音频输出和播放模式。 需要注意的是,播放H265视频可能需要适当的硬件支持。如果您的设备不支持H265硬件解码,视频可能无法正常播放或出现延迟和卡顿问题。在选择使用H265编码时,请确保您的应用程序的目标平台支持它。 总体而言,Unity3D可以很好地支持H265视频播放,但需要一些额外的设置和适当的硬件支持才能实现最佳效果。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值