你不用二次元壁纸怎么会有性格好,人好,愿意一起打游戏,对政治历史感兴趣,喜欢二次元,喜欢galgame,喜欢出cosplay,长得干净娇小可爱会画画的漂亮妹妹来加你好友

效果图

探索过程(不感兴趣可跳至省流)

原版Feature

  1. DEATH STRANDING 2 - ON THE BEACH 可以在游戏中进入拍照模式

2. DEATH STRANDING 2 - ON THE BEACH 可以在私人套间中选择壁纸,可选范围为官方提供的壁纸or自己在游戏中使用拍照模式拍下的照片

灵感来源:哔哩哔哩:小岛秀夫最爱的二次元小房间

小岛秀夫在游戏里提供了vtuber的peko帽和预设壁纸,我刚开始玩还没解锁,此处来源于上面视频的截图

只许州官放火,不许百姓点灯? 气抖冷

为了让每个人都能挂上自己喜欢的vtuber壁纸,开始研究怎么替换掉游戏中拍照模式产生的截图。

以为是Steam截图

拍照模式拍下的图片会保存在steam截图里,在本地文件资源管理器中打开,替换后重启游戏,发现游戏中图片无变化。

以为在游戏资源目录里

拍张照,然后用Everything按时间排序看了看D:\SteamLibrary\steamapps\common\DEATH STRANDING 2 - ON THE BEACH (本人安装目录)

没有找到有最新的被改动的文件。很正常,很多游戏都会把存档、截图、crashlog等保存到C盘的文档文件夹里面。以为存档文件会在游戏目录下是玩galgame玩多了导致的。

在C盘里

C:\Users\%USERNAME%\Documents\DEATH STRANDING 2 - ON THE BEACH 用everything搜索游戏名,很快就定位到了在C盘的存档文件夹

读一读英文就知道根目录下是游戏的进度保存和手动&自动存档文件。

screenshots截图文件夹就躺在那里,以为要宣告胜利了了,结果用二次元壁纸替换掉里面的截图后,重启游戏仍然没有发生变化

没好好检查scdat文件夹成了伏笔

为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么为什么

遇到问题需要保持良好的心态。游戏可以离线游玩,这图片肯定是存在本地的,既然不是screenshot 那我没头绪了,直接抓包。

ProcessMonitor 抓包

这是微软提供的一个应用抓包软件,抓到的东西太多所以需要加一下限制条件。

按顺序依次打开filter,筛选条件设定为Process Name,值填为 DS2.exe,点击Add添加规则,最后点击Apply应用设置

但剩下的东西还是太多,我们只想找到截图到底存在哪里了,这属于文件写入,所以不关心它的数据库、网络IO,因此点击取消文件系统以外的选项,只留下黄色的文件夹图标高亮

此时ctrl+X 或者手动点一下橡皮擦,清除目前所有的抓包。切回游戏拍一张照片,再回来看文件IO情况

文件读写太多了,我们不需要一个一个看,使用tools里面的File Summary,检查它都对哪些文件夹进行了读写。

此时发现它对screenshots隔壁的scdat文件夹进行了写入。检查文件夹后发现scdat文件夹中的.dat文件与截图数刚好对的上

尝试修改后缀名为png,发现没有加密,直接打开了。那替换也很简单,把PNG图片后缀名改成dat,重命名改为相同文件名,直接粘贴替换就解决了

不开放上传自定义图片是纯纯的防君子不防小人了

省流

想替换私人套间图片,在游戏中拍照后,打开下面的文件夹(标红的数字是随机数,每个人不一样),把要换的PNG文件重命名&修改后缀名为.dat后,粘贴替换任意一个.dat文件即可。

C:\Users\%USERNAME%\Documents\DEATH STRANDING 2 - ON THE BEACH\76561198826800733\scdat

图片条件

游戏原截图为1080P(1920*1080)

图像不能带有PNG元数据,如果使用PS编辑,需要选择 导出-快速导出为PNG 再重命名才行

想做个bat批处理工具,做个视频发B站顺带分享一下bat的,结果遇到了一些原因不明的闪退问题,控制变量法测试了图片长宽比、像素大小、PNG元数据的有无、PS导出方式,无法定位到问题。

我不明白。。。。。。