媒体板Actor 是一种预构建的Actor,你可以将其添加到自己的场景中,以播放视频、图像序列以及指向媒体框架支持的资产的URL。
媒体板Actor支持:
- 简化的视频导入流程
- 具有内置[球体和平面网格体](#网格体)的平铺EXR图像序列的优化流送。需要DX12或更高版本。
- 媒体播放列表
- 拖放资产和Actor
- Sequencer集成
- 查看视锥体剔除
创建媒体板Actor
创建媒体板Actor的方法有很多。
你可以:
- 将媒体文件(视频文件或序列中的图像)直接拖入视口。
- 将[媒体源资产](#导入媒体序列)从你的内容浏览器拖动到视口中。
- 使用放置Actor菜单
导入媒体源
媒体板既支持视频文件,也支持图像序列。根据你所使用的媒体类型,可以使用不同的方法导入媒体源,并在虚幻编辑器中指示相关资产的引用路径。
这些方法都会立即创建媒体板Actor,然后你可以使用[媒体板功能按钮](#媒体板设置)对其进行配置。
导入视频文件
要导入视频文件:
- 打开 内容浏览器(Content Browser) 。
- 将你的视频文件拖动到 内容浏览器(Content Browser) 中,并放置在该处。
- 将该文件从 内容浏览器(Content Browser) 拖动到 视口(Viewport) 中。此操作会创建媒体板Actor。
导入媒体序列
要导入媒体序列:
- 在 内容浏览器(Content Browser) 中,创建一个 图像媒体源(Img Media Source) 。
- 在 序列(Sequence) > 序列路径(Sequence Path) 下,为包含你的图像的文件夹指定路径。
- 可选:在 高级(Advanced) > 帧率覆盖(Frame Rate Override) 下,设置图像序列帧率。如果你不在此处指定任何值,媒体板Actor会使用你的全局设置下的默认帧率。
- 将 图像媒体源(Img Media Source) 从 内容浏览器(Content Browser) 拖动到 视口(Viewport) 中。此操作会创建媒体板Actor。
将媒体文件导入现有媒体板Actor
如果你已经创建了一个媒体板Actor,可以直接从 细节(Details) 面板引用媒体文件。
要直接从媒体板Actor引用媒体文件,请按以下步骤操作:
- 在 视口(Viewport) 中选择 媒体板Actor(Media Plate Actor) 。
- 在 细节(Details) 面板中,找到 媒体板(Media Plate) > 播放列表(Playlist) 。
- 将 播放列表中的第一个项目(First Item in Playlist) 设置为 文件(File) 。
- 点击 省略号(…) 按钮选择媒体文件并设置 媒体路径(Media Path) 。
媒体板设置
在媒体板Actor设置中,你可以调整视频或图像序列的外观和播放。你不需要创建媒体纹理或媒体播放器。
媒体板具有以下设置
网格体
你可以在此处选择是使用 平面(Plane) 、 球体(Sphere) 还是 自定义(Custom) 网格体。当你选择一种网格体时,引用的网格体会自动出现,并且该网格体类型的相关设置将可供你进行配置。
如果你使用的是平铺EXR图像序列,并且具有DX12或以上的图形能力,我们建议你选择 平面(Plane) 或 球体(Sphere) 网格体。这两种预构建网格体均使用媒体板Actor的优化流送,因此只会流送对摄像机可见的图块。自定义网格体将流送所有图块,无论图块是否对摄像机可见。如果你想将媒体转换为EXR格式,可以使用处理EXR工具。
播放列表
当你添加视频或图像序列时,虚幻编辑器会自动创建 媒体播放列表 来容纳视频资产引用,该列表可在媒体播放列表(Media Playlist)分段中看到。该分段还会显示对初始媒体源以及媒体路径的引用。
该分段还包含可点击的图标,你可以使用这些图标来 重启(Restart) 、 倒回(Rewind) 、 播放(Play) 、 暂停(Pause) 、 快进(Fast Forward) 、 打开(Open) 和 关闭(Close) 播放列表。
打开媒体板(Open Media Plate) 按钮用于打开一个媒体板窗口,其中面向平面的网格体会向你显示有关媒体的深度信息。在该窗口中,你还可以使用 上一个 和 下一个 图标访问你的播放列表中的其他媒体。
一般设置
| 属性 | 说明 |
|---|---|
| 媒体细节(Media Details) | 展开此属性可以查看有关媒体的分辨率、帧率、大小、方法、格式、合并细节级别偏差及其mip和图块数量的细节。 |
| 打开时播放(Play on Open) | 使视频或图像在打开时自动开始播放。 |
| 自动播放(Auto Play) | 在你进入游戏模式时自动打开视频或图像序列。 |
| 启用音频(Enable Audio) | 如果存在音轨,此设置会为激活的视频解码引擎启用音频。 |
| 开始时间(Start time) | 你可以使用此属性设置自定义开始时间。此属性可以让使用相同源视频的不同媒体板Actor在不同的时间开始。然后,你可以在所在级别的多个实例中使用相同的可循环剪辑片段,每次都显示不同的内容。 |
| 仅在可见时播放(Play Only when Visible) | 对媒体板Actor应用视锥体剔除,以便整个视频解码和流送在Actor位于视锥体外部时停止。 此属性通常对具有nDisplay这样的群集渲染的大型安装有用。在你使用若干大型和资源密集型媒体板时,尤其实用。 |
| 循环(Loop) | 当视频到达最后一帧时自动循环播放。 |
高级设置
| 属性 | 说明 |
|---|---|
| 声音组件(Sound Component) | 包含所用声音组件的细节。 |
| 静态网格体组件(Static Mesh Component) | 包含所用网格体组件的高级细节和属性。 |
| 黑边(Letterboxes) | 包含所用黑边的细节。 |
| 缓存设置(Cache Settings) | 覆盖会使媒体板缓存设置覆盖全局缓存设置。默认情况下启用。向前看的时间(Time to Look Ahead)以秒表示。为了获得充分的缓存,我们建议设置为2-4帧。在24fps下,2帧应该需要0.084秒。默认值为0.2秒。 使用图块缓存则需要权衡利弊。你缓存的帧越多,摄像机移动时需要作废和重新加载的帧就越多。 |
| 可见mip图块计算(Visible Mips Tiles Calculations) | 默认情况下,此设置与你选择的静态网格体匹配。如果你想使用平面(Plane)或球体(Sphere),但不希望媒体板只流送对摄像机可见的像素,则可以将此属性设置为 无(None) 。 此设置可能对调试有帮助,但我们建议你不要将其用于产品。 |
| Mip贴图偏差(Mip Map Bias) | 有时,由于带宽的原因,PC无法播放某个EXR序列,即使将该序列拆分成图块和mip也无法实现。此设置让你可以朝一个方向或另一个方向提示媒体板Actor,以加载更高的mip(较低分辨率),从而节省输入/输出带宽。 默认情况下,估计的mip级别与渲染器匹配,这使它依赖视场/分辨率。 |
| 启用Mip贴图放大 | 如果为true,此选项将强制放大 要放大的Mip级别(Mip Level To Upscale) 设置中所选择的Mip贴图级别。正常情况下,媒体板只在视口中加载所需质量的mip和图块。但在反射和天空光照等某些情况下,你可能需要为未填充数据的EXR纹理区域在视口之外加载较低质量的图块,以使它们对光照和反射有所助益。 |
| 要放大的Mip级别 | 启用Mip贴图放大(Enable Mip Map Upscaling) 设置启用的Mip贴图级别。例如,如果此属性被设置为3,则Mip级别为3或更高的纹理将被完全读入纹理中。Mip级别为2或更低的纹理将使用Mip级别3的纹理,但会被放大为实际Mip级别的纹理的尺寸。录制时,摄像机可见区域会包含恰当质量的Mip,而摄像机不直接可见的一切回包含已被放大的较低质量Mip。 |
| 自适应极Mip放大 | 此功能可让用户降低球体两极的质量,从而减轻负载。仅在使用球体网格体时可用。在球体网格体上,图块会在球体两极附近挤在一起。如果你有很大的 |
变换设置
在 变换(Transform) 分段,你可以调整媒体板Actor的位置、缩放和方向。要阅读有关这些设置的更多信息,请参阅虚幻引擎中的变换Actor。
材质
材质(Materials) 分段让你可以选择另一种材质来覆盖现有的默认媒体板材质。默认材质是在自发光通道中渲染像素的半透明和非光照材质。该材质捆绑在 媒体板插件内容目录 内。
要为媒体板Actor选取其他材质,请执行以下操作:
- 选择媒体板Actor。
- 在 细节(Details) 面板中,点击 渲染(Rendering) 筛选器,弹出 材质(Materials) 分段。
- 在 材质(Materials) 分段中,点击 选择媒体板材质(Select Media Plate Material) 下拉菜单并选择新材质。
媒体板Actor会寻找一个叫做 MediaTexture 的特殊 纹理 参数。此参数必须存在于选定的材质内,以便它可以绑定和访问从视频解码器 MediaTexture 接收到的像素。
媒体板自带以下默认材质:
对于2D板:
| 材质名称 | 说明 |
|---|---|
| M_MediaPlate | 是半透明材质。这是默认选择。 如果你远离半透明材质,可能会遭遇TSR重影瑕疵。 |
| M_MediaPlateCC | 色彩校正材料。 |
对于天空:
| 材质名称 | 说明 |
|---|---|
| M_Sky | 不透明,启用 IsSky 布尔值。 |
| M_SkyCC | 天空的色彩校正材质。 |
Sequencer集成
Sequencer 集成对于精确控制视频或图像序列剪辑片段的开始、结束或循环时间具有重要意义。你也可以使用它来确保所有剪辑片段帧锁定到确切的Sequencer时间,从而让你能够通过整体级别动画和逻辑精细控制序列。
要将你的媒体板Actor添加到Sequencer:
- 将 Actor 从 世界大纲视图(World Outliner) 中拖出,并放入你的 Sequencer轨道(Sequencer Track) 。
要想在Sequencer中正常同步,你必须在媒体板功能按钮中禁用音频(通用设置(General Settings) > 取消选中"启用音频"(Enable Audio)),或在使用Electra媒体播放器的手动创建蓝图中禁用音频。
剪辑片段之间的交叉过渡
使用Sequencer时,你可以将交叉过渡应用于两个媒体轨道:
- 设置媒体板材质为 M_MediaPlateCrossFade 。
- 在 细节(Details) 面板的 材质(Materials) 下,点击 创建动态材质(Create Dynamic Material)。这需要虚拟制片工具插件。
- 要打开Sequencer,在主菜单栏中找到 窗口(Window) > 过场动画(Cinematics) > Sequencer。如果Sequencer为空白,你需要创建关卡序列。
- 在 大纲视图(Outliner) 面板中,点击 媒体板Actor(Media Plate Actor) 并将其拖入 Sequencer 面板,以创建 媒体轨道(Media Track) 。 a. 在弹出窗口中,点击 是(Yes) 以禁用自动播放。
- 重复第4步,创建第二个媒体轨道。
创建好两个媒体轨道后,你可以合并这些轨道来自动创建交叉过渡,或在单独的轨道上手动创建交叉过渡。
自动创建交叉过渡
- 将新创建的轨道拖入第一个轨道。
-
拖动一个轨道,使其与另一个轨道重叠。Sequencer将自动计算交叉过渡值。
手动创建交叉过渡
- 按 Ctrl 键显示轨道上的箭头。
-
右键点击并拖动箭头,为第一个轨道定义渐入和渐出曲线。
-
为第二个轨道重复第2步。
注意事项和局限性
当你使用媒体板Actor时,请留意以下注意事项和局限性:
- 媒体播放器 :只有Electra和IMGMedia播放器支持同步。默认情况下,引擎会选择它找到的第一个播放器。要保证同步播放,你可以在 FileMediaSource > 播放器覆盖(Player Overrides) > 窗口(Windows) > Electra播放器(ElectraPlayer) 内进行选择,手动强制将Electra设为你的播放器。
- 同步锁定:如果你使用的是nDisplay群集设置,并希望优化图像播放帧精度,你可以使用称为同步锁定固定速率的自定义时点。
- 实时天景和反射:如果要使用视口外的Mip(多级渐进纹理)和平铺来实现实时天景和反射,则必须使用[anchor link upscalehigherlevelmip]控制台变量。
同步锁定固定速率
要实现同步锁定固定速率时点,请按照以下步骤操作:
- 在 内容浏览器 中,单击 添加 (+) > 媒体,新建 媒体资料。
- 在 媒体源 > 索引 [0] 下,选择 文件媒体源。
- 勾选 覆盖项目设置。
- 点击 同步锁定 > 自定义时点 > 同步锁定固定速率。
-
取消勾选 应阻止。
- 保存媒体配置文件,但不要在将编辑器机器上加载。此媒体配置文件仅适用于nDisplay节点。
- 创建媒体配置文件后,需要将其部署到nDisplay节点。在 交换板 设置菜单中,点击 媒体配置文件 下拉菜单,然后选择媒体配置文件。
- 你还可以使用每个节点设置中的 媒体配置文件 下拉菜单,为每个节点单独设置媒体配置文件。
实用的控制台变量
-
ImgMedia.FieldOfViewMultiplier: (
ImgMedia.FieldOfViewMultiplier=1)由于媒体板只加载当前视图可见的图块,在某些情况下,快速平移镜头可能会导致边缘周围的图块暂时缺失。这个控制台变量让你可以增加在视图边缘加载的图块数量。
-
ImgMedia.MipMapLevelPadding: (
ImgMedia.MipMapLevelPadding=0)如果mipmap估值与渲染器的匹配精度不足,则将此值填充到计算的最小和最大mipmap级别。这会让加载的图块数量增加,但有助于在出现异常时消除瑕疵。
-
Concert.EnableLoopingOnPlayer:(
Concert.EnableLoopingOnPlayer=1)(默认值)默认情况下,多用户序列管理器可确保在Sequencer播放器上启用了循环时媒体播放循环执行。在5.1版之前,多用户不会在nDisplay序列播放器上启用循环,循环的处理将通过使用Sequencer重置播放头来实现。这可以让播放头与ICVFX墙上的内容保持同步。如果你更希望在编辑器和nDisplay群集之间同步播放头,请将此值设置为0。
-
r.EXRReaderGPU.UpscaleHigherLevelMip: (
r.EXRReaderGPU.UpscaleHigherLevelMip=-1)正常情况下,媒体板只在视口中加载所需的质量mip和图块。但在反射和天空光照等某些情况下,你可能需要为未填充数据的EXR纹理区域在视口之外加载较低质量的图块,以使它们对光照和反射有所助益。
例如,如果你将此控制台变量设置为mip级别3,则mip级别3将完全读取、加载并将分辨率修改成mip 0、1、2。3及以上(4、5、6等)mip级别将完全读入纹理。录制时,摄像机可见区域包含正常质量mip,而所有激活视图不直接可见的区域则包含较低质量mip。
调试
你可以使用以下统计命令来调试媒体板Actor:
- 媒体统计信息(Stat Media) :显示有关正在播放的当前媒体的信息。
- ImgMedia.MipMapDebug 1 :在游戏模式下,将可见的图块和mip调试信息输出到屏幕上。只能用于
.exr媒体格式的文件。 - 记录冗长LogImgMedia日志(Log LogImgMedia Verbose) :启用ImgMedia专属的冗长日志数据。