vMix作为世界广泛流行的导播软件,拥有强大功能,支持多种输入源,其中虚拟集输入源利用背景图片+抠像+虚拟机位功能,无需搭建造价不菲的实景演播室,零成本实现了演播室功能,深受用户喜爱。
vMix虚拟集由多张2D的图片,经过缩放,移位,旋转组合而成,每个图片就是一个图层。既然是演播室,当然少不了主持人。主持人在虚拟集中也是一个图层,来源可以是视频文件和图片,当然大部分是SDI/HDMI/USB接口的摄像机/摄像头,也可以是来自网络的摄像机、编码器,或者是虚拟摄像头、远程连线、虚拟主持人等等。虚拟集并不一定只是静止的画面,由于加入了镜头/机位的概念,背景和主持人组合后的图像可以缩放,移位。在直播过程中,可以随时从一个镜头/机位切换到另外一个镜头/机位。切换过程是逐步进行的,呈现出动画效果,完美的模拟了实体演播室摄像机的推拉摇移等运镜效果,因此这种虚拟集也称为准3D虚拟演播室或者2.5D虚拟演播室。
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" dynamic="True">background.png</input>
<input name="Borders" x="0" y="0" zoomX="1" zoomY="1" rotateX="0" rotateY="0" rotateZ="0" dynamic="True">SixBoxCropped.png</input>
<input name="Box1" x="-0.583" y="0.444" zoomX="0.39425" zoomY="0.39425" rotateX="0" rotateY="0" rotateZ="0" cropping="0.1854,0,0.8135,1" dynamic="True">1.png</input>
<input name="Box2" x="0.001" y="0.444" zoomX="0.39425" zoomY="0.39425" rotateX="0" rotateY="0" rotateZ="0" cropping="0.1854,0,0.8125,1" dynamic="True">2.png</input>
<input name="Box3" x="0.584" y="0.444" zoomX="0.39425" zoomY="0.39425" rotateX="0" rotateY="0" rotateZ="0" cropping="0.1854,0,0.8125,1" dynamic="True">3.png</input>
<input name="Box4" x="-0.583" y="-0.445" zoomX="0.39425" zoomY="0.39425" rotateX="0" rotateY="0" rotateZ="0" cropping="0.1854,0,0.8135,1" dynamic="True">4.png</input>
<input name="Box5" x="0.001" y="-0.445" zoomX="0.39425" zoomY="0.39425" rotateX="0" rotateY="0" rotateZ="0" cropping="0.1849,0,0.813,1" dynamic="True">5.png</input>
<input name="Box6" x="0.584" y="-0.445" zoomX="0.39425" zoomY="0.39425" rotateX="0" rotateY="0" rotateZ="0" cropping="0.1854,0,0.8125,1" dynamic="True">6.png</input>
<input name="Overlay1" x="0" y="0" zoomX="1" zoomY="1" rotateX="0" rotateY="0" rotateZ="0" dynamic="True">blank.png</input>
<input name="Overlay2" x="0" y="0" zoomX="1" zoomY="1" rotateX="0" rotateY="0" rotateZ="0" dynamic="True">blank.png</input>
<zoom name="Close Up" x="0" y="0" zoomX="1" zoomY="1" rotateX="0" rotateY="0" rotateZ="0" />
<zoom name="Medium Shot" x="0" y="0" zoomX="1" zoomY="1" 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个输入均为动态,可自定义。
<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
标签:机位,镜头,缩放,vMix,编辑,虚拟,png From: https://blog.csdn.net/coolcode/article/details/140551203VSE除了支持vMix虚拟集外,还支持另外DingCaster导播软件演播室的修改和制作。
DingCaster是另一款功能强大的导播软件,支持大部分vMix功能,并且具有许多特色功能,操作简单使用方便。不过和vMix一样,也是收费软件。当然也可以免费使用,免费功能可以满足一般应用需求。
VSE还支持vMix虚拟集和DingCaster虚拟演播室模板相互转换,为两者用户提供了更多的虚拟集模板素材。