マガジン

ゲームの文字組み:日本語を読みやすくする

遊びをつくる

執筆にClaudeを使用しています。

活版のような抽象的な字形とローラーを並べ、太さや間隔を検討する写真風イメージ。
記事のテーマをもとに制作したAI生成イラスト。

ゲームの完成度を大きく左右するのに、後回しにされやすいのが「文字組み」です。フォントを一つ選んでテキストを並べただけでは、プレイ中に読みにくい・目が疲れる・雰囲気が壊れるといった問題が起きやすくなります。 日本語の文字組みは、アルファベットとは異なる独自のルールを持っています。全角文字・縦書き・禁則処理・ルビといった要素が重なるため、HTMLやCSSで組む際に「なんとなく動く」状態のままにすると、細かい箇所で読み手のストレスが積み重なります。 この記事では、ブラウザゲームに日本語テキストを載せる場面を想定し、読みやすさを底上げするための判断基準と実装の手順を整理します。

この記事の目次
  1. フォント選びより先に決めるべきこと
  2. フォントの選び方と埋め込みの判断基準
  3. CSSで日本語を整えるための設定
  4. ゲーム特有の問題と対処
  5. 確認作業の進め方
  6. 次の行動
  7. 参考資料

フォント選びより先に決めるべきこと

文字組みの作業はフォント選びから始めてしまいがちですが、まず確認すべきは「どんな場面でテキストが出るか」の整理です。ゲーム内のテキストは大きく次の三種類に分かれます。

  • UIラベル:ボタン・スコア・残り時間など、短い情報を瞬時に読ませる
  • セリフ・説明文:複数行にわたる読み物として読ませる
  • 演出テキスト:タイトルやゲームオーバーのような、読むより見せる文字

この三種類は「読み方のスピード」が根本的に違います。UIラベルは視認性(一瞬で意味をつかめるか)が最重要で、セリフや説明文は可読性(長く読んでも疲れないか)が優先されます。演出テキストは雰囲気への貢献を優先してよい場所です。一つのフォントを全箇所に使いたい場合でも、サイズ・字間・行間は用途ごとに調整が必要になります。

フォントの選び方と埋め込みの判断基準

ブラウザゲームで日本語フォントを使う方法は主に三つあります。

  1. システムフォントに頼る:font-family: sans-serif などで端末の既定フォントを使う。実装コストはゼロだが、iOSとAndroidとWindowsで見た目が変わる。
  2. Webフォントを読み込む:Google FontsやAdobe Fontsなどから配信する。環境差をなくせるが、読み込み時間が増える。
  3. フォントをゲームデータに同梱する:ZIPでアセットをまとめる場合に可能。読み込み制御がしやすいが、ファイルサイズと使用許諾の確認が必要。

演出テキストや特殊な書体が必要な場面では、文字を画像として書き出しておく選択肢もあります。アニメーションや凝ったエフェクトを加えたい場面では、Webフォントより画像やCanvasの方が扱いやすいケースもあります。

ゲームのジャンルやボリュームによって何が適切かは変わりますが、「プレイヤーが最初のテキストを見るまでの待ち時間を増やさない」という基準を一つの軸にすると判断しやすくなります。フォントファイルはサイズが大きくなりがちなので、日本語サブセット(使う文字だけを抜き出したもの)を提供しているサービスや、必要な文字だけを指定してサブセット化できるツールを活用するのが現実的です。

CSSで日本語を整えるための設定

フォントが決まったら、CSSでの調整が読みやすさを決定づけます。以下は特に効果の大きい項目です。

行間と字間

日本語の本文テキストは、line-height を 1.7〜1.9 程度に設定するのが読みやすいとされています。欧文の基準より広めです。英数字が混在する場合は 1.8 前後が安定しやすい目安です。

字間(letter-spacing)は本文では基本的にゼロかごく小さな値で十分です。見出しや演出テキストで広めに取ると「間」が生まれて雰囲気が出ますが、本文に適用すると間延びして読みにくくなります。

禁則処理

行の先頭に「、。」などの句読点、「」などの括弧が来てしまう現象を「禁則違反」といいます。CSSでは word-break: keep-all と overflow-wrap: break-word の組み合わせ、または line-break: strict を使うことで制御できます。ゲームのダイアログやチュートリアルテキストでは見落としやすい部分なので、長めのテキストを実際に流し込んで確認するのが確実です。

テキスト揃えとコンテナ幅

日本語の本文は左揃え(text-align: left)が読みやすい選択です。両端揃え(justify)はレイアウトを整えて見えますが、文字の間隔が不自然に広がる行が出やすく、短い行が混じる場面では逆効果になることがあります。

一行の文字数は、ゲームUIの場合は画面サイズ次第ですが、読み物として読ませるテキストは 一行あたり30〜40文字 程度を目安にコンテナ幅を決めると読みやすくなります。これを超えて横に広がると視線移動が大きくなり、次の行頭を見失いやすくなります。

ゲーム特有の問題と対処

小さな文字での視認性

モバイル端末でプレイされることを想定する場合、本文テキストは 16px以上 を基準にするのが安全です。UIラベルは短いため14pxでも読めますが、長い文章を14px以下にするのは避けた方がよいでしょう。デバイスピクセル比(DPR)が高い端末では見た目の大きさが変わるため、実機または開発者ツールでの確認が必要です。

背景との対比

テキストと背景のコントラストが低いと、どれだけ字間や行間を整えても読みにくくなります。白背景に薄いグレー文字、背景画像の上に直接テキストを乗せるなどは、プレイ中の集中が途切れる原因になります。テキストの後ろに半透明の帯やパネルを敷く、テキストにわずかな影をつけるといった処理が有効です。アクセシビリティの観点から、コントラスト比の目安はWCAGの基準(テキストと背景の輝度比が4.5:1以上)が参考になります。

ダイアログ送りとテキストの長さ

テキストを一文字ずつ表示するいわゆる「タイプライター演出」を使う場合、1行に収まる量を超えてテキストが流れ込んでくると、コンテナが途中でリサイズされてレイアウトが崩れることがあります。テキストが入り切る高さをあらかじめ確保するか、最大行数で固定高にしておくと安定します。

確認作業の進め方

実装後は必ず実際のテキストを流し込んで確認します。ダミーテキストだけでなく、最長になりうる文章・句読点の連続・英数字が混在する文章を用意して試すのが実用的です。

  • 最長のセリフやチュートリアル文を流し込んで、はみ出しや禁則違反がないか確認する
  • スマートフォンの画面幅(360px前後)でテキスト全体を目視する
  • ゲームオーバー・クリア画面など背景が変わる場面で文字の読みやすさを確認する

一度テンプレートを作っておくと、新しいテキスト要素を追加するたびに一からスタイルを組む手間が減ります。

次の行動

ゲーム内で最も長いテキストを一つ取り出し、この記事の行間・禁則・コントラストの設定を実際に当てはめてみてください。手元で確認したら、作ったゲームをアソバース(https://aso-verse.com)に投稿してプレイヤーの反応を確かめるのも判断材料になります。テキストの読みやすさはプレイ感全体に影響するため、グラフィックと同じ水準で調整する価値があります。

参考資料

  • W3C「日本語組版処理の要件(JLREQ)」
  • MDN Web Docs「CSS テキスト」
  • WCAG 2.1(Web Content Accessibility Guidelines)