原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

【Unity】TextMeshProでディゾルブシェーダを適用する

通常運行

夏は「花火だー、お祭りだー」の声に耳を塞ぎ、秋はハロウィンの狂乱に目を塞いでやり過ごし、やっと落ち着いたと思っていたら、駅前に大きなクリスマスツリーのイルミネーションが準備されているのを目にしてウンザリした皆さんこんにちは。

秋風が独り身には冷たい季節になってきたので、この三連休は部屋に閉じこもって「The Outer World」ばかりをしていました。

宇宙を舞台にしたFalloutみたいなゲームなんですが、敵を倒すには銃で撃つより鈍器で殴った方が早い、という謎仕様に戸惑いながら異世界の荒野を彷徨っています。当然ながらゲーム開発の進捗なんてない。どうしよう。

 

GitHubとUnity

さて、「GitHub For Unity」が正式版でリリースされたこともあってか、現在GitHubではUnity製のWebGLゲームや作業効率を向上されるプラグインが数多く公開されています。

 

私も度々お世話になっており、つい最近の記事でもGitHubで公開されていて私のゲームでも使用したプラグインについて取り上げたのですが、今回紹介するプラグインもそれらと同様にGitHubから導入することができます。

 

github.com

「DissolveEffectForTMPro」ではTextMeshPro使用できるディゾルブシェーダが公開されています。

f:id:Karvan:20191104232756g:plain

 

使い方

上記のリンクから「Releases」タブを選択、最新版のunitypackageファイルをダウンロードします。

 

次にAseets⇒Import Package⇒Custom Packageからダウンロードしたunitypackageファイルを選ぶことでUnityプロジェクトに導入されます。

 

ディゾルブシェーダを適用させたいTextMeshProオブジェクトのShaderを「Distane Field(UIDissolve)」に変更し、「Dissolve」欄にディゾルブパターンのTextureを指定しますが、ここでは白黒画像でアルファチャンネルの画像を指定します。

 

shaderの設定

f:id:Karvan:20191105232609p:plain

 

ディゾルブパターンに使用するTextureの設定

f:id:Karvan:20191105232642p:plain

 

最後にディゾルブを動作させるスクリプト「UIDissolve」をアタッチします。

f:id:Karvan:20191105232706p:plain

ディゾルブの縁の色を変えたい場合は「Color」を、ディゾルブパターンのTextureの適用範囲を変えたい場合は「EffectArea」の項目を変更します。

 

ディゾルブの効果の強さを示す「EffectFactor」の値を変化させるとディゾルブの動作を確認できます。

 

スクリプトでUIDissolveクラスのPlayメソッドをコールすると「Duration」で設定した時間で先程の「EffectFactor」の値が0⇒1へ変化し、TextMeshProの文字がディゾルブパターンに沿って消されていきます。

 

試しにステージ冒頭、攻撃目標を説明する演出に使ってみました。
こんな感じ

f:id:Karvan:20191104232641g:plain

サンプリングの関係でぎこちない消え方ですが、実際はスムーズに動作します。
ディゾルブパターンのデザインに凝ればもうちょっとカッコよくなりそう・・・

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。