下载 App
Idea之”日军总部3D“
2 小时前13 浏览 包含 AI 合成内容
最近玩了玩在Steam库里吃灰的德军总部3D,突发奇想:BJ打过德国鬼子,怎么能少了昭和鬼子。于是尝试用AI做一个“日军总部”

《德军总部3D》(Wolfenstein3D,1993)
提取原版游戏资源,经过GPT-Image按照二战日军风格重新设计并稍微提高了分辨率

对部分墙面纹理和角色Sprite进行重新设计,分辨率相比原版提高到128x128

墙壁纹理整体上比较好处理,将GPT读取原图生成一段“Redesgin”提示词,然后原图和提示词丢给GPT-Image-2生成新图。新图一般尺寸都比较大,再让GPT写一个Python脚本,用最近邻算法缩小新图。
新的纹理放进assets/Textures目录后,还要为新纹理创建一个同名的.xml文件:
<?xml version="1.0"?>
<texture>
<filter mode="nearest" />
<mipmap enable="false" />
</texture>
告诉引擎不要使用任何过滤器,不然就没有我们想要的像素风格。
角色要稍微麻烦点,提取原版角色Sprite后,找一个正面图丢给GPT让它生成一段角色设计图提示词,用于生成角色四视图

原版Sprite就是洋红色背景,所以生成的图也保持一样的背景
原版Sprite提取出来是每帧独立一张图片,需要先打成图集(即SpriteSheet)再丢给GPT-Image重新设计,这样动作连续性更好,抽卡次数更少。

原版Sprite打成图集,分辨率最好也提高,AI能识别更准确
然后让GPT读取角色四视图,告诉它以“输入两张图片:图片1为角色设计图,图片2为原版角色SpriteSheet,参考图片1对于图片2进行重新设计”为目标,生成一段“Redesign”提示词丢给GPT-Image-2

经过Redesign后的结果
下一步就是抠图了,但抠图的麻烦在于:AI图的背景色不是完全的纯颜色,颜色数值上会有少量差异,没法按照单一颜色值判断一个像素是不是背景。目前我是让GPT生成一个脚本,按照一个颜色范围替换像素,能替换99%但角色边缘还是会有残留,后面还得想想要怎么办

放大看,能看到角色边缘的像素的与背景洋红色进行了融合,抠图脚本判断不了
到这儿一个角色动作序列帧算是完成了,同样别忘了给图集图片创建一个xml文件,关闭纹理过滤。由于是基于3D场景,在游戏里需要用Billboard来渲染角色Sprite,每帧修改UV坐标实现动画效果:

修改Bilboard UV,绘制图集中指定区域
还有个问题:AI修改后的图集,角色在图中的位置是会变的。这样为图集划分Sprite区域就比较麻烦了,需要写一个工具。
Taptap Maker使用的UrhoX引擎继承自开源游戏引擎Urho3D,在Github能搜索到源代码仓库。Urho3D默认用AngelScript作为脚本系统,用AngelScript就可以写例子或者游戏。而且在Urho3D官方示例合集中正好就有一个3D场景编辑器示例,使用Angel Script写的。
让GPT参考这个3D编辑器写一个图集编辑器,方便编辑图集:

3D编辑器正好也可以用来做游戏场景。
基本的资产流程就差不多了,后续接着参照原版游戏实现玩法逻辑、添加资产。











