十字军之王吧 关注:182,112贴子:4,893,480

简单推测一下地图上汉字乱码出现原因

只看楼主收藏回复


图就借用下吧友的了,本人才疏学浅,本文内容纯属推测,若有错误还望指出。
首先聊一下文本显示的原理,每一个单字要显示到屏幕上,都会被处理成一张图片,而绝大多数单字都会被反复使用,就效率来说不可能每次用的时候都重新创建一张,这样游戏每帧都会去生成一次文字的图片,对电脑是个负担,所以在一开始就会有一张比较大的空白图片(这里把它称为图集)用来存放生成的文字图片(我们看不见),这样遇到重复文字的时候只要根据起始坐标点和字体大小取出来就是对应的单字。
然而,图集不可能无限大,当字摆满的时候就摆不下了,这种时候有两种选择:1、创建一张新图集;2、尝试在旧图集上继续生成。CK3应该是采用了第二种方式,结果就是原文本没有被更改,但却为新文本记录了这个节点的坐标和大小,所以就出现了如上图所示的情况,截出来的字大小跟其他字是相同的,但不是我们想看到的字。
中文常用字3500左右,算上一些地名里的生僻字应该也不会超过4000,通常情况下图集(只要没有设太小)是可以包含4000及更多文字的,那造成中文会出现这种情况的罪魁祸首就是大地图上的字体大小自适应变化。同样是一个“教”字,在信仰界面上“教”字是正常的,但在大地图上却是错的,这是因为不同字号的同一个字会为所有不同的字号都生成一张对应的新图。字的大小会随着领土疆域变化而变化,每次变化都会有一张新图创建到一开始的空白图片中,这张图片也逐渐被填满,甚至因为各种字体大小不同出现了大量空隙,小字还能找空隙填进去,但是已经没有地方能写下一个“大字”了,所以有时我们也会在地图上看到两个相同的字一个正常一个乱码(图一的两个“教”字字体大小应该相同)。
为什么只有中文有这种情况呢?理论上日文韩文应该也会有相同的问题,只是我们不关注而已,而至于西方语言,英语总共就26个字母,反反复复都是那几张图,自然不会把图集填满。
那怎么解决呢,最简单的解决办法就是把图集设大,但也可能治标不治本,而这个步骤应该也不是mod制作者能办得到的。


IP属地:浙江1楼2022-09-17 18:29回复

    用word随便复制了点文本做了张示意图,小字是可以继续填在空白处的,但是大字就没地方了


    IP属地:浙江2楼2022-09-17 18:55
    回复
      不懂帮顶,话说EU4和HOI4这种汉化包为什么不会出现这种乱码呢


      IP属地:上海来自iPhone客户端4楼2022-09-17 19:08
      收起回复
        虽然我不是很明白,但感觉很有道理的样子。高技派大佬。


        IP属地:北京来自iPhone客户端5楼2022-09-17 19:17
        回复
          🐮


          IP属地:陕西来自iPhone客户端6楼2022-09-17 19:35
          回复
            太长不懂,就想问第一张图东正批下面是什么批


            IP属地:山东来自Android客户端7楼2022-09-17 19:40
            收起回复
              已经有接近完美解决方法了,就是自己做一个汉化mod,覆盖官方汉化。随便订阅一个其他语言的mod,然后把该mod里的文件替换成官方汉化的文件


              IP属地:广西来自iPhone客户端8楼2022-09-17 19:53
              回复
                具体BV1sV4y1W79v


                IP属地:广西来自iPhone客户端9楼2022-09-17 19:55
                回复
                  sdlwsl


                  IP属地:广东来自Android客户端10楼2022-09-17 20:55
                  回复
                    我觉得没有那么复杂,就是单纯的双字节问题,这个应该是蠢驴为了扩大非字母语言的市场,直接写到底层代码上,所以开服以来为了不在其他语言上出问题就一直放着不管了,反而eu4这种双字节靠玩家自制补丁做的反而一旦出错很容易改


                    IP属地:河北来自Android客户端11楼2022-09-17 21:03
                    收起回复
                      我觉得和暴雪那种父马可亲的字符bug类似,至少效果上很相似,出现了大量字符重叠或者错位


                      IP属地:陕西来自Android客户端12楼2022-09-17 21:30
                      回复
                        为什么要用图片不能直接显示文字呢


                        IP属地:美国来自Android客户端14楼2022-09-18 00:19
                        收起回复