美文网首页Unity
UnityTips 之实用小工具UnityRecoder

UnityTips 之实用小工具UnityRecoder

作者: 暴走TA | 来源:发表于2019-08-22 15:06 被阅读0次

    UnityRecoder 是一款Unity Editor下的录屏工具,只能工作在编辑器模式下。支持Unity2017.1及以后的版本。这是官方提供的免费插件。

    安装

    安装方法有两种一种是从AssetStore安装,一种是从PackageManager安装,PackageManger内的版本更新频率要快,即PackageManager可以装到最新版的。

    从AssetStore安装

    • 按下Ctlr+9 打开AssetStore面板
    • 在搜索框输入 Recoder 进行搜索


      在搜索框搜索Recoder
    结果中的Recoder
    • 点击进入结果中的UnityRecoder 进入下载界面,如果已经下载则显示是(Import)导入,如果没有下载则显示是(Download)下载。


      已经下载 显示的是导入按钮
    • 点击导入按钮等待导入


      导入对话框
    • 点击右下角导入按钮导入并等待编译完成即可。

    从PackageManager进行安装

    UnityRecoder 已经可以在包管理器的preview里进行安装.这里安装的版本要比 AssetStore 的更新。

    • 依次在菜单栏点击Window->PackageManager,打开包管理器。


      打开包管理器的方法
      包管理器界面
    • 在顶部Advanced下拉菜单内选中ShowPreviewPakcages


      选中前
      选中后,会多出许多包,这些都是预览版本,可能不稳定
    • 在包列表里找到 UnityRecoder 并选中,然后点击右侧Install便可以进行安装。


      安装,安装按钮 边上可以选择要安装的版本

    使用

    安装完成后,我们便可以在菜单栏 Window->General->Recoder->RecoderWindow

    打开Recoder窗口的方法
    插件界面

    功能说明:从上至下从左至右

    • START RECORDING: 开始录制,点击后便会开始录制,如果unity没有运行,则会自动运行。

    • Exit PlayMode:勾选后,当停止录制时会退出播放模式。

    • RecordMode:录制模式


      录制模式
      1. Manual 手动 手动操作开始录制和结束录制。
      2. 单帧 录制某一帧,需要在Frame内填入要录制的帧
      3. 录制帧区间 要填入 Start 开始帧End 结束帧 单位帧
      4. 录制时间区间 要填入 Start 开始时间 End 结束时间 单位秒
      
    • Add New Recorders: 添加新的Recoder(录制器)


      可添加的录制器
      1. 录制动画 clip
      2. 录制视频
      3. 录制序列图
      4. 录制 GIF 动画
      
    • FrameRate 帧率


      帧率设置
        1. PlayBack 
              a. Constant 固定值
              b. Variable 可变值
        2. Target 目标帧率
        3. Cap 封盖
      
    • Recorder Type 录制类型

    • Format 格式

    • FileName 文件名
      +WildCards 给文件名自动添加后缀


      可自动添加的后缀
        1. <Recoreder> 录制器
        2. <Time> 时间
        3. <Take> 下方的take值
        4. <Date> 日期
        5. <Project> 项目名称
        6. <Product> 产品名称(buildingsetting里面设置的)
        7. <Scene> 场景名
        8. <Resolution> 分辨率
        9. <Frame> 帧数
       10. <Extension> 扩展名 
      
    • Path 存储路径


      保存路径方式
      1. Project 以工程目录为根目录
      2. AssetsFolder 以 Assets 为根目录
      3. StreamingAssets 以 StreamingAssets 目录为根目录
      4. PersistentData 以 PersistentData 目录为根目录
      5. Temporary 以 Temporary 目录为根目录
      6. Absolute 绝对路径
      
    • TakeNumber 录制次数计数器

    • Capture 采样位置指定


      可用采样位置
      1. GameView 采样game视窗
      2. Targeted Camera  指定的目标相机
      3. 360View 360度全景采样
      4. RT 图片采样
      5. TextrueSampling 纹理采样
      
    • OutPutResolution 输出分辨率


      输出分辨率
      1. MatchWindowSize 匹配目标窗口分辨率
      2. 240p - Custom 是各个指定分辨率,其中 Custom 可以自定义分辨率
      
    • AspectRatio 长宽比

    • CaptureAudio 采样音频

    • Quality 采样画面质量

    每种Recoder(采样器)的配置会有稍微的不同,但是大体配置都差不多,就不在一一赘述。

    高级进阶-渲染带透明通道的序列帧

    • 第一步 ,准备好你的渲染场景和要渲染的物体


      测试场景

    我的测试场景有一个相机,一个球,一个粒子,一个直射光。
    将粒子的发射方式设置成prewarm,这样可以让粒子一开始运行就会出现在画面中,便于观察。实际录制可根据实际需求来做。

    game视窗效果
    • 创建一个RenderTexture用作渲染载体,将创建好的 RT 赋给相机的RenderTex
    将RT赋给相机的target

    这是时候点击我们RT 观察期预览窗口就可以看见相机的渲染结果,而game视窗已经没有了画面。

    渲染效果到了RT上面

    按照上图的格式设置RT的参数。

    • 去掉渲染的底色(天空盒),选择我们的相机,将clearFlags设置为SolidColor,将Background的颜色的Alpha通道设置为透明。
    将背景色的颜色Alpha通道设置为0
    • 再观察我们的RT预览效果会发现天空盒没有了,但是背景色还存在,没关系,因为这里无法显示透明通道,所以还是会显示颜色,只要相机的背景色设置为透明就可以了。
    去掉天空和的RT 和可参考的参数设置
    • 打开Unity Recorder,并添加一个Image Sequence渲染器,文件格式选择png,勾选CaptuerAlpha,Capture选择RenderTextureAsset ,具体 配置如下图所示。
    渲染设置
    • 点击StartRecording,进行渲染,观察我们的渲染结果,我们发现我们输出的序列图只有球没有粒子。
    为了便于观察我在图片下面铺了一个黑色图层

    为什么呢 ?我们返回Unity 观察一下我们的RT,显示他的A通道看一下。

    观察RT A通

    确实只有一个球的透明通道。这是为何呢?原因是,我们创建 的粒子使用的是默认的材质球,这个材质的混合方式并不写入透明的透明值,所以粒子的alpha值在RT上没有被保存。

    使用了默认的材质

    让我给我们的粒子新建一个材质,混合方式使用 alphablend的方式。

    创建一个新的材质并使用AlphaBlend shader

    再次观察我们的RT的A通道,发现粒子的透明度也在里面了。

    RT 的粒子有了 A 通道

    我们再渲染一次查看下序列图,可以发现半透明的粒子效果也在图上了。

    序列图有了粒子的半透明效果

    需要注意,半透明的序列帧目前只能想到Alphablend的混合方式,add 或者是其他后处理例如bloom的效果被渲染到RT上效果不一定是正确的。

    相关文章

      网友评论

        本文标题:UnityTips 之实用小工具UnityRecoder

        本文链接:https://www.haomeiwen.com/subject/oangsctx.html