iOS 8.2 以降で日本語フォントが正しく表示されない

高橋 啓治郎 -

(この問題は既に修正済みの可能性があります。現在の詳しい状況については Issue Tracker をご覧下さい。)

iOS 8.2 以降でデバイス内蔵の日本語フォントを使用すると、これに失敗し、フォールバックとして中国語フォント (Heiti) が使用されるという現象が発生します。この現象により、違和感のあるグリフが使用される、句読点の位置がおかしくなる、中黒(・)が化ける、等々の問題が発生します。

この現象についてはフォント側の問題である可能性も視野に入れて調査を行っていますが、現時点では解決にまで至っていません。

2015/5/7 追記

この問題はフォント名として ".Hiragino Kaku Gothic Interface" を指定することで一応の回避が可能です。具体的には次のようにします。

  1. 適当なフォント(中身は何でも構いません)をアセットとしてインポートします。
  2. フォントの Import Settings で "Incl. Font Data" のチェックを外します。この設定により、このフォントの実体はビルドには含まれなくなります。
  3. Font Names のボックスに ".Hiragino Kaku Gothic Interface" と入力します。

このフォントは標準のヒラギノ角ゴよりも細身のグリフとなるため、大きさが若干変化してしまう可能性がありますが、とりあえずおかしな文字が表示されるという状態は避けることができます。

他にご質問がございましたら、リクエストを送信してください

3 コメント

  • 0
    Avatar
    時村良平様

    Androidでも同様の現象が起きるようです。

    Unityのバージョンと、Androidの機種やOSバージョンの相性によって起きるようです。
    NEXUS7(2013)のAndroid5.0で発生し、Android4.4にダウングレードすると発生しなくなったようです。

    こちらのブログにも似たような情報がありますので、ご参考までに
    http://tarowork.hatenablog.jp/entry/2014/11/21/171939

  • 0
    Avatar
    高橋 啓治郎

    Android については、Unity 側で日本語フォントへのフォールバックを行うことができていないという点が問題であり、ご指摘のあったブログ記事にもあるように、適切にフォールバックを指定すれば解決できます。

    上の iOS の問題は、そもそも日本語フォントをロードすることができないという、かなり根っこの部分の問題になります。そのために、Unity 側で日本語フォントへのフォールバックができているにも関わらず表示に失敗しますし、適切にフォールバックを指定したとしても、やはり表示に失敗してしまいます。

    Android の方の現状にも歯痒いものがありますが、症状としてはこちらの方が深刻ですので、できる限り早く解決したいと考えています。

  • 0
    Avatar
    時村良平様

    了解しました。今後の改善に期待します。

    Androidのほうでフォント名を設定するときに、外国語対応なども考えるとどんなフォント名を用意しておけばいいのか分からないため、「Unity側がデフォルト(Arial設定)で設定しているフォントリスト」+「自分が追加するフォント」のようにできると、助かります。
    デフォルトで設定しているフォントリストをドキュメントなどに記述。もしくはエディタ拡張プログラムなどで取得できるようにして(現状できるのであればそのやり方をまとめて)いただけると助かります。

ログインしてコメントを残してください。
Powered by Zendesk