Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Packer/字体修复/杂项更新 #3288

Merged
merged 18 commits into from
Nov 25, 2023
Merged

Conversation

dovisutu
Copy link
Contributor

@dovisutu dovisutu commented May 13, 2023

检查单就不要了。

更改内容:

  • 字体修复全面更新,包括1.12-1.19;1.20版本将在1.20正式支持时提交,但内容也差不多。
    • 省略号全部使用U+22EF,破折号除1.12外使用U+2E3A,元素符号除1.12外采用平面Ⅱ字符。标点宽度修正也一并实施了。
    • 标点宽度的话,改了FF页0-5,以及30页0-1、20页0-1里我觉得像是中文标点的东西,以及U+00B7 Midpoint
    • 本来说不需要做空格修正的,但是我既然都把20页复制进去了,那就顺便调了吧...
  • 字符替换更改为版本独立,同时分离了各版本的配置文件。现在的字符替换表和该版本的其他配置写在一起。
  • Packer杂项更新,如pack.mcmeta不会在每次打包后被永久更改。

在1.16/minecraft下有个psd文件,算是工程文件吧。这个位置应该不会被打包进去吧。(虽然做字体怎么会用ps)
先放在这里,等我另一边的Packer重构也准备上了,就可以挪到更合理的位置了。


cjk-punctuations.png:16*16(图中的[]表示没有字符)



[]!"#$%&'()*+,-./
0123456789:;<=>?
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_
`abcdefghijklmno
pqrstuvwxyz{|}~⦅
[]、。[???????]〈〉《》「」『』
【】〒〓〔〕〖〗〘〙〚〛〜〝〞〟
           [一堆空格]
—‘’“”"[对不齐了......Github排版不会全角化]



[????????????]·

elemrnt-ideographs.png:7*4

𬬻𬭊𬭳𬭛𬭶鿏𫟼
𬬭鿔𫓧𫟷鿫鿬鿭

预计本人的响应频率:至多每周末

Fixes #2721

Fixes #1521

@boring-cyborg boring-cyborg bot added the source label May 13, 2023
@cfpa-bot cfpa-bot bot added 40+ 行数标签 未完成 PR 内容尚未完成 labels May 13, 2023
@dovisutu dovisutu mentioned this pull request Jun 10, 2023
37 tasks
@dovisutu
Copy link
Contributor Author

dovisutu commented Jun 22, 2023

修复字体显示示例

字体更新速报:基于bitmap加载器的全角标点+省略号+元素符号
理论上对1.13+有效,1.15-可能仍然需要私用区,以后有原生支持
(也就是说,按照目前的版本支持计划,除了1.12以外的所有支持版本都可以使用这一方案)
将在稍后上传字体部分。

经查,bitmap加载器似乎是在1.13加入的;也就是说,此法理论上对1.12无效;1.12可能仍需要修改unicode_font_%s.png。考虑到支持32x字体的复杂度,预备使用16x字体凑合,副作用就是省略号的中心点可能会变成两像素;不过看起来差不多。

已知问题:单双引号的字形使用了unifont而非mojangles的,不过看起来差不多?

考量:是否考虑同时引入不同宽度空格,以补偿#2827 (comment) “单位与数据间距问题”? 看样子应该是不用了

@dovisutu dovisutu mentioned this pull request Jun 22, 2023
4 tasks
@boring-cyborg boring-cyborg bot added 1.16.x Minecraft 版本标签 1.18.x Minecraft 版本标签 1.19.x Minecraft 版本标签 Fabric 包含 Fabric 模组 Forge 包含 Forge 模组 labels Jun 22, 2023
@cfpa-bot
Copy link
Contributor

cfpa-bot bot commented Jun 22, 2023

模组 🔗 链接 🎨 相关文件
日本の工芸品 (Minecraft) 🔍无源代码 | 🟩 MCMOD | 📁 对比(新!)
最新模组文件
语言文件链接

💾 基于此 PR 所打包的资源包:


ℹ 1UNKNOWN 在其它 PR 中有提交:

ℹ minecraft 在其它 PR 中有提交:




  • 🔄 勾选这个复选框来强制刷新

@dovisutu
Copy link
Contributor Author

dovisutu commented Jun 22, 2023

WARNING:由于字符替换功能尚未修正,此处打包的资源包并不能按照新的字体显示 模组文件 中的替换字符!仍然可以使用书与笔手动测试。
出于字形考虑,省略号位点使用了U+22EF,而非先前的U+2026。按照2721中的讨论,U+2026最好留给西文省略号。测试时请注意。

此处打包出的资源包应当为最终版本

这pr-packer顺便帮我把packer测了还行

@boring-cyborg boring-cyborg bot added the 1.12.x Minecraft 版本标签 label Jun 23, 2023
@dovisutu
Copy link
Contributor Author

修复字体显示示例

字体更新速报:1.12.2版本使用16x字体近似实现省略号

@dovisutu dovisutu changed the title Packer/字体修复 Packer/字体修复/杂项更新 Jun 23, 2023
@dovisutu dovisutu marked this pull request as ready for review June 23, 2023 06:21
@dovisutu dovisutu added config PR 中的更改涉及 Config 文件夹 and removed 未完成 PR 内容尚未完成 labels Jun 23, 2023
@dovisutu
Copy link
Contributor Author

等等,这projects/1.12.2/assets/conquest-reforged/minecraft/lang/en_us.lang有147行空行?

@dovisutu
Copy link
Contributor Author

屏幕截图 2023-06-29 231550 更新后的标点符号替换,包含了破折号。引号位置也已修复。

@mamaruo mamaruo added 1000+ 行数标签 and removed 40+ 行数标签 labels Jul 2, 2023
@mamaruo
Copy link
Member

mamaruo commented Jul 2, 2023

1.12.2 下测试:

Details

image

对照组(Smooth Font 应用 思源黑体 Normal

Details

image

符号字形的问题:

  • ~ 偏上
  • !?:;《》等符号应在左侧居中,右侧留空。即它们视觉上只用了左半半角宽度,字符占全角宽度image
  • 破折号和省略号符合预期吗?

和 Modern UI 等的兼容性我委托 ZY 测试了。

我这边测试了1.12和1.18,没发现有问题

测试文本:
你说的对~但是《烟神》是由丁真·珍珠研发的全新‘开放世界’冒险游戏:游戏发生在一个被称作(理塘)的幻想世界!在这里被神选中的人将会被授予〈电子烟〉吗?引导尼古丁之力;你将扮演一位名为神秘角色——三个“芙蓉王”,在自由的旅行中邂逅性格各异、能力独特的动物朋友。好活但是很/烂,编不下去了……
Lorem ipsum! adipisicing elit? sed do; incididunt ut labore et dolore magna aliqua.

@dovisutu
Copy link
Contributor Author

dovisutu commented Jul 8, 2023

收到。如果今晚来得及的话可能可以改下;如果没弄完,可能得等八月份了,因为学业问题。* sigh


破折号和省略号符合预期吗?

答案是否定的,因为字体包采用的不是这两个字符(但是仍然是符合unicode标准的字符,而非私用区)。

具体而言,在 1.16+ 省略号使用两个U+22EF(mathematical horizontal ellipsis),破折号使用单个U+2E3A(2-em dash),理论上完整的字体是会包含这两个字符的。打包过程会做自动替换,但是游戏显示过程是不会的。
这么想,游戏内输入倒可能有点问题——但之前的元素符号好像也没人抱怨自己打不出来?

在1.12,如果我没记错的话,省略号仍为U+22EF,但破折号没改动。忘记glyph-sizes有没有改了。

如果有需要,也可以用一般的字符(U+2014?)替换省略号,代价是连不起来了——不过也还行吧。

!?:;《》等符号应在左侧居中,右侧留空

确认。不过左书名号不是应该靠右吗

~ 偏上

确认。

此外,也确认了分名号间隔号•宽度不对。

@mamaruo
Copy link
Member

mamaruo commented Jul 8, 2023

此外,也确认了分名号•(叫这个名字吗)宽度不对。

间隔号的宽度应为全角。

答案是否定的,因为字体包采用的不是这两个字符(但是仍然是符合unicode标准的字符,而非私用区)。

具体而言,在1.16+省略号使用两个U+22EF(mathematical horizontal ellipsis),破折号使用单个U+2E3A(2-em dash),理论上完整的字体是会包含这两个字符的。打包过程会做自动替换,但是游戏显示过程是不会的。
这么想,游戏内输入倒可能有点问题——但之前的元素符号好像也没人抱怨自己打不出来?

我理解了,我觉得不用考虑游戏内输入了。不过看起来你的测试也用的书与笔,是怎么做到替换的呢。

!?:;《》等符号应在左侧居中,右侧留空

确认。不过左书名号不是应该靠右吗

是的。

@dovisutu
Copy link
Contributor Author

dovisutu commented Jul 8, 2023

不过看起来你的测试也用的书与笔,是怎么做到替换的呢

这个是我自己换的。

间隔号的宽度应为全角

确认。

@dovisutu
Copy link
Contributor Author

dovisutu commented Jul 8, 2023

屏幕截图 2023-07-08 193040 屏幕截图 2023-07-08 193128

测试版本:1.18.2
右图刻意使用了U+2014做破折号,以示效果。
已知:1.12.2需要单独做一下适配;截图的时候忘记做单书名号了,所以没有示例;但是补上了。
1.12.2做好以后会传上来。

为什么我在试图拿这种东西当lipsum

@dovisutu
Copy link
Contributor Author

ping @mamaruo 现在应该可以打出包了,之前policy文件写错了,可以再测一下

现在的问题是我把1.20的分支建在这个上面了,到时候我还得再变基到main上一次;当然这里这个直接squash就可以了
我这边的计划是这个合了再投1.20那个,但由于actions大改可能还需要修一会,虽然不一定有时间
今天上午差点把分支结构给变炸了,果然git魔法还是略难掌握......

@dovisutu
Copy link
Contributor Author

dovisutu commented Aug 3, 2023

确认在1.16环境下会产生灰底;换句话说,alpha通道并未被除去。
在1.18+实测并无灰框。似乎这是1.16特有的?需要继续考证
接下来的问题包括调节alpha是否可以修复、去除alpha是否导致宽度错误、是否有其他解决方案等。

默认纹理的字体文件包含一个白色字符的网格,这些字符会在游戏需要时自动被游戏上色。字符大小会根据含有Alpha值的最后一行像素自动决定。由于字体的检测方式,因此用含有5% Alpha颜色填充字符的背景部分将会导致把字符渲染为全宽度,字符也没有可见的背景。默认字体的大小为8×8像素,而accented.png为18×18像素。
——mcw:资源包#字体


参考:mcw历史版本505164已经包含了这段文本,而此时刚刚发布1.16.5正式版。

@dovisutu
Copy link
Contributor Author

dovisutu commented Aug 3, 2023

初步尝试暂时没有找到在1.16bitmap加载器中保持间距且无背景色的办法。
在moJira上搜索也没有结果。

可能需要回退到legacy-unicode......


另一个workaround是,在字形右边界上挂一个透明度.01的单像素,这样基本看不到有区别,但裁剪算法就会裁下全宽字形。


突然想起来,据称在1.16-的某个“负宽空格资源包”会在Intel集显下崩溃;而该资源包的加载方式恰恰 就是bitmap
而我的测试环境用的也是i集显...

嫌疑人+1:显卡(什
(不过感觉不太可能......如果显卡的话,高版本也会炸吧)

我摆了,不rebase了……Git魔法就是废脑子
(但是1.20-preps还要来一次)
@dovisutu
Copy link
Contributor Author

dovisutu commented Sep 8, 2023

image

1.16.5暴力修复:只要我只画一个像素,玩家就发现不了问题 ,除非是列文虎克(

具体说就是这样的:

另一个workaround是,在字形右边界上挂一个透明度 .01 .05的单像素,这样基本看不到有区别,但裁剪算法就会裁下全宽字形

@Fish-cat-cat
Copy link
Contributor

Fish-cat-cat commented Sep 30, 2023

1.18 Quilt 多模组 无字体资源包

环境

image

效果

image

image

1.18 Quilt 有字体资源包

字体资源包(无中文)

Geometric Font Edge (modrinth)

效果

image

image

1.16 Forge 无模组 无字体资源包

效果

image

image

1.12 无字体资源包

效果

image

image

1.19..?1.18和1.19一样吧...(不一样的话我再去测一次)

字符表(测试用)

全角

,。?!:;·…~&@#
“”‘’〝〞 "'"'´'
()【】《》<>﹝﹞
[]「」{}〖〗『』

@cfpa-bot cfpa-bot bot mentioned this pull request Oct 2, 2023
@dovisutu
Copy link
Contributor Author

dovisutu commented Oct 6, 2023

我天,这UCD EastAsianWidth里标A和W的可有点多......比如整个FF页都要调🤣
不过好消息是1.18的glyph_sizes.bin似乎修了一部分

已知问题至少有全角花括号

把UCD EastAsianWidth.txt 过了一遍,希望凑齐了全部要调宽度的
1.16下放了一个ps文件(对,ps),是我做这玩意的工程文件,应该打不进去

1.20还不确定要不要改,先不管了
@dovisutu
Copy link
Contributor Author

dovisutu commented Oct 28, 2023

希望是最后一套测试图
1.12.2还有点小问题,有一点奇怪的符号没动,不过算了

版本 测试图
1.12.2 屏幕截图 2023-10-28 220905
1.16 屏幕截图 2023-10-28 213912
1.18 屏幕截图 2023-10-28 221353
1.19 屏幕截图 2023-10-28 222042

测试文本:可以直接复制到书与笔里面
已知问题:我居然忘记测试引号了......我天
1.16+

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~⦅、。〈〉《》「」『』【】〒〓〔〕〖〗〘〙〚〛〜〝〞〟·
𬬻𬭊𬭳𬭛𬭶鿏𫟼⋯⋯i
𬬭鿔𫓧𫟷鿫鿬鿭⸺i

1.12

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~⦅、。〈〉《》「」『』【】〒〓〔〕〖〗〘〙〚〛〜〝〞〟·
鿏⋯⋯i
鿔鿭鿬鿫——i

@flier268
Copy link

這有支援繁體字嗎?

@dovisutu
Copy link
Contributor Author

這有支援繁體字嗎?

不清楚繁体字形需不需要修,毕竟我也没有日常使用繁体。
如果你说的是整个资源包的话,我记得有RPMTW吧。我们这边还没有繁体支持计划。

@dovisutu
Copy link
Contributor Author

ping @ChuijkYahus 你看现在的效果怎样?要没问题我明早合了算了,这个实在放太久了

@ChuijkYahus
Copy link
Collaborator

看上去挺好的()

@ChuijkYahus
Copy link
Collaborator

P_BAA3LD`@X1N}@XPJ}_S6Y
1192Forge,确实OK

@dovisutu
Copy link
Contributor Author

那就好,可以“即将合并”了
明天如果我想得起来就合了,想不起来就按24h计算吧

@dovisutu dovisutu added the 即将合并 在此标签被添加的 24 小时后 Pull Request 才可被合并 label Nov 18, 2023
@dovisutu
Copy link
Contributor Author

dovisutu commented Nov 18, 2023

就是不知道projectHex需不需要什么适配 @Cyl18


(好家伙,我应该修改评论的--不过算了,都发出去了)


我看action里面跑起来是好的,应该没问题
(这里的Packer是大改之前的,问题应该也不大)

@Cyl18
Copy link
Member

Cyl18 commented Nov 18, 2023

就是不知道projectHex需不需要什么适配 @Cyl18


(好家伙,我应该修改评论的--不过算了,都发出去了)

packer能用的话我编译一份丢服务器上就行

@dovisutu
Copy link
Contributor Author

好家伙,还得等一个approve(结果pr作者现在都发不出去approve了)

@Cactusstudent
Copy link
Collaborator

在合并之前还需要问个问题,官网的翻译规范有什么需要修改的吗?

@dovisutu
Copy link
Contributor Author

在合并之前还需要问个问题,官网的翻译规范有什么需要修改的吗?

CFPAOrg/TransRules#7 大致改了一下,格式不一定完全对;可以在此之上接着改,毕竟分支是在主库上的。

@dovisutu dovisutu merged commit 6aac7e7 into CFPAOrg:main Nov 25, 2023
3 of 4 checks passed
@dovisutu
Copy link
Contributor Author

想起来了,ping @Cyl18 这边已经合了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1.12.x Minecraft 版本标签 1.16.x Minecraft 版本标签 1.18.x Minecraft 版本标签 1.19.x Minecraft 版本标签 1000+ 行数标签 config PR 中的更改涉及 Config 文件夹 excluded-from-project-hex 从 Project Hex 的全 PR 合并中排除 Fabric 包含 Fabric 模组 Forge 包含 Forge 模组 source 即将合并 在此标签被添加的 24 小时后 Pull Request 才可被合并
Projects
None yet
8 participants