前些天因为公司项目需要使用OpenCV进行抠图,故制作了这个插件,分享给大家,此插件是在VS2013和UE4.9.2版本中实现的,可以直接复制到纯蓝图UE4.9.2的工程下的Plugins目录下使用,其他版本的虚幻4,需要新建C++的工程,重新编译此插件方可使用。此插件的下载链接为http://pan.baidu.com/s/1pKLuAJh

   下载后解压后,将Test文件夹复制到项目工程下Plugins(如果没有此文件夹,自己创建一个)目录下,重新启动该工程。

   注意:以下的配置方法是从Ue4官网翻译而来,插件是本人制作。

 

BP_WebcamBillboard”,然后双击打开该蓝图。

Billboard”,添加新的变量,变量名为”DynamicMaterial”,变量类型为”Material Instance Dynamic”的引用,在”事件图表”中,右击创建”Create Dynamic Material Instance(Billboard)”,将BeginPlay事件连接到””Create Dynamic Material Instance”。

M_Webcam”,双击打开该材质,设置shading Mode为Unit,如图1所示:

        

ue4 opencv ue4opencv插件_插件

     

ue4 opencv ue4opencv插件_opencv_02

                                         图1                                                                                                                                                         图2

右击创建一个”TextureSampleParameter2D”, 选中按F2重命名为“Texture”,按照图2进行连接,保存该材质。

返回BP_WebcamBillboard蓝图,在“Create Dynamic Material Instance node”节点中,Source Material选择M_Webcam,并且要保证Element Index设为0。从“BillBoard”引出线选择“Set Material”,仍然要确保此节点的“Element Index”值为0,将“DynamicMaterial”变量拖到事件图表中,选择设置,然后将“Create Dynamic Material Instance node”节点中的返回值连接到“Set Material”中的“Material”和”DynamicMaterial”节点,如图3上面所示:

 

ue4 opencv ue4opencv插件_ue4 opencv_03

图3

右击创建“OnNextVideoFrame event”和“Video Texture”,将“Dynamic Material”拖到事件图表中,选择获取,从“Dynamic Material”拖出引线创建“Set Texture Parameter Value”,按照图3进行连接,注意“Parameter Name”设为“Texture”,然后编译、保存。

将“BP_WebcamBillboard”拖到地图中,打开游戏。即可在游戏中显示摄像头拍到的视频。

如下图所示,作者将摄像头对着天花板,在UE4地图中的显示

ue4 opencv ue4opencv插件_ue_04