效果

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

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

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

算法

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

训练

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

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

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

不足

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

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

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

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

下一步

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

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

自动做游戏(1):自动生成人物侧面图相关推荐

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

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

  2. 用ECS做HexMap:自动生成地图系统

    基于Unity2019最新ECS架构开发MMO游戏笔记16 自动生成地图系统 AutoCreateMapSystem 神奇的六边形 六边形实体 创建者和创建六边形单元系统 更新计划 作者的话 ECS系 ...

  3. 用python的tkinter做游戏(八)—— 实现图片在tkinter中自适应大小(自动匹配窗口)

    用python的tkinter做游戏 系列: 用python自带的tkinter做游戏(一)-- 贪吃蛇 篇 用python自带的tkinter做游戏(二)-- 俄罗斯方块 篇 用python自带的t ...

  4. 算法实现自动扫雷游戏

    算法实现自动扫雷游戏 1.游戏的构思 2.算法伪代码的实现 3.算法的实现 1.首先需要建立起游戏的整个框架(棋盘的绘制,地雷的生成,基本函数的实现等) 2.构思AI算法的大概样貌(先尝试写伪码) v ...

  5. JavaScript实现H5游戏断线自动重连的技术

    断线重连的需求 尤其是手机上,会因为网络的不稳定或者其他原因,导致用户的socket链接断开.这个时候如果直接让玩家退出游戏,重新登录,无疑是非常影响用户体验的事情.所以根据这个需求,就有需要程序来实 ...

  6. unity应用实例——扫雷游戏(自动扫雷、人工布雷)

    最近用Unity做了一个简单的扫雷小游戏,可以实现电脑自动扫雷.人工布雷等功能,效果图如下. 在游戏的任何时间按下T键后,电脑会自动进行游戏,直到游戏结束.按下B键后可以通过鼠标点击埋雷. 项目一共有 ...

  7. 联通手机自动做任务领流量

    利用Actions实现各种签到操作会被认为是违反TOS,严重的会封号处理!目前官方一般处理方式是将仓库ban掉! 大家还是别用了,用了的把项目删掉 联通手机营业厅的活动还是不少的,就是太复杂,一般人也 ...

  8. 推箱子游戏的自动求解

    导读: 推箱子游戏的自动求解 简介 推箱子,又称搬运工,是一个十分流行的单人智力游戏.玩家的任务是在一个仓库中操纵一个搬运工人,将N个相同的箱子推到N个相同的目的地.推箱子游戏出现在计算机中最早起源于 ...

  9. SAP PP 为工单确认时自动做收货的设置

    SAP PP 为工单确认时自动做收货的设置 TCode: OP67 Micro Message: JINYULIN_SH_

最新文章

  1. IDEA报错解决:Error:(33, 35) java: -source 7 中不支持 lambda 表达式 (请使用 -source 8 或更高版本以启用 lambda 表达式)
  2. 操作ex_【自学C#】|| 笔记 40 Command:操作数据库
  3. 基于机器学习的web异常检测——基于HMM的状态序列建模,将原始数据转化为状态机表示,然后求解概率判断异常与否...
  4. 红橙Darren视频笔记 view的绘制流程(上) onMeasure测量代码分析 基于API27
  5. 金蝶业务+sqlserver子查询
  6. canal 增量订阅mysql消息
  7. wordpress rest api 登录_Python构建RESTful网络服务[Django篇:生成API文档]
  8. maven teavm-idea-artifacts: Command execution failed.: Process exited with an error: 1 Exit value: 1
  9. 学习UVC协议需要的工具
  10. 测试网络机顶盒的软件,新买的网络机顶盒安装什么软件好 几款热门装机必备软件分享...
  11. word目录中英文开头目录不对齐
  12. openwrt之network配置文件
  13. 关于#!/bin/bash
  14. 2022年mvnrepository跳过人机验证
  15. unity3d学习笔记-报错
  16. Centos修改时间为24小时制
  17. 数据库发展史 特性,安装区别
  18. 2021年中国互联网广告市场规模、竞争格局与发展趋势分析,行业发展稳中向好「图」
  19. 游泳过后,耳朵进水怎么办,中耳进水
  20. 关于“服务器限制无法上传那么大的附件 ”的解决方法

热门文章

  1. 期货现货升跌水(期货下跌现货一定下跌吗)
  2. tpx色卡电子版_潘通色卡电子版下载
  3. Vivado使用技巧(17):时序异常 Timing Exception
  4. css实现文字逐个显示
  5. 央视气象女主播王蓝一揭秘天气预报潜规则
  6. 【华为机考刷题】2022_6_14
  7. 星星之火-19:手机如何与基站进行时钟同步、时隙同步?
  8. 无线广播相关信号(收音机)的发射与接收
  9. 01背包中背包装满和不装满
  10. (算法篇)Java实现删除链表倒数第n个节点