SlideShare a Scribd company logo
1
文字でカッコいい画面を作ろう。
そう…TextMesh Proならね
2
ユニティ・テクノロジーズ・ジャパン
山村 達彦
@tsubaki_t1
フォント、使ってますか?
4
5
フォントは意外と重要
6
ゲームの雰囲気を伝える
7
文字は一文字で意味を伝える
8
文字のレイアウトで見栄えが変わる
9
文字…フォント…大事…大事…
10
uGUIでは役不足
11
Text Mesh Proって どんな事が出来るの?
13
TextMeshProの凄い所
14
① 拡大してもフォントが滲まない
15
① 拡大してもフォントが滲まない
16
uGUI
TextMeshPro
uGUI TextMeshPro
17
② 様々なレイアウト調整機能
18
② 様々なレイアウト調整機能
カーニング有
カーニング無
19
20
21
③ 文字に表情を付ける効果が良い
22
③ 文字に表情を付ける効果が良い
フワっとした影 アウトライン グロー 模様
23
設定・変更は即座に反映される
24
④ この素晴らしい文字に演出を
25
④ この素晴らしい文字に演出を
26
Lightからの影響を受けるオプションも
27
⑤ タグによるリッチテキスト制御
28
⑤ タグによるリッチテキスト制御
• 太字
• イタリック
• アンダーライン
• 取り消し線
• 文字の大きさ
• マージン
• ハイライト
• アイコン表示
29
文字にアイコンを埋め込むことも出来る
30
① 拡大してもフォントが滲まない
② 様々なレイアウト調整機能
③ 文字に表情を付ける効果が良い
④ この素晴らしい文字に演出を
⑤ タグによるリッチテキスト制御
すごいぞTextMeshPro!
どうやって使うの?
33
34
フォント Text Mesh
コンポーネント
1 2 3
変換 登録
Font Asset
35
ゲームアプリの数学@GREE GameDevelopers' Meetup
36
x1 x1.5 x2 x3
37
38
フォント Font Asset Text Mesh
コンポーネント
1 2 3
変換 登録
39
40
41
42
43
44
フォント
Font Asset Text Mesh
コンポーネント
1 2 3
変換 登録
45
46
47
フォント Text Mesh
コンポーネント
1 2 3
変換 登録
Font Asset
48
49
50
マテリアルを増やす
51
52
53
54
55
どんな風に使うの?
57
58
59
60
61
62
63
64
65
66
67
1
2
3
68
69
70
uGUIとText Mesh Proの使い分け
72
VS
複数のフォントサイズ時に有利
フォントテクスチャの再構築が無い
ズーム時にエッジが綺麗
事前に使用する文字を登録する必要がある
解像度が一致してれば綺麗
ダイナミックフォント対応
フォント更新時(追加時ではない)
にスパイクが起こる
uGUI
禁則処理とかアイコン表示が出来る
既にUGUIで作ってるなら…
TextMeshProReplacerReplace box with image
https://github.com/jackisgames/TextMeshProReplacer
Q&A

More Related Content

PDF
【Unity道場スペシャル 2017博多】TextMesh Pro を使いこなす
PDF
ゲームの仕様書を書こうまとめ
PDF
UniRx完全に理解した
PDF
UE4における大規模背景制作事例(コリジョン編)
PDF
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
PDF
UE4で作成するUIと最適化手法
PPTX
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
【Unity道場スペシャル 2017博多】TextMesh Pro を使いこなす
ゲームの仕様書を書こうまとめ
UniRx完全に理解した
UE4における大規模背景制作事例(コリジョン編)
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
UE4で作成するUIと最適化手法
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)

What's hot (20)

PDF
【Unite Tokyo 2018 Training Day】ProBuilderで学ぶレベルデザイン レベルデザインについて
PDF
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
PDF
ゲームの仕様書を書こう2 仕様書に記載する機能内容
PPTX
UE4のライティング解体新書~効果的なNPRのためにライティングの仕組みを理解しよう~
PPTX
UE4ローカライズ事例 (UE4 Localization Deep Dive)
PDF
UE4のモバイル開発におけるコンテンツアップデートの話 - Chunk IDとの激闘編 -
PDF
MMOGで考えるゲームデザイン
PDF
MMORPGで考えるレベルデザイン
PPTX
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
PDF
UE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DD
PPTX
モバイルアプリにおけるアーティストフレンドリーな水面表現戦略
PPTX
RPGにおけるイベント駆動型の設計と実装
PDF
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
PDF
猫でも分かるUE4.22から入ったSubsystem
PPTX
[IGF2018] UE4でAndroidアプリを開発する際に知っておきたいパフォーマンス改善テクニック + INDIE GAMES FESTIVAL 2...
PDF
UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)
PDF
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
PDF
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
PPTX
Unreal python
PDF
UE4におけるエフェクトの基本戦略事例 後半
【Unite Tokyo 2018 Training Day】ProBuilderで学ぶレベルデザイン レベルデザインについて
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
ゲームの仕様書を書こう2 仕様書に記載する機能内容
UE4のライティング解体新書~効果的なNPRのためにライティングの仕組みを理解しよう~
UE4ローカライズ事例 (UE4 Localization Deep Dive)
UE4のモバイル開発におけるコンテンツアップデートの話 - Chunk IDとの激闘編 -
MMOGで考えるゲームデザイン
MMORPGで考えるレベルデザイン
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
UE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DD
モバイルアプリにおけるアーティストフレンドリーな水面表現戦略
RPGにおけるイベント駆動型の設計と実装
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
猫でも分かるUE4.22から入ったSubsystem
[IGF2018] UE4でAndroidアプリを開発する際に知っておきたいパフォーマンス改善テクニック + INDIE GAMES FESTIVAL 2...
UE4のローカライズ機能紹介 (UE4 Localization Deep Dive)
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
Unreal python
UE4におけるエフェクトの基本戦略事例 後半
Ad

Viewers also liked (9)

PPTX
Substanceテクスチャワークフロー XXX編
PDF
【Unity道場 2017】ゲーム開発者のためのタイポグラフィ講座
PDF
【Unity道場 2017】伝える!伝わる!フォント表現入門
PDF
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
PDF
【Unite 2017 Tokyo】スマートフォンでどこまでできる?3Dゲームをぐりぐり動かすテクニック講座
PDF
【Unity】今日から使えるTimeline
PDF
【Unity道場 2017】PlayMakerによる初めてのUnityプログラミング
PDF
【Unite 2017 Tokyo】Navmesh完全マスターへの道
PDF
【Unite 2017 Tokyo】もっと気軽に、動的なコンテンツ配信を ~アセットバンドルの未来と開発ロードマップ
Substanceテクスチャワークフロー XXX編
【Unity道場 2017】ゲーム開発者のためのタイポグラフィ講座
【Unity道場 2017】伝える!伝わる!フォント表現入門
【Unite 2017 Tokyo】インスタンシングを用いた美麗なグラフィックの実現方法
【Unite 2017 Tokyo】スマートフォンでどこまでできる?3Dゲームをぐりぐり動かすテクニック講座
【Unity】今日から使えるTimeline
【Unity道場 2017】PlayMakerによる初めてのUnityプログラミング
【Unite 2017 Tokyo】Navmesh完全マスターへの道
【Unite 2017 Tokyo】もっと気軽に、動的なコンテンツ配信を ~アセットバンドルの未来と開発ロードマップ
Ad

More from Unity Technologies Japan K.K. (20)

PDF
建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】
PDF
UnityのクラッシュをBacktraceでデバッグしよう!
PDF
Unityで始めるバーチャルプロダクション
PDF
ビジュアルスクリプティング (旧:Bolt) で始めるUnity入門3日目 ゲームをカスタマイズしよう
PDF
ビジュアルスクリプティングで始めるUnity入門2日目 ゴールとスコアの仕組み - Unityステーション
PDF
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
PDF
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
PDF
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
PDF
Unity教える先生方注目!ティーチャートレーニングデイを体験しよう
PDF
「原神」におけるコンソールプラットフォーム開発
PDF
FANTASIANの明日使えない特殊テクニック教えます
PDF
インディーゲーム開発の現状と未来 2021
PDF
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
PDF
Burstを使ってSHA-256のハッシュ計算を高速に行う話
PDF
Cinemachineで見下ろし視点のカメラを作る
PDF
徹底解説 Unity Reflect【開発編 ver2.0】
PDF
徹底解説 Unity Reflect【概要編 ver2.0】
PDF
Unityティーチャートレーニングデイ -認定プログラマー編-
PDF
Unityティーチャートレーニングデイ -認定3Dアーティスト編-
PDF
Unityティーチャートレーニングデイ -認定アソシエイト編-
建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】
UnityのクラッシュをBacktraceでデバッグしよう!
Unityで始めるバーチャルプロダクション
ビジュアルスクリプティング (旧:Bolt) で始めるUnity入門3日目 ゲームをカスタマイズしよう
ビジュアルスクリプティングで始めるUnity入門2日目 ゴールとスコアの仕組み - Unityステーション
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
Unity教える先生方注目!ティーチャートレーニングデイを体験しよう
「原神」におけるコンソールプラットフォーム開発
FANTASIANの明日使えない特殊テクニック教えます
インディーゲーム開発の現状と未来 2021
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
Burstを使ってSHA-256のハッシュ計算を高速に行う話
Cinemachineで見下ろし視点のカメラを作る
徹底解説 Unity Reflect【開発編 ver2.0】
徹底解説 Unity Reflect【概要編 ver2.0】
Unityティーチャートレーニングデイ -認定プログラマー編-
Unityティーチャートレーニングデイ -認定3Dアーティスト編-
Unityティーチャートレーニングデイ -認定アソシエイト編-

【Unity道場スペシャル 2017大阪】カッコいい文字を使おう、そうText meshならね

Editor's Notes

  • #3: 自己紹介を。 自分はユニティテクノロジーズジャパンの山村と言います フィールドエンジニアをしながら、Unityのエヴァンジェリストをしています。 福岡は初めてです。てっきり大阪と東京の間くらいかと思ったら、熊本とか長崎とかアタリだったでござる。 もしかしたら知らない人のために、Unityを少し紹介させて下さい。
  • #4: Text Mesh Pro
  • #5: フォント、変えてますか? 文字には拘ってますか? これはUnityの提供する最も雑なアセットですが、UIも雑ですがフォントも適当に貼られてます。 物にもよりけりですが、割と初めの方はフォントに意識を割かれる事が少なく、そのままArialが使われる事も多いです。
  • #6: しかし、 フォントには大きな可能性がある
  • #7: 例えば先程のタイトルのフォントを少し書き換えてみました。 フォントはゲームの雰囲気を伝える
  • #8: 文字は記号である。 同じ言語権の人に限られますが、内容を一瞬で誤解なく連絡できる魔法のツールです。
  • #9: 文字の配置で受ける印象も変わる デザインの本とかを呼んでみると、タイポグラフィ、 文字の配置方法で画面の印象を大きく変化させるテクニックが多く紹介されています。
  • #10: フォントは単なる「言葉を伝えるもの」という物だけでなく、 画面やゲームの雰囲気を作ったり、レイアウトしたり色々と良い。 さぁ、みんな使おう! となる所ですが、
  • #11: ただ、Unityの伝統的なUI機能は単純に文字を出すだけで満足しており、 フォントの力を100%引き出す事が出来ない。
  • #12: ということで、今回フォントの魅力を100%出しやすくするアセットである、 Text Mesh Proを紹介しよう。
  • #13: Text Mesh Pro
  • #14: Text Mesh Proには5つの特徴
  • #16: 拡大しても滲まない
  • #17: これはuGUIのテキストとTextMeshProのテキストを拡大スケールした時に分かりやすく差が出る。 uGUIのフォント解像度は画面解像度からよく見える物を選択するので、大抵の場合は問題とならないが、VRやUIをスケールするようなケースでは、かなりボケてしまう問題が、TextMeshProなら回避出来る。
  • #19: 沢山のレイアウト調整機能 例えばカーニングしたり、
  • #20: 範囲内で文字が埋まるように、等間隔で並べたり
  • #21: 禁則処理を行ったり。
  • #23: アウトライン・色の滲み・表面模様等の文字に表情を付ける効果
  • #24: 変更したら即座に反映される
  • #26: 凹凸や立体感といったエフェクト
  • #29: リッチテキストによる制御
  • #30: Spriteを登録すれば、アイコンも使える
  • #31: 独自にタグを作る事も出来ます。便利便利
  • #32: ここが凄いText Mesh Pro! どうです?少し興味が出てきたり…?
  • #33: まぁ色々と機能がある事は分かった。じゃぁ、実際どうやって使えば良いの?
  • #34: TextMeshProはStandardAssetsや基本機能としては含まれていないので、AssetStoreから入手します。
  • #35: 作業の流れですが、 基本的にText Mesh Proは、uGUIと比較して、少し面倒な手順が必要になります。 フォントをTextMeshAssetに変換(利用するフォントを登録) TextMeshのコンポーネントにTextMeshAssetを登録 使用する材質を選択 使う
  • #36: ちょっと小話で何でこんな面倒な事をしてるのかという話ですが、 Text Mesh ProはUnityのUIシステムと異なり、ダイナミックフォントではなくDistance Fieldという特別なフォーマットを使用して文字を表現しています。
  • #37: Text Mesh Proがズームしても滑らかなのは、これが理由です。 他にもアウトライン等にも活用してるっぽいですが。
  • #38: ただ、この計算はかなり負荷の高い事前計算が必要になるため、Text Mesh Proではフォントを利用する前に使用するフォントの選択や、データの変換が必要です。
  • #39: 話を戻しまして、実際に操作をやってみます。 まず、フォントの変換から。 今回はせっかくなので、モリサワさんのフォントを変換してみます。
  • #40: フォントコンバーターを表示し、フォントを選択します。
  • #41: 後は使用するテキストの範囲を入力します。 日本語の範囲を入力する場合は、
  • #42: 後は使用するテキストの範囲を入力します。 日本語の範囲を入力する場合は、レンジを選択して、日本語の文字コードを含めます。 含める文字コードの範囲は、Text Mesh Pro+日本語とかで検索すれば、素晴らしい記事が見つかります。
  • #43: コンバート、あっという間に終わりました。 ちなみに、これ5,000倍速です。
  • #44: コンバート完了したら、Font Assetを保存します。
  • #45: これで事前準備が完了しました。 後はText Mesh Pro(3D Text)や、Text Mesh Pro(uGUI対応)に変換して使用します。 例えばuGUI対応版の場合、こんな感じ。
  • #46: UIを作って、FontAssetを先程作成した物に差し替えるだけです。
  • #47: 後はテキストをセットすれば文字が表示されます。
  • #48: 後は使うだけではあります
  • #49: が、一つだけややこしい問題があります。 TextMeshProのエフェクトはマテリアルに格納されています。このマテリアルを切り替える事でエフェクトを表現しています
  • #50: このマテリアル、生成時は一つしか作られません。 そのため、一つ変更すれば全てのフォントが影響を受けてしまいます。
  • #51: ので、コレマテリアルを増やして複数種類のエフェクトを持てるようにします。
  • #52: 上のテキストのエフェクトだけを書き換えたい
  • #53: マテリアルを増やすには、マテリアルのCreate Material Presetという機能を使用します。
  • #54: マテリアルを増やせば、TextMeshProが指定のフォントに対して使用できるエフェクトの数が増えます。 実際に上と下のエフェクトの種類を分けて
  • #55: かたっぽだけにエフェクトを加えます。 こんな感じで、ユニークなエフェクトが必要な場合はマテリアルを量産します。
  • #56: さて、準備は整いました。 実際に色々と試してみましょう。
  • #57: さっそく使っていきましょう。 そこで気になるのが、何処に何をどんなふうに使うのか…という話です。 今回3つ考えてみました。
  • #58: 例えばボタンのUIを作ってみます。 こんな酷いUIではなく、少しの工夫を加えたものです。
  • #59: 難しい事はありません、基本的にはTextMeshやuGUIのTextと同じように使えます。
  • #60: まずはUIを用意して、TextMeshProをTextの変わりに登録します。
  • #61: フォントを選択します。 どんなフォントを選択するのかはゲームに寄りますが、ボタンなら読みやすいフォントより見た目の良いフォントを選択しても良いかもしれません。
  • #62: 後はUIにうっすらと影をつけちゃったりしたり色々です。
  • #63: 見出し用のフォント等もどんどん使って良さそうです。 昨今のゲームUIを見てると、アウトラインが付いてる事が多いです。場合によってはブラーもかかっています。
  • #64: ゲーム内の文字。特に値が変動する数値はTextureが少し面倒な部分なので、出来ればフォントで行きたい。 <<クリック>> また、読むことは出来ますが、背景の色が固定では無いので、アウトラインが欲しい こちらはよく動くオブジェクトになるハズなので、uGUIではなく3D Textベースがオススメです。
  • #65: という事で、アウトラインを付けます。 アウトラインは内側に伸びていくので、FaceのDilateで文字自体を広げてやると割とバランスが取れます。
  • #66: それと、文字と文字の間を詰めて表示します。 この際、文字の表示順を桁数が多い順に設定しておくと良いです。
  • #67: あと、せっかくなのでタイトルロゴ的なものもやってみます。 映画のパンフレットとか見てみると、意外とコレ多いんですよね。 もっとロゴロゴしてるかと思いましたが、そうでもなく。
  • #68: まずは文字の幅を調整します。 今回調整するのは、2つのアプローチで行っています。 一つはspacing optionで文字間の位置を調整 もう一つがmspaceタグでより文字の間を詰める
  • #69: ちなみに、フォントがカーニングの設定を持っている場合、Font Asset作る時にカーニング設定が作られます。一応後付で「
  • #70: 一応後付でカーニング設定…つまり、指定の順番でフォントが並んだら文字列の間を詰める処理は追加出来るみたいです。
  • #71: そしてLightingの項目で立体感を与えました。
  • #72: 最後にText Mesh ProとuGUIの使い分けについてです。
  • #73: Text Mesh Proを
  • #74: Text Mesh ProとuGUIの一番の明確な違いは、フォントがダイナミックかどうか。 ダイナミックなフォントを利用したい場合は、uGUIに軍配が上がる。 含まれる文字が既に決まっているならば、Text Mesh Proはすごく有効
  • #75: TextMesh Replacer、一気にuGUIのテキストをTextMeshProに変換する