[PR]「mojimo-game」から始めるゲーム用フォントの新たな活用
![]() |
ゲームで「絵が大事」というのはよく言われることで,同じ内容でもグラフィックスの良し悪しで評価や売れ行きが大きく変わったりするのはきわめて常識的な話となっている。ビジュアル要素がゲームをアピールする際の最大の近道であるのは間違いない。
一方で,昨今ではゲームエンジンが手軽に利用できるようになり,ツールのうえでは個人や小規模インディーズでもトップレベルのプロと変わらない開発環境が手に入りつつある。それでもビジュアルクオリティに差が出るのは,使用するアセットの差が大きい。
絵はがんばって描くか外注するとして,意外なところで差がつくのが日本語フォントの使い方だ。
![]() |
しかし,それに頼ってばかりでは代わり映えのしない雰囲気のゲームばかりになってしまう。ゲームエンジンが用意しているフォントがもの凄くひどいフォントというわけでもないのだが,一流ゲームスタジオのデザインに合ったフォントを使っているゲームと画面を見比べたときの印象,なんというか「ちゃんと作ってある感」はかなり違ってくる。
さて,そうは言っても印象だけでは納得しない人もいるだろう。
以前,フォントワークスがCEDECで講演した際に紹介していた資料だが,スマホアプリのフォントの種類を変えたときにチュートリアルの突破率がどれくらい変わるかという研究結果があるので,それを参照しておきたい。
アプリでチュートリアルを突破してくれるかどうかは,スマホアプリにとっては生命線ともいえる部分だ。昨今ではゲームの選択肢は山ほどあり,気まぐれなユーザーは,なにか気に入らない部分があるとすぐにやめてしまう。ゲーム内容の作り込み以前の部分でハードルがあるのだ。
![]() |
見てのとおりチュートリアル突破率は,スキップ,Popハッピネス,普通のゴシックの順となっている。グラフは0基準ではないので注意が必要だが,それでも優位な差が出ているとはいえるだろう。
![]() |
ある程度継続してプレイしているといえる,レベル5以上の達成率で大きな違いが出てきている。同じ期間でレベル15以上になっているような「やり込み勢」ではフォントによる違いはあまり見られないのも面白いところだが,これも決して差がないわけではなく,「ゲーム内容は同じでフォントを変えるだけでヘビーユーザーを0.7%増やせる」というのは,それなりに意味のあるデータといえるだろう。利用日数を見ても,継続率の大きな差につながっていることが分かる。
![]() |
![]() |
カジュアルプレイヤーほど,こういったちょっとしたデザインに敏感そうなので,とくに広告モデルの収益展開を行う場合はフォントの持つ意味というのは非常に大きいといわざるをえない。
大人可愛い系のスキップと丸文字可愛い系のPopハッピネスではどちらが人気が出るのか? キティちゃんというヒントがあっても,事前に判断することは難しい。またデザイナーのセンスとユーザーの好みが異なっているというのもありがちなことかもしれない。なので,(可能であれば)実地でデータの取れるABテストが重要であり,そのための選択肢も多いほうがよい。
念のためにABテストについて軽く触れておくが,これはビジュアル要素などを変えたAとBのパターンを提示して,その反応を比べるものだ。Webのバナー広告などで何種類もパターンを作って比べていると,なぜかその一つがやたらクリックされたりするといった現象が発生することがある。どこがよかったのかなどを考えても理由を見つけることは難しい。実際のところ「ピンク髪がウケるんですかね?」「でもこっちのはそうでもないですよ?」など,見比べても傾向がつかめないケースがほとんどだ。なので,たくさんパターンを作って最適解を実地で探るという手が使われる。思考放棄ながら効果は確実であり,ゲームだとアプリストアのアイコン決定などでも多用されている手法だ。ゲーム内容で試す場合,モバイルアプリやSteamなどでは比較的実施しやすいテストと言える。実地で行うことが難しい場合には,テスターをある程度集めての比較でも参考にはなるだろう。
ところで,こういったゲームエンジンで日本語を表示してみて,あるいはインディーズゲームなどをプレイしてフォントに違和感を覚えたことはないだろうか? UnityもUE4も漢字部分については似た傾向の字母を使用している(かな文字は違うが)。海外から調達しているのだろうか,たまに日本語として正確でない書体が含まれているのだ。日本語フォントは我々にあまりにも馴染み深いものであって,ちょっとした違いでもかなり敏感に感知されてしまう。ごく一部の文字に限られるが,目にしたときには違和感を覚える人は多いはずだ。「標準フォントだから使って安心」と考えるのはしかたないが,意外と標準フォントもリスクを抱えているかもしれないことは覚えておこう。
![]() |
![]() |
なんとなく「ちゃんとした日本語フォント」の必要性を分かっていただけただろうか。標準以外の日本語フォントを「あったらいいね」くらいで考えていた人は,ちょっと上のレベルで認識を改めてほしいところだ。
フォントワークスの「LETS」と「mojimo-game」とは
ということで日本語フォントを導入したい。
比較的ゆるいライセンスかつフリーで使える「まともな日本語フォント」アセットというものも存在するので,それらを利用するのも一つの手ではある。しかし,「フリーです」「商用可能です」と書かれていても「本当に大丈夫なのか?」といったあたりは注意する必要がある。ある程度の規模の組織であれば,エビデンスのしっかりしたものを使うべきだろう。
また,フォントの種類で売り上げなどに差が出る可能性が示されていることから,選択肢は多いに越したことはない。
正直言って,どのゲームにどのフォントが合うのかなどは分からない。ユーザー層などの違いとゲームの雰囲気などの組み合わせで最適解はあると思うのだが,それを知ることは容易ではない。できるだけ多くのフォントを使ってABテストを行いたい。
さて,伝統的に日本語フォントというのは高価だった。これは,もともと印刷屋や写植屋かプロのデザイナーといったきわめて特殊なプロフェッショナルしか使わないものだったのでしかたない面もある。
年配の方は覚えているかもしれないが,一時期のゲームの日本語フォントというのは,あまりリッチではなかった(もちろん,国産ゲームなどではいろんなフォントを使っているところはあったが)。海外製ゲームの移植版では,どこの国のフォントかと思うような文字を表示するものもあった。そうでなくても,当時のPCは日本語表示を行うのに十分な解像度を持っておらず,海外版の画面を見るとカッコいいのに日本版になるとなんかダサい感じになっていたりした。下のハーフライフ2は字幕だったので,16ドットフォントが使われているが,当時は12ドットフォントで頑張って日本語表示しているタイトルも結構あったものだ。それでも画面の解像度が次第に上がるにつれて,Windows標準である,MS ゴシックなどのアウトラインフォントが使われることも増えていた。
![]() |
![]() |
そのような状況を変える一助になったのが,フォントワークスのゲーム業界向けサービス「LETS」だった。これは多くのフォント制作会社が所有するフォントの多くを定額で使い放題にするというものだ。高価なだけでなく,日本語フォントはもともとゲームでの利用が想定されていなかったので,一般的な用途以外で使う場合のライセンス契約など,かなり面倒な問題もあったのだ。
LETSはそのあたりを理解したうえでユーザーの使いやすいようなライセンスに設定し,使いやすい価格に抑えた会員制サービスとなっていた。
ゲームのしょぼい日本語フォントに我慢がならなかった人たちが,よそで高価格で売っているものと同じものを破格で提供するためにいろいろ奮闘していた話をかなり前に熱く語られたこともあったのだが,それはまた別の話。とにかくフォントワークスはやってくれた。
![]() |
とくに現在Unityでは,LETSの割引販売キャンペーンも行われており,日本語フォント環境を一新するよい機会となっている(関連記事)。
さて,そういった状況もまた少しずつ変わってきている。ゲームエンジンが普及し,小規模デベロッパで多用されるUnityでは基本的にフォントファイル自体を埋め込んで利用する。後述のようにUE4ではフォントを画像化して扱うのだが,UnityではLETSもそのままでは対応できない(拡張ライセンスが必要)。
![]() |
mojimo-gameは,利用できる書体が12種類と限定されてしまうものの,LETSのような使い放題のサービスをさらに低価格で実現しており,加えてフォントのアウトラインだけ抜き出したりもOKで,さらにフォントファイル自体を埋め込んでの再配布までOKという,LETSの拡張ライセンス並の超太っ腹な内容となっているのだ(最初に話を聞いたときには思わず聞き返してしまった)。
そんなインディデベロッパのための日本語フォントサービスmojimo-gameだが,料金は利用するPC1台あたり年間4800円(税別)だ。個人開発なら1台で済むだろう。もちろんUE4で使うにも非常にお得なサービスではあるが,Unityで開発する小規模デベロッパにはぜひお勧めしたいところだ。
ちなみに,ある程度以上の規模であれば,前述のLETSをお勧めしたい。LETSは会員制のサービスとなっており,入会金は3万円,年会費は1年契約で3万6000円,3年契約で2万4000円となっている(税別)。入会金は1事業所当たりの価格で,年会費はPC1台あたりの価格となる。
mojimo-gameと比べると高額ではあるが,日本語フォントだけでも500
以上の書体,加えて欧文や外国文字など多彩なフォントが利用できる。合計すると6000書体を軽く超える(標準LETSの場合)。ある程度の規模がある会社であれば「どっかで拾ってきました」みたいなフォントを使うリスクは負うべきではないので損はないサービスといえるだろう。
Windows標準フォントの利用は?
「Windowsの標準フォントなら大丈夫では?」と思う人もいるかもしれない。VisualStudioで作って,フォント指定だけを行っているような表示プログラムでは問題はないのだが,標準フォントであっても必ずインストールされているとは限らないので(言語設定など),ゲームエンジンでは自前のフォントを用意してそれを使うようにしている。マルチプラットフォームで使うことが前提であれば,そうせざるをえないのであろう。Windowsのフォントを埋め込んでスマホ用のアプリを作ることは技術的には可能だが,ライセンス的には許されない行為となる。Windows用であっても再配布はかなり黒いグレーゾーンだ。フォントはどう使い分けるのか
さて,フォントにはいくつかの分類法がある
書体でいうと,大きく明朝体系とゴシック系に大別されるのはご存じの人も多いだろう。国際的に表記すればSerif(ヒゲつき)とSans-Serif(ヒゲなし)だ。
もともと,文字は筆やペンで書かれていたという歴史的背景があるため,線の強弱がついたSerif系のものが先にあり,そのあとでゴシック系のフォントが生まれてきたという経緯がある。日本語では,Serif系の代表が明朝体だ。明朝つまり中国の明の時代の文字がベースとなっている。書体としては宋朝体や元朝体などというものもあるのだが,あまり使われないか,ほぼまとめて明朝体で括られて呼ばれることが多い。
新聞や雑誌,文庫本など,日本語で本文部分に使われるのはほぼ明朝体となっている。慣れの問題もあるのだろうが,明朝体は長文の本文向きの書体であり,読んでいて疲れにくいとされている。
これは昔から言われていることであって,実験で検証されているのかどうかは分からない。個人的な体験ベースの話になるのだが,実際,ゴシック体でびっしり書かれた文章は少し読みづらく感じることもある。単純に明朝体のほうが情報量が多いので認識しやすいというのもあるだろうが,情報量と認識しやすさは直結しないというのが個人的な見解だ。たとえばフォントのヒゲは文字を見分ける際に非常に有用だが,ひらがなのハネなどをゴシック体でも多用しているフォントは(個人的には)ちょっとうるさく感じる。そういうのを好む人もいるので,このあたりは単純に好みの問題だろうが,ゴシック系はすっきりしていたほうが読みやすい。
さて,明朝体では気にならないハネなどがうるさく感じる理由だが,ゴシック体は同じフォントウェイト(太さ)でも明朝体より書体が太い(というか細い部分がない)ので,相対的に黒が多い=文字密度が高くて圧迫感があるように感じられる。加えてヒゲやハネも必要以上に大きくなるのが理由ではないかと考えている。加えていうが,このあたりは私の印象なので,個人差はあるかもしれない。
とにかく伝統的には,
本文 明朝体
見出し ゴシック体
といった使い分けが出版業界では行われていた。デザイナー次第で無限にパターンはあるが,これが一つの基本となるのは間違いない。
コンピュータが登場して以降は少し様相が異なる。画面に明朝体を十全に表現することが難しかったこともあるのだろうが,スクリーン書体としては,ゴシック体が標準的に使われるようになっている。ゴシック体は「ヒゲなし」が基本だが,I,l,1(大文字アイ,小文字エル,数字イチ)などの区別がつけにくいため,コンピュータ用で使われる書体ではゴシック体でもそれらの文字にヒゲがつけられることが多い。
次に用途でフォントを分類すると,本文用書体と見出し用書体に大きく分けられる。さらに言えばデザイン書体などいろいろあるのだが,大きく見出し用書体と括っていいだろう。
本文用の書体は明朝などのSerif書体が基本だ。本文用には癖の少ない書体で,細めのものが使われる。
活字における書体の形そのものでいうと,すべての書体は,
![]() |
という上下のベクトル線上のどこかにプロットできる。本来の形のものであればあるほど,長文でも読みやすく,字体そのものは地味である。デザインされいく度合いが強くなるほど見た目のインパクトは強くなるが読むのは難しくなる。
中間の,「マス目に合わせた」というのは,本来の文字の形をベースとしつつ,字面を大きく取った書体のことだ。見出し用書体のすべてがそうというわけではないのだが,明らかに流行の一つとなっている。字面を大きくするとちょっと丸文字ぽくなることが多いが,元々が丸文字系からのデザインが流れてきたことにも由来しているのだろう。
結果として,文字単体の視認性が上がり,ちょっとポップな感じになる。これは現在の見出し系のゴシック体では主流のデザインとなっており,どれくらいポップ方向に振るかで個性はあるものの,最近の標準的な傾向だ。分かりやすく言えば,MS Pゴシックに対するメイリオ的な位置づけの書体である。
字面的に見出し用のゴシック体は素のゴシック体より好感を持たれることも多いのだが,別にそちらのほうが優れているというわけでもない。字面を目いっぱい使っているということは並べたときの字間などを犠牲にしているということでもあり,文章での読みやすさはオーソドックスな書体のほうが上だとする見解が一般的だ。要は個性を生かした使い分けができるかだ。
mojimo-gameで使えるフォント
以上を踏まえて,小規模デベロッパでも手軽に使えるmojimo-gameで利用できる日本語フォントについて,ここで紹介しておこう。
提供されているフォントは12種類だ。一部にクセのあるフォントもあるものの,全体的に見ると,かなり使いやすいフォントが揃えられているという印象だ。同系統で,太さの違う書体も提供されているので,アクセント的に混在させるなどの使い分けもできるだろう。
●UD明朝-M
![]() |
一連のUD系列のフォントのなかで,UD明朝-Mは,非常にオーソドックスな明朝体となっている。M(ミディアム)という標準的な太さであり,本文向けのフォントとなっている。見出しなどで使うにはちょっとインパクトが弱いかもしれない。
●UD明朝-DB
![]() |
●ニューロダン-M
![]() |
太さ的に,大きな見出しで使うにはちょっと弱いが,汎用でさまざまなところに使える書体となっている。
●ニューロダン-B
![]() |
●セザンヌ-M
![]() |
●UD丸ゴ_スモール-M
![]() |
●UD丸ゴ_スモール-B
![]() |
●ドットゴシック16-M
![]() |
●ドット明朝16-M
![]() |
●スキップ-M
![]() |
●ハミング-M
![]() |
●コミックレゲエ-B
![]() |
フォントをゲームで使う
![]() |
短文が多いとなると,ほとんどの用途は見出し用フォントでまかなえる。とくにデザインされたUI要素では,デザイン性の少ないフォントを使うほうが不自然だ。先ほどのベクトルでいうと,(ゲーム内容にもよるが)標準書体より少し下に寄せる方向がよさそうだ。
1系統のフォントでもフォントウェイトを変えることで変化をつけられるので,全体を1系統のフォントでまとめて統一感を出すという考え方もなくはないだろう。しかし,フォントを変えることで容易に注意を引くことができるので,それを活用することも重要だ。用途の違う部分ではフォントを変えて変化をつけるほうがいいだろう。
かといって,あまり多くの書体を使ったり,過度にデザイン系の書体を多用するとアクセントがアクセントとして機能しなくなり,単にうるさいだけのデザインになりがちだ。本文書体と乱し書体ではないが,基本書体とアクセント用の書体の2,3種類でまとめるのがよいのではないだろうか。
インパクトのあるデザイン系の書体は,それだけで個性を出せる可能性があるものの,一発ネタ的な面は否めない。新作アニメが最新のデザインフォントを好んで使う傾向があるように思われるが,LETSなどの一覧に載っていないフォントを集めるのは少し資本力が必要かもしれない。
以下ではUnityとUE4で実際にmojimo-gameの日本語フォントを使うところを最低限に紹介しておこう。
●Unity
Unityでは,シーンの一環としてUIを配置できる。なので,テキストを扱うゲームオブジェクトを利用してゲーム内でテキストを表示する。具体的には,Text(テキスト)とTextMeshProというものがあるが,まずはTextからだ。これは一般的なテキストを扱うUIオブジェクトとなる。
以下,UIを日本語化しているので英語環境と若干異なる部分があるかもしれないが,英語UIの人はそれっぽいのを見繕ってほしい。
[ゲームオブジェクト]-[UI]-[テキスト]
でテキストオブジェクトが生成される。
![]() |
インスペクターを開いて,「Character」の部分をArialから変更すればよい。参照するフォントはAssetsに放り込んでおこう。まったく難しい部分はないだろう。フォントスタイルとして,「通常」以外にイタリックやボールドがちゃんと使えるのも嬉しいところだ。ボールドが使えるだけで,かなり使い勝手は上がる。フォントデータ数でいえば,日本語書体が4つ分が入っているといえなくもない(通常,ボールド,イタリック,ボールドイタリック)。
若干の注意点としては,標準フォントのArialで提供される日本語書体は行間隔1でもそれなりに行間が確保されていてあまり気にならないのだが,字面の大きな見出し系の書体を使うと行間はかなり詰まって表示されてしまうことがある。同じポイント数で文字を表示しても,縦幅というのは一定ではないのだ(当然横幅もだが)。このあたりの設定はフォントごとに異なるので,フォントを変更する際には,行間設定も合わせて確認するようにしたい。
一般に,行間額が狭いと読みにくくなるので,複数行にわたることがある場合は,行間隔を1.1〜1.2程度(フォントや画面構成による)に設定しておこう。
また,テキストオブジェクトは自動的に折り返し処理などもしてくれるのだが,日本語の禁則処理はしてくれないので,表示幅に合わせて事前にデータを加工しておくか,入念にチェックしておく必要がある。
![]() |
![]() |
![]() |
![]() |
もう一つの,TextMeshProは文字に対してさまざまな加工が行えるものだが,これも同様に,
[ゲームオブジェクト]-[UI]-[TextMeshPro - Text]
でオブジェクトを配置できる。
![]() |
[ウィンドウ]-[TextMeshPro]-[Font Asset Creator]
を起動して必要なフォントデータを生成する必要がある。
Sampling Point Sizeは使用するサイズより大きな値を入れておけばいいだろう。Atlas Resolutionは,フォントを生成するテクスチャのサイズを指定するが,ある程度大きくないと文字が入りきらない。使用するフォントサイズと文字数でバランスをとる必要があるが,最初は大きめに設定しておこう。
問題は,Character Setの部分かもしれない。ここでは文字コードの範囲で指定したり,利用する文字を登録したりできるのだ。ずんぶの日本語文字を入れておけば安心だが,このオブジェクトでエフェクトをかけるような文字がゲーム内でそう多く使われることもないのではないかという気もする。なので,明らかに使う文字を登録する「Custom Characters」が最も現実的ではないだろうか。
今回は,この原稿のテキストをソースに,フリーソフトウェアの「XtractKanji」を利用して,文章で用いられている文字だけを抽出してみた。なお,このツールは半角文字は抽出してくれないので,抽出結果に対して,
0123456789
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
!"#$%&'()-^\@[;:],./\=~|`{+*}<>?_
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
!"#$%&'()-^\@[;:],./\=~|`{+*}<>?_
のASCII範囲の文字列を追加して使用している。出力結果を見ながら,フォントとAtlasの大きさを調整していくとよいだろう。
![]() 4096では大きすぎた |
![]() 1024ではあふれている |
![]() 今回は2048が適切なようだ |
TextMeshProのようにフォントのアウトラインデータを取り出してゲーム用に加工するといった用途は,一般的なフォントのライセンスではサポートされていないことも多い。フリーフォントなどでも「改変して再配布」あたりまで明確に許可してあるフォントでないと手を出しづらい部分だ。mojimo-game(またはLETS拡張ライセンス)であれば,最初からそこまで含んだライセンスとなっているので安心してフォントをフル活用できるのが嬉しいところだ。
●UE4
![]() |
フォントデータは,フォントフェース(フォントファイル,字体そのもの)とそれを組み合わせたフォントアセットで扱われる。通常の書体とボールド,イタリックなどの書体をファミリーとして登録したファイルだ。書体の指定では,フォントアセットのほうを使用する。とはいっても,コンテンツブラウザに.ttfファイルをドロップすれば自動的に生成されるので難しい部分はない。
なお,標準のRobotoフォントでは,ボールドやイタリックも登録されているのだが,日本語フォントについてはレギュラーしか表示できないので注意しよう。
![]() |
新規のUIウィジェットをダブルクリックで編集すれば,パレットからテキストを選択して配置し,日本語テキストを表示するように指定ができる。表示の際の縁取りなども簡単に行える。
![]() |
Wrappingの[Auto Wrap Text]にチェックを入れれば,枠内で折り返し処理も可能だ。日本語の禁則処理もしてくれるのが素晴らしい。半面,行間の設定が見つからない……。どこかでいじれるのかもしれないが※,最悪長文表示では可読性の高いフォント選択が重要になってくるだろう。
※[Apperarance]-[Font]の[詳細設定]の下にある[Line Height Percentage]で行間を変更できました。
ウィジェットの設定が終わったら,ブループリントで表示できるように設定を行う。レベルプループリントを開き,ゲーム起動時のイベントからウィジェットを表示するようにする。まず,起動時のイベントを,右クリックで出るメニューから[イベントを追加]-[イベント:BeginPlay]で作成する。
白い矢印から線を引っ張って,次のノードとして,[ユーザーインターフェース]-[ウィジェットを作成]を選ぶ。出てきたウィジェットのブロックでClassとして,先ほど作成したUIウィジェットの名前を選択する。
あとはこれを表示するためにビューポートに接続する。白い矢印から線を引っ張り,実行可能なアクションから[UI]-[ビューポート]-[Add to Viewport]を選択して,ターゲットの部分から線を引いてUIウィジェットの[Return Value]につないでやる。
![]() |
これでプループリント画面のプレイボタンを押せば,Unrealエディタ本体に実行結果が表示される。
![]() |
ということで,ワープロなどのようにフォント選択一発で変更できるわけではないこともあるが,フォントファイルさえあれば,ゲームエンジンで標準以外の日本語フォントを扱うのはさほど難しいことではない。
綺麗なフォントをうまく配置すれば,ゲーム画面の印象はかなり洗練されたものとなる。冒頭でも紹介したように,ゲームの評価自体にも影響してくるレベルのものである。これからのゲーム開発では,新たな常識の一環なってほしいところだ。
かつてはやたら高価だったりライセンスが面倒だったりと,利用しにくかった日本語フォントも,インディーズレベルで十分活用できるようなサービスが提供されるようになってきた。前述のように,ある程度の規模の組織の場合はフォントワークスのLETSがお勧めだが,個人などの小規模開発では,mojimo-gameが断然お得で使いやすい。UIや画面デザインをもう一歩洗練させたい,正しい字を表示できるようにしたいなど,日本語フォントにもっとこだわったゲームをしたいと思う人は,まずはmojimo-gameから始めてみるのがよいのではないだろうか。