从 0 到 1 制作一个 Codex 桌宠
这篇文章记录我如何制作一个可以在 Codex 设置里切换使用的自定义桌宠dyt。它不是简单贴一张图片而是一个符合 Codex pet 格式的 9 状态动画桌宠包含待机、跑动、挥手、跳跃、失败、等待、审核等任务状态。项目地址GitHub - ymhlap/codex-pet-dyt: A cute dyt Codex custom pet · GitHub最终效果预览一、为什么要做 Codex 桌宠Codex 本身是一个很强的代码协作工具但长时间使用时界面会比较工具化。我希望给它加一个更有陪伴感的小角色让它能根据任务状态做出不同动作比如空闲时安静待机Codex 正在执行任务时开始跑动等待用户输入时做等待动作任务失败时出现低落表情代码 review 时切换成检查状态所以这次我做了一个名字叫dyt的 Codex 桌宠。角色风格参考了偏二次元 Q 版、小体积、高辨识度的方向最终保持成统一的 9 种动作状态。二、最终实现目标这次制作的桌宠需要满足几个要求可以被 Codex 识别为一个可切换的 pet。在 Codex 设置里能选择dyt。使用统一角色风格不同状态不能像 9 个不同角色。一共包含 9 种动作状态。图片需要透明背景方便叠加在 Codex 界面上。跑动方向需要自然尤其是向左跑、向右跑时头发和身体细节不能明显错位。最终可以打包上传到 GitHub方便其他人安装。三、Codex pet 的资源格式这个桌宠最终由两个核心文件组成pets/dyt/ ├─ pet.json └─ spritesheet.webp其中pet.json是桌宠配置文件。spritesheet.webp是包含所有动作帧的透明精灵图。完整项目结构如下codex-pet-dyt/ ├─ README.md ├─ LICENSE ├─ pets/ │ └─ dyt/ │ ├─ pet.json │ └─ spritesheet.webp ├─ qa/ │ ├─ contact-sheet.png │ ├─ previews/ │ │ ├─ idle.gif │ │ ├─ running-right.gif │ │ ├─ running-left.gif │ │ ├─ waving.gif │ │ ├─ jumping.gif │ │ ├─ failed.gif │ │ ├─ waiting.gif │ │ ├─ running.gif │ │ └─ review.gif │ ├─ review.json │ └─ validation.json └─ scripts/ └─ install.ps1pet.json内容非常简单{ id: dyt, displayName: dyt, description: A cute chibi anime girl Codex pet with 9 animated task states., spritesheetPath: spritesheet.webp }这里最重要的是id桌宠唯一标识。displayName在 Codex 设置里显示的名字。spritesheetPath指向真正的精灵图文件。四、9 种动作状态设计Codex pet 使用一张大图来承载所有动作。这次dyt的精灵图规格是8 列 x 9 行 每格 192 x 208 总尺寸 1536 x 1872也就是说横向 8 列代表同一个动作的 8 帧动画。纵向 9 行代表 9 种不同状态。9 种状态如下行号状态说明0idle默认待机状态1running-right向右跑动2running-left向左跑动3waving挥手4jumping跳跃5failed任务失败6waiting等待用户输入7running通用运行状态8review代码审核/检查状态每一行都需要保持同一个角色只是姿态、表情、发丝、服装动态发生变化。五、每个状态的预览1. idle待机待机状态要尽量自然不需要过度夸张。主要做轻微呼吸感、头发轻微浮动让角色停在界面里时不会显得僵硬。2. running-right向右跑这个状态用于鼠标悬停或任务推进时向右侧移动。重点是身体重心、头发方向和腿部节奏需要一致。3. running-left向左跑向左跑最容易出问题。我在后期专门重新修过这一行因为最开始头发丝在移动过程中有些碎、不完整跑动时会显得头发和身体不是一个整体。修正思路是保持头发主体轮廓连续。发梢可以动但不能每帧随机漂移。刘海、侧发和身体朝向要同步。不要简单镜像后直接使用需要检查细节。4. waving挥手挥手状态适合表示任务完成、欢迎或者轻提示。这个动作要可爱但不能幅度太大否则在 Codex 界面里会抢注意力。5. jumping跳跃跳跃状态用于强调兴奋、成功、切换等反馈。这里要注意角色落地后的稳定感不能像整个人漂起来。6. failed失败失败状态用于任务报错、执行失败等情况。我没有把它做得过分夸张而是偏向委屈、低落一点这样在工作界面里不会太打扰。7. waiting等待等待状态表示 Codex 正在等用户回复、授权或者下一步输入。动作节奏可以比 idle 稍微明显一点比如轻微晃动、看向一侧。8. running通用运行通用 running 状态通常用于任务处理中。它和左右跑动不同不强调明确方向而是表达“正在忙”。9. review审核review 状态用于代码检查、分析或者审阅阶段。这个状态适合做成更专注的表情比如低头看文件、思考、检查内容。六、制作流程第 1 步确定角色风格制作桌宠前最先要确定的是角色统一风格而不是直接生成 9 张图。我这次给dyt定的方向是Q 版比例二次元少女风格头发和服装有明确辨识度适合小尺寸显示动作轻快但不过分花哨背景透明桌宠显示尺寸通常不大所以角色不能有太多细碎装饰。如果细节太复杂缩小后会糊成一团动作也很难看清。第 2 步先生成基础角色先做基础角色图也就是确定脸型发型发色服装眼睛风格整体比例角色名字和气质这一步很关键。后面的 9 个动作都必须围绕这个基础角色展开。如果基础角色没定稳后面每个动作看起来都会像重新抽卡。第 3 步拆分 9 个动作行确定基础角色后再按 9 个状态分别设计动作。推荐顺序是idlerunning-rightrunning-leftwavingjumpingfailedwaitingrunningreview我不建议一开始就把所有动作混在一起做。更好的方式是每一行单独检查角色一致性然后再合成完整 spritesheet。第 4 步统一帧尺寸每一帧都固定为192 x 208这个尺寸需要严格统一。如果某一帧尺寸不一致后面合成 spritesheet 后Codex 播放动画时就可能出现抖动、错位、裁切。第 5 步合成 spritesheet最终精灵图是1536 x 1872计算方式宽度 192 x 8 1536 高度 208 x 9 1872排列方式第 0 行idle 的 8 帧 第 1 行running-right 的 8 帧 第 2 行running-left 的 8 帧 第 3 行waving 的 8 帧 第 4 行jumping 的 8 帧 第 5 行failed 的 8 帧 第 6 行waiting 的 8 帧 第 7 行running 的 8 帧 第 8 行review 的 8 帧最终产物就是pets/dyt/spritesheet.webp七、安装到 Codex方法一使用安装脚本下载项目后在项目根目录运行powershell -NoProfile -ExecutionPolicy Bypass -File .\scripts\install.ps1脚本会把pets/dyt复制到%USERPROFILE%\.codex\pets\dyt安装完成后如果 Codex 设置里没有马上出现dyt重启 Codex 即可。方法二手动安装也可以手动复制。把项目中的pets/dyt复制到C:\Users\你的用户名\.codex\pets\dyt最终目录应该是C:\Users\你的用户名\.codex\pets\dyt\pet.json C:\Users\你的用户名\.codex\pets\dyt\spritesheet.webp然后打开 Codex 设置在 pet 选项里选择dyt。八、质量检查桌宠不是只要能显示就算完成。我建议至少检查下面几项1. 透明背景是否正常如果背景不是透明的放到 Codex 界面里会出现白底或色块非常明显。2. 角色是否一致9 个状态要看起来像同一个角色。尤其注意发型眼睛服装身高比例头身比主色调3. 跑动方向是否自然向右跑和向左跑是最容易暴露问题的。这次我重点修了向左跑时的头发丝问题。检查方式连续播放running-left.gif观察头发主体有没有断裂观察发梢有没有随机跳动观察身体和头发方向是否一致4. 动画是否抖动如果某些帧角色位置偏移太大播放时就会像在闪烁。需要保证每一帧角色的脚底、身体中心大致稳定。5. 小尺寸是否清晰桌宠最终显示不会特别大。所以要把预览图缩小看一次确认五官和动作还能看清。九、发布到 GitHub我最后把项目整理成了一个独立仓库ymhlap/codex-pet-dyt发布前建议至少包含README.md说明项目是什么、如何安装、有什么状态。LICENSE开源协议。pets/dyt/pet.jsonCodex pet 配置。pets/dyt/spritesheet.webp核心资源。qa/contact-sheet.png总览图。qa/previews/*.gif每个状态的单独预览。scripts/install.ps1Windows 一键安装脚本。GitHub 推送流程大致是git init git add . git commit -m Add dyt Codex pet git branch -M main git remote add origin https://github.com/ymhlap/codex-pet-dyt.git git push -u origin main如果 GitHub 仓库创建时已经带了README或LICENSE首次推送可能会提示远端已有提交。这时可以先拉取并 rebasegit pull --rebase origin main如果有冲突解决后继续git add . git rebase --continue git push -u origin main十、常见问题1. 为什么 Codex 里看不到 dyt先检查目录是否正确%USERPROFILE%\.codex\pets\dyt里面必须直接包含pet.json spritesheet.webp不要多套一层目录。如果路径没错重启 Codex 再看设置。2. 为什么动作播放错位通常是 spritesheet 的尺寸或排列不对。需要确认每帧192 x 208 列数8 行数9 总图1536 x 18723. 为什么某个状态看起来不像同一个角色这是生成多状态角色时最常见的问题。解决办法不是一次性生成所有图而是先固定基础角色再逐个动作修正。4. 为什么向左跑比向右跑更容易出问题因为很多时候向左跑是由向右跑镜像或重绘得到的。镜像之后头发、衣服、手臂方向可能看起来不自然需要单独检查。这次dyt就是后期专门修正了running-left的头发丝完整性。总结这次dytCodex 桌宠制作完成后最终得到了一个可以真实安装、可以在 Codex 设置里切换、并且包含 9 种动作状态的完整 pet 项目。项目地址GitHub - ymhlap/codex-pet-dyt: A cute dyt Codex custom pet · GitHub如果你也想做自己的 Codex 桌宠建议按这个顺序来先确定角色风格。再设计 9 个状态。保证每帧尺寸统一。合成透明 spritesheet。写好pet.json。安装到.codex/pets测试。做 GIF 预览和总览图。整理 README 后发布到 GitHub。只要格式正确Codex 就可以把它当成一个真正可切换的桌宠来使用。

相关新闻

12周C++ QT OpenCV项目实战:从零构建桌面图像处理应用

12周C++ QT OpenCV项目实战:从零构建桌面图像处理应用

1. 项目概述与学习路径设计如果你正在寻找一个能将C、QT和OpenCV这三项硬核技术串联起来,并能产出实际作品的学习计划,那么这个为期12周的项目制学习方案,可能就是为你量身定制的。我见过太多人孤立地学习C语法、研究QT控件、或者死磕OpenCV的…

2026/7/23 5:13:20阅读更多 →
Unity实现弹道导弹防空系统:3D模拟与比例导引算法实战

Unity实现弹道导弹防空系统:3D模拟与比例导引算法实战

1. 项目概述与核心价值最近几年,无论是游戏开发还是工业仿真,Unity引擎的应用边界都在不断拓宽。我去年指导的一个毕业设计项目,就跳出了传统游戏的范畴,选择用Unity来开发一套“弹道导弹防空3D演示系统”。这个选题听起来很硬核&…

2026/7/23 5:13:20阅读更多 →
深入解析Cortex-M3 NVIC与PWM模块:嵌入式实时控制的核心机制与API实战

深入解析Cortex-M3 NVIC与PWM模块:嵌入式实时控制的核心机制与API实战

1. 项目概述在嵌入式实时系统的开发中,中断控制器和PWM模块是两个至关重要的硬件外设,它们直接决定了系统的响应速度和控制精度。中断控制器,特别是Cortex-M3内核集成的嵌套向量中断控制器,是系统实时性的基石,它负责以…

2026/7/23 5:11:20阅读更多 →
049、双管正激的占空比限制

049、双管正激的占空比限制

049 双管正激的占空比限制 从一块冒烟的板子说起 去年帮朋友调试一款48V转12V/20A的通信电源,用的是双管正激拓扑。样机第一次上电,轻载正常,加到10A负载,MOS管炸了,驱动芯片也挂了。拆下来看,两个MOS管的漏源极都短路了,变压器初级绕组有烧焦痕迹。 朋友说:“我算过…

2026/7/23 17:40:51阅读更多 →
使用yolo11训练无人机视角罂粟检测数据集VOC+YOLO格式3648张1类别步骤和流程

使用yolo11训练无人机视角罂粟检测数据集VOC+YOLO格式3648张1类别步骤和流程

【数据集介绍】 注意数据集中存在增强图片主要是旋转增强,占据数据量大约一半,注意查看图片 数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量…

2026/7/23 17:40:51阅读更多 →
048、双管正激变换器原理

048、双管正激变换器原理

048、双管正激变换器原理 上个月帮朋友救一个项目,48V转12V/20A的电源模块,单管正激拓扑,MOS管和续流二极管烧了一轮又一轮。客户催得紧,朋友急得嘴角起泡。我拿到板子一看,复位绕组和漏感尖峰处理得稀碎,MOS管关断瞬间电压应力直接飙到200V+,管子不炸才怪。后来改成双…

2026/7/23 17:40:51阅读更多 →
openwrt dhcp不分配_虚拟机安装openwrt软路由以x86为例

openwrt dhcp不分配_虚拟机安装openwrt软路由以x86为例

一、安装纯净版可以去官方下载https://openwrt.org/ ,然后安装自己喜欢的插件。二、下载一些大神已经编译好的镜像文件。可以去一些论坛或者github 去搜索下载。大佬提供的好多是img的文件。三、对于img的文件进行安装,需要准备三个工具。 1、IMG写盘…

2026/7/23 17:40:51阅读更多 →
openwrt查看用户连接五元组_无线wifi软路由——小白也能玩转Openwrt

openwrt查看用户连接五元组_无线wifi软路由——小白也能玩转Openwrt

点击上方蓝字关注我们去年上半年我们发了一篇R2S软路由的介绍文章,很受大家欢迎,这款软路由小编还一直在使用。最近小编强迫症发作了,为什么软路由不能拥有无线发射呢?小编仔细查找了R2S的wiki,发现它是支持特定型号的…

2026/7/23 17:40:51阅读更多 →
TM4C129 CAN寄存器深度解析:从位时序到消息对象配置实战

TM4C129 CAN寄存器深度解析:从位时序到消息对象配置实战

1. 项目概述与CAN总线核心价值 在汽车电子、工业自动化这些对通信可靠性要求极高的领域,控制器局域网(CAN)总线几乎是工程师们的“默认选择”。它不像我们日常用的USB或者以太网那样,需要复杂的握手协议和主从结构。CAN总线更像一…

2026/7/23 17:38:51阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/23 0:56:31阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/23 0:56:31阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 0:56:31阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:00:28阅读更多 →
从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:28阅读更多 →
油泥处理设备哪里能买到

油泥处理设备哪里能买到

油泥处理设备哪里有?这是许多从事油田、炼化、清罐业务的从业者最关心的问题。根据河南三丰环保设备有限公司的行业经验,选购油泥处理设备的核心在于设备能否适配当地环保法规与原料特性,而非单纯看价格。该公司总经理王钦田先生指出&#xf…

2026/7/23 0:00:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/22 22:56:18阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/22 18:55:50阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/22 18:55:50阅读更多 →