kyapp69 / example-customcharset

Custom character set を使った TrueType フォントインポートの例。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

概要

Unity 3.5 から TrueTypeFontImporter に追加された customCharacters プロパティの使用例です。

このプロパティは、TrueType フォントをテクスチャ化する際に、限定された文字セットだけを採用するというものです。これを使用することにより、フォントに含まれる全文字をテクスチャ化するのではなく、ゲーム中で使用しうる文字だけをテクスチャ化することができます。

Unity で静的な日本語フォントを使用する場合、すべての文字を1枚のテクスチャに収める事が難しく、問題になりがちです。もしゲームの仕様として文字セットを限定することが可能ならば、この機能によって問題が解決されるかもしれません。

サンプルの内容

百人一首を順に表示します。

Screenshot on iPhone

フォントを百人一首で使用されている文字だけに限定することにより、高品質な文字表示を実現しています。

Character set

サンプルプロジェクトの内容は、実際のゲームにおける運用を意識したものとなっています。百人一首のテキストは、一首ごとに独立したテキストファイルとして Resources ディレクトリの中に格納されています。

Resources folder

カスタムメニューとして追加された "Custom Char" から "Collect Texts" を選択すると、これらのテキストアセットが収集され customCharacters に設定されたのち、フォントの再インポートが行われます。

Custom menu

Custom set 使用のコツ

フォントの Custom set を Unity エディター上で設定する(テキストボックスに手作業で入力する)場合は、未整理の生テキストを入れるだけでOKです。そのテキストから使用文字セットを自動的に抽出したうえでインポートが行われます。

ただしエディタースクリプト上から customCharacters を代入すると、この「文字セットの抽出」が行われません。テキストから重複文字を抜く作業を自前で行わなければいけません。

これは Enumerable の Dictinct メソッドを使うことで簡単に解決できます。

charSet = String(sourceText.Distinct().ToArray());

About

Custom character set を使った TrueType フォントインポートの例。


Languages

Language:JavaScript 100.0%