社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Meta 的开源项目 AI4AnimationPy:把 AI 角色动画搬进 Python

Renee 创业随笔 • 1 月前 • 250 次点击  

最近看到一个 Meta 的开源项目:AI4AnimationPy。它是一个用于 AI 驱动角色动画的 Python 框架。简单来说,它把原本依赖 Unity 的 AI4Animation 工作流,搬到了 Python 里。以前做 AI 角色动画,往往要在 Python 里训练模型,再切到 Unity 里做可视化,中间还要处理 ONNX、数据流、通信管线等问题。AI4AnimationPy 想解决的就是这个断裂感。

现在,从 motion capture 数据处理、特征提取、模型训练、推理,到动画可视化,都可以在一个 Python 环境里完成。底层主要基于 NumPy 和 PyTorch,对研究者和动画工程师来说,迭代会轻很多。

为什么这个项目值得关注?

AI 角色动画一直是游戏和虚拟角色领域里很重要的一环。比如,一个角色如何自然地走路、转身、奔跑、跳跃,甚至根据不同风格做出不同动作,这些过去都需要大量动画资产和工程调参。

AI4AnimationPy 提供的是一套更统一的实验环境。你可以在 motion capture 数据上训练模型,训练过程中直接看到输入和输出效果,不需要频繁切换工具。它也支持 headless 模式,可以放到服务器上跑训练;如果需要可视化,也可以用内置 renderer 直接查看动画结果。

这对于做 AI animation research 的人来说,最大的价值不是“多了一个工具”,而是工作流变短了。Framework Workflow

它能做什么?

项目里已经提供了不少 demo。

比如 Locomotion Demo,可以展示双足角色的风格化行走控制;

Quadruped Demo 则是四足动物的运动控制,可以做步态切换和动作姿态;

还有 IK Demo,用于实时 inverse kinematics 求解;

Motion Editor Demo 可以浏览动画和查看动作特征。

它还支持常见的 motion capture 数据导入,包括 GLB、FBX、BVH 等格式,并会统一转成内部的 .npz motion 格式。这意味着,很多公开动作数据集都可以接进来使用,例如 100Style、LaFan、ZeroEggs、Motorica、NSM、MANN 等。

和 Unity 版本相比,变化在哪里?

原来的 AI4Animation 很依赖 Unity。Unity 做 runtime 和可视化很强,但如果你主要在 PyTorch 里做模型研究,两个环境之间来回切换就会比较麻烦。AI4AnimationPy 的思路是:把训练、推理和可视化尽量放到同一个 Python 框架里。

官方给出的对比也很明显:20 小时 mocap 数据的训练数据生成,在 AI4AnimationPy 里不到 5 分钟,而 Unity 版本需要 4 小时以上;新实验的 setup 时间,也从 4 小时以上降到大约 10 分钟。更重要的是,它支持通过 inference 做 backprop,这在 Unity 版本里是做不到的。

一个趋势:AI 动画工具正在变得更“研究友好”

过去很多 AI 动画工具更像是一个工程系统,能跑,但不一定方便研究和快速迭代。

AI4AnimationPy 更像是把游戏动画工程和深度学习研究往一起拉了一步:既保留 ECS、update loop、rendering pipeline 这些游戏引擎式设计,又把核心计算放在 NumPy / PyTorch 里。

这可能会让 AI character animation 的实验门槛降低不少。未来如果再加入 physics simulation、path planning、audio support,整个框架会更接近一个完整的 AI 动画实验平台。

试用

很简单的用 Antigravity 装了一下。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/195820