开车之道:rpgmaker乱码缺失文件问题?不需要用转区工具的解决方法

unxplier 2022-9-24 4172

 

 

在游玩rpg游戏时,经常遇到乱码问题,这也是让很多人头疼的事情。以最近的经历为例,看到一个特别中意的黄油,资源网站也找不到,好不容易从网上扒下来之后,发现还是乱码,玩到一半提示xxx素材缺失。下面来分析一下这个问题:

 

1、造成文件缺失的到底是什么原因?

根据rpgmaker的提示,有两种可能:

  • 第一种可能,根据设定好的素材文件名找不到这个素材文件。也就是说乱码发生在文件名上面,因为文件名乱码了,所以按照素材名找不到这个素材。
  • 第二种可能,找到了素材文件,但文件内部数据乱码读取不了。也就是说乱码发生在文件内部,因为数据乱码了,所以按照素材名读取的素材出问题。

两种原因是递进关系,首先从最浅显的可能入手,也就是文件名乱码导致找不到素材文件。

 

2、如何解决第一种可能?(文件名乱码)

既然是文件名出的问题,那么就要找到素材文件都放在哪里。下面是一个rpg游戏的素材文件夹目录,一般放在www目录下面

可以看到游戏素材文件被分成了audio, data, img等目录,具体的素材文件就存储在其中,一般是以rpg素材的打包形式(rpgmvx)或者原文件形式(mp3, jpeg...)存储。游戏出问题的素材文件也就在其中,只需要把它们的文件名从乱码恢复成正常的日文即可。

对于这一部分,我用了Python进行编程,代码贴在下面,懂一点基本的编程知识就能解决问题了,把path变量改成自己的游戏目录,然后直接执行就可以了。


path = r"X:\2ACG\G-HS2108061-v3.3\RJ335221\www"

list = os.listdir(path)
pprint(list)


for root, dirs, files in os.walk(path):
print(root)
for d in dirs:
print(os.path.join(root, d))
for file in files:
print(os.path.join(root, file))
old_name = os.path.join(root, file)
try:
new_name = old_name.encode('gbk').decode('shift_jis')
except:
continue
else:
os.rename(old_name,new_name)

另外附录一些踩坑记录。

  • 遇到问题:如果对已经是被修复的日文,或者说对日文再进行gbk编码,然后再shift-jis解码,就会报错
    UnicodeDecodeError: 'shift_jis' codec can't decode byte 0x87 in position 69: illegal multibyte sequence
    解决方法:保证原来的路径里没有日文,保持日文是在gbk下乱码的状态

 

3、关于第二种可能(文件内部数据乱码)

根据前面的实践可以知道,因为rpgmaker里是按照日文去读取文件的,所以rpgmaker在修复乱码之前会提示找不到文件。
错误发生在读取文件的过程中,rpgmaker只是按照名字读取文件,至于文件里的编码不用修复,修复乱码文件名后,rpgmaker可以正常读取出来。也就是说不存在文件内部数据乱码的问题,好!

 

4、总结

rpgmaker不是一定需要转区工具才能正常运行,只需要把素材文件名改成正常的文件名就可以了。前提是把乱码转换成正常的日文。关于日文乱码的原理,可以看我上一篇帖子

开车之道:简单乱码恢复攻略-茶馆-ACG里世界 (acgn.zone.)

这个人很懒,什么也没有留下!
最新回复 (10)
  • 我是師 2022-9-24
    0 2
    这个人很懒,什么也没有留下!
  • 某块面包 2022-9-24
    0 3
    undefined
    我想玩手机……
  • Igarashi 2022-9-24
    0 4
    紧急避孕
    不只要活着,更要活下去。
  • 0 5
    有H情节吗
    你眼中倒映的星辰,是我不曾见过的美好
  • 涙がtears 2022-9-24
    0 6
    北纬三十度的黑
  • 无头骑士 2022-9-24
    0 7
    紧急避孕
    你讲话好冷漠,好像我不曾让你快乐过
  • 溯w 2022-9-24
    0 8
    好好生活~
  • 欧派兽 2022-9-24
    0 9
    奖励三级精华
    1:管理员给你移区后会显示移到了你之前发帖的区。 2:点击我作为楼主发帖时一楼下的图片签名,可以跳转到站规教程贴。 3:多次水贴水回复会封号哦? 4:不知道回什么的时候就点“里世界专属”,一键随机生成几种回复内容。 5:祝你在里世界玩得愉快!
  • 联盟X 2022-9-24
    0 10
    nb
    匡扶汉室!
  • mengduo 2022-9-25
    0 11
    厉害了
    • ACG里世界
      12
          
返回
发新帖