UE4+C++开发-(一百零三篇)-C++动态加载外部MP4视频,在UMG界面用?

#王者杯·14天创作挑战营·第5期#

在 UE4.27 中,由于材质编辑器没有 “Parameter Texture” 节点,需通过 “Texture Object Parameter(纹理对象参数)” 节点 来创建 “MediaTexture” 参数,最终实现 “视频纹理→材质→Image 控件” 的渲染链路。以下是 适配 UE4.27 的完整操作步骤 + 原理拆解 + 验证方法,确保材质能正确接收代码传递的视频数据:

一、核心逻辑回顾

代码中会通过 MediaMaterialInstance->SetTextureParameterValue(FName("MediaTexture"), MediaTexture) ,将 “视频帧对应的媒体纹理(UMediaTexture)” 传递给材质的 “MediaTexture” 参数。因此,材质必须:

  1. 包含一个 名为 “MediaTexture” 的纹理参数(用于接收代码传递的纹理);
  2. 通过 “纹理采样” 节点读取该参数的视频数据;
  3. 将采样后的视频画面输出到 UI 显示通道(自发光通道)。

二、UE4.27 适配:创建含 “MediaTexture” 参数的材质(分 5 步)

第一步:新建 “视频专用基础材质”
  1. 在内容浏览器空白处 右键点击 → 依次选择「Materials & Textures」→「Material」,创建一个新材质,命名为 M_VideoDisplay(名称自定义,建议带 “Video” 标识,方便后续查找)。

    • 注意:不要创建 “Material Instance(材质实例)”,必须是 “基础材质(Material)”,因为参数需要在基础材质中定义。
  2. 双击打开 M_VideoDisplay 的 材质编辑器,先配置材质基础属性(确保适配 UMG UI):

    • 在材质编辑器右侧「Details(细节)面板」中,找到「Material Domain(材质域)」→ 选择 User Interface(必须选这个,否则材质无法用于 UMG 的 Image 控件);
    • 找到「Blend Mode(混合模式)」→ 选择 Opaque(不透明)(如
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值