【开发者自荐】BongoCat - 开源桌宠实时响应鼠标和键盘事件,使用纯C彻底重新实现

软件名称

BongoCat

应用平台

windows, macos,linux

推荐类型

【开发者自荐】

是否收费

开源免费

一句简介

跨平台桌宠,实时响应鼠标与键盘操作

应用简介

基于纯C重新实现的开源桌宠

官方网站


去年12月份的的时候和佬们分享了我是如何用纯C仅用100kb就是实现了runcat的托盘动画,同时还支持自定义GIF:red_exclamation_mark:
mmexport1785240802160

记得刚开始做Catime的时候有一个心结:pleading_face:,就是纯C来做ui真的是一种灾难

当时的想法是语言本身的问题,毕竟…

Catime的第一版Ui自然就是跟上个世纪的老古董一样 :rofl: 丑,是真的丑!

后续虽然引入了 Windows Common Controls 6.0带来了些看起来现代的外观,但是


唔~咋说呢,看起来就是稍微好了那么一点点,但是看起来这不依然还是个老古董:distorted_face:,而且在win10上这个是没有的,导致win11像个老古董,win10 则像个远古遗迹 :moai:

之前为了控制Catime的体积在1mb以下,曾考虑用 CSS 实现字体样式,但是…这压根不可能,所以就搓了些GDI自绘的样式临时凑合着作为一个过渡方案
freecompress-catime

然后前段时间也不知道哪根筋搭对了,我突然想:既然我都能直接渲染样式了,那我为什么不干脆试试直接画ui呢?:clown_face:ui他不就是几张图往一起一摞,再写点交互逻辑嘛!对吧对吧对吧!!!结果发现实现起来只是需要处理的交互逻辑多了一点而已,比样式的实现简单实在是太多了!


正在这个时候 :distorted_face:

跟一位给 BongoCat 做模型的朋友唠嗑,聊着聊着才知道——BongoCat 的 mver 和 tauri 两个版本也陆续停更了

我当时寻思:啊?这…那…要不我来试试? :thinking:

毕竟 Catime 这边咱还有还有个“体积必须小于 1 MB”的硬性限制(哈哈哈,因为感觉这样可以给自己挑战感),UI 能发挥的空间确实比较有限,既然 BongoCat 这边刚好空出来了,那不如……我来折腾一下? :face_savoring_food:

来吧,那我们直接来看成品吧,注意接下来你看到的所有的ui全部都是用纯C写:double_exclamation_mark:

啥?你这咋还有C++?

因为live2dCubism Native Framework(可以理解为让模型动起来的骨架)本身提供的是C++ 接口,所以我们专门写了一层C++来完成模型加载、动作更新和渲染,再通过C ABI接回整个C项目,也就是说,C++只被隔离在live2d适配层,ui和其余应用主体依然全部都是C!!!

demo

  1. 偏好设置

  2. 模型

  3. 快捷键

  4. 关于

:star_struck:需要模型?欢迎访问我们的官网:bongocat.pet

我们与优秀的模型师携手,为佬们带来丰富的免费模型,持续探索更多有趣的桌面体验!
如果喜欢某位作者的作品,别忘了前往作者主页点个关注,感谢佬的支持喵:red_exclamation_mark:

:package: 使用Cloudflare R2存储,点击即可直接下载!!无需跳转网盘,没有任何网盘推广和广告,干净利落 :face_savoring_food:

models

如果只是改个外观ui啥的那也太无聊了吧 :face_savoring_food:

首先就是来到我们最擅长的资源占用 :heart_on_fire:

怎么还有2.7%的cpu占用!!!?,因为这个虚拟机 :laughing:

只有5mb!纯原生,还跨平台:red_exclamation_mark:

OBS捕获优化

大部分情况可以直接捕获:red_exclamation_mark:无需要扣绿幕,同时任务栏不会有软件的logo :face_savoring_food:

由于OpenGL的问题还有有一部的几率出现无法直接捕获的问题,我们也可以应对 :face_savoring_food:

哈哈哈,实在是太喜欢这个开关了,左侧就是背景颜色的选择,优雅~

更加方便的换模型!表情!动作!

以前换模型,表情,动作都需要打开设置或者用快捷键,现在只需要两步了!鼠标右键 然后 选择就行
同时还有鼠标滚动直接调整缩放(哈哈哈,这块是从Catime学过来的),按住Ctrl+滚动就是调整透明度

就这?那你这不过只是在修复了tauri版本的bug而已啊,本质不就是一个换壳吗:exclamation_question_mark: :enraged_face:

以前的模型是这样的

就是感觉桌宠只是在乱动

未开

现在:double_exclamation_mark:

先吐槽一下这块的逻辑磨了开发者一个多星期,工作量远比想的特别麻烦!!基本就是慢慢的出来的,就是不断地去试参数 :distorted_face:人都麻了

但是这一切都是特别值得的,桌宠会盯着鼠标所在的位置看,同时桌宠的鼠标是和用户的鼠标在屏幕上的位置对应的!:two_hearts:

现在!就是真的互动了 :face_savoring_food:

开了以桌宠为中心

同时支持mver版本和tauri版本模型:red_exclamation_mark:

当前市面上出现了一个很割裂的事,几乎所有的模型师发的BongoCat模型用的都是mver版本的,同时tauri版本用的是单独的一套模型组织格式 :distorted_face:

也就是说如果你想要新的模型在tauri版本上使用那么你需要经过一次模型的转换

在做bongocat的时候我也遇到了一样的纠结,是走mver版本的模型组织格式还是tauri版的,想来想去,算了算了,不想了

giphy

我全都要 :laughing:

:double_exclamation_mark:同时支持mver版本和tauri版本模型格式:double_exclamation_mark:

:smiling_face_with_three_hearts:
更棒的是我们会将tauri版本的重新转换为mver版本保存,所以我们的模型格式走的还是mver版本 :face_savoring_food:,这样方便佬们直接将导入的模型继续在mver版本上使用 :growing_heart:

一个二次元老婆多无聊,必须一群啊 :laughing:

支持同时拥有8个“老婆” :laughing:
image

当前演示所用虚拟机大小,相信佬们的cpu应该能做到更低 :face_savoring_food:

最后祝佬们玩的开心 :laughing:,如果能点击star那实在是太感谢了:two_hearts:

本次演示的所有的模型都可以在我们的官网上下载 :face_savoring_food:

bongocat.pet

顺便再写个c实现的 live2D 编辑器让大家自己就能爽做皮肤如何?

2 个赞

欢迎欢迎,居然写了这么长

1 个赞

猜猜看写了多久 :exploding_head:麻了啊

但……恕我直言,这帖子的内容排版看着真头疼。甚至……感觉整篇文章弄得跟马路上的小广告似的。

  1. 标题结构混乱,层次不清晰。
  2. 滥用标题与加粗样式。适当使用粗体字可突出重点,但通篇大量用加粗则会让重点不突出,影响观感。
  3. emoji 过多,显得排版不整洁。
  4. 意义不明的引用块
  5. 链接不宜用加粗、放大的标题格式文本。论坛有 Onebox 功能,将 URL 单独放在一行,并与上下文间隔一个空行,即可将 URL 渲染为带标题、摘要和封面的小卡片,更加美观。
1 个赞

还别说,真的感觉像电线杆的广告了 :smiling_face_with_tear:

鄙人愚见,这类文章按 “S.T.A.R.” 规则写就很好:

  1. Situation:情景,要干什么
  2. Target:目标,希望怎么样
  3. Action:行动,干了什么
  4. Result:结果,最终效果怎么样
1 个赞

受教了受教了, :exploding_head:刚毕业的大学生,真不太会写哈哈哈

读完了,加星!

不同版本的实现共用一个名字也是蛮头痛的

1 个赞