这是一个通过RenderTarget捕获画面并调用FFmpeg或其他编码器来生成动图的插件。
下面将介绍如何安装并使用该插件。
- 去这里下载FFmpeg。
- 把压缩包里的bin文件夹解压出来,放到一个相对稳定的目录里面。
- (可选)在环境变量Path中添加你刚才解压的bin文件夹的路径。在终端里输入ffmpeg,出现ffmpeg version XXX即成功。
- (可选)如果没有将FFmpeg添加到path,你需要在插件目录下的danmaku_recorder/config.json中指定ffmpeg可执行程序的路径。
把此文件夹复制到LuaSTG的plugins文件夹下,在设置里启用danmaku_recorder插件。
(不推荐)如果要启用原先的UI,请打开register_event.lua,找到config
,修改键use_native_ui
的值为true
。
如果要指定FFmpeg的路径,请打开danmaku_recorder/config.json,在encoder_path
中,修改键ffmpeg
的值。指定SimpleGifEncoder的路径同理。
把recorder_plugin文件夹复制到LuaSTG的plugins文件夹下,在设置里启用danmaku_recorder插件。
此外还需要手动修改thlib-scripts/THlib/ext.lua。在ext.lua开头加入以下部分
local recorder_exist, recorder = pcall(require, "danmaku_recorder.recorder")
if recorder_exist then recorder:init() end
local recorder_imgui_exist, recorder_imgui = pcall(require, "danmaku_recorder.recorder_imgui")
if recorder_imgui_exist then
recorder_imgui:init()
local debugger = require('lib.Ldebug')
debugger.addView("Danmaku Recorder Plugin", recorder_imgui)
end
如果要使用原生UI,再添加以下内容
local recorder_ui_exist, recorder_ui = pcall(require, "danmaku_recorder.recorder_ui")
if recorder_ui_exist then recorder_ui:init() end
如果要指定编码器可执行程序的路径,请修改danmaku_recorder/config.json中的相关信息。
如果要使用原生UI,在GameScene:onUpdate
中添加以下内容
if recorder_ui_exist then recorder_ui:frame() end
在GameScene:onRender
的BeforeRender()
后面添加以下内容
if recorder_exist then recorder:start_capture() end
在GameScene:onRender
的ObjRender()
后面添加以下内容
if recorder_exist then recorder:end_capture() end
SetViewMode("ui")
if recorder_exist then recorder:draw_capture_content() end
在GameScene:onRender
的AfterRender()
后面添加以下内容
SetViewMode("ui")
if recorder_imgui_exist then recorder_imgui:render() end
如果要使用原生UI,在GameScene:onRender
的AfterRender()
后面添加以下内容
SetViewMode("ui")
if recorder_ui_exist then recorder_ui:render() end
encoder_path
用于指定编码器可执行路径。preferred_encoder
用于指定优先使用的编码器。
以下功能只对ImGui UI有效
hotkeys
用于指定开始录制和停止录制的快捷键。参考Lkeycode.lua
。
eg."hotkeys": { "start_record" : ["Q", "W"], "end_record" : ["1", "Q", "F1"] },
auto_enable
为true
则会自动启用插件,false
则需要手动打开。save_config
用于指定自动保存配置。enable
为true
即启用,false
为禁用,path
用于指定保存文件的路径。default_config
用于指定默认配置。只在禁用自动保存或未从文件中读取配置时生效。
按下F3打开debug菜单,在Tool里面找到Danmaku Recorder Plugin
,打开即可使用。
按Q启动菜单,可以用Danmaku Recorder UI控制Danmaku Recorder。
按O键可以拖动鼠标框选录制区域,按下O键以后按住鼠标不放,拖动到直到框出希望截取的区域再松开。在未按下或未松开鼠标时再按O会取消。
录制完成以后,你可以在danmaku_recorder\output文件夹下找到输出文件。
你也可以通过require("danmaku_recorder.recorder")
来获取recorder对象并使用其成员函数控制。请阅读其代码了解详情。
- 1.0.1
- 优化了调用ffmpeg的命令行,修复生成gif的帧数和速度异常的问题。
- 修复了从编辑器或者重定向输出以后卡死的问题。
- 增加了手动指定ffmpeg路径的功能。
- 1.0.2
- 把忘记删掉的print删掉了。
- 1.0.3
- 将显示录制区域的功能移除,改为在UI中渲染。
- 生成调色板的命令合并。
- 1.1.0
- 加入了指定编码器的功能。
- 将采集间隔改为了采集帧率。
- 删除显示录制区域的API。
- 1.0.1
- 调整了默认选项。
- 增加了在UI里显示Recorder版本号。
- 1.0.2
- 显示录制区域改为在UI中渲染。
- 1.0.3
- 添加停止维护提示。
- 1.1.0
- 用ImGui重写了原本的UI。
- 1.2.0
- 把忘记删掉的print删掉了。
- 添加了自动保存配置和默认配置的功能。
- 添加了选择编码器的功能。
- 将采集间隔改为了采集帧率。
- Bundle 1.0.1
- 调整目录结构。
- readme写得稍微详细了一点。
- Bundle 1.0.2
- 调整目录结构,便于推送到GitHub。
- 补充开源许可相关信息。
- Bundle 1.0.3
- 添加并默认使用ImGuiUI。
- Bundle 1.1.0
- 添加指定编码器的功能。
- 添加config.json用于配置更多功能。
- recorder_ui_font.otf 使用的是Adobe开发的思源黑体,遵守SIL Open Font License Version 1.1开源许可。
- CoordTransfer.lua 是由Xiliusha编写的坐标系映射工具,有一定修改。
祝使用愉快
By TNW