あめ子の学習帳

3Dオブジェクトを虹色に光らせよう!ゲーミング○○の作り方【UTS/Mtoon】

やっほー、わたあめ子です。

みなさん、3Dオブジェクトを虹色に光らせてみたいなと思ったことはありませんか?
きっと誰でも一度はあると思います。

虹色に光る3Dオブジェクトを見るとなぜか楽しい気持ちになりますよね。

今日は3Dオブジェクトを虹色に光らせて楽しい気持ちになる方法をご紹介します。
UTS、Mtoonの2つのシェーダーでのやり方を書いてみるので、お好きなシェーダーで光らせてみてね。

準備

まずは必要なものを用意します

  • 虹色に光らせたいオブジェクト
  • 虹色のテクスチャ
  • シェーダー

虹色のテクスチャについては、どうやら継ぎ目が出ないように端同士を同じ色にしておく必要があるみたいです。
今回はこのあたりあまり研究していなくて、フォルノさんが配布してくださっているゲーミングテクスチャをお借りしました。

Unityを開いて、ユニティちゃんトゥーンシェーダーかMtoonシェーダーが使えるようにインポートしておきましょう。

虹色に光らせたい3Dモデルをhierarchyにドラッグ&ドロップし、asset内を右クリック→create→Materialで新しいマテリアルを作っておきます。
今回はひつじさんを虹色に光らせます。

新しいマテリアルが作れたら、さきほどドラッグ&ドロップしたモデルのinspectorを見てみましょう。
モデルのMesh Renderer内、マテリアルの欄のElement 0のところに新しく作ったマテリアルをドラッグ&ドロップ。

これで新しいマテリアルがモデルに適用されます。

準備はこれでOK!

さっそくお好きなシェーダーで虹色にしていきましょう。

UnityChanToonShader

まずはユニティちゃんトゥーンシェーダーで設定していきます。

さきほど作成した新しいマテリアルのシェーダーを、ユニティちゃんトゥーンシェーダーにしましょう。
たくさんある中から今回はToon_DoubleShadeWithFeatherを選択します。

次に、ベースカラーを黒にします。

理屈はよくわかっていないのですが、UTSではEmissiveという光らせるための機能にUVスクロールがついています。
光らせるための機能をゲーミング化のために使うので、モデルのベースの色は暗い方がいい…ということ…?と解釈しています。
詳しくはわからない。

ちなみにベースカラーが白だと、こんな風にゲーミング部分が見えなくなってしまいます。

次に、Emissive : Self-luminescene Setingsの欄を以下のように設定します。

「Base Speed」と「Scroll U/X・V/Y direction」は、虹色テクスチャの動きの向きや速さに関わる部分です。

項目ごとの意味については、ユニティちゃんトゥーンシェーダーのGithubに詳しい記載があります。

更にBase Speedの隣にある「UV Coord Scroll」をクリックし、「View Coord Scroll」に切り替えます。

こうすることで、UVの継ぎ目をなくし滑らかなゲーミングひつじにすることができます。
ただし、キューブなどフラットな面があるオブジェクトには向かないとのこと。

この状態で再生ボタンを押すと、このように虹色に光るひつじさんが確認できます。

やったね!

 

Mtoonシェーダー

VRMやVCIに使われるMtoonシェーダーにもUVスクロールの機能があります。
やってみましょう。

まずは新しく作ったマテリアルのシェーダーをMtoonに設定します。

次に、LitColor,AlphaとShadeColorに虹色テクスチャを入れます。

そして、下の方にある「UV Coordinates」の欄の
・Scroll X(per second)
・Scroll Y(per second)

にお好みで数字を入れます。

数値のプラスかマイナスでスクロールの方向が変わるので、逆に動いてほしいな…というときは数値のプラスマイナスを逆にしましょう。
UTSはBase Speedの欄がありましたが、Mtoonはper secondって書いてあるので、一秒あたりどのくらいの速さで動かす?という基準だと思います。

詳しくは公式のMtoonリファレンスも参考にしてみましょう。

この状態で再生ボタンを押すと、虹色に光るひつじさんが確認できます。

やったね!

Mtoonの場合はスクロールをMatcap座標に切り替えるみたいな機能が見当たらなかったので、UVのつなぎ目が出てしまうみたいです。

 

以上、2つのシェーダーでのゲーミング○○の作り方でした。

みんなもやってみてね!