
奥本 AI 将所有的最新 AI 聚合到了一起,为您开启多模型 AI 绘画新时代!
扫码即刻关注公众号
我训练了一个 2D 游戏动画生成模型,用于创建复杂且酷炫的游戏动作(完整...)
5 个月前
问题在于,他尝试使用 OpenAI 的文本到图像模型生成 2D 游戏动画的精灵,但由于角色对齐和一致性问题未能成功。
我的朋友是游戏行业的老手。他说,如果 AI 能够用于生成 2D 游戏动画,这对游戏行业可能会有重大价值。
我觉得这很有趣,随意开始训练一个 2D 游戏动画生成模型。经过一段时间的探索,我取得了一些成果。现在我将开源这个模型、代码、数据和数据准备代码。
我们还调查了商业化游戏动画生成模型产品的可能性,稍后我会分享。
模型生成的游戏动画:
生成样本
生成样本
生成样本
01 游戏动画的满意影响来自哪里?
最初,深入动画生成的过程很有趣,但模型训练很快变得极具挑战性。我很快发现这是一条没有尽头的深坑。
最初的自然想法是寻找许多游戏动画资源,并使用最新的开源视频生成模型进行微调训练。
游戏动画资源并不稀缺。我们很快在互联网上找到了数以万计的游戏动画,主要是早期主机和街机游戏的动作动画,以及一些设计师在艺术设计平台上的公开作品。我们开始尝试使用几种常见的开源模型进行训练。
在训练过程中,我们发现,尽管游戏动画也是一系列图像的时间序列,但在许多方面,它们比一般视频复杂得多。
首先,日常生活视频中的帧相对平滑,没有剧烈变化。
然而,在游戏动画中,许多动作的幅度特别大,帧之间的变化突然。存在各种高度复杂的转身、身体部位重叠等情况。不仅动作有变化,衣物的飘动和光影效果也常常出现。
为了突出动作的影响和满意度,2D 动画通常在帧之间引入剧烈变化。在许多情况下,动作的帧率故意降低。例如,据说皮克斯动画的帧率是普通电影的一半。
尤其是在早期的街机和其他游戏中,由于资源有限,他们不得不将资源优化到极限,尽可能节省每个动作的帧数。
可以说,游戏动画都存在严重的掉帧现象!
例如,以下是《拳皇》中草薙京的火球动画,只有 4 帧,这很难想象。
在游戏动画领域,有著名的 12 条原则,其中许多通过艺术夸张来实现更流畅和令人满意的效果,这些夸张往往违反日常规则。
动画的 12 条原则
例如,根据“预期原则”和“时机原则”,火球的蓄力和举手动作需要花费大量时间来描绘,而实际手臂下落释放火球的过程则仅简要展示。在一帧中,手臂仍在背后,而在下一帧中,它已经转动了 180 度到前面。动作的影响更多地通过动作完成后头发和衣物的摆动来表达。
因此,帧之间存在巨大的突然变化,非常不平滑。时间变化可以说是高度非线性的。
正是这种掉帧和掉帧现象给游戏带来了令人满意的影响。
但这可以说大大增加了视频模型训练的难度。首先,数据非常不平滑且不流畅。此外,由于大多数视频骨干模型是使用平滑的日常视频进行训练的,因此游戏动画的掉帧和非线性时间变化使得训练数据与预训练数据之间的一致性较低。
另一个困难来自于高度可变的游戏动作,这些动作很难用语言表达。例如,即使是最简单的跑步动作,每个游戏的跑步风格和动作频率也不同。
完全不同风格的动作,但都只能称为“跑步”
在使用文本提示模型时,这些动作风格的变化很难用语言描述,只能称为“跑步”。
视频模型需要学习如何移动图像以表达动作,但变化过大的训练样本会使模型难以理解和总结运动规则。
由于上述原因,尝试直接使用视频模型训练游戏动画模型的实验效果非常差。
02 你只需要重复同样的动作 1000 次
我认为这些挑战并不是不可解决的。实际上,当前视频模型训练数据仍然不足。在 AI 领域,只要堆积足够的数据,就没有无法解决的挑战。
只是对于像我们这样没有那么多硬件资源来训练如此多不同数据的穷人来说,我们可能需要等待更强大的基础模型出现。
因此,我们想到了另一种方法——使用 3D 渲染动画来训练 2D 动画模型。
在寻找更高质量、更高帧率的训练动画时,我们想知道是否可以使用 3D 游戏动画渲染成高质量的 2D 动画。因为动作渲染的帧率可以由我们自己控制,这可以解决帧之间一致性和流畅性不足的问题。
Mixamo 是 Adobe 提供的开源 3D 动作库。它提供了数百个游戏角色的 3D 模型和超过 200 个游戏动作,版权全部开放。
mixamo
Mixamo 数据已被用于许多 AI 模型训练。
我们选择了一些想要的动作,然后编写脚本将这些动作为所有 200 个角色渲染成 2D 动画。
使用 3D 渲染动画来训练 2D 动画模型有许多好处:首先,我们可以找到许多开源的 3D 模型和动作。每个模型可以为每个动作渲染一个动画。每个动作可以通过 200 个不同角色至少解释 200 次。我们还可以选择不同的摄像机角度、不同的光照和渲染风格。这几乎相当于为同一动作拥有数千次重复的训练数据。这有助于模型反复熟悉复杂的动作。
这解决了动作过于多样和可变的问题。通过不断重复同一动作,模型更容易理解我们想要的动作规则。
我们控制渲染过程,使动画帧之间的变化更平滑。此外,Mixamo 的大多数动作来自真实的人体动作捕捉,而不是像之前使用的游戏动画那样艺术上抽象且缺乏帧数,这相对降低了模型的难度。
使用 Mixamo 渲染的动画进行训练取得了非常好的效果。
提示:古代中国剑客的游戏角色剑击动画,宁静而智慧,穿着飘逸的白色长袍,留着长胡子,手持一把超大的剑,侧面视图,纯色背景
03 训练细节
1. 基础预训练模型的选择
我们尝试了几种不同的流行模型进行微调。
当然,由于这只是一个副项目,预算控制在一台 A100 能处理的范围内。
Animatediff 在开源社区中被广泛使用,包括 comfyui 社区。一个大优点是它设计了时间和空间维度的分离,这使得后续替换空间维度图像模型部分变得方便。
在我们的游戏动画场景中,训练效果并不好。我认为这可能是因为游戏动画的空间维度复杂性太高,而 animatediff 的简化空间维度设计导致其空间维度表达能力较弱。
Latte 使用了更先进的 DIT 分词方法。但训练效果也不理想。我们认为开源模型可能没有足够的训练数据,质量也不够高。
使用 VideoCraft2(VC2)和 DynamicCraft(DC)模型进行训练取得了最佳效果。
我还喜欢 VC2 的另一个原因是,论文提到他们专门进行了更多的风格迁移训练。这种能力对游戏动画非常重要。
2. 平衡动作(时间维度)和图像(空间维度)
基于 3D 渲染的动画模型训练的初始问题是,由于大量重复的训练样本都是基于 3D 渲染,模型输出的所有内容都具有 3D 渲染风格,这会影响空间维度图像部分的能力。
我们使用 GPT4 随机生成了 300 个游戏角色提示,然后使用原始 VC2 模型生成动画。我们将这部分数据添加到训练中,以帮助模型保留其原始图像能力。效果相当不错。
我们还保留了一些其他非 3D 渲染的游戏动画。我们手动筛选训练数据,尽量保持动画尽可能接近 3D 动作,过滤掉过于困难或抽象的动画。根据实验,这部分可以帮助提高模型的图像部分性能。
3. 武器
武器也是游戏动画与一般生活视频之间的一个大区别。许多游戏角色需要装备或持有各种奇怪的武器。这也是一个挑战。
对于许多图像模型来说,正确持有武器仍然有些困难。因此,我们还抽样了一定比例的动作,专门为每个角色添加剑、斧等武器,增强模型的持武器效果。
4. 训练细节
我们使用 1 台 A100,训练 40~50 个周期。
所有动画的提示分为两部分。前半部分是对动作的描述:“游戏角色 XXX 动画……”,后半部分是对角色的描述。
角色描述都是使用 GPT4 提示生成的。由于使用 mixamo 渲染的图像清晰度高,概念相对简单且不那么抽象,GPT4 的描述相对准确。然而,对于识别真实游戏素材,尤其是低分辨率像素风格图像,或不太常见的概念,如牛头怪、猪头怪等,GPT4 往往无法给出准确的提示。我们进行了人工筛选。
此外,由于 VC2 模型使用的 CLIP 编码器有 77 个标记的限制,我们严格限制 GPT4 生成的描述,如果超过 77 个标记则重试几次,直到满足 77 个标记的限制。
04 图像到动画
如果文本到动画对独立开发者可能有用,那么图像到动画对专业游戏动画师来说远比文本到动画更实用。
因为实际的工业化游戏开发是以艺术为先。拥有独特、时尚的艺术风格对游戏的成功至关重要。因此,许多游戏首先有游戏角色的艺术设计,然后交给动画师进行动画制作。动画完成后,可能还需要与艺术团队反复审查以确认一些艺术细节。
因此,如果动画可以直接根据游戏角色的原始艺术设计草图由模型生成,这将确保艺术风格,同时节省动画制作成本。许多 AI 视频模型的可控性是广泛落地应用的关键。例如,艺术风格需要高度可控。
而文本的描述能力在许多实际应用场景中似乎极其薄弱且不可用。
图像到动画比文本到动画更困难。它对模型的要求更高。模型需要掌握动作并理解图像,能够完美再现图像,并且还要理解输入图像的结构,例如哪个部分是腿,哪个部分是手。这是使图像正确移动所必需的。
我的方法是将需要生成动画的角色设计草图的静态图像添加到训练样本中,同时训练静态图像的生成和动画生成。
这个过程相当于教模型关于这个角色的图像设计。
通过将静态图像和游戏动作混合进行 i2v 训练,我们取得了良好的效果:
添加了各种 Minecraft Steve 图片以帮助模型掌握 Steve 的概念
模型融合图像和动作以实现 Image2Animation
然而,这种方法的缺点是,当需要为游戏角色进行 i2v 动画生成时,必须首先在该图像上进行训练,才能正确生成动画。持续时间和成本相对较高。
05 开源
t2v、i2v 模型和训练数据都是开源的。您可以访问 github repo 获取代码。
我找不到 vc2 t2v 训练代码,所以我自己编写了训练代码,这也在 github repo 中开源。
此外,从 mixamo 3D 模型渲染 2D 动画使用了 blender 渲染,代码也完全开源。
我还创建了一个 replicate public model,您可以免费使用。
06 其他方法
我认为 i2v(甚至 t2v)还有很大潜力的另一种方法是 comfyui 社区中非常常见的方法,即将 openpose 数据作为额外的指导条件,类似于 animate anyone。
我尝试了这种方法,发现它非常灵活,不需要额外的训练就能生成新动作。
但我遇到的问题是,有时对于过于复杂的动作,例如涉及转身的动作,模型仍然会出错。
因为 openpose 渲染的骨架图不包含方向信息,有时在输入时会缺少这些信息。
我还尝试了后续工作,添加 3D 条件信息,Champ:使用 3D 参数指导可控和一致的人物图像动画。但输入图像的身体类型映射往往存在问题。
另一个问题是 openpose 或运动重建的准确性往往不是特别理想。原因可能是游戏动画图像通常更抽象,可能与姿势识别模型训练的数据存在较大差异。
游戏中还有许多特殊的抽象概念,例如头特别大的 Q 版角色,或由几个像素组成的像素艺术身体部位,需要想象。而在复杂动作中,身体部位的遮挡也很严重。这对姿势提取和运动跟踪提出了很大挑战。
当输入指导条件的准确性不足时,像 animate anyone 这样的作品效果会下降。
我认为一个想法是直接使用原始 3D 模型生成姿势条件,这可以确保没有准确性损失。
从长远来看,我对这个方向仍然非常乐观,因为更好的灵活性和控制能力应该比当前根据动作训练模型的方法更有前景。
07 商机
我们还探索了 AI 2D 游戏动画是否存在市场机会。我们通过冷 DM 联系了近百名 2D 动画从业者进行访谈。受访者包括专注于动画的印度外包公司、大型工厂,甚至好莱坞的资深动画师。
首先,结论是,我相信 2D 游戏动画,或者更准确地说,2D 帧动画,确实是一个具有巨大机会的真实问题,但当前的 AI 技术尚不成熟,无法替代现有解决方案。
当然,我不是游戏艺术从业者,我的解读仅基于我与能够接触到的动画从业者的访谈,不知道你是否同意,欢迎留言讨论。
1. 2D 动画行业的痛点和现有解决方案
逐帧绘制 2D 动画非常困难。我们采访了大量从业者,能够手绘 2D 动画逐帧的人非常少。因此,我相信 2D 游戏动画仍然存在巨大的市场机会。
我们获得的一些数据:在游戏行业的 2D 游戏项目中,程序员、艺术家和动画师的比例约为 1:1:1。手绘一分钟的动画需要两周时间。可见,2D 动画的制作仍然是一个非常大的成本投入。
尽管 2D 动画制作确实是一个困难的问题,但在游戏行业实际上有解决方案。对于许多现实世界中难以解决的问题,人们往往会找到替代解决方案来规避,而不是正面面对问题。
我们了解到,目前行业中有几种解决方案:
A. 不做 2D 游戏,只做 3D 游戏,或用 3D 制作 2D
因为开发高质量 2D 游戏的成本实际上越来越高。工业化和标准化的水平相对较低。许多工业化工作室制作的 2D 游戏越来越少。
或者许多 2D 视角游戏,如横版卷轴游戏,都是使用 3D 引擎制作的。
根据我能找到的 数据,47% 的开发者使用 3D 引擎,而 36% 使用 2D 引擎。
与使用 3D 引擎制作的 2D 动画相比,我个人仍然觉得许多经典游戏的手绘风格 2D 动画更具吸引力,艺术感更强,工业感更少。
B. 使用 Spine 等 2D 骨骼动画引擎
与逐帧手绘 2D 动画相比,我们采访的大多数动画师使用 Spine 骨骼动画制作 2D 动画。
Spine 确实大大降低了 2D 游戏动画制作的难度和成本。许多小型游戏和休闲游戏开发公司都使用 Spine 开发动画。
Spine****2D 骨骼 动画
我个人认为 Spine 动画总是有一种强烈的木偶风味,并且在实现涉及各种转身的复杂动作时仍然相当具有挑战性。
Spine 受欢迎的另一个原因是,逐帧动画需要为每一帧存储图像,从而消耗大量内存资源。如今,移动游戏对加载速度的要求越来越高,而 Spine 引擎的超优化资源使用具有很大优势。
我个人认为,这个因素实际上可以通过许多技术手段进行优化。例如,H264 等视频编码用于视频压缩和解码已经非常成熟。如果纯粹是资源使用问题,这不应该成为逐帧动画普及的障碍。
C. 像素风格和独立游戏
由于特殊的风格要求,像素风格游戏通过 Spine 实现起来比较困难。大多数仍然基于逐帧动画。
此外,许多追求独特艺术风格的独立开发者也乐于使用逐帧动画来实现更酷的艺术效果,以在工业化游戏市场中分一杯羹。
2. AI 动画与工业应用之间的差距
当前 AI 动画模型的能力在以下几个方面仍然远未达到工业应用:
A. 符合动画 12 条原则的高影响、高流畅度动画
当前的 AI 动画仍处于“正确”的阶段,尚未达到“优秀”的阶段。而在当今竞争激烈的游戏市场,尤其是在自媒体时代,游戏传播的规则使得对游戏艺术和动画风格的要求更高。
“优秀”还不够。它需要高度风格化、高度独特,并能够引发病毒式传播。
B. 游戏艺术和动画的高度艺术抽象概念可能对模型构成挑战
由于上述原因,许多游戏需要寻求非常独特、抽象的概念以引发病毒式传播。而这些艺术抽象概念在基础模型的训练数据中可能并不占多数。
例如,下面的《空洞骑士》角色设计,这个角色没有鼻子和嘴巴,手臂似乎有又似乎没有,头上有两个东西不知道是角还是其他。模型需要决定这个角色在执行每个动作时应该处于什么姿势,身体的每个部分应该如何移动,这相当具有挑战性。
空洞骑士
C. 酷炫且富有表现力的光影效果
如今的游戏在光影效果上已经达到了极致,以便于社交媒体传播。
我做了一些实验,AI 模型完全掌握这些夸张的光影效果、正确与游戏动作匹配并保持准确的节奏并不容易。
D. 模型对细节描绘的控制
我们与许多工业工作室的艺术家沟通,他们对动画的每个细节可能有非常高的要求,例如举手时袖子的移动方式。
而如今,控制仍然是 AI 模型的一个短板。尽管各种 controlnet 和 LORA 模型的发展为我们提供了许多工具,但仍然常常难以实现精确控制,指向要击打的地方。
这可能难以满足许多完美主义游戏艺术总监的要求。
尽管存在各种问题,但我对 AI 游戏动画的长期前景仍然持乐观态度。我相信,许多挑战本质上都是数据问题,基础模型正在迅速变得更加成熟。
从长远来看,只要有足够的投资和足够的数据输入进行训练,上述所有挑战都应该是可以解决的。
我们将继续关注最新和最酷的 AI 技术,并继续分享开源工作。欢迎关注我们,敬请期待!
赋迪奥本AI
上海赋迪网络科技
电话:18116340052