
把虚拟伙伴养在桌面上DyberPet 桌面宠物框架上手与 DIY 全攻略【免费下载链接】DyberPetDesktop Cyber Pet Framework based on PySide6项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet你有没有过这样的瞬间盯着屏幕赶工到深夜总觉得桌面上少了点什么——要是角落里有只小宠物会打哈欠、会撒娇、会在你专注时安静陪着你就好了。DyberPet呆啵宠物正是为此而生的一个基于 Python PySide6 的开源桌面宠物框架让你把喜欢的角色真正住进电脑桌面陪写代码、陪刷剧、陪你度过每一次番茄钟。它可不止是会动的 GIF 展示器。动画、互动、养成、任务、商店、迷你宠物、甚至大模型 AI 助手一套完整可玩的桌宠 App 该有的它都替你准备好了。更妙的是它的几乎所有内容都由 JSON 配置驱动——这意味着你不需要精通 PySide6也能打造属于自己的角色和道具。接下来我们从零开始一步步把它跑起来、玩起来、再亲手改造成自己的样子。一、开场你的桌面缺一个会饿会困的小伙伴先说说它到底是什么。DyberPet 用 Python PySide6 搭起了一整套虚拟伙伴的运行环境你可以同时管理多个角色今天让小猫陪你写代码明天换一位二次元少女和你聊天。每个角色都有自己的小日子——它会饿饱食度随时间一点点下降饿了你得喂它它会开心摸摸头、说说话、投喂喜欢的食物好感度就会慢慢上涨它会出门闲逛在屏幕边缘散步、打盹、坠落到桌面再爬起来它还记性很好关了电脑再打开它还记得你喂了几天、攒了多少金币。对新手最友好的地方在于不用会写代码也能玩。Windows 用户直接下载打包好的 EXE 双击就能体验想折腾源码的开发者跟着下一节走完十来条命令十分钟内就能看到一只活蹦乱跳的桌宠出现在屏幕上。二、第一步10 分钟从零到跑起来Windows 下的最快路径直接双击 EXE只想先体验的朋友去 Release 页面下载 Windows 打包版本双击运行即可零依赖、零配置。这也是了解它能做什么的最省心方式。开发者路线用 conda 建一个干净环境想读源码、改代码、做模组的朋友建议先建一个独立的 Python 环境避免污染你日常的开发环境。项目要求 Python 3.9 以上官方推荐 3.9.18conda create --name Dyber_pyside python3.9.18 conda activate Dyber_pyside conda install -c conda-forge apscheduler conda install -c conda-forge pynput pip install PySide6-Fluent-Widgets1.5.4 pip install pyside66.5.2 pip install tendo依赖里藏着几个关键线索先混个脸熟依赖它负责什么PySide6-Fluent-Widgets现代 Fluent 风格的 UI 组件库控制台和设置面板都靠它apscheduler定时任务调度器饱食度衰减、番茄钟计时都归它管pynput全局监听鼠标让宠物可以跟随光标、被拖拽tendo单实例锁防止你误开多个桌宠打架装好依赖后把仓库克隆到本地并启动git clone https://gitcode.com/GitHub_Trending/dy/DyberPet cd DyberPet python run_DyberPet.py窗口一闪而过别急桌宠已经出现在屏幕边缘了。对着它点右键会弹出一个圆形菜单角色面板、系统设置、聊天、选择动作、召唤伙伴、更换角色……几乎所有的玩法入口都藏在这里。macOS 用户特别注意项目针对 macOS 做了不少优化屏幕缩放、窗口管理、文件访问等但pynput需要锁版本否则可能无法正常监听鼠标pip install pynput1.7.6其余依赖与 Windows 一致。装完同样执行python run_DyberPet.py即可。三、第二步先玩起来看看它到底能做什么跑起来之后你会发现这不是一个花瓶。它至少能陪你做三件正经事。3.1 像养电子宠物一样养成它角色面板里有两个核心数值饱食度HP和好感度FV。饱食度会按固定间隔自动递减——这是由调度器后台默默驱动的你什么都不做它就会慢慢变饿。此时打开背包投喂它喜欢的食物饱食度回升还会飘出饱食度 1的提示气泡。好感度则更考验陪伴互动、喂养、完成任务都会累积好感经验。它最高可以升到200 级每升一级需要 120 点好感经验并且每到一个里程碑都会解锁新的等级徽章——星星1 级、月亮4 级、太阳16 级、皇冠64 级看着徽章在右键菜单和角色面板上一步步升级成就感十足。养成系统里还有两个贴心设计Buff 效果某些物品使用后会带来一段时间的临时增益比如持续回饱食度由专门的 buff 模块管理可以叠加、计时、到期自动清除状态持久化所有数值都会自动存档你随时可以手动保存快照、导入导出存档甚至跨机器转移再也不怕一朝断电宠物归零。背包本身也做得相当精致物品格子可以自由拖拽换位商店支持买入卖出掉落的道具还带概率计算——小到一枚硬币的掉落动画都是被认真对待的细节。3.2 番茄钟与专注模式让宠物陪你认真工作这不只是一个养宠游戏还是一个生产力小工具。控制台里有完整的番茄钟系统经典的25 分钟专注 5 分钟休息循环也可以自定义专注时长中途随时暂停支持定时/间隔提醒到点宠物会弹通知、甚至发声提示你每完成一次任务宠物会奖励你金币和好感把自律变成了养宠的正向循环。想象一下你开启一个番茄钟屏幕角落的小家伙安静地坐着陪你倒计时结束它蹦起来提醒你休息——枯燥的专注瞬间有了陪伴的温度。3.3 多分支对话不只是喵喵叫宠物会不定期弹出对话气泡从早安问候到随机闲聊配合表情和语音像个小活人。而更进阶的玩法是多分支对话树对话文本与选项以节点形式组织你可以设计出晚安→要不要去上厕所→这个建议要不要采纳这种线性关怀也可以做出选项一/选项二→各自展开→再分支的树状剧情。这意味着用一套对话配置就能做出语言练习、知识问答、互动故事甚至剧情选择游戏。宠物不再是复读机而是能跟你有来有回的伙伴。3.4 还有一堆彩蛋右键菜单里藏着更多惊喜召唤伙伴可以让迷你宠物登场在桌面上跟着主宠物活动附件系统支持给角色挂上小饰品跟随身体动作一起摆动连金币的外观都可以按角色自定义。整个桌面会越来越热闹。四、第三步拆开看看桌宠是怎么活起来的玩得越深越想知道它背后的秘密。别担心我们不讲源码逐行分析只挑几个最值得知道的小机关。4.1 各司其职的模块化布局整个项目按职责拆成了清晰的几块DyberPet.py是主控负责角色实例的生命周期与交互分发Dashboard/目录是控制台界面状态、任务、背包、商店、动画编辑器各占一个文件DyberSettings/是系统设置与角色/物品/存档管理Accessory.py管动画与附件bubbleManager.py管对话气泡。模块之间通过信号通信互不越界——这既是代码好维护的原因也是你能安全做模组的前提。4.2 一切皆 JSON配置就是玩法想要新增一个动作、一件物品、一段对话大部分时候你只需要写 JSON完全不用碰 Python。以角色为例res/role/[角色名]/目录下放着pet_conf.json角色属性和act_conf.json动作序列定义配合action/文件夹里按序号命名的 PNG 帧图片一个角色就齐活了。物品、迷你宠物、金币样式、对话树同理。4.3 信号槽模块之间的对讲机桌宠互动时各个模块怎么知道该更新状态了答案是 Qt 的信号槽机制——发信号的一方只喊一嗓子不关心谁在听收信号的一方只负责响应不关心谁发的。松耦合的好处是想加新玩法连一个新信号就行不用把旧代码改个底朝天。# 示意互动发生时各模块通过信号自动联动 pet.interacted.connect(update_favorability) # 摸头 → 好感度刷新 pet.fed.connect(update_hunger) # 喂食 → 饱食度刷新 pet.task_finished.connect(give_rewards) # 任务完成 → 发放奖励4.4 定时任务与异步不卡 UI 的秘诀饱食度递减、番茄钟到点、定时提醒这类到点干活的事全交给apscheduler的QtScheduler它无缝集成进 Qt 的事件循环精确又省心from apscheduler.schedulers.qt import QtScheduler from apscheduler.triggers import interval, date scheduler QtScheduler() scheduler.add_job(pet.change_hp, interval.IntervalTrigger(minutes1)) scheduler.add_job(start_pomodoro, date.DateTrigger(run_datetomorrow)) scheduler.start()而动画播放、交互响应这类耗时活儿则放进QThread异步执行保证主界面永远不卡顿——这也是为什么即使宠物在疯狂摇头晃脑你拖拽窗口依然丝滑。别忘了还有pynput在后台监听全局鼠标让跟随光标和拖拽手感自然。4.5 动画状态机 物理模拟宠物的动作并不是一段写死的视频而是一个状态机站立、左右行走、打盹、被拖拽、坠落、落地……不同状态之间根据触发条件平滑切换。播放时按固定时间间隔依次刷新stand_0.png、stand_1.png……形成逐帧动画若动作带移动每帧还会按方向与速度移动整个窗口。更有趣的是物理部分角色掉出桌面边缘会受重力影响下落、撞到屏幕边界会反弹、落地后自动切换到落地姿势。每只宠物的重力、移动速度、锚点都能在配置里单独调做出轻飘飘或沉甸甸的差异化手感。4.6 性能与健壮性跑得稳也摔不坏为了让一只小宠物不占太多资源项目做了不少功课图片按需懒加载、用QPixmap缓存复用图像、绘制时开启双缓冲与局部刷新、自适应帧率控制避免一只宠物吃掉整个 CPU。而在健壮性上关键操作都有异常保护存档写入前会做完整性校验读取损坏存档时能自动修复或优雅降级——即使配置写错了程序也会给你明确的错误提示而不是直接崩溃给你看。五、第四步从玩家到创作者做一只属于你的桌宠玩熟之后你一定会想动手做点什么。好消息是这条路被铺得很平。5.1 自制一个新角色只需三步按res/role/[角色名]/的约定建目录依次放入动作帧图片action/下放序列帧如stand_0.png、stand_1.png、stand_2.png…前缀即动作名序号即播放顺序动作配置act_conf.json定义每个动作的帧间隔、移动距离、循环方式等角色配置pet_conf.json定义大小、缩放、默认动作、随机动作概率以及这个角色喜欢/讨厌的食物。更省事的是控制台内置了动画编辑器animationUI.py与animDesignUI.py可以直接用可视化面板调整帧序列的起始、结束与重复次数即时预览不必手写 JSON。详细的素材规范见仓库里的 docs/art_dev.md。5.2 物品模组四种玩法任你选物品系统支持四种类型覆盖了绝大多数桌宠玩法的想象力消耗品食物、药品喂一次少一个收藏品永久持有的装饰与纪念物装备可穿戴在宠物身上还常带特殊效果迷你宠物能召唤出来跟着主宠物满地跑的小伙伴。所有物品都在items_config.json里定义还能配置稀有度、购买价格、使用效果甚至让物品触发一段专属对话。想偷懒的话系统还提供模组自动检测功能导入文件夹时帮你检查配置错误。5.3 对话树把宠物变成内容载体对话系统的配置以节点组织文本节点负责说话选项节点提供分支两者交错就能搭出线性叙事或树形剧情。你可以把它用于语言学习宠物用外语提问你选择答案知识问答内置题库答对涨好感互动故事选项不同走向不同结局。某种意义上宠物成了你内容的容器而对话树就是剧情的编剧台。5.4 生态与下一步宠物圈的无限可能项目维护者维护了一份模组合集docs/collection.md收录了社区现成的角色、物品与迷你宠物下载后通过应用内导入即可使用。而未来的路线图也相当让人期待AI 大模型接入目前已在开发中让宠物真正会聊天、能帮你管理待办、协助日常云端同步多设备间同步存档与数据备份AR/VR 拓展让宠物走出屏幕社区生态模组市场与开发者社区建设。也就是说AI 是加分项不是前置条件——现在不接大模型它依然是完整的桌宠体验而一旦接入你的桌面伙伴就会拥有真正的灵魂。✨从在桌面上养一只会饿会困的小家伙这个念头出发DyberPet 已经长成了一整套完整、可玩、可扩展的桌面宠物框架PySide6 撑起界面JSON 配置撑起玩法信号槽与调度器让一切井然有序开放的资源规范则把创造的权利交到了每个玩家手里。无论你是想找个温柔的桌面搭子还是想亲手写一个属于自己的角色现在就可以动手了——那只宠物正在等着住进你的屏幕。【免费下载链接】DyberPetDesktop Cyber Pet Framework based on PySide6项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考