AnimatedDrawings完整教程:三步把儿童涂鸦变成会动的动画角色
【免费下载链接】AnimatedDrawingsCode to accompany "A Method for Animating Children's Drawings of the Human Figure"项目地址: https://gitcode.com/GitHub_Trending/an/AnimatedDrawings
当孩子把画的小人带回家,多数作品最后只会被收进抽屉或贴在冰箱上。AnimatedDrawings 是一个开源动画项目,能把二维手绘人物变成会动的角色:系统自动识别画作中的关节位置,叠加动作捕捉数据,从一张静态手绘图直接产出动画效果,不需要 3D 建模或动画基础。
让手绘角色动起来,传统流程卡在哪
手绘人物只是纸上的像素,想让它动,得先定位关节、搭骨骼、补关键帧,传统流程依赖专业 3D 软件和较长的学习曲线。
AnimatedDrawings 源自论文A Method for Animating Children's Drawings of the Human Figure,给普通用户一条捷径:在图片上自动识别关节、绑定 BVH 动作捕捉数据,直接渲染出动画。它对儿童画中比例失真、线条简陋的画法也有容忍度,画得歪一点照样能跑。
工作原理:从图片到动画的三步拆解
- 关节识别:内置的训练好的姿态估计模型扫描图片,找出头部、躯干、四肢的位置,生成标注文件(
mask.png、texture.png、char_cfg.yaml)。识别不准时,可以跑 examples/fix_annotations.py 打开网页手动拖正关节。 - 骨骼驱动:按关节的父子关系搭出骨骼链,动画时采用 ARAP(尽可能刚体)变形算法,让涂鸦像皮影一样跟随关节弯折、不变形,实现在 animated_drawings/model/arap.py。
- 动作叠加:加载 BVH 动作捕捉文件,通过重定向把每一帧的关节角度映射到角色骨骼上,手绘人物就"做"出了跳操、挥手、僵尸步这些动作。预设动作配置在 examples/config/motion/,对应的捕捉数据在 examples/bvh/。
最短上手路径:从安装到看到动画
- 准备 Python 虚拟环境(项目在 macOS Ventura 与 Ubuntu 18.04 上验证过),克隆并安装:
git clone https://gitcode.com/GitHub_Trending/an/AnimatedDrawings cd AnimatedDrawings && pip install -e .- 跑预绑定的示例角色验证环境:在 Python 解释器中调用
render.start('examples/config/mvc/interactive_window_example.yaml'),会弹出交互窗口,空格暂停、方向键快进快退、q 退出。这一步不依赖任何模型服务,是确认装好的最快方式。
- 把自带涂鸦一键转动画:先启动 TorchServe 模型服务(torchserve/ 目录提供了 Docker 方案和 macOS 本地的
setup_macos.sh),然后执行:
cd examples && python image_to_animation.py drawings/garlic.png garlic_out系统自动完成检测、分割、绑骨、套动作,结果保存在garlic_out/video.gif。
适合谁用 🎨:三个直接场景
- 教学:老师把学生的绘画作品投屏变成动画,学生还能在 examples/fixer_app/ 的网页工具里自己拖动关节,直观理解动作是怎么发生的。
- 家庭:家长和孩子一起画角色、挑预设动作,再通过 examples/config/mvc/background_example.yaml 加一张背景图,几笔就能拼出小短剧;场景里的
ANIMATED_CHARACTERS列表支持同时放多个角色。
- 创作:创作者把草图转成动态素材,用 examples/config/mvc/export_gif_example.yaml 导出透明 GIF,可以直接贴进剪辑时间线。
导出设置与自定义动作:两个值得调的入口
- 导出与渲染设置:所有效果由 YAML 配置驱动。换成 examples/config/mvc/export_mp4_example.yaml 得到 MP4;在
view段写USE_MESA: True可在无窗口的远程服务器上直接渲染到文件(对应 animated_drawings/view/mesa_view.py)。
- 自定义动作与骨骼:想用一段新 BVH 动作,就在 examples/config/motion/ 加一份动作配置、在 examples/config/retarget/ 加一份重定向配置;如果角色不是人形(四足、六臂),在角色配置里改骨骼定义即可,examples/quadruped/ 有完整的四足范例。交互窗口的控制逻辑在 animated_drawings/controller/interactive_controller.py。
把"画一幅画到出一段动画"压缩成一条命令加几个 YAML 文件,AnimatedDrawings 的整条链路都可复现、可替换。今晚就可以照着上面的 garlic 示例跑一遍,十几分钟后你会得到一个可以直接发出去的动画 GIF。
【免费下载链接】AnimatedDrawingsCode to accompany "A Method for Animating Children's Drawings of the Human Figure"项目地址: https://gitcode.com/GitHub_Trending/an/AnimatedDrawings
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考