浅谈Unity透明视频的制作及好处

透明视频下载

实现目的

有时我们需要播放一些待机动画,且动画能有轮廓不影响后面的界面。
way1:
我们会使用带通道的动画帧序列,通常情况,二维美术做好动画,输出几百张序列帧我们导入使用(创建动画状态机加载,或者代码加载sprite)。
总图数量大小
way2:
做完视频做遮罩,但是遮罩只能是一张图,不会随着视频内容变化而变化。

我们会发现弊端:序列帧非常多时,渲染很占性能和资源,fps时常低到个位数,卡到不能看!想去做性能优化,小项目上可谓是南辕北辙,耗时耗力。

优化、解决方式

采用透明视频:格式webm,ogv

实现方法

1.序列帧命名规范化:
文件夹及文件不能有中文字符,推荐一款批量命名工具:ReNamer,下载地址
不规范命名案例:不规范
修改文件夹名称为英文;
打开ReNamer如下设置:
设置
完成
完成重命名。

2.下载转换工具ffmpeg,下载地址
3.开始转换webm透明视频
打开cmd窗口,不需要管理员方式打开。不知道cmd的,请去百度。
在这里插入图片描述
输入:“ -i 图片所在文件夹绝对路径\图片名前缀+%第一张图的序号位数d.png -auto-alt-ref 0 -c:v libvpx -r 帧率 -b:v 1000k 输出路径文件夹名称\视频名.webm”(引号不要复制,如果第一张图为rw_00001则填写rw_%5d.png输出路径不能在C盘根目录,因为没权限,可以是桌面的路径。),命令下载地址
参考:C:\Users\GK\Desktop\ffmpeg\bin\ffmpeg.exe -i C:\Users\GK\Des
ktop\renwu\rw_%4d.png -auto-alt-ref 0 -c:v libvpx -r 25 -b:v 1000k C:\Users\GK\D
esktop\ffmpeg\v.webm
在这里插入图片描述
出现如下界面就成功了
在这里插入图片描述
在这里插入图片描述
制作完成。
来看一下输出后的大小吗,可以再去对比一下本文第一张图
在这里插入图片描述

Untiy中使用

way1:按照图示选择设置透明视频。我采用RawImage成像播放视频,必须设置VP8模式,不然颜色不对。
在这里插入图片描述
在这里插入图片描述
下面献上珍藏多年的视频播放代码

播放代码

using System;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;

public class VideoControl : MonoBehaviour
{
    private VideoPlayer Vp;
    private RawImage RawImg;

    void Awake()
    {
        Vp = GetComponent<VideoPlayer>();
        RawImg = GetComponent<RawImage>();
        Vp.isLooping = true;
    }

    void OnEnable()
    {
        RawImg.color = new Color(1, 1, 1, 0);
        Vp.Play();
        Vp.loopPointReached += VideoEnd;
    }

    void VideoEnd(VideoPlayer vp)
    {
        Vp.Play();

    }

    void Update()
    {
        if (Vp.frame > 0)
        {
            RawImg.color = new Color(1, 1, 1, 1);
            RawImg.texture = Vp.texture;
        }
        else
        {
            //RawImg.color=new Color(1,1,1,0);
        }
    }

    void OnDisable()
    {
        RawImg.color = new Color(1, 1, 1, 0);
        Vp.Stop();
    }
}

播放时会发现如丝版的fps6666

拜了个拜

其他播放方式:
way2:比如创建一个3D面片,设置一个材质球,选一下渲染模式看图。这个不需要代码控制播放,直接就能放了
在这里插入图片描述

way3:
调整videoplayer的渲染模式,这个也不需要代码控制播放
在这里插入图片描述

各有利弊,自行定夺!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值