vMix虚拟集编辑
cooooooooooooooooooooooooooode
关注他
vMix作为世界广泛流行的导播软件,拥有强大功能,支持多种输入源,其中虚拟集输入源利用背景图片+抠像+虚拟机位功能,无需搭建造价不菲的实景演播室,零成本实现了演播室功能,深受用户喜爱。
vMix虚拟集由多张2D的图片,经过缩放,移位,旋转组合而成,每个图片就是一个图层。既然是演播室,当然少不了主持人。主持人在虚拟集中也是一个图层,来源可以是视频文件和图片,当然大部分是SDI/HDMI/USB接口的摄像机/摄像头,也可以是来自网络的摄像机、编码器,或者是虚拟摄像头、远程连线、虚拟主持人等等。虚拟集并不一定只是静止的画面,由于加入了镜头/机位的概念,背景和主持人组合后的图像可以缩放,移位。在直播过程中,可以随时从一个镜头/机位切换到另外一个镜头/机位。切换过程是逐步进行的,呈现出动画效果,完美的模拟了实体演播室摄像机的推拉摇移等运镜过程,因此这种虚拟集也称为准3D虚拟演播室或者2.5D虚拟演播室。
vMix软件安装时带有多个虚拟集模板,网络上也有许多第三方虚拟集模板可以免费或者有偿使用。由于用户使用场景或需求的多样性,这些虚拟集模板往往不能满足要求,或者需要修改某个图片,或者需要完全从头开始制作自己的演播室,这时候怎么办?两个途径:一是找第三方有偿定制,二是自己来制作虚拟集。自己制作?可行吗?下面我们来分析一下vMix虚拟集的文件格式和存储结构,你会发现其实很简单的,完全可以自己制作虚拟集。
vMix虚拟集结构
vMix虚拟集存放在安装文件夹的VirtualSets下,每个虚拟集单独占用一个文件夹,包括定义文件config.xml,缩略图文件thumbnail.jpg和多个png文件组成。Png文件分为两类,一类为背景或者主持人、屏幕等占位图片(图片位深度为8、16、24、32或者64),另一类为UV图像(图片位深度为64),UV图像用于3D shader实现倒影等特效。
虚拟集定义文件为XML文件,可以用文本编辑器修改。主要包括2个XML标签:Input和Zoom。
<virtualSet>
<input name="Background" x="0" y="0" zoomX="1" zoomY="1" rotateX="0" rotateY="0" rotateZ="0">Background.png</input>
<input name="Screens" x="-0.04166667" y="-0.291358" zoomX="0.5361111" zoomY="0.7086419" rotateX="0" rotateY="0" rotateZ="0" dynamic="True" uvmap="Screens.png">screenplaceholder.png</input>
<input name="Stage" x="-0.1819444" y="-0.2320988" zoomX="0.8177083" zoomY="0.7660494" rotateX="0" rotateY="0" rotateZ="0">Stage.png</input>
<input name="Talent" x="-0.01111111" y="-0.3555556" zoomX="0.4052083" zoomY="0.6444445" rotateX="0" rotateY="0" rotateZ="0" dynamic="True" uvmap="Talent.png">talentplaceholder.png</input>
<zoom name="Close Up" x="0" y="0" zoomX="4" zoomY="4" rotateX="0" rotateY="0" rotateZ="0" />
<zoom name="Medium Shot" x="0" y="0" zoomX="2" zoomY="2" rotateX="0" rotateY="0" rotateZ="0" />
<zoom name="Full" x="0" y="0" zoomX="1" zoomY="1" rotateX="0" rotateY="0" rotateZ="0" />
<zoom name="Custom" x="0" y="0" zoomX="1" zoomY="1" rotateX="0" rotateY="0" rotateZ="0" />
</virtualSet>
Input标签
Input标签定义虚拟集的一个输入(图层),每个Input标签对应一个PNG文件,这个PNG文件可以是背景图片,也可以是主持人、屏幕等占位图片。对于带倒影的UV通道,还需要一个64bit的UV图像。Input标签的属性如下:
name: 输入名称
x: 图片x位置
y: 图片x位置
zoom: 图片x,y,z轴缩放
zoomX: 图片x轴缩放
zoomY: 图片y轴缩放
zoomZ: 图片z轴缩放
rotateX: 图片x轴旋转
rotateY: 图片y轴旋转
rotateZ: 图片z轴旋转
cropping: 图片裁剪(x1,x2,y1,y2)
dynamic: 图片是否可以动态改变(true=可以改变,一般用于主持人、屏幕)
zoom标签
zoom标签用来定义镜头/机位,一个镜头/机位对应一个zoom标签,标签属性如下:
name: 镜头/机位名称
x: 镜头/机位x位置
y: 镜头/机位x位置
zoom: 镜头/机位x,y,z轴缩放
zoomX: 镜头/机位x轴缩放
zoomY: 镜头/机位y轴缩放
zoomZ: 镜头/机位z轴缩放
rotateX: 镜头/机位x轴旋转
rotateY: 镜头/机位y轴旋转
rotateZ: 镜头/机位z轴旋转
坐标系及数值范围
虚拟集坐标中心(0,0)为屏幕中心
x值从左到右为(-2,2),
y值从上到下为(-2,2)
缩放zoom范围为(0-5,1为不缩放,小于1为缩小,大于1放大)
旋转rotate范围为(0-1,单位为弧度,0为不旋转)
裁剪cropping范围为(0-1)
手动制作虚拟集模板
从以上虚拟集结构分析可以看出,制作虚拟集只要2个步骤:
- 用Photoshop等工具准备好背景图片文件
- 定义config.xml调试文件,调整input和zoom的位置、大小以及旋转角度到合适位置
下面是一个最简单的虚拟集模板示例,仅包括背景和主持人等2个输入,2个输入均为动态,均可自定义。
<virtualSet>
<input name="Background" x="0" y="0" zoomX="1" zoomY="1" rotateX="0" rotateY="0" rotateZ="0" dynamic="True">background.png</input>
<input name="Talent" x="0.044" y="0.256" zoom="0.26" dynamic="true">talent.png</input>
</virtualSet>
利用VSE制作虚拟集模板
VSE(Virtual Set Editor)是一款完全免费的vMix虚拟集修改和制作工具,可添加Input和Zoom,定义缩略图。
添加图层:
添加背景或占位图片
添加UV图片
定义dynamic属性
改变图层顺序
通过鼠标拖拽缩放图片,调整图片位置
添加镜头
添加删除镜头
通过鼠标拖拽缩放镜头,调整镜头位置
镜头缩略图自动更新
定义缩略图
抓取当前场景作为缩略图
操作vMix虚拟集文件夹
可以直接修改已安装的vMix虚拟集
直接添加新的虚拟集到vMix文件夹,无需手动拷贝
支持DingCaster
VSE除了支持vMix虚拟集外,还支持DingCaster导播软件演播室的修改和制作。
DingCaster是另一款功能强大的导播软件,支持大部分vMix功能,并且具有许多特色功能,操作简单使用方便。不过和vMix一样,也是收费软件。当然也可以免费使用,免费功能可以满足一般应用需求。
VSE还支持vMix虚拟集和DingCaster虚拟演播室模板相互转换,为两者用户提供了更多的虚拟集模板素材。
编辑DingCaster - 导播直播软件|制作,录制,推流,播出|支持2K,4K,8K|鼎视科技dingcaster.topvv.cn