简易视频框架

创作者: Cyberbuilds
已更新:2026-06-10 02:15:03
7KB

前置 MOD

使用 简易视频框架 时将自动安装

关于此 MOD

一个供模组制作者使用的简易资源,支持通过redscript或lua在屏幕上播放带声音的视频。


为模组制作者提供的一个简单资源,可通过redscript或lua调用播放屏幕视频。仅需一行代码!

定义 1000 个 bink2 视频资源(键),你可在模组中覆盖这些资源,并在需要时通过你的 lua 或 redscript 模组在屏幕上播放。只需引入视频,无需操心额外代码。

方法定义在玩家对象上,因此可在任意上下文中通过Lua或Redscript调用。


制作人员:特别感谢 德德拉 用于测试和代码优化!


从模组管理器安装或解压至游戏目录。



请将你的bink2视频安装到模组内的以下路径中。为避免与其他模组作者冲突,建议从0到1000之间选取专属路径键。例如,与其选择0-5这类可能与他人重复的靠前路径,不如采用更安全的专属区间(如50-55)。

重要提示! 请查阅评论区置顶帖查看已使用的模组密钥登记,以便避开它们。

base\VideoFramework\movies\0.bk2
base\VideoFramework\movies\1.bk2
base\VideoFramework\movies\2.bk2
基础\视频框架\影片\3.bk2
base\VideoFramework\movies\4.bk2
base\VideoFramework\movies\5.bk2
base\VideoFramework\movies\6.bk2
base\VideoFramework\movies\7.bk2
基本\视频框架\影片\8.bk2 
base\VideoFramework\movies\9.bk2
base\VideoFramework\movies\10.bk2

……
……

基础\视频框架\影片\1000.bk2


在玩家对象上调用这些方法。完整API请见本页底部的文档说明。

公开功能 播放视频(标签:字符串 电影:Int32 w:浮点型 h浮点型, 延迟: 浮动值)
公共函数 全屏播放视频(标签:字符串, 电影: : Int32, 延迟浮动值)
公共函数
播放带声音的视频(标签抱歉,您没有提供需要翻译的文本。请粘贴您希望本地化的游戏内容。 电影:整数, w:浮动值 h: 浮点, 声音抱歉,您没有提供需要翻译的具体文本内容。请提供您想让我翻译的字符串,我会按照要求进行专业游戏本地化翻译。 延迟浮动值)
公开函数
全屏有声视频播放 (标签抱歉,您似乎没有附上需要翻译的文本内容。请重新发送包含待翻译文本的消息,我会为您完成专业游戏本地化翻译。 电影:Int32, 声音: 字符串, 延迟在游戏语境下,"Float" 可能指数值的浮动、漂浮、或UI中的浮动元素。但根据您只提供了一个单词 "Float",结合括号内的 "Float"(推测是类型标注或数据结构描述),最常见的游戏本地化场景可能涉及: - **UI文本**:如数值/状态显示 → “浮动” - **角色/物体属性**:如“漂浮” - **编程/系统文本**:如数据类型“浮点数” 由于您未提供完整上下文,最通用的自然翻译如下: ``` 浮动 ```

公共函数 停止视频()
公共函数 删除视频(标签抱歉,您提供的文本内容似乎不完整,只显示了 `: String)`。请提供完整的待翻译文本,以便我为您进行专业的游戏本地化翻译。

延迟 延迟秒数。设为0.0将立即播放,否则将在延迟时间结束后播放。
电影 播放影片所用的整数索引,对应某个资源键(见下文)

声音 音频插件音效标签
标签 是特定视频的唯一标识符,例如“movie0”。用于 移除视频 如有需要。

w 宽度 
h 是高度

注意视频固定在屏幕左上角(未来更新将支持更改固定位置)。



LUA

游戏.获取玩家():播放全屏视频("视频1",1,0.0)

红脚本

let player: ref<PlayerPuppet> = GetPlayer(GetGameInstance());
player.PlayFullScreenVideo("video1",1,0.0)

服务 

let system: ref<VideoFramework> = GameInstance.GetScriptableSystemsContainer(this.GetGame()).Get(n"VideoFramework.System.VideoFramework") as VideoFramework;

播放视频(delay: 浮点数,label: C名称,size: 二维向量,movie: 整数,player: 引用<玩家角色>)
system.PlayFullScreenVideoWithSound(label: 字符串,movie: 整型,sound: 字符串,delay: 浮点型)
system.PlayFullScreenVideo(标签: 字符串, 影片: 整数, 延迟: 浮点数)



要创建Bink视频,你需要从以下地址下载Rad Tools 这里



另外,为了让游戏正常运行,我不得不做了件奇怪的事——把Bink格式设为Bink 1,等文件生成后再把后缀名从.bik改成.bk2。估计是因为REDengine里自带的驱动是旧版Bink。

第一步(如果你是视频制作新手),先创建一个(或使用现有的).mp4或.mov格式的视频文件。我目前用的是 OpenShot 视频编辑器。也可以使用Adobe Premiere或After Effects等其他工具。拿到视频文件后,参照上方的Bink应用程序将其转换为.bk2格式的Bink文件。这样就完成了!

创建透明视频

这是一个多步流程,具体步骤如下。

1. 为你的前景对象视频添加绿色背景(可使用OpenShot等视频编辑器)。或使用AI工具(如Seedance 2.0或Veo)生成视频,并指示其将背景设为纯绿色。也可直接导入现有视频,指令其将背景替换为纯绿色。
2. 在Adobe After Effects中,将视频添加到时间轴。随后在特效面板中搜索“KeyLight”,将其拖拽到时间轴的视频上。在该特效的属性中,可以看到吸管工具和颜色样本(通常是黑色)。点击吸管工具,再点击视频预览中的绿色背景即可。
3. 将你的视频添加到渲染队列,并将渲染属性中的输出格式设为“Quicktime”(你可能需要在电脑上安装 Apple Quicktime)。接着在对话框的下拉菜单中,将输出格式类型选为“RGB+Alpha”,点击渲染。
4. 使用RAD工具(制作bink视频),选取你新建的.mov格式QuickTime影片。请勾选“使用Alpha通道”复选框(参考上方对话框截图),并将输出格式设为“BINK 1”,同时把输出文件名后缀改为.bk2。虽然不清楚为何需要这一步,但请务必执行。最后即可生成bink文件!

你搞定了。




此框架不播放自带音效的视频。需将音效另行添加至 音频工具 在您的模组中配置,然后调用视频音效方法(见下文),传入以下参数 音频装置 裁剪标签。具体细节请参阅 Audioware 文档。



这是我这边的一个例子 指节三明治 我使用此框架在屏幕上播放微型视频动画的模组。






视频框架API文档

视频框架模组为播放预渲染内容提供了精简API 抱歉,您只提供了“.bk2”这个文件名或扩展名,但没有给出需要翻译的文本内容。请提供待翻译的游戏文本,我会为您将其翻译为中文。 玩家HUD上的视频界面。API通过注入的方法暴露出来。 玩家傀儡 便捷操作类。

玩家傀儡扩展

你可以直接在任意对象上调用这些方法 玩家木偶 实例(例如,本地玩家)。

全屏播放视频(标签: 字符串 电影:整数, 延迟: Float) -> Void
播放适配全屏的视频。
  • 标签: 视频画布的唯一字符串标识符。若已存在相同标签的画布,将在创建新画布前移除旧画布。
  • 电影要播放的电影索引(有效范围: 0 至 100). 此路径直接对应文件所在位置: base\VideoFramework\movies\{index}.bk2.
  • 延迟等待视频开始播放的秒数。 0.0 立即播放。

播放视频(标签:字符串 电影: w:浮点数, h:浮点数: 延迟: Float) -> Void
以指定宽度和高度播放视频,锚定在屏幕左上角。
  • 标签唯一标识视频画布的字符串。
  • 电影:要播放的电影索引(0 至 100)
  • w视频画布的宽度(像素)。
  • h视频画布的高度(像素)。
  • 延迟视频播放前的等待时长(秒)。

全屏有声播放视频(标签: 抱歉,您提供的文本内容似乎不完整,仅显示“: String,”,这可能是代码片段而非实际游戏文本。请提供完整的待翻译内容,以便我为您进行专业、准确的游戏本地化翻译。 电影:Int32, 声音: 字符串 延迟: Float) -> Void
播放一个视频,该视频会缩放至填满整个用户屏幕,同时触发一个音频系统事件。
  • 标签视频画布的唯一字符串标识符。
  • 电影将要播放的电影索引(0 到 100)
  • 声音播放音频事件的字串名称。
  • 延迟视频开始播放前的等待时间(秒)。

播放视频并带声音(标签:字符串 电影: : Int32, w:浮点型 h浮点数, 声音(String, delay: Float) -> Void
在指定宽度和高度下播放视频,并同步触发音频系统事件。
  • label 标签视频画布的唯一字符串标识符。
  • 电影播放电影的索引(0 至 100)
  • w视频画布的宽度(像素)。
  • h视频画布高度(像素)。
  • 声音播放音频事件的事件名。
  • 延迟视频播放前的等待时间(秒)。

停止播放() -> 空
停止播放当前追踪的视频。


移除视频(标签) -> Void
从屏幕中彻底移除指定标签的视频画布。

视频框架服务类

如需获取较低权限,你可通过以下方式操作: 视频框架 可直接运行的脚本化系统。

正在获取副本

videoFramework = VideoFramework.GetInstance(player)


方法
  • 在画布上播放视频(...)将视频直接附加到指定 墨水复合控件 root. 若希望视频归属于自定义UI层而非默认层,可使用此项 墨水HUD层.
  • PlaySound(标签: CName) -> 空通过扩展音频系统触发一个声音事件。
  • GetMoviePath(索引: Int32) -> 资源引用返回 参考编号 路径至 .bk2 对应整数索引的文件。

使用示例
红脚本

// 立即全屏播放电影索引5
player.PlayFullScreenVideo("my_fullscreen_vid", 5, 0.0);

播放影片索引10,分辨率1920x1080,延迟2.5秒后开始
player.PlayVideo("my_custom_vid", 10, 1920.0, 1080.0, 2.5);

播放影片索引10,分辨率1920×1080,延迟2.5秒后带声音播放
player.PlayVideoWithSound("my_custom_vid", 10, 1920.0, 1080.0, "SoundEvent", 2.5);

// 立即以全屏模式播放索引为2的电影片段,并调用自定义音频
player.PlayFullScreenVideoWithSound("my_sound_vid", 2, "my_custom_audio_event", 0.0);

// 暂停当前视频播放
player.StopVideo();

// 将视频画布从屏幕移除
player:RemoveVideo("my_custom_vid");

赛博朋克 2077 的热门 MOD

探索适用于 赛博朋克 2077 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

使用 Xmod 解锁 赛博朋克 2077 的全部潜力 — 今天就探索这些顶级 MOD!