做了个节奏光剑实时状态挂件

作者:V君 发布于:2020-10-28 22:38 Wednesday 分类:折腾手记

点击查看原图

TL;DR [ 源代码 ] [ 本体 ]


效果:在游戏画面前叠加一层,用于显示分数、歌曲、性能信息和图表
安装:使用 ModAssistant 安装 HTTPStatus 和 YUR 后将 dll 丢进 Plugins 目录然后运行exe
  若找插件管理器找不到 YUR,去官方 discord 找
  HTTPStatus 插件可以去 GitHub 找 release 若是没有 release 就自己编译吧!
配置:无需任何配置
扯扯:

看到一些视频有些叠加在前面的挂件,后来了解到原来是通过HTTP方式向外部提供来实现的。现有的实现大部分都是基于网页,然后用OBS之类的录屏软件做叠加处理。

我一直用 GeFore Experience 来录屏,懒得改用 OBS。那就自己撸一个吧,反正半透明的窗体也不难搞,于是这玩意儿就出来了。早期只有 HTTPStatus 的数据,后来想到可以把 YUR 的心率和燃烧率整合进来,又做了个插件去读YUR的数据(插件的插件……)。再后来,想知道为啥帧数很低,就把 OpenHardwareMonitor 集成进来读取 CPU 和 GPU 负载了(发现是 CPU 拖了后腿…),它自带有 sys 文件会释放到 exe 旁边,如果杀毒软件拦截,你就要做出选择是相信 OpenHardwareMonitor 还是相信你的杀毒软件了,我不背锅。

最后就是解释为啥这么迟才发表文章了。还不是因为游戏更新,而且YUR插件也没出来,就一直拖着一直到昨天去 YUR 的 discord 问了才知道,原来插件已经出来,但是还没有通过 BeatMods 的审核…(我想说我做的音量插件也一直处于 Pending 状态,别人家晚来的插件都通过了。。

标签: 软件开发 插件 C# Winform Unity VR游戏

评论(0) 引用(0) 浏览(226)

做了个节奏光剑SFX音量调整插件

作者:V君 发布于:2020-10-23 13:21 Friday 分类:折腾手记

TL;DR [ 源代码 ]


效果:将击中方块和 Miss 的效果音调整至最大
安装:将 dll 丢进 Plugins 目录
配置:无需任何配置
扯扯:

原味的游戏效果音太小了,打起来没感觉,尽管 Auros 桑的 Enhancements 插件有调整各种音量的功能,但好像又还没为游戏更新做好准备,那我就先自己撸个写死的吧。

标签: 软件开发 插件 C# VR游戏

评论(0) 引用(0) 浏览(230)

做了个节奏光剑的歌词插件

作者:V君 发布于:2020-8-2 8:56 Sunday 分类:折腾手记

TL;DR [ 下载 ][ 源代码

点击查看原图
效果:在游戏过程中同步显示带翻译、注音的歌词
安装:使用 ModAssistant 安装 IPA 和必要的库,然后将 BeatLyrics.dll 丢进 Plugins 目录
配置:一共需要设置两个环境变量,先设置环境变量再启动 Steam
  BeatSaberDir - 指向 BeatSaber 安装目录,让工具能扫描地图文件
  BeatLyricsDir - 指向歌词目录,工具将会把放歌词文件存到这里,插件将会来这里读取
使用:需要先用工具为地图添加歌词才能在游戏中显示
扯扯:

做这个玩意儿之前肯定会先看看有没有别人做好的东西,比如 BeatSinger 不过它的样式以及歌词关联方式并不符合我的习惯,于是就参照多个插件的源代码来整一个自己的版本,还搞了个管理界面来调整歌词时间轴。

标签: 软件开发 插件 C# Unity VR游戏

评论(1) 引用(0) 浏览(194)

[ALPHA]适用于Notepad++的Markdown插件

作者:V君 发布于:2019-5-12 6:04 Sunday 分类:我的应用

TL;DR

本站下载:[ 本体32位 ][ 本体64位 ]

源代码 ]

效果: 增加一个可拆分、停靠的插件窗口,呈现Markdown,可导出PDF
限制: 支持大部分常见的Markdown语法,数学符号,图表目前还不支持
环境: 已使用Notepad++ v7.6.6在Win10和Win7SP1确认
技巧: 等你来发现。。。

点击查看原图

使用方法:

1)确定Notepad++位数和版本,下载对应本体,解压到插件目录的NppMarkdownRenderer文件夹
2)启动Notepad++点击工具栏中的点击查看原图按钮,或通过插件菜单
NppMarkdownRenderer打开插件窗格

目前待实现的功能:
1) 样式表管理
2) PDF导出选项(如背景启用和边距)

FAQ:
1)Notepad++提示错误,无法加载插件。
 有两个常见的原因会导致插件无法顺利在Notepad++启动时加载。
 - 在Win7可能是缺少.NET,可从官方网站获取最新版。
 - 缺少CRT库,可以从官方网站下载安装或者直接将散装文件(32,64)解压到插件目录
2)插件窗口显示ERROR: Only Markdown(*.md) supported
 - 将当前文件保存成扩展名为.md的文件,然后任意变更或来回切换选项卡即可
3)崩溃、卡死和其他BUG
 - 请把重现步骤反馈到评论中
 - 具备开发能力者请调试源代码

扯扯:
 总算是发布了第一个看起来可以用了的版本,虽然还有许多功能只做了界面还没实现。。。
 其实没有Notepad++也可以运行
MarkdownRenderer.Test.exe来体验一番 乂目

标签: 软件开发 插件 C# Interop HybridApp

评论(0) 引用(0) 浏览(924)

用C#为Notepad++写插件:完善IDE调试体验、使用共享项目、实现窗口停靠

作者:V君 发布于:2019-1-5 21:57 Saturday 分类:折腾手记

TL;DR

完善IDE调试体验

1) 在 Notepad++ 插件目录创建文件符号链接,指向 bin\debug\x86(或x64)\ 里的 dll
2) 将项目属性-调试选项卡-启动操作的外部进程指定为 Notepad++ 的绝对路径
3) 设置断点,F5!

使用共享项目

1) 新建共享项目,命名 Kbg.NppPluginNET.PluginInfrastructure 这样可以一致命名空间
2) 将 PluginInfrastructure 里的代码文件移动过去
3) 在插件项目中添加共享项目引用, 这样一份基础设施代码就能在多个项目之间共享

实现窗口停靠

1) 从官网插件开发向导页面找C#插件示例中参考窗口停靠的具体实现。在GitHub也有在线版
2) 新建一个窗体,命名 SayHiForm,延续上回命名习惯
3) 将示例代码应用到项目中,按 F5 键启动调试验证实现。可以在 Gogs 上查看最终实现

点击查看原图

~扯谈时间~

在上一篇文章里我们搞清楚了如何开始用 C# 为 Notepad++ 写插件。让我们继续折腾,这次一共有3个折腾点,分别是完善调试体验、用共享项目避免重复代码还有实现窗口停靠。让我们从第一个折腾点开始。

按照TL;DR的步骤操作下来,现在可以命中断点了,也能查看和修改变量值以及拖动执行代码,略遗憾的是编辑并继续不可用。提示未加载程序集时不允许,可能是 DllExport 修改 DLL 导致。总而言之,能打断点已经是很好的体验了。非要在调试时想要编辑并继续也不是不可以,只要另起一个项目作为调试启动入口来调用这个程序集,那么在调试时也是可以编辑并继续的,只不过你得而外地为调试入口做一些适配,从而弥补调试入口和实际被 Notepad++ 加载运行时的差别。扯完这个折腾点之后让我们简单扯扯代码共享项目。

说到代码共享项目那就得先聊聊过去,在没有这种项目类型时,我是如何管理重复出现于多个项目的代码集。在那个时代,我的解决方案有两种,分别是将其独立成为类库,或者用目录符号链接。这两种方法相对于代码共享项目来说都是有明显缺陷的,拿这次我们折腾的,带非托管导出函数的程序集来说,就得把代码放入当前项目中,导出函数不应该出现在引用的程序集;而符号连接虽然能算作当前项目的代码文件,然而命名空间不能与项目名称保持一致,从规范层面来看有些尴尬。用了共享项目之后这两个问题得到了彻底的解决。共享项目能扯的并不多,最后是这次的重头戏--可停靠窗口。

说到可停靠窗口,我要先小声 BB 一下,现在能找到的,能在 Windows 下离线使用的,带实时预览窗格的 Markdown 编辑器中,大部分布局都是文本编辑在左边,预览窗格在右边。只要把预览窗格做成可浮动、停靠的活动面板,这就完美的满足了我这种挑剔家伙和大众普遍习惯的需求。就算是能把预览窗格移动到左边的 vs code,它也不能实现浮动窗口。

回归主题让我们继续吧!进入官方推荐的插件示例项目一看,略震惊。具体实现只需要短短几行代码把窗体句柄按照指定的姿势丢给 NPP,它就能自己管理停靠! TL;DR 里已经写的很清楚,这里就不再啰嗦。

才如果你把整个解决方案Check出来,会发现上一篇文章折腾的 HelloNppPlugin 插件项目并没有使用共享代码项目,这是有意而为之,让内容和文章描述尽可能一致,避免初看的读者受到影响。

这次就扯到这里,下次关于 NPP 插件的文章估计是 Markdown 插件发布的时候了。

标签: 软件开发 插件 C# Interop 调试技术

评论(0) 引用(0) 浏览(738)

Powered by emlog 去你妹的备案 sitemap