ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

把喜欢的角色请进桌面:DyberPet 桌宠框架上手与模组开发指南

2026/8/13 14:55:19 拓冰建站 浏览量
把喜欢的角色请进桌面:DyberPet 桌宠框架上手与模组开发指南

把喜欢的角色请进桌面:DyberPet 桌宠框架上手与模组开发指南

【免费下载链接】DyberPetDesktop Cyber Pet Framework based on PySide6项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet

如果你曾经下载过某个桌宠软件,结果发现里面只有几只固定的猫猫狗狗、动作僵硬、还不许你自己换形象,那你大概能理解我想要什么——桌宠应该是我喜欢的角色,做我喜欢的事,而不是软件替我决定的几个模板。DyberPet(呆啵宠物)就是这样一个基于 PySide6 的开源桌宠框架:它把动画播放、养成数值、任务系统、商店背包、迷你宠物甚至对话分支都做成了可插拔的模块,你既可以把它当成一个"能动的桌面老婆/老公"来养,也可以把它当成一套练手 PySide6 GUI 开发的现成教材。这篇文章不打算面面俱到,只想用最少的篇幅带你把它跑起来、玩明白、再亲手做一个角色模组。

先说它有多好玩:这不是一个"GIF 展示器"

很多桌宠项目的本质只是"循环播放几张图片",而 DyberPet 一上来就是完整的一套养成循环。实际用起来你会发现,屏幕上的小家伙是"活"的:

  • 它会饿、会困、会闹情绪:饱食度随时间下降,不同饱食度阶段播放完全不同的动画——饱着的时候满地乱跑,饿昏了就只剩睡觉,这个逻辑不是写死的,而是每个角色都能用 JSON 配置。
  • 它会跟你互动:拍拍它会冒爱心、给反馈,拖起来有重力、松手会掉落、落地还有缓冲动作,点得太频繁还会弹"你现在应该专注在任务上"的吐槽气泡。
  • 它不只是宠物,还是工具:内置番茄钟和专注时间,专注期间宠物会切换到"focus"专属动画,像个小监工一样陪着你干活;完成后掉落物品和金币。
  • 它可以带小弟:迷你宠物(比如自带的派蒙)会跟在主角色身后排队走,你拖走一个它还会自动补位,细节做得很足。

最值得先试的是"右键菜单"这个入口。在宠物身上点右键,你会看到角色面板、选择动作、召唤伙伴、更换角色等一串菜单——你可以在里面手动指挥它站立、左右行走、打盹、睡觉,也可以打开"动画面板"随机播放设定好的动作组。配合对话气泡和通知栏,整个"投喂 → 冒爱心 → 好感度升级 → 解锁新动作"的反馈闭环非常顺畅,第一次玩很容易不知不觉就陪它待了一个下午。

30 分钟从零跑起来:安装与首次启动

环境准备很简单,核心就是 Python 3.9+ 加几个依赖。推荐用 conda 开一个干净环境,免得污染其他项目:

conda create --name Dyber_pyside python=3.9.18 conda activate Dyber_pyside conda install -c conda-forge apscheduler conda install -c conda-forge pynput pip install PySide6-Fluent-Widgets==1.5.4 pip install pyside6==6.5.2 pip install tendo

然后把仓库克隆到本地,运行入口文件即可:

git clone https://gitcode.com/GitHub_Trending/dy/DyberPet cd DyberPet python run_DyberPet.py

第一次启动,程序会扫描res/role/目录下的所有角色,自带的 Kitty、ChrisKitty 和系统角色就能直接玩。macOS 用户把pynput换成 1.7.6 版本即可,其余步骤一致;Windows 用户甚至可以直接下载官方打包的 EXE,双击就能跑,适合只想先体验的人。

新手最容易踩的坑,我在 README 和更新日志里帮你提前划出来:一是不要用中文或带特殊字符的文件夹名做角色名,某些压缩环境会乱码甚至闪退;二是单帧时长建议所有动作保持一致,否则自定义动作播放时会"卡一帧";三是如果发现角色悬浮在任务栏上方,多半是动画缺了anchor参数,后面会说怎么补。

为什么它看起来"像活的":状态与动画的悄悄联动

这个项目最让我佩服的一点是:它没有把动画和数值写死,而是让两者互相影响。用大白话讲,每个角色身上同时挂着"饱食度"和"好感度"两个数字,而动画模块会实时读取这两个数字来"决定"接下来播什么。

你可以在res/role/[角色名]/pet_conf.json里给每个动作组标注一个状态类型,比如"act_type": [2, 1]表示"饱食度 2 级时概率最大,好感度到 1 级才解锁"。程序在后台每隔几秒就重算一遍各动作的权重:饱食度满的时候,活泼动作占比极高;一旦降到 0,权重表里就只剩act_type[0, 0]的睡觉动作了。这就是为什么"饿昏只会睡觉"不需要你写任何 if 判断——把规则交给 JSON,把计算交给框架

好感度也做了同样的设计:等级从 1 级一路升到 200 级,每一级要 120 点,等级徽章从星星、月亮、太阳一路换到皇冠。喂养角色喜欢的食物好感度翻倍,讨厌的食物减半——这些喜爱度倍率同样写在角色配置里。整套东西玩下来你会发现,它其实是一个"数据驱动"的小型养成游戏,PySide6 的图形界面只是最外面的一层壳。

进阶玩法:用 JSON 造一个你自己的角色

等官方角色玩腻了,就到了 DyberPet 最出彩的部分——模组开发。好消息是:你完全不需要会写 Python。做一个基础角色,只需要三样东西:

  1. 动画帧:透明背景的 PNG 序列,放在res/role/[角色名]/action/下,命名成动作名_0.png动作名_1.png这种顺序就行;
  2. 动作配置文件act_conf.json:告诉程序每个动作用什么图片、播放几次、要不要移动、每帧间隔多久;
  3. 角色配置文件pet_conf.json:把动作组合成"动作组",设定随机概率、状态阈值、拍拍动画、特殊动作等。

有一个原则值得先记住:所有图片里角色的"脚底"必须对齐画布底部,并尽量保证角色大小一致。如果某个动作的角色位置偏了,就在该动作里加一个anchor: [x, y]把偏移量找回来——这是切换动作时不"闪现"的关键。仓库的素材开发文档 docs/art_dev.md 里对每个参数都有表格说明,照着填基本不会出错。

想再进一步,物品和对话系统也很好玩。物品用res/items/下的items_config.json定义,一个物品可以配置加多少饱食度、多少好感度、掉落权重、商店价格,还能挂一个buff(比如"使用后 10 分钟内饱食度不下降")。对话类物品则绑定了msg_conf.json里的多分支对话树——你只需要把"文字节点"和"选项节点"用relationship字段连起来,就能做出带选项的剧情对话:

作者在文档里给的实操建议很实在:先画流程图,再填配置。把每个分支的箭头翻译成"text_1": ["option_1", "option_2"]这样的映射,一个选项对应一段后续文字,就能拼出任意复杂度的对话树。进阶玩法还包括可穿戴物品(Equip)——在物品模组里定义一件收藏品,再在角色的accessory_act里定义一个同名的acc_type: "equip"组件,就能实现"给角色穿上翅膀/披风"这种持续显示的外观效果。项目还支持昼夜作息:给夜间动画打上"phase": "night"标记,再写一个day_night块,宠物到点就会自己上床睡觉,深夜被拍还会有"被吵醒"的专属动画。这些内容在 docs/art_dev.md 都有完整示例,跟着抄一遍就能跑通。

一句话总结与资源清单

DyberPet 把一个桌面宠物该有的样子做得很完整,又用 JSON 把创作的主动权完全交还给了用户——它既是能陪你写代码、做番茄钟的桌面伙伴,也是一套"零代码做模组"的绝佳练手项目。无论你是想找一个能换角色的桌宠,还是想研究 PySide6 桌面应用的模块怎么组织,都值得花一个晚上跑起来试试。

想继续深挖,推荐按这个顺序逛:

  • 快速体验与安装说明:README.md,环境、运行、版本信息都在这里
  • 素材开发文档(做角色/物品/对话/迷你宠物的完整指南):docs/art_dev.md
  • 现成角色与模组合集(下载后可通过 App 自动导入):docs/collection.md
  • 数值、动画与 Buff 系统的实现参考:DyberPet/modules.py、DyberPet/Dashboard/buffModule.py

最后提醒一句:官方角色素材来自画师的原创成果,下载和二次创作时请尊重原作者的劳动。祝你早日做出属于自己的那只桌宠,让它真的"住进"你的桌面。

【免费下载链接】DyberPetDesktop Cyber Pet Framework based on PySide6项目地址: https://gitcode.com/GitHub_Trending/dy/DyberPet

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考