这两天突然,电子宠物,电子女友这个话题爆火了,我看了一下网上的都是只说了一下使用codex做的,教程流程都没说清楚。
但是很多人可能没用过codex,难道就不能做吗,我今天给大家演示做一个免费的简易版的,当然大家可以后续自己优化。
技术选型:PyQt5 + 序列帧
最终我选了这套方案:
- PyQt5:Python最成熟的桌面GUI框架,跨平台、文档全、代码简单
- 序列帧动画:用5-8张连续动作的PNG图片,快速切换形成跑动效果
这套方案的核心代码只有200行左右,配合ai写代码,一个小时就能写一出一个示例版本。
如果你不是程序员,也不用着急,也能使用,但是前提是你需要先安装python环境,如果不会知道python是啥的可以去看一下,我的第一篇文章,有安装流程。
《微信自动发送消息工具,定时、定制内容,亲测好用。》
他的实现原理就是你小时候翻的那种动画书——每一页画一个动作,快速翻动就动起来了。
我这里也是一样:准备5张角色跑步动作的PNG图片,程序按顺序切换显示,配上位置的移动,就形成了“满屏跑”的效果。
为什么不用GIF?
GIF虽然省事,但没法控制翻转。跑动需要面向左时显示镜像,GIF做不到——用PNG序列帧可以动态翻转。
图片素材怎么办?
这是最容易被卡住的环节。
我不会画画啊!
别担心,我也一样。我的方案是:让AI画。
3.1 用AI生成一组动作图
打开你常用的AI绘图工具(豆包/ DALL-E / 文心一格 / 通义万相),输入这样的提示词:
请生成一组6张连续图片,展示一个二次元少女跑步的动画序列。角色形象:- 日系萌系风格,双马尾,粉色头发- 水手服,百褶裙- 大眼睛,表情元气- 透明背景,512x512动作分解(6张):1. 右腿前迈,左臂后摆2. 身体前倾,双臂摆动3. 双腿交替,头发飘起4. 重心转换,另一侧摆臂5. 继续迈步,表情专注6. 回到起步姿势,准备循环要求:6张图角色完全一致,只有姿势变化,形成连续跑动动画
生成后你会得到6张类似这样的图片(你的AI会帮你生成):
我这里是为了演示,随便生成的一些图片,如果你们想要换成对象的,可以将你对象的照片发给ai,让他给你生成对应的卡通人物,再生成你想要的动作。
如果AI生成的图有背景怎么办?
我的经验是:在提示词里强调“透明背景”,大部分AI会处理。
如果不支持透明背景,用 remove.bg 这个网站一键抠图,几秒钟搞定,完全免费。
需要多少张图?
5-8张足够。
- 5张:最简单的跑动循环,够用
- 8张:动作更流畅,效果更好
- 超过10张:边际效益递减,没必要
我之前试过用12张,并没有明显比8张好多少——而且图片越多,加载越慢。
我这里是用了五张,你们下载好代码之后,将这里依次替换成你们的图片就好,编号不要变。
全部流程
代码直接私我:脚本,先下载到你的电脑上。
然后安装依赖,在cmd窗口输入
pip install PyQt5
接着就是放图片
在你的代码文件同级目录下,新建一个 images 文件夹,把图片按顺序命名为 1.png、2.png、3.png……5.png
最后只需要执行,就能直接跑起来啦。
python demo.py
场景一:桌面陪伴
写代码的时候,余光瞟到一个小东西在屏幕边上跑来跑去。偶尔停下来看你一眼,偶尔跳一下。
心理体验是:“哦,有个小家伙陪着我。”
场景二:定时提醒
代码里内置了定时提醒功能:
self.reminders = [ ("💧 该喝水啦!", 1200), ("🚶 起来走走吧!", 3600), ("👀 看看远方,休息眼睛!", 1800), ("☕ 要不要喝杯咖啡?", 7200), ]
你可以将脚本文件用txt方式打开,搜索喝水,就能找到这部分的代码,文字是提醒你改做什么了,后面的数字代表描述,例如,每20分钟就会提醒你要喝水了
到点了,她会弹出气泡提醒你该动了。
比手机闹钟温柔一万倍。
05 使用说明
正常你点击一下他就会自己跑动,再次点击,就会停止跑动,双击会和你说话。这些内容都可以自己在代码里面修改。你如果懂技术可能知道怎么改,如果你不懂的话还是像我刚刚说的那样,txt打开之后搜索文字,将内容换成你想要的替换即可
最后
做这个项目最大的收获,不是代码本身,而是一个认知:
有时候,你不需要做一个完美的产品。
偶尔一个简简单单的小程序,也能让这么多人喜欢。
有人会觉得很幼稚,但是有人也会觉得能提供情绪价值。
如果你在运行中遇到任何问题,欢迎在评论区留言,我看到都会回复。
如果你也做了自己的桌面宠物,记得发出来让大家看看——我很期待看到你的版本。