Ue4使用OpenCV插件

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

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

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

 

     在目录浏览器下,新建蓝图类,选择WebcamReader作为父类,并将该蓝图类命名为”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插件_第1张图片     Ue4使用OpenCV插件_第2张图片

                                         图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插件_第3张图片

图3

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

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

如下图所示,作者将摄像头对着天花板,在UE4地图中的显示Ue4使用OpenCV插件_第4张图片

如果出现任何问题欢迎联系本作者,邮箱:[email protected]

 

你可能感兴趣的:(技术,ue,插件,opencv)