在Neoaxis界面中显示中文
前言:
最近又有朋友问起在Neoaxis界面中显示中文的问题, 惭愧的是, 因为忙于手头的游戏, 已经有段时间没打开过Neoaxis了. 今天终于得闲, 重新打开熟悉的Resource Editor, 居然在这三伏天里有亲切的暖意 :)
先简单介绍一下Neoaxis界面中显示中文的流程. 对于Neoaxis来说, 在GUI中显示中文只需要两个条件: 1)需要中文语言定义; 2)需要中文字体定义. 让我们来看看怎么满足这两个条件.
一、 中文语言定义: Chinese.language
1.1 复制已有的俄语语言定义文件
让我们先打开Resource Editor, 在Data/Languages下找到Russian.language, 右键, Copy.

然后, Paste
现在Languages下有三个语言定义文件.
将Russian2.language改名为Chinese.language

通过复制已有的俄语语言定义文件, 可以节省我们从头创建一个语言定义文件的时间.
1.2 输入中文翻译
双击Chinese.language, 点选左边language/textTranslations/UISystem, 可以看到目前界面上的文字是翻译成俄文的.

让我们把它们根据英文翻成中文,


然后关闭并保存Chinese.language
1.3 让Neoaxis使用这个语言文件
在Windows资源管理器中, 找到Neoaxis安装目录下Game/Bin/Data/Definitions中的Engine.config配置文件.
用记事本打开,找到 language = English 这行
改为language = Chinese
二. 中文字体定义: Default_Chinese.fontDefinition
2.1 安装Bitmap font generator
安装BitmapFontGenerator。 ( 在SDK/Tools/FontTools/BitmapFontGenerator目录下)
安装完成后,打开bmfont.exe
2.2 字体设置
选择Font settings设置我们希望在Neoaxis中使用的字体

在这里我们选择微软雅黑。
字符编码,选择Unicode
你还可以在Font settings对话框里进行字体大小, 字体平滑程度等设置。如果你在Neoaxis中发现字体不如你预期的清晰,不妨先回到这里更改相应设置。
2.3 选择你需要的字符
关闭Font settings对话框。 我们可以看到该字体可用的字符有29066之多,显然大大超过我们的需要。

我们可以通过Edit - Select chars from file, 来从一个文本文件中选择实际需要的字符。

但在此之前,让我们先创建一个文本文件, 在这个文本文件中,输入之前我们翻译过的那些中文字符。

记得用UTF-8保存。
通过Edit - Select chars from file选择我们创建的这个文本文件后, 我们就在Bitmap font generator中选中了所有我们希望在界面中显示的中文字符。
但别忘了,界面中还会有不少英文字符,既然我们没有在文本文件中输入,就需要在这里加入这些字符。
在Bitmap font generator右侧的字符集中, 点击Latin + Latin Supplement,这将自动加入所有常用的英文字符。

2.4 输出并转换字体定义文件
选择好字符后,我们可以开始输出字体定义文件了。
先对输出选项进行简单设置。Option - Export Options:

将Texture的Width和Height改为512, 将Bit depth改为32,在File format里,确认Font descriptor是XML, 文件格式是png.
也就是说,我们将使用512x512的32位字体贴图。
开始输出字体定义文件。Options - Save bitmap font as...
命名为Default_Chinese.fnt

输出后,生成两个文件。
Default_Chinese.fnt是一个XML格式的字体定义文件
Default_Chinese_00.png是字体贴图文件。
但由Bitmap font generator生成的Default_Chinese.fnt,Neoaxis没法直接使用, 需要通过SDK/Tools/FontTools下的BitmapFontGeneratorToNeoAxisConverter进行转换。
选择刚才生成的Default_Chinese.fnt,点Convert 开始转换。
将生成Default_Chinese.fontDefinition, 这才是我们需要的字体定义文件。 (如果在转换过程中报错,你需要将Default_Chinese.fnt用记事本打开后另存为UTF-8格式)

将Default_Chinese.fontDefinition和Default_Chinese_00.png拷贝到Game/Bin/Data/Fonts目录下
三、运行Neoaxis demo, 验证中文显示
有了语言定义和字体定义,我们就可以运行Neoaxis demo来验证中文显示是否正常了.

(完)
转自:http://www.indiegm.com/node/62