2 - 设置媒体纹理及材质

在本节中,我们要设置将用于视频播放的媒体纹理和材质。

Windows
MacOS
Linux
On this page

## 页面已被合并,标记为Docs。

在上一步中,我们导入了内容并创建了一些将用于本指南的资源,接下来我们将创建将用于播放视频的材质。这要求我们在材质 中融入媒体纹理并执行一些步骤以使内容正确地显示在电视机屏幕上。

步骤

  1. TV 文件夹中,打开 M_TV_Inst 材质并删除连接到 M_TV_Inst 节点的 底色(Base Color) 引脚的 矢量参数(Vector Parameter) 节点。

  2. 在图中右键单击并添加一个 纹理取样(Texture Sample) 节点。然后在 细节(Details) 面板中,将 取样类型器(Sampler Type) 更改为 外部(External)

    TVMaterial_01.png

    我们可以暂时将 纹理(Texture) 字段保留为空,因为我们将使用 纹理对象参数(Texture Object Parameter) 填充它。这使我们能够通过蓝图来覆盖 媒体纹理 取样。 对于媒体纹理,需要将 取样类型(Sampler Type) 字段设置为 外部(External),因为此优化有助于提高视频播放和解码的效率。

  3. 在图中右键单击并添加一个 Param Tex Object 节点,然后将该节点连接到 纹理取样(Texture Sample) 节点的 Tex 引脚。

  4. Param Tex Object 节点上,使用 TV_Texture 作为 参数名称(Parameter Name),并将 纹理(Texture) 字段设置为 MediaPlayer_01_Video

    TVMaterial_02.png

    将"纹理(Texture)"字段设置为使用媒体纹理时,取样器类型(Sampler Type) 字段将自动更改为 外部(External)

  5. 在图中右键单击并添加一个 TexCoord 节点,然后将该节点连接到 纹理取样(Texture Sample)UVs 引脚。将 VTiling 属性设置为 2.0

    TVMaterial_03.png

    用于 TexCoord 的值可能会因计划将该材质应用到的网格体而异。经过多次试验后,我们发现对于本示例而言这些值就足够了。

  6. 右键单击,然后再添加一个 纹理取样(Texture Sample) 节点,并将 纹理(Texture) 属性设置为 T_TV_M2 纹理。

    TVMaterial_04.png

  7. 在新 纹理取样(Texture Sample)绿色 通道的输出引脚处,使用 LinearInterpolate 节点并将引线连接到 阿尔法(Alpha) 通道。

    TVMaterial_05.png

    我们将使用该纹理来将电视机的屏幕与该网格体的其他部分进行区分,以便仅将视频应用到屏幕。

  8. 按住 1 键并单击鼠标左键来添加一个常量节点,并将该节点连接到 插值(Lerp) 节点的 B 引脚,然后按下图中所示连接剩余的节点。

    TVMaterial_06.png

最终结果

我们设置好了电视机材质并使其可用于播放视频。如果打开 SM_TV 静态网格体,会发现屏幕是白色的。

TVMaterial_07.png

如果在打开 媒体播放器(Media Player) 资源并播放视频之后重新打开 SM_TV 静态网格体,电视机上将会播放视频。

TVMaterial_08.png

尽管电视机在编辑器中可以播放内容,但是如果把该静态网格体放置到关卡中并运行游戏,在运行时内容将无法在电视机上播放。 在下一步中,我们将指示内容在运行时打开并开始播放。 但是,我们需要先设置用于使玩家通过按下按钮可以打开/关闭电视机的蓝图,然后才能实现这一目的。 我们也将介绍在编辑器中指定将在电视机上显示的内容的方法。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback