开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:1871

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 2610|回复: 22

[ot1993] AR--alpha通道视频

[复制链接]  [移动端链接]
抢楼 抢楼 本帖为抢楼帖,欢迎抢楼! 
排名
4510
昨日变化
2

13

主题

55

帖子

603

积分

Rank: 9Rank: 9Rank: 9

UID
360
好友
4
蛮牛币
923
威望
0
注册时间
2013-6-17
在线时间
87 小时
最后登录
2017-7-2

专栏作家游戏蛮牛QQ群会员

发表于 2015-8-7 14:44:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
这里使用两种方式使视频有实现透明通道,其中使用插件的这种方法不能发布到ios平台
使用shader的方式要方便一点
////////////////////////////////////////////////////////////////////////
Dora
20150727
//////////////////////////////////////////////////////////////////////
首先先把场景里面必要的东西先搬进来,
1.插件VideoPlayback-4-2-3.unitypackage,就是官网上做视频的那个范例包(我们之后懂原理了就自己做,不要老用插件包,这样发布出来的档案太大了)
2.插件mobile movie texture.unitypackage,这个是用来做alpha通道的插件
下载地址:链接:http://pan.baidu.com/s/1c034kFI 密码:bpag
3.删掉场景里面的main camera
4.添加插件a.unitypackage(vuforia官网我上传的图片后下载的database的数据)
5.添加ARCamera
6.添加image target
7.添加video作为image target的子物件,并命名为videoSmall
8.给ARCamera添加license key,添加videoPlaybackContorl的脚本,设定load data set a启用,下面的activa也启用
9.给image targetdata setaimage targetbaoma,下面添加脚本TrackableEventHandler
以上这些是在video playback的文档里面都有图文解说,这里就不一一详细图解了
接下来,首先我们来解决通道的问题
首先我们先创建一个空的物件,就是那个GameObject,当然我们这里已经在空物件下面添加了一些奇怪的东西,我们先不要去管它,先添加空物件就好了
图片1.png
然后再添加一个plane,这个plane是用来做遮罩用的,所以我们给它添加一个材质球到它的属性面板。这个材质球专门过滤蓝膜的背景通道的视频(这个解释不够专业,等一下上图,就了解了)
图片2.png
上面这个是将mobile movie texture这个插件里面已经做好的材质球给我们的plane,下面是拥有蓝色背景的视频,当我们的plane拥有了这个材质球之后,就能当做一个遮罩板来过滤我们的蓝色。
图片3.png
将我们的plane拖给空物件作为子物件,然后调整plane的大小,这个大小取决于你的视频想要显示多大,像我的视频想要刚好完全覆盖在图片上,所以X20Z16
图片4.png
再创建一个空物件,命名为MobileMovieTexture,并将MMTmobile movie texture)插件里的MobileMovieTexture.cs脚本拖拽给该物件。
图片5.png
将视频的路径添加到path里面,path下面还有一个参数叫absolute path,打上勾勾代表这是绝对路径,我们暂时不需要。另外MMT插件下面使用视频的话必须使用ogg格式的,并且视频要放在StreamingAssets文件夹下面。
这个脚本下面有很多其他的参数,可以控制循环,可以让视频播完后停留在最后一帧,等等...具体的功能可以看看下面的单词就明白了。所以这个插件虽然会导致发布成apk的时候导致安装包比较大,但是在某些方面还是挺让人省心的。
图片6.png
另外,其实MMT插件的使用方法,在这个资源包下面有一个instructions的文档有详细的讲解,只不过都是英文的,看完就基本上会用了。这个文档在下面这个地方:
图片7.png

好了我们继续
将材质球MovieChromaKey拖给MobileMovieTexture这个脚本里相应填材质的地方,这样plane上的滤镜就能和这个脚本上的movie相结合了
图片8.png
接下来,我们再添加一个空物件命名为audio,并添加组件audio source,将想添加的音效添加在这个组件上面,因为ogg格式的视频会导致声音播放不出来(是在用这个插件的时候,单独播放还是可以播放的出来的)。将audio source下面的play on awake的钩钩取消掉,否则会在打开该软件的时候就会播放声音,这不是我们想要看到的,我们希望在扫描后才有声音,另外将下面的loop的钩钩打开,因为我们的视频就是循环播放的。然后,再将audio这个物件作为GameObject的子物件。如下图:
图片9.png
再添加一个C#脚本来控制我们的声音
该脚本如下所示:


[C#] 纯文本查看 复制代码
using UnityEngine;
using System.Collections;
using Vuforia;
public class mp3Play : MonoBehaviour, ITrackableEventHandler
{
        public AudioSource music;        
        public float musicVolume;        
        TrackableBehaviour trackableBehaviour;//跟踪状态的
        void Start() {
                trackableBehaviour = GetComponent<ImageTargetBehaviour>();//跟踪图片
                trackableBehaviour.RegisterTrackableEventHandler(this);
                musicVolume = 0.5F;        
                if (!music.isPlaying){
                        
                        music.Play();
                }
        }
        public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus)
        {
                if (newStatus == TrackableBehaviour.Status.DETECTED ||
                    newStatus == TrackableBehaviour.Status.TRACKED ||
                    newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
                {
                        OnTrackingFound();
                }
                else
                {
                        OnTrackingLost();
                }
        }
        void OnTrackingFound()
        {
                music.mute = false;//mute静音
        }
        void OnTrackingLost()
        {
                music.mute = true;
        }
}



将以上脚本给image target.audio拖给mp3Play这个脚本下的music,将整个GameObject拖给image target做为子物件。
图片10.png
这个时候发布出来,大概都已经实现了,只是我们的视频是翻转的,所以需要将plane反过来,movie的展示都是通过这个planeplane的原理就相当于一个荧幕
图片11.png

调整了planeY轴的旋转
这个时候看到我的planescale有变小,是因为我偷偷把GameObjectscale有变大,所以这边就可以调小了。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以上是使用MMT插件做出来的透明通道。接下来我们使用shader做透明通道。
首先我们将GameObject隐藏了,还有video下面的icon也隐藏了,隐藏具体如下
选择icon,然后在属性面板将它前面的钩钩取消掉
图片12.png
接着选择video,在path里面填我们视频的路径,我这里的视频已经转换为MP4的格式了,全称为hecheng.mp4,放在左边如下图所示的位置
图片13.png
将下面的auto play打开,这样扫描图片就会自动播放影片了。下面还有一些touch play什么的先不用管,这是我自己添加的。
在下面有个keyframe texture是显示我们画面播放第一帧的,如果不选择跟我们扫描的图片一样的图的话,可能会出现轻微的闪动,当然也只有第一次扫的时候,会抖动一下而已。在如下图的地方选择:
图片14.png
选择图片后,在它的下面有一个材质球可以选着shader的,选择的地方如下图所示:
图一为选着的地方,图二为选着的shader
当然,这个shader是我加载进来的,是已经写好的shader,下载地址如下
链接:http://pan.baidu.com/s/1qWBnoCW 密码:on2z
图片15.png
图片16.png
再调整你需要滤镜的颜色
图片17.png
下面还有两个功能,第一个的大概意思是基本的敏感度吧,太敏感了会把我们想要的保留的颜色也去掉,所以这个参数值不要太高,下面第二个大概是平滑度的意思,这个可以稍微高一点,避免画面噪点太高,太锐利。
以上是透明通道的部分,如果颜色有误或者奇怪什么的,可以调整滤镜的颜色。另外使用shader就没有声音的问题了,MP4格式的视频可以直接播放声音。


回复

使用道具 举报

排名
421
昨日变化

9

主题

542

帖子

2380

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
2247
好友
14
蛮牛币
7347
威望
0
注册时间
2013-8-19
在线时间
471 小时
最后登录
2017-9-18

游戏蛮牛QQ群会员活力之星锦衣玉食

QQ
发表于 2015-8-7 20:07:48 | 显示全部楼层
大哥,效果图扔上来一块瞧瞧。

回复

使用道具 举报

排名
794
昨日变化
1

6

主题

104

帖子

1563

积分

Rank: 9Rank: 9Rank: 9

UID
8528
好友
7
蛮牛币
5059
威望
0
注册时间
2013-11-20
在线时间
443 小时
最后登录
2017-6-27
发表于 2015-8-9 13:59:42 | 显示全部楼层
mark~     维里古得

回复

使用道具 举报

5熟悉之中
917/1000
排名
2333
昨日变化

0

主题

166

帖子

917

积分

Rank: 5Rank: 5

UID
5647
好友
0
蛮牛币
59
威望
0
注册时间
2013-10-15
在线时间
279 小时
最后登录
2017-9-21

社区QQ达人

发表于 2015-8-9 23:33:38 | 显示全部楼层
好好学习学习

回复

使用道具 举报

5熟悉之中
731/1000
排名
3441
昨日变化
1

2

主题

157

帖子

731

积分

Rank: 5Rank: 5

UID
29202
好友
1
蛮牛币
1163
威望
0
注册时间
2014-6-11
在线时间
245 小时
最后登录
2017-8-9

蛮牛译员

QQ
发表于 2015-8-10 11:29:57 | 显示全部楼层
感谢大神的文章,这个问题之前纠结了很久,不过最终还是解决啦
MMT也可以发布到iOS上完美运行啦!原因是MMT与Vuforia冲突导致的

回复

使用道具 举报

排名
21478
昨日变化
16

0

主题

52

帖子

88

积分

Rank: 2Rank: 2

UID
64074
好友
1
蛮牛币
1566
威望
0
注册时间
2014-12-27
在线时间
22 小时
最后登录
2016-9-1
QQ
发表于 2015-8-11 23:00:14 | 显示全部楼层
lz........
能给点效果图.......

回复

使用道具 举报

排名
50570
昨日变化
751

0

主题

2

帖子

2

积分

Rank: 1

UID
127597
好友
0
蛮牛币
2
威望
0
注册时间
2015-11-2
在线时间
0 小时
最后登录
2015-11-2
发表于 2015-11-2 14:42:23 | 显示全部楼层
shader是我加载进来的,是已经写好的shader
進入後下..按下載没反應
幫幫忙
[发帖际遇]: clementhui 捡了钱没交公 蛮牛币 降了 3 . 幸运榜 / 衰神榜

回复

使用道具 举报

排名
50570
昨日变化
751

0

主题

2

帖子

2

积分

Rank: 1

UID
127597
好友
0
蛮牛币
2
威望
0
注册时间
2015-11-2
在线时间
0 小时
最后登录
2015-11-2
发表于 2015-11-2 14:43:03 | 显示全部楼层
shader是我加载进来的,是已经写好的shader
進入後下..按下載没反應
幫幫忙

回复

使用道具 举报

排名
37860
昨日变化
38

0

主题

3

帖子

15

积分

Rank: 1

UID
115573
好友
0
蛮牛币
38
威望
0
注册时间
2015-7-28
在线时间
8 小时
最后登录
2016-2-23
发表于 2015-11-4 11:53:07 | 显示全部楼层
感谢楼主。。。终于解决了困扰已久的问题。。。
万分感谢。。。

回复

使用道具 举报

排名
4510
昨日变化
2

13

主题

55

帖子

603

积分

Rank: 9Rank: 9Rank: 9

UID
360
好友
4
蛮牛币
923
威望
0
注册时间
2013-6-17
在线时间
87 小时
最后登录
2017-7-2

专栏作家游戏蛮牛QQ群会员

 楼主| 发表于 2015-11-8 23:45:17 | 显示全部楼层
clementhui 发表于 2015-11-2 14:42
shader是我加载进来的,是已经写好的shader
進入後下..按下載没反應
幫幫忙

具体是指下载什么没反应?

回复

使用道具 举报

排名
8575
昨日变化
3

5

主题

77

帖子

238

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
62430
好友
0
蛮牛币
324
威望
0
注册时间
2014-12-19
在线时间
56 小时
最后登录
2017-9-12
发表于 2016-6-7 18:10:37 | 显示全部楼层
mantra 发表于 2015-8-10 11:29
感谢大神的文章,这个问题之前纠结了很久,不过最终还是解决啦
MMT也可以发布到iOS上完美运行啦!原因是MMT ...

你说跟没说有差别?

回复

使用道具 举报

排名
8575
昨日变化
3

5

主题

77

帖子

238

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
62430
好友
0
蛮牛币
324
威望
0
注册时间
2014-12-19
在线时间
56 小时
最后登录
2017-9-12
发表于 2016-6-7 18:10:38 | 显示全部楼层
mantra 发表于 2015-8-10 11:29
感谢大神的文章,这个问题之前纠结了很久,不过最终还是解决啦
MMT也可以发布到iOS上完美运行啦!原因是MMT ...

你说跟没说有差别?

回复

使用道具 举报

排名
8575
昨日变化
3

5

主题

77

帖子

238

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
62430
好友
0
蛮牛币
324
威望
0
注册时间
2014-12-19
在线时间
56 小时
最后登录
2017-9-12
发表于 2016-6-7 18:10:43 | 显示全部楼层
mantra 发表于 2015-8-10 11:29
感谢大神的文章,这个问题之前纠结了很久,不过最终还是解决啦
MMT也可以发布到iOS上完美运行啦!原因是MMT ...

你说跟没说有差别?

回复

使用道具 举报

排名
8575
昨日变化
3

5

主题

77

帖子

238

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
62430
好友
0
蛮牛币
324
威望
0
注册时间
2014-12-19
在线时间
56 小时
最后登录
2017-9-12
发表于 2016-6-7 18:10:44 | 显示全部楼层
mantra 发表于 2015-8-10 11:29
感谢大神的文章,这个问题之前纠结了很久,不过最终还是解决啦
MMT也可以发布到iOS上完美运行啦!原因是MMT ...

你说跟没说有差别?

回复

使用道具 举报

排名
8575
昨日变化
3

5

主题

77

帖子

238

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
62430
好友
0
蛮牛币
324
威望
0
注册时间
2014-12-19
在线时间
56 小时
最后登录
2017-9-12
发表于 2016-6-7 18:10:44 | 显示全部楼层
mantra 发表于 2015-8-10 11:29
感谢大神的文章,这个问题之前纠结了很久,不过最终还是解决啦
MMT也可以发布到iOS上完美运行啦!原因是MMT ...

你说跟没说有差别?

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表