原文:stable-diffusion 生成同一人物不同动作的尝试(多姿势图) - 知乎
目录
因为开发游戏常遇到缺乏美术资源的情形,因此一直在研究的一个课题是如何用AI去生成一个游戏角色的多种动作,此前也使用过对抗模型等方式做过尝试,不过效果还不能实用,以下是一些以前的研究连接。
罗培羽:自动做游戏(7),一张原画生成任意动作19 赞同 · 4 评论文章正在上传…重新上传取消
罗培羽:自动做游戏(2),自动生成人物行走图59 赞同 · 17 评论文章正在上传…重新上传取消
罗培羽:AI做游戏,扩散模型生成角色行走图76 赞同 · 18 评论文章正在上传…重新上传取消
如今扩散模型在绘图方面取得较好成果,那么能否使用预训练模型的能力,来实现同一角色的不同动作。这个研究有着比较重要的落地意义,因为一旦成功,便能够加快游戏开发2D美术的效率,减少一帧一帧去画角色行走帧动画的工作量。
效果展示
如下是使用扩散模型生成的行走图,大致还原了人物动作,虽然一些细节还不太好,但整体已经能得到较高的分辨率。也由于该实验是针对人物的动作,并没有很细致的设置prompt以及挑选生成图,若仔细调整,生成效果还会更好。
将生成的角色切出来,并作为行走图放到游戏当中,得到如下的效果。虽然动作还不是很自然,但整体已经达到一定的效果,至少比几年前的实验效果好的多。
以下展示另外一些生成的角色。这些图片分为两行三列,每一行代表角色的正面、侧面和背面、也每一列则代表同一个行走动作中的两帧动画,一帧代表迈开左脚、另一帧代表迈开右脚。
除了生成行走图,该方法也可以用于生成人物的不同角度,以下是一些生成出来的图,每一张图共有8个面向,分别代表角色旋转0°、45°、90°……时的姿态。
实现方法
首先是获取基础姿态,通过3D软件导入基础模型,并截出所需的动作图像,如下图是构成行走图的六个姿态。
转换为骨骼
拼接组合
然后生成图片即可,而要作为动作图放到游戏,还需要做些抠图处理。
不同面向的角色生成也类似,构建骨骼图。
得到一张拼接图
然后用于生成
下一计划
目前仅仅是一些使用技巧,然而我也从Controlnet和Lora的实现方法中得到一些灵感,能否结合预训练模型、再加上自己的一些微调,使得模型具备拟合正面图像的生成能力呢,有空继续尝试。
PS:如果你想从事游戏开发,就不得不提到《百万在线:大型游戏服务端开发》这本书,它是一本很实用的游戏服务端书籍,看完基本就能达到一定的开发水平,甚至比那些工作了几年的人还要更强。