日语Unicode字体?

8
我正在制作一款游戏,其中包含一些文本的UI。最近我们想要添加日语语言版本,但是我在字体方面遇到了问题。我使用stb_freetype来光栅化字体,并支持Unicode,所以这应该不是问题。但大多数字体似乎都不包含日语字符,在Windows上我发现Arial Unicode有。但它的大小为26 MB,比我们整个游戏还要大得多!
我看过了Unicode and fonts,但它并没有完全解决我的问题。
因此,基本上我有两个问题:
1. 日语字体是否有不同的字体风格?我是说,西方字体有衬线、无衬线或更奇特的版本。这也适用于亚洲字体吗?
2. 我可能会使用系统字体而不是自己提供如此庞大的文件。我知道如何在Windows上找到Arial Unicode,但我们的游戏也有Mac OSX、Linux和iOS版本。在这些平台上,我可以在哪里找到Unicode字体(应该使用哪些)?特别是对于我们来说最不熟悉的Linux,我很感兴趣。

这个问题似乎更适合放在Superuser上...不过我还是会回答它的。 - JAB
请注意,Arial Unicode MS是一种备用字体,仅在系统上没有其他字体可以显示代码点时才使用。它停留在Unicode 2版本,现在已经相当古老。此外,它不支持任何脚本渲染,使其不适用于其声称支持的大多数脚本。此外,它是随Office一起提供的字体,并不一定在每个Windows系统上都有。请不要使用它。 - Joey
@Joey:那么默认应该使用哪种Unicode字体? - Jerry
如果你想要一个可以指定为默认字体的字体,可以包含大部分或所有语言......那是不可能的。不要这样做。如果您使用的脚本不包含在指定的字体中,则字体替换将为您选择字体。 - Joey
实际上,我正在处理字体的最低级别。基本上,我正在光栅化TTF文件中有趣的字形,并使用OpenGL渲染它们。我需要自己编写这样的字体替换代码。 - Jerry
@Joey:为了更准确地说明什么是“默认”,我将举一个具体的例子。我有一个包含昵称和分数的排行榜。我使用自定义字体来显示这些数据,这些字体是我们的艺术家与 UI 的其余部分一起创建的。但是,如果有人使用日语昵称,我希望切换到“默认”字体,因为我们的字体只包含 Unicode 字符的一个小子集。 - Jerry
4个回答

10
大多数字体似乎都不包含日文字符,在Windows上我发现Arial Unicode包含。但它的大小为26 MB,比我们整个游戏的大小还大!Arial Unicode包含的不只是日语字符,而且通常不是很好的字体:它被设计用来覆盖许多Unicode代码点,但缺少许多实际呈现某些语言所需的功能。更不用说它不能自由再分配了。我建议看一下Linux发行版使用的免费日文字体。例如VLGothic只有3.7MB,并且可以压缩到2.2MB,这将更加可接受。还可以看看高桥明、元谷出版社和利迹出版社等。
“日本字体是否有不同的字形?我的意思是,西方字体有衬线、无衬线或更奇特的版本。这也适用于亚洲字体吗?” 当然了。日本字体(以及其他汉字来源字体)也像拉丁字体一样差异很大。通常,字体可以按以下方式分类: - 高桥明体:通常是无应力的,没有线段结束符,并且几乎没有原始刷子性质的迹象。与西方“无衬线”字体最相似——实际上,“高桥明体”这个名字就是从这个传统中借来的。通常用作默认屏幕字体,因为它们在降低细节方面呈现良好。除了方形结束的高桥明体外,还有使用圆形特征的高桥丸体,与拉丁的圆形无衬线字体配合得很好。 - 明朝体:带有从笔画中风格化的衬线状结尾和强调竖直方向的字体。通常具有正式的外观,最类似于拉丁“衬线”字体,通常与过渡性衬线设计配对使用,是文字处理的默认日文字体之一,与Times New Roman配对使用。 - 教科书体:正式手写风格,清晰易读,但不像明朝体那样直边分明。类似于一个易读的拉丁手写脚本字体;也可以与更有特色的衬线字体配对使用。
  • Kaisho:传统的毛笔风格,但仍然正常和易读,有些正式。通常在低屏幕分辨率下效果不佳。可以与半衬线或毛笔草书拉丁字体配对。

  • Gyōsho:草书风格,不太清晰,通常用于展示目的。也有草隶体将其推向一般难以辨认的长度。

  • 显示字体。有一些类似日常手写风格的样式,但通常较少真正古怪的新颖字体。可能是因为创建一个覆盖大量常见汉字的字体所需的工作量不值得。您还可以找到仅包含假名和拉丁(罗马字)字符的新颖字体,其中很少或没有汉字。


  • 1

    文件大小并不是避免在Linux或Mac上重新分发Microsoft技术的唯一原因!

    1.日文字体有不同的字体吗?我的意思是,西方字体有衬线、无衬线或更奇特的版本。这也适用于亚洲字体吗?

    CJK(中文、日文、韩文)字体确实有不同的字体。有些字体更书法化,而其他字体则更朴素。这近似于无衬线和衬线之间的区别。(CJK字体没有斜体或粗体的概念。我知道有表达强调的惯例,但我不记得是什么。)

    您可以通过比较Arial Unicode MS与MingLiU或MS Mincho在Windows上查看这些字体差异。Arial版本在拉丁字符和CJK成语中都非常“朴素”。

    与拉丁字符一样,我认为字体的区别纯粹是为了视觉吸引力,并不强烈暗示任何含义上的差异。

    对于您的第二个问题,我无法提供帮助。


    1
    文件大小不是避免在Linux或Mac上重新分发Microsoft技术的唯一原因!当然,任何包含亚洲字形的Unicode字体(包括免费的字体)都具有相当大的大小。我并不是要重新分发受MS许可的字体。 - Jerry
    1
    请避免提及Arial Unicode MS字体。人们可能会认为这是一个好的字体,但实际上并不是。它只是一个备用字体,而且非常过时。脚本支持也不存在。 - Joey
    我认为字体的区别纯粹是为了视觉吸引力,并不强烈暗示任何意义上的差异。但是,如果你问一个印刷工,他会告诉你完全不同的故事 :-) - Joey
    啊,好的,那我把这个评论移到问题里;-) 然后用大棍子打他。 - Joey
    东亚字体确实有不同的粗细,例如加粗可以用于强调。但是没错,斜体并没有任何实际意义上的存在。 - bobince
    显示剩余4条评论

    1

    是的,您需要为分发许可字体。您不能简单地使用计算机中的字体...对于文件大小,您应该只提取特定的代码页。通常情况下,Arial Unicode 在游戏中嵌入的价格为 $3500...不过这是所有 50,000 个字符的价格...

    来源:Monotype Imagaing


    0
    1. 是的。举个简单的例子,只需看看 MS PGothic 和 MS PMincho 之间的区别即可,如果您安装了 Microsoft Word,则应该可以找到它们。

    2. 不幸的是,我没有在 OSX 或 Linux 上使用 Unicode 字体的经验,所以无法帮助您。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接