实现一个抖音汽车定制礼物特效礼物特效是直播间及语聊房中很常见的增值玩法,用户对玩法的多样性需求也在不断地增加。近期业

动效作为产品与用户沟通的广泛形式,经历了从静态到动态,从不透明到透明,从单一到多元的进化。本文依托于业务需求,充分对比了常用的Web动效格式及其区别,调研优秀的特效播放方案,参考其原理经过改造并完成升级功能。

礼物特效是直播间及语聊房中很常见的增值玩法,用户对玩法的多样性需求也在不断地增加。近期业务上期望能够参考抖音实现定制跑车特效。用户通过个性化的选配,最终送出形式各样的礼物,从而满足用户独一无二及炫耀的心理。

抖音效果:

看到这个效果的第一反应是通过游戏引擎实现。

方案一:制作3D模型,更换每个部件,类似换装。但有几个问题:

方案二:枚举合成组合好的视频,提前生成。同时这样也是有问题的:

由此,需要我们沉下心,从头开始寻找解决方案:

Web动效有很多种,不同文件格式之间各有利弊,从业务需求角度出发选取相对较优方案是我们的目的。常见的动效格式有gif、apng、webp、lottie、svga、mp4等[3]。

Gif(GraphicsInterchangeFormat)是在1987年由CompuServe为了填补跨平台图像格式的空白发展起来的位图动画格式,具有GIF87a和GIF89a两个版本。

优点:

缺点:

使用:

但MP4有个致命的缺点:天生不支持透明度。那么,有没有什么方法可以使其带透明度播放吗?答案是肯定的。

我们知道,可以将MP4看做是数帧图片快速连续播放而成的视频,而图片中的每一个像素,均为RGBA形式(如(255,255,255,255)),RGB为红绿蓝三基色,A就是透明通道Alpha,它是一个8位灰度通道,由256级灰度来记录图像中的透明信息。

原生的MP4相当于A通道所有值都是255,均为不透明。而设计师可以通过某种方式告诉我们每一帧每一像素的透明度,Web开发者对其颜色进行透明度替换,再呈现给用户,便解决了MP4不支持透明度的问题。设计如何将每一帧每一像素告诉我们,最简单且高效的方式,便是利用AE导出同步的Alpha视频,而为了能够在Web端同步播放,设计师可以将两块视频进行拼接,合2为1。这样,一个视频中便包含了完整的RGB和Alpha信息。

Web开发者拿到MP4文件播放时,从一侧提取像素点RGB信息,从另一侧提取R通道(G/B通道亦可)信息作为对应像素点的Alpha通道值,融合为新的RGBA值,根据RGBA值将每个像素点渲染到屏幕上,实现半透明效果。

那么,Web开发者如何获取视频每帧并对每帧进行解析及使用新的RGBA值进行屏幕重新渲染呢?

能够融入自定义属性核心原理都是引入“遮罩”素材,利用遮罩与属性图片进行Porter-Duff操作,就能得到需要的形状,再将结果贴到视频对应坐标位置,就能实现最后的融合效果。

既然可以融合固定的内容,那么动态的内容(拆成多个视频部件)也是可以实现的,只需同时解码多个视频,一个基座视频,多个部件视频,每一帧绘制时取部件视频的部分贴到对应坐标位置即可。参考以上两个优秀案例的实现原理,先完成AlphaVideoPlayerJs的基础功能,再此基础上完成多视频的叠加融合。

代码主要由video与render两部分组成。

//vertexshaderprecisionlowpfloat;uniformsampler2Du_Sampler;varyingvec2v_Video_Texture_Position;varyingvec2v_Alpha_Video_Texture_Position;voidmain(){gl_FragColor=vec4(texture2D(u_Sampler,v_Video_Texture_Position).rgb,texture2D(u_Sampler,v_Alpha_Video_Texture_Position).r);}//fragmentshaderattributevec4a_Position;attributevec2a_Video_Texture_Position;attributevec2a_Alpha_Video_Texture_Position;varyingvec2v_Video_Texture_Position;varyingvec2v_Alpha_Video_Texture_Position;voidmain(){gl_Position=a_Position;v_Video_Texture_Position=a_Video_Texture_Position;v_Alpha_Video_Texture_Position=a_Alpha_Video_Texture_Position;}既然使用Canvas2D占用CPU过高,那么可以试试性能更好的WebGL。WebGL(WebGraphicsLibrary)基于OpenGL,允许浏览器访问使用计算机上的GPU进行图形化渲染,为canvas绘制提供硬件3D加速。经过测试,动效播放时CPU使用率显著降低。

遵循最小化配置、开箱即用的原则,默认只需配置渲染DOM和视频地址即可使用。

多纹理渲染原理:根据要渲染的video的个数,动态模板生成片元着色器代码一个video对应一个uniform,再将多个uniform取到的颜色依次叠加混合,赋值给gl_FragColor

uniformsampler2Du_sampler0;uniformsampler2Du_sampler1;uniformsampler2Du_sampler2;voidmain(void){//u_sampler0取样器对0号纹理进行采样//识别每一帧需要透明的区域,并设置为透明vec4color0=vec4(texture2D(u_sampler0,v_texCoord).rgb,texture2D(u_sampler0,v_texCoord+vec2(0.5,0)).r);//u_sampler1取样器对1号纹理进行采样vec4color1=vec4(texture2D(u_sampler1,v_texCoord).rgb,texture2D(u_sampler1,v_texCoord+vec2(0.5,0)).r);//u_sampler2取样器对2号纹理进行采样vec4color2=vec4(texture2D(u_sampler2,v_texCoord).rgb,texture2D(u_sampler2,v_texCoord+vec2(0.5,0)).r);floatblendFactor=color1.a;//使用mix函数混合两个颜色得到新的颜色。3个参数分别是颜色1,颜色2,以及混合比例,依次混合多个纹理,得到最终要渲染的颜色。//使用当前纹理的上一层问题alpha值作为混合比例vec4finalColor=mix(color0,color1,blendFactor);floatblendFactor1=color2.a;vec4finalColor1=mix(finalColor,color2,blendFactor1);gl_FragColor=finalColor1;}最终效果:

单部件视频:

4个单独的mp4播放器播放CPU占用大约是11%-13%

一个多纹理视频播放器播放4个mp4视频,CPU占用大约是7%-9%,性能提升大约是30%

THE END
1.超酷的7号玩家像素风头像来啦!懂车帝提供小鹏P7i 像素风美图第二波我们不止P7i很酷,车主也很酷,超酷的7号玩家像素风头像来啦!https://www.dongchedi.com/article/7302699393290158618
2.红旗头像当我的头像出现在阿维塔11官方直播间 汽车书场 2024年01月11日 华为智选新车亮相,车头像海豹,车标“山寨”EXEED? 车漫部落 2023年08月11日 比亚迪秦L官方谍照来了,车头像宋L,车尾像汉? 汽车公告板 2024年01月20日 红旗E-QM5 红旗又一“杀手锏” https://news.yiche.com/tag/5355.html
3.字节跳动回应抖音汽车Logo曝光:前年已存在,是账号头像另据中国商标网查询的结果,北京字节跳动网络技术有限公司曾在2017年申请“字节汽车”商标。 对此,字节跳动向澎湃新闻(www.thepaper.cn)记者称,相关logo2019年就已经存在,主要用途是抖音汽车品类官方抖音号的头像。 在抖音上,认证账号抖音汽车有38.7万粉丝,平常会发布汽车品牌在抖音上的热度排行等信息。https://m.thepaper.cn/newsDetail_forward_13233881
4.字节跳动回应抖音汽车Logo曝光:前年已存在,是账号头像6月21日,有媒体报道称,字节跳动于近日推出了一个名为“抖音汽车”的Logo,Logo以一辆汽车的图标为主体,下方带有“抖音汽车”字样。 打开网易新闻 查看精彩图片 对此,字节跳动向澎湃新闻(www.thepaper.cn)记者称,相关logo2019年就已经存在,主要用途是抖音汽车品类官方抖音号的头像。 https://dy.163.com/article/GD1LVRL10514R9P4.html
5.微信汽车头像制作姓氏签名定制货车加车牌快手小红书抖音同款设计微信汽车头像制作姓氏签名定制货车加车牌快手小红书抖音同款设计http://touxiang.yiyuen.com/touxiang/item/00a9f88264fd08ede13b8175cc48c65e
6.抖音短视频抖音短视频素材抖音短视频模板觅知网为您找到27个原创抖音短视频,包括抖音短视频图片,抖音短视频素材,抖音短视频背景,抖音短视频模板源文件下载服务,包含AE、PR、会声绘会等格式素材,更多关于抖音短视频模板、素材、背景、图片等设计素材就来觅知网。https://www.51miz.com/so-sucai/5603913.html
7.抖音主播头像生成器头像: 点击上传照片> 抖音号: 抖音昵称: 不填 立即生成 更多精彩生成器 推荐 最新 丐帮专用饭碗 定制豪横壁纸 被移出群聊表情包 怀孕孕检单 开面包车养你 银行转账短信截图 视频封面整蛊 汽车行驶证炫富图 修改微信总人数 预测未来宝宝长相 摆地摊卡通版 自行车摊 明星合影照 王者荣耀主页生成器 退出酒场http://c.tianhezulin.com/cx3/2656/
8.上海刑警刷抖音,一个头像很熟悉这是逃亡30多年的女魔头?无意间,民警点进了王英的抖音,在她的粉丝列表里看到一个熟悉的头像——和民警在档案馆中看到的王俊的头像十分相似。 这个账号属于一个叫王静的山东籍女子,除了容貌和王俊极其相似,虽然出生年份不同,但是生日却是同一天。 在做了大量外围调查工作后,2022年8月17日,侦查员敲开了王静家的大门。 https://m.gmw.cn/2023-05/12/content_1303371322.htm
9.今日最新头像,潮流前线,今日头像速递!透视盘点1. 微信头像更新 作为我国最大的社交平台,微信头像的更新速度一直备受关注。近日,微信头像新增了多种主题风格,用户可以根据自己的喜好选择。此外,微信还推出了个性化头像制作工具,让用户轻松打造专属头像。 2. 抖音头像热潮 抖音作为短视频平台,头像更新速度极快。平台不仅提供了丰富的头像素材,还鼓励用户进行创意制作https://wap.4vnr.cn/post/7415.html
10.拍车就能赚钱吗?1招做好车型素材库,普通人也能做一个高收益的拍车喜欢车的朋友,在刷抖音时是不是经常刷到上面类似的视频。是不是很好奇左下角的小程序,点击进入之后是懂车帝小程序? 拍车赚钱计划,就是懂车帝联合抖音平台共同发起的,以拍摄汽车为主题的达人奖励任务计划,达人可以通过领取任务,根据任务要求拍摄汽车相关主题视频,从而获得报酬的一种变现方式。 https://www.yoojia.com/ask/17-11569144757111647389.html
11.竖版视频免费下载竖版视频素材欢乐卡通风格抖音结尾头像引关注动画模板00:15 1080P 下载 抖音微信小视频搞笑段子文字对话竖版小视频00:55 1080P 下载 21款抖音快手透明点赞心形元素素材01:03 1080P 下载 抖音关注AE模板00:30 1080P 下载 抖音短视频装饰文字AE模板00:10 1080P https://ibaotu.com/shipin/7-5141-0-0-0-1.html
12.[抖音商务]图片免费下载抖音商务素材抖音商务模板千图网为您找到1009张抖音商务相关素材,千图网还提供抖音商务图片,抖音商务素材, 抖音商务模板等免费下载服务,千图网是国内专业创意营销服务交易平台,一站式解决企业营销数字化、协同化,实现营销转化效果增长!https://m.58pic.com/tupian/douyinshangwu.html