DyberPet 桌面宠物框架:PySide6 开源桌宠快速上手完整指南
【免费下载链接】DyberPetDesktop Cyber Pet Framework based on PySide6项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet
DyberPet 是一个基于 PySide6 的开源桌面宠物框架:把角色放进桌面,点击互动、喂食养成、跑番茄钟专注任务都能做到。本指南覆盖安装步骤、角色与物品自定义方法,以及 JSON 配置的关键参数。
🚀 桌面宠物怎么安装:Windows 双击或 Python 环境
Windows 路线(最快):从 Release 下载最新版本,解压后双击run_DyberPet.exe,程序启动后左侧是角色列表,点击"启动"按钮,角色就会出现在你的桌面上。
Python 路线(可改代码):先 clone 仓库https://gitcode.com/GitHub_Trending/dy/DyberPet,创建隔离环境并安装依赖:
conda create --name Dyber_pyside python=3.9.18 conda activate Dyber_pyside conda install -c conda-forge apscheduler pynput pip install PySide6-Fluent-Widgets==1.5.4 pyside6==6.5.2 tendo然后在仓库根目录执行python run_DyberPet.py即可运行(MacOS 同理,README 中有对应说明)。程序使用单实例保护,同时只能跑一个主进程,防止存档数据写乱。
🧩 DyberPet 桌面宠物框架是怎么设计的
模块之间靠信号通信,互不阻塞。动画模块独立于主窗口运行,你在菜单里连续切换动作时窗口不会卡死;交互模块单独处理点击、拖拽、右键等输入;通知栏、对话气泡、附件(可穿戴特效)各自独立。好处很直接:角色动画再复杂,设置界面和背包界面也保持流畅。
所有行为由 JSON 驱动,不改代码。角色有哪些动作、每帧播多久、物品加多少饱食度,全部写在角色文件夹的 JSON 文件里。程序启动时自动扫描res/role/下的文件夹生成角色列表,配置写错时也会给出提示。这意味着你不需要读源码就能做新角色、新物品。
数值体系绑定可见行为。每个角色有饱食度、好感度等数值:饱食度随时间下降,降到 0 时角色进入饿昏状态,只播放睡觉一类动作;好感度提升则解锁新的动作组和商店物品。数值不是摆设,它们决定角色"现在会做什么"。
🐾 交互、养成与专注:角色在你工作时会做什么
写文档时随手左键点一下角色,它播放拍拍动作,点击位置冒出心心,还有小概率掉落物品到任务栏;右键点击则弹出控制菜单,可以指定播放某个动作、查看状态、打开设置;按住左键拖动,角色会跟手移动并支持拖拽反弹。
养成循环是:饱食度每分钟下降,低于 80 时角色头顶随机冒出索要食物的气泡,你在背包里给它喂食,它根据喜好程度播放不同的进食动画并弹出气泡反馈。好感度上限 200 级、每级 120 点,升级后右键菜单和角色面板会显示星星、月亮、太阳、皇冠四类徽章。嫌手动喂麻烦,可以开自动喂食;锁屏时开启"自动锁定"选项,饱食度与好感度会暂停变化。
番茄钟场景:在任务面板开始 25 分钟专注后,角色进入focus专注动画,头顶挂进度条;期间你忍不住拍拍它,它会回一句"你现在应该专注在任务上"的气泡。专注结束按已进行时长结算物品奖励,并发出对应类型的通知——番茄钟的开始、结束、取消各有独立的通知类型。
迷你宠物方面,通过背包里的subpet类物品(如派蒙)可以召唤跟随角色,多只迷你宠物会自动排队跟随,主宠物移动时它们不会掉队。
✏️ 如何创建第一个 DyberPet 桌面宠物角色
完整步骤以 模组开发文档 为准,核心流程如下:
- 在
res/role/下新建以角色命名的文件夹(文件名用英文,中文文件名在部分系统解压后会导致乱码崩溃)。 - 在文件夹内建
action/目录,放入透明背景 PNG 序列帧,按"相同前缀 + 序号"命名,如stand_0.png、stand_1.png;所有帧中角色的绝对大小要一致,脚部图片的地面对齐图片底边。 - 编写
act_conf.json:为每个动作定义images(帧前缀)、act_num(循环次数)、frame_refresh(单帧秒数);带移动的动作加need_move、direction、frame_move;角色"底部中心"不在画布底边中点时用anchor偏移修正,避免切动作时闪现。 - 编写
pet_conf.json:default、drag、fall是必须定义的动作,缺少的其他动作会自动用 default 填补;在random_act里把动作组成动画组,act_type第一项是饱食度分级、第二项是好感度解锁等级——比如饿昏状态下只保留"睡觉"动画组,就能实现低饱食度角色自动变蔫的效果。
可选目录:note/放角色专属的通知图标、音效和随机语音;info/放头像与作者信息(显示在角色管理的信息窗口);items/可让角色自带物品。程序检测到文件夹后会自动校验并提示潜在错误,建议先用系统里的自动添加功能测试再发布。
📦 物品与对话模块怎么用 JSON 配置
物品放在res/items/模组名/items_config.json,每个物品一个条目,关键参数:
"苹果": { "image": "apple.png", "effect_HP": 3, "effect_FV": 3, "drop_rate": 1.0, "fv_lock": 0, "type": "consumable", "cost": 200 }effect_HP/effect_FV是使用后增减的饱食度与好感度,drop_rate是点击掉落的相对权重,fv_lock是商店解锁的好感度等级,type支持consumable、collection、dialogue、subpet四种。还可以加buff字段,例如"每 30 秒回 2 点饱食度、持续 2 分钟"。
对话物品更有意思:把type设为dialogue后,使用它会打开一段带选项的分支对话。对话内容写在角色的msg_conf.json,每句文字用text_编号作 Key,每个选项用option_编号作 Key,再用relationship声明"文字出现哪些选项""选项跳转到哪句文字";最后在pet_conf.json的msg_dict中把物品名和对话名对应起来。建议先在纸上把对话画成流程图再填配置,任意分支结构都能表达,只是别做成死循环。
⚡ 进阶提示:性能、多显示器与养成节奏
- 多角色同屏:进程单实例限制下主角色只能有一个,但"召唤同伴"和迷你宠物可以让多个形象同屏,跟随逻辑已处理屏幕边界与多屏情况。
- 性能:同时开多个形象时,优先减少同时播放的动作与气泡数量,在设置中关闭不需要的通知类型与弹出通知栏,比调帧率更立竿见影。
- 多显示器:角色支持跨屏移动,主屏始终排在屏幕列表首位;缩放比例按角色单独记忆,每个角色有独立大小参数。
- 养成节奏:饱食度下降间隔约 1 分钟一次,长期挂着不开自动喂食的话角色会饿昏;配合番茄钟完成专注任务拿掉落奖励,是维持数值最省事的循环。
🌐 社区与资源:文档、素材合集与贡献入口
- 模组开发文档:角色开发(动画原理、
anchor定位、昼夜作息、个性化通知)、物品开发、可穿戴物品(Equip)、迷你宠物开发的完整参考。 - 素材合集:现有角色、迷你宠物、物品模组的下载与预览,下载后可直接在 App 内导入。
- 贡献:当前 LLM 模块还在开发中,相关能力暂未完全开源;修 bug、加功能模块、翻译文档都是可参与的入口,使用问题直接提 Issue 即可。
DyberPet 把"让角色住进桌面"这件事拆成了配置、动画、数值三层,你从哪一层切入都不算晚。
- 从 Release 下载 exe,先把默认角色跑起来
- 读一遍 模组开发文档 的角色开发章节
- 从 素材合集 导入一个喜欢的角色,体验完整的养成循环
【免费下载链接】DyberPetDesktop Cyber Pet Framework based on PySide6项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考