Project1

标题: 深度学习|行走图自动生成|AI|寻路|光照 [打印本页]

作者: 仇九    时间: 2021-11-4 00:09
标题: 深度学习|行走图自动生成|AI|寻路|光照
一.杂谈
我做东西总是做到20%系统搭建好了,剧情做了一两章就坐不下去去开心坑了。
(我做的游戏是野比大雄的生化危机系列的ARPG游戏,如果感兴趣可以加群一起讨论或者看我发疯呓语:994809641)
这次的新坑我的构想是 ARPG ,其中一个重点就是  取消玩家和敌人的碰撞  做成更自由根仿 地牢类 游戏的ARPG。
(使用的是我自己的核心,宣传一下:https://rpg.blue/forum.php?mod=v ... p;page=1#pid2928896
在做这种游戏的时候我需要写一个像素移动插件,而之前我写的像素移动插件总是不尽人意,在浏览了MV的其他像素移动插件后我最多做得和他们一样,无法做出更好的像素移动插件,
所以我打算从原理入手看看其他软件或者引擎是怎么干的。但在寻找的时候发现了一些好东西(误)。
[line]2[/line]
二.行走图自动生成
https://zhuanlan.zhihu.com/p/55979748

这是一个通过深度学习来直接生成人物行走图的工程介绍,其原理来自 TensorFlow 工程下的一个项目:https://www.tensorflow.org/tutorials/generative/pix2pix
虽然其输出图无法直接作为游戏素材去使用,但是这也为素材绘制节省了许多力气。通过使用不同画风的训练模型去模拟,可以适配比较简单的画风素材。
(这里我首先想到的就是2000/2003那一类如今被看做像素画的素材,这类素材被用作模型训练后的效果肯定比之后比较精细画风的素材要好训练)
[line]2[/line]
三.游戏AI
我做的是ARPG,在RMMV上这类游戏的AI相对比较简单(但想做好效果对我来说仍旧比较复杂)(指相比于大型商业游戏)。
我在浏览https://www.tensorflow.org/js/demos?hl=zh_cn并且考虑哪一段时间比较闲时研究一下(一下也许不够,也许是半年一年)。
说来惭愧,我们大学是大二开始的时候选专业,我选了计算机科学与技术,这个专业是选的人最多的,但学了两个月我才发现我正真想学的是软件工程或者人工智能。软件工程选的人是第二多的,而我们学校的人工智能不咋地,选的人比较少,竞争不大。
MV是JavaScript作为核心的,那我首先想用的就是TensorFlow.js库。而这个库有一个范例:

这个范例就是一个简单的可以被训练AI的演示。
地址(需fq):https://storage.googleapis.com/t ... ing/dist/index.html
然而我学的是计算机科学与技术而非人工智能,所以我最多能做出个东西来,但是绝对做不好,最多供自己用。
所以,我以后使用深度学习来搞RM时偷懒的希望,交给大家了(嘿嘿嘿)……
[line]2[/line]
四.寻路
实际上在使用RMMV的过程中,为其他人写RMMV脚本已经极大地影响到了我的学业(尽管我现在大二,看似不紧张),所以我已经不再接新的比较复杂的插件订单。
以前的接单页面:https://rpg.blue/forum.php?mod=v ... p;page=2#pid2920220
我更喜欢去做一些需要研究和思考才能做出的插件,而非需要重复工作的那些系统复杂但是原理却非常简单的插件。
比如寻路。
虽然A*对于RM来说已经够用了,但是我为了设计我游戏内的队友AI,又去学习了JSP,也就是跳跃点算法,并找到了在RM内进行寻路的“终极”(夸张了)解决方法:
使用Xueqiao (Joe) Xu大佬写的PathFinding.js库,我在RM里实现了对这个库的调用。
这个库有以下几种寻路算法(A*变种):
AStarFinder
BestFirstFinder
BreadthFirstFinder
DijkstraFinder
IDAStarFinder
JumpPointFinder
OrthogonalJumpPointFinder
BiAStarFinder
BiBestFirstFinder
BiBreadthFirstFinder
BiDijkstraFinder
即使是250*250的障碍物林立的地图,只要你依据地图障碍物特点选对寻路方式,也能在0.5ms内寻到一条长度可达500+的路,这个0.5ms会随着实时寻路而变小。
[line]2[/line]
五.烛光插件
https://rpg.blue/thread-487008-1-1.html
这个插件一直没有写完,是因为为了设计更高效的渲染顺序和纹理的处理方式,为了设计更多的阴影投影模式,为了设计出简单的将一张图片拉伸成非等边梯形等的目的而研究了一阵子。


我最初的想法是使用与MV3D中同样的Threejs库来写,通过3D渲染2D(和那些三渲二的技术相比要简单得多得多,所以不必太惊讶)来实现实时的动态阴影。
但是考虑到我写这个插件做主要的目的是做一个正真全能(包含烛光,事件和玩家和墙壁的动态阴影,自定义光影效果,ULDS无限图层,多层或者单层战争迷雾)(目前我还没有找到有事件和玩家动态阴影功能的插件)的插件,主要用途是为我的游戏营造动态的“赛博朋克”风格的光影,其中效率是非常重要的,所以我抛弃了那个可能给中配电脑(使用粒子效果的话,低配电脑根本跑不动)带来压力的3变2的方法。
六.总结
我不知道为什么,从昨天早上开始,刷b站的时候不知道是不是桶了unity教程的窝,一大堆unity的教程出现在我的手机里,这些东西对于用RMMV的我来说没用啊……虽然以后会转用unity或者别的,但是RM系列的RMVA软件就是我的一大半童年,用了八九年了不用RM系列的插件做完一款游戏实在太遗憾。
我清楚地记得我五年级时学Ruby,结果根本学不会时的无力悲伤的眼泪。(主要原因我觉得是因为我当时笨,以及直接抱着RMVA的帮助文档啃的原因……)
而学RMMV的脚本的时候前辈的https://rpg.blue/thread-401194-1-1.html就给了我非常大的忙,差不多用了一个半月就可以自己在百度的辅助下写RMMV的简单插件了。非常感谢 莴瓜 前辈!!!
我是想着也许RMMV/RMMZ可以通过引入一些其他的库(大部分时候肯定是库的作者的功劳最大)来实现一些更有趣的功能。
比如我在已经在RM里自己实现分离轴算法之后,选用了Matter.js物理引擎来写弹幕插件(ARPG核心,可以代替你做一系列的攻击伤害判定)。
其中的激光武器(可反射)就是我仿照 元气骑士 中的激光武器来设计的,至少看起来很棒……)


感谢大家看我唠叨……
作者: 一屋窑    时间: 2021-11-4 00:15
我是楼主小时候用的账号ε(*´・ω・)з
作者: Mepy    时间: 2021-11-13 13:39
好棒!加油!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1