DyberPet 开源桌面宠物完全教程:从安装到自制模组一篇讲清
【免费下载链接】DyberPetDesktop Cyber Pet Framework based on PySide6项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet
晚上十一点,合上代码窗口,桌面右下角的小猫抬起了头——点它一下,飘出一句"你还没忙完吗?"。这不是 GIF 壁纸,而是 DyberPet(呆啵宠物),一个基于 PySide6 的开源桌面宠物框架:帧动画、数值养成、任务商店、模组生态都装在同一个轻量应用里,全程体验不用碰一行代码。
它的能力范围可以拆成几句:帧动画(行走、睡觉、拖拽、重力下落)、饱食度与好感度双数值养成、商店、背包、Buff物品系统、番茄钟 + 专注计时任务奖励,以及JSON 驱动的模组扩展。接 AI 是加分项——不接,以上也全部照常运转。
🚀 先跑起来:桌面宠物安装教程的两条路线
第一个问题肯定是:到底要装什么?分两种情况。
Windows 用户不用配环境:直接到项目的 Release 页下载 EXE,双击就能启动,是 Windows 用户最短的上手路线。
开发者与 macOS 用户建议用 conda 建独立环境,避免依赖与系统 Python 互相影响:
# 1) 创建并激活独立环境(Python 3.9.18) conda create --name Dyber_pyside python=3.9.18 conda activate Dyber_pyside # 2) 定时任务与输入监听依赖(macOS 用户把 pynput 一行改为 pip install pynput==1.7.6) conda install -c conda-forge apscheduler conda install -c conda-forge pynput # 3) PySide6 与 Fluent 风格 UI 组件 pip install PySide6-Fluent-Widgets==1.5.4 -i https://pypi.org/simple/ pip install pyside6==6.5.2 pip install tento # 4) 克隆仓库并启动 git clone https://gitcode.com/GitHub_Trending/dy/DyberPet cd DyberPet python run_DyberPet.py启动后,右键点宠物本体会弹出菜单:打开系统面板、切换动作、召唤迷你宠物、换岗角色,都在这里完成,这是全部操作的主入口。它还会按时间段主动跟你打招呼,剩下的功能慢慢点菜单就行。
⏱️ 让它替你盯工时:专注任务的奖励闭环
坐下来干活,真能换来宠物口粮吗?能,而且是按分钟算账的。
任务面板里有两种玩法。番茄钟按 25 分钟一轮计时,正常完成一轮就结算 750 啵币;专注时间可以自定义时长,还能中途暂停。任务启动后,倒计时浮在宠物头顶,角色会切换成专属的 focus 动作,安静待在屏幕一角陪你干活。
结算规则比较宽容:正常走完,按全部时长发币(每满 1 分钟折 25 啵币);中途取消,也按已经投入的分钟数补发。赚到的币能在商店里买食物,喂出去涨饱食度与好感度,好感度升级又会解锁新动作、新物品——每日目标与待办事项同样换币,连续打卡还有额外奖励。一条链子串下来:工作 → 掉币 → 投喂 → 数值成长 → 解锁内容。对每天坐班的人来说,专注第一次有了个能摸得着的回报,而不是又一张打卡表。
🍔 它为什么饿着等你:饱食度、好感度与 Buff 机制
为什么非让它饿?如果角色永远精力满格,用不了三天就会被遗忘在屏幕角落。让饱食度随时间自然下滑,互动才站得住脚——这是整个数值设计的出发点。
具体规则:饱食度随时间持续掉,面板按百分比分成四档(活力、正常、饥饿、饿昏),档位直接决定动画池——活力档播放跳跃、走动,饿昏档只剩睡觉动作可播。好感度满 200 级,每级攒 120 点,升级时通知栏的徽章逐步换代:星星(1 级)、月亮(4 级)、太阳(16 级)、皇冠(64 级),长线养成的里程碑感来自这里。
策略空间藏在物品上。每种食物除了加饱食度、好感度,有的还带持续性 Buff。框架一共支持五类:周期加饱食度、周期加好感度、周期掉币、冻结饱食度下降、冻结好感度下降。仓库默认物品里,汉堡用后 5 分钟内饱食度不扣,薯条则每 30 秒进账 5 币、持续 2 分钟,简化配置长这样:
"汉堡": { "effect_HP": 10, "effect_FV": 3, "buff": { "effect": "HP_stop", "expiration": 300 } }掉落走 drop_rate 相对权重,商店商品按 fv_lock 分等级解锁,所以"拿哪件、什么时候用、稀有 Buff 要不要囤着应急",喂个东西也成了一道取舍题。反馈细节也没敷衍:单击会冒"摸摸"气泡和一颗心心,1 秒内狂点 7 次会被气泡回应;饱食度走低时它会随机开口讨食,数值跌破阈值还能自动喂食。
🎨 把脸换成自己画的:不写代码的桌宠模组制作
默认角色玩腻了,又不会写代码,还能做自己的宠物吗?能。一个角色的成本是一叠透明背景 PNG 加两个 JSON:
- 图片帧放进
action/目录,按"前缀_序号"命名(如stand_0.png、stand_1.png); pet_conf.json写画布宽高、缩放、默认动作(静息、拖拽、下落等)、随机动作组、概率与好感度解锁阈值;act_conf.json给每个动作指定帧前缀、循环次数、单帧时长,以及是否位移、往哪个方向走。
仓库自带的 Kitty 角色里,"向左走"这套动作就是声明leftwalk前缀、循环 5 遍、每帧 0.2 秒、方向 left——几行声明,行走循环就成立了。
物品模组更轻:一张图加一份 items_config.json,填饱食度与好感度加成、掉率、解锁等级、商店价格,想加 Buff 就再补一个 buff 块。对话树支持可视化设计:在 msg_conf.json 里写文本节点与选项节点,用 relationship 声明"这段文字之后出哪些选项、点了选项进哪段文字",先把流程图画出来再回填 key,多分支剧情、问答甚至教学小游戏都搭得起来。
社区模组都收在 docs/collection.md:小呆、纳西妲、魈、流浪者、流萤、像素猫meme 等角色,还有会跟随主宠物自动排队补位的迷你宠物派蒙——它本质是一件 subpet 类型物品,用掉就出窝。文件命名(务必用英文)、帧间体型一致性、anchor 锚点这类素材规范,docs/art_dev.md 里有逐条说明。
📖 读码路径:PySide6 桌面开发从哪里切入
想读 PySide6 源码的话,入口可以按这份清单来:
- 启动流程、全部信号槽接线:
run_DyberPet.py - 全局调度(数值变更、交互判定、任务结算):
DyberPet/DyberPet.py - 动画引擎(帧切换、重力下落、拖拽、附件图层):
DyberPet/Accessory.py - 仪表盘四块面板在
DyberPet/Dashboard/下:状态与日志statusUI.py、番茄钟与专注结算taskUI.py、商店shopUI.py、背包inventoryUI.py - 角色、物品、存档管理面板集中在
DyberPet/DyberSettings/
一句话点拨:应用启动时,DyberPetApp用一个__connectSignalToSlot方法把所有跨模块连线一次接完——宠物发出hp_updated信号,状态面板刷新;任务面板发出start_focus,主窗口才启动计时器。模块之间不互相 import,全靠 Qt 信号槽通信,所以每个文件都能单独读懂。
🤔 容易想歪的几件事
- 误区:宠物只是桌面摆件,锁屏期间数值会偷偷掉光。|事实:设置里有自动锁屏开关,锁屏状态下定时器的数值变更会被整段跳过(该检测目前支持 Windows),回来时一切原样。
- 误区:不接 AI 就少了大半体验。|事实:README 的定位是"加分项,不是前置条件",不接大模型,动画、养成、任务、商店四个板块一个都不缺(LLM 相关能力仍在持续开发中)。
- 误区:做模组得又会画画又会写代码。|事实:物品模组只要一张图和几行 JSON,对话模组按流程图回填配置就行;只有从零画角色新动画才需要绘画功底。
- 误区:换电脑存档就没了,框架还特别吃内存。|事实:每个角色独立存档,支持导出、导入与快速存档,退出前程序会再写盘一次,换设备带上文件即可续养;动画帧统一走 QPixmap 缓存,内存占用克制,和 IDE 并存也不紧张。
说到底,DyberPet 最克制的设计是锁屏冻结:它不拿你的离开当掉属性的窗口,而是替你按下暂停。下次解锁屏幕,数值分毫未动,小家伙还坐在桌面那个角上。它不催你完成什么指标,只等你回来——对一个难以坚持的习惯工具来说,这种"被等着"的分量,可能比任何提醒弹窗都耐用。
【免费下载链接】DyberPetDesktop Cyber Pet Framework based on PySide6项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考