unity3d 自动变化大小_自动做游戏(1),自动生成人物侧面图

本文介绍了如何利用深度学习方法,特别是基于《Image-to-Image Translation with Conditional Adversarial Nets》论文的算法,从人物正面图自动生成侧面图。通过训练2000多张行走图,生成器对于像素类图片效果良好,但对颜色灰暗或高精度图片效果不佳。未来计划优化算法以处理不同类型的图像,并探索生成序列帧动画。
摘要由CSDN通过智能技术生成

8ae9a7e10185d681337261d1a82c4f46.png

文 @罗培羽

效果

游戏美术成本很高,如果能够应用一些深度学习的方法,让机器自动生成美术资源,那么游戏开发将会变得简单。尝试制作一个应用,根据人物正面图自动生成侧面图。效果如下图,对于像素类图片,效果还是不错的。

13a73e6dd0aefcd1cc41e9c1e48c162a.png

后面如果足够完善,就可以用同样的方法去生成背面、抬脚等多帧图片。做游戏行走图时,将不再需要绘制10几张图,而只需要绘制一张正面图,其他的由程序自动生成。

下面展示另外一些效果图,可以看出,程序能够拟合长发、长裙、帽子、铠甲、披风这些元素的侧面图。

a778ed67d6b9603ac27ee5878175beb7.png

算法

算法都根据《Image-to-Image Translation with Conditional Adversarial Nets》这篇论文,而实际上因为论文很出名,tensorflow也有一个实现示例pix2pix,于是在该示例的基础上稍作改动。这是一个对抗网络的应用,生成器使用了unet结构,鉴定器使用了PatchGAN。资料比较多,后面有空再详细介绍。

训练

我找了2000多张rpg maker的行走图,训练集有2100张左右,还留下200张做测试集。每张图大致如下,截取了第一行第一列的图和第二行第一列的图来训练。

46d4b9c56c37b32895d5c2b9b8a512f3.png

这些图片有戴帽子的、有穿铠甲的,比较丰富。

ffc053eba3c3b3b9ba5c8a09256c4dd6.png

训练了100个epoll,可能程序写的不好效率比较低,跑了10多个小时,燃烧了200块钱的云服务器费,还真贵啊!!

不足

生成器对于颜色鲜艳的像素图效果比较好,比如下面这张:

cfd751a58a00956ebac80bc1596d7635.png

但对于颜色灰暗的,效果就不太好,比如下面这张,糊了。

2dd45b1b1835d535eb75c7bb705133c4.png

这个现象《Image-to-Image Translation with Conditional Adversarial Nets》论文给了一组对比,论文作者对比了几种正则化的式子(如下图),发现当前使用的L1+cGAN的灰色中的效果不太好。所以改善这个问题也许可以从优化L1式下手。

5508d5787b056fd4dcd8c808b065993e.png

另外,因为训练图都是像素图,模型拟合了像素图的特征,如果使用更多细节的图片,效果也不好。下面是个失败的例子,原因大概在于,像素图的色块比较大,所以得出的卷积核不太适用于细节多的图片。

fdcf1f782f1e67ad6c34cc9ddd3f468b.png

下一步

下一步当是优化算法,让算法更加健壮。主要在两个方向,1个是对灰色图的处理,另一个是对高精度图片的处理。同时可以运用同样的方法生成序列帧动画。

最后还是放个广告,笔者近期出版的《Unity3D网络游戏实战(第2版)》详细介绍网络游戏的开发的全过程,看完本书,能够亲手从零开始制作一款有一定规模的网络游戏。书中对网络编程有详细的讲解,全书用一个大例子贯穿,真正的“实战”教程。

903b2171e4c483e68a4779566110acde.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值