UE4-VIrtualCamera2.0源代码浅析
VirtualCamera是虚幻引擎中的工程示例项目。虚幻引擎4.26版本中将其升级到了2.0(Beta版本),功能和UI都全面更新(如图1-1所示)。虚拟摄像机在虚幻引擎中驱动电影摄像机(Cine Camera),它能够将结果输出到各种外部设备中。我使用它主要用来拍摄镜头预演。 演示连接:https://www.bilibili.com/video/BV195411w75h/ 图1-1 VirtualCamera如何在输出上覆盖自定义的UMG控件 我这边采用的是“BlackMagic”采集卡(型号:)通过SDI线将画面传输到监视设备。根据引擎自带的“BlackMagic”插件是能够将画面采集并输出到监视设备的,但并不能将“UMG”控件采集并输出。“VirtualCamera”中可以实现这样的功能。下面简单分析一下这一块的逻辑是如何执行的。 UMG是在Vcam组件属性中OutputPrivider中指定的,打开源码找到对应的文件 VcamOutputProviderBase.h。简单阅读一遍后很容易就能发现逻辑是从初始化函数“Initialize()”开始执行的,经过一系列判断后一次执行“Acitvate()”、“CreateUMG()”和“DisplayUMG()”。具体代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 void UVCamOutputProviderBase::CreateUMG() { if (!...