top of page

Unityでテキストをアレコレしてみた

アレコレした結果

今回使用したフォントはこちら

 TextMeshProとはUnityで綺麗なアウトライン付きのテキストを表示するときに使うアセットです。例えば下のような感じ。

 少し前までそれくらいにしか思ってなかったです。

 だからアウトライン出すだけのためにTextMeshPro用のFontAssetをつくるのがめんどくせーと思っていました。

 で、ゲームが完成に近づくにあたってタイトルロゴやサブタイトルが寂しいなぁと。

 もっと凝ったものになると画像や3Dモデルを作ったりすると思うのですが、私にはそんな技能はないのでできるだけアセットでナントカならないかなとアレコレやりました。

 TextMeshProのインスペクタに表示される情報です。

 赤矢印の先の三角をクリックするとシェーダーの情報が表示されます。

 赤丸の部分を調整することでアウトラインの太さを調整できます。

 他の設定をいじることで 

 Underlayで影をおとしたり

fb039a60c0ff4f9989d848f8b16dccfb

 Lightingで凹凸をだしたり

c11e3124c24c769d06faba9df9933b4d

 Glowで光沢をだしたり

8679df020279ff82108828c3e9dca90b

 などができます 。

 Color Gradientにチェックをいれると四隅の色を設定できます。

 上部を赤にして、下部を白にしてみました。

a7c55996bcd47a8975d463d12bb38e09

 フォントにセンターラインを表示する方法。

2b607a95cd4f81594284d86a1be2fe1a

 センターライン画像を用意する。

 私が作りました。ご自由にお使いください。

 Vertex Colorにフォントの下色を設定する。

 FaceのTextureにセンターライン画像を設定する。

 すると下記のようになる。

 TextMeshPro のデフォルトのシェーダーでは上手くいかないので編集したものを使用する。

 デフォルトのシェーダーは画像のアルファ値がそのまま反映されてしまうので、下色とFaceが合成された色になるシェーダにする。

 コピー元:Assets/TextMesh Pro/Resources/Shaders/TMP_SDF.shader

 コピー先:Assets/TextMesh Pro/Resources/Shaders/TMP_SDF Alpha Blend

 TMP_SDF Alpha Blend の下記の部分を編集する

  Shader "TextMeshPro/Distance Field" {

  ↓

  Shader "TextMeshPro/Distance Field Alpha Blend" {

  faceColor.rgb *= input.color.rgb;

  ↓

  half4 texColor = tex2D(_FaceTex, input.textures.xy + float2(_FaceUVSpeedX, _FaceUVSpeedY) * _Time.y);

  faceColor.rgb = input.color.rgb + (((texColor.rgb * faceColor.rgb) - input.color.rgb) * texColor.a * faceColor.a);   faceColor.a = 1;

 シェーダーを編集したものに変更するとセンターラインが入る。

2b607a95cd4f81594284d86a1be2fe1a

 FaceのColorやTiling、Offset を編集するとセンターラインの色や大きさを変更できる

 例えば下記のように変更するとまた違った雰囲気になる

虹と光が流れるテキストの作り方。

db612ea185dd7f1ac3b650139f5cd814

 虹色でシームレスの画像を用意する。

 今回使用した画像はここから

 スクロールする画像のWarp ModeをRepeatにする。

 そしてFaceのTextureに虹画像を設定すると以下のようになる

 上記の方法だと1文字単位で虹がかかっている。

 1行単位で虹をかける方法。

 複数行にわたって虹をかける方法

 虹をスクロールさせる方法。

 下記のように設定して確認のためにエディタを実行する。

 光をスクロールさせる方法

 UIEffect内のUIShinyを使用する。

 UIEffectはここからDLする。

 UIEffectをAssets内に配置したらUIShinyをAddComponentする。

 UIShinyをAddComponentするとテキストが非表示になるがインスペクタのUIShinyの右下のFixボタンを押すことで表示される。

 次に光のスクロールを設定する。

 今回は下記の用に設定して確認のためにエディタを実行する。

db612ea185dd7f1ac3b650139f5cd814

 BrightnessやGlossを変更しても光が弱いなぁと思ったときはFaceのColorで彩度をおとすと光っているように見えると思います。

 今回私がTextMeshProでやってみた装飾はこんなものでした。(他にもいい方法があったらツイッターなどで教えてください!)

 ただこれだけだとテキスト自体に動きがないので少し寂しいです、

 で、私はTextFXというアセットを愛用しています。

 このアセットをつかうと入場して待機して退場しての一連の動きを簡単に設定できます。

 例えば下のような感じ。

 上記のアセットのページからWebGLのデモがみれるので興味のあるかたはご覧ください。

おまけ

  FaceのTexture等にお使いください。


特集記事
最新記事
アーカイブ
タグから検索
まだタグはありません。
ソーシャルメディア
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square
bottom of page