見出し画像

Unity Toon Shaderと現実(Unity学習17回目)

(約 3,400文字の記事です。)

今回は学びが多すぎてまとめきれないので、これまたただの日記です。そのうちある程度情報がまとまったらブログにまとめようと思う。

ユニティちゃんトゥーンシェーダーを試す

今日はUnityちゃんトゥーンシェーダー(UTS)の Ver.2.0系(レガシー系)と2.2系(URP用)を実験的に触った(最新は2.5系)。2.0系はチュートリアル通りの丁寧な解説でインストールできた。だが2.2系のURP用となるといきなり何の解説もないので、インストール方法からつまづく。

で、何だかんだでUTSを試した。とにかく色々触って学んだことが多かった。ちょっと書き切れない。

今日は感想だけ。

トゥーンシェーダーの夢と現実

今回一通りUTSを触った感想。実はかなり設定の手数がかかるという事実。シェーダー設定をすれば全自動で全ての色味がいい感じで影色なども全自動だと思っていた。だが現実は1つずつ、1色ずつの手作業指定。レンダリング結果を見ながら感覚重視で1色ずつ指定する。地味で手数が多い。

実はこれ、UTSをやる前にBlenderのトゥーンシェーダーでも味わったのだ。なので実はトゥーンシェーダーは今回は3例目だったりする。過去2例分の経験がある。だがその2例はいずれもBlenderだった。だからもしかしたUnityでは 何かしらの効率化が図れるかも知れないという期待があった。

だが現実は「まったく変わらず」、つまりはトゥーンシェーダーの共通の事項として、

1. 1影(あるいは2影)の色指定はユーザーが感覚重視で1色ずつ手で指定する
2. 影の出来具合も同様にユーザーが感覚重視で手動補正
3. マテリアルに同一パラメーターの一括適用はできない(これが驚愕)

1と2はBlenderでもUnityでも同様だった。なのでどんなシェーダーを使っても1つのマテリアルにつき1回ずつ色と影の出具合を手動調整することになる。そしてショックだったのは3。なんと他のマテリアルに任意のパラメーターの一括指定や一括変更ができないという事実。(マテリアルの設定値を丸ごとコピペは可能。)これはUTSのみならずRealToonという別のUnityアセットでもそうだった。

プチプチ地獄かよ。

任意のパラメーターの複数一括指定ができない

ってことはさ、仮に30個のマテリアルを使ったキャラの場合には30回も1影(場合によっては2影も)の色指定と影の出方をプチプチプチプチと指定することになる。凄く大変じゃない?

これが衝撃だった。もしかしたらUTSだけであってRealToonでは普通にインスペクタから複数一括指定できるのでは?と淡い期待を抱いて試したがこちらもダメだった。

というかRealToonはUTSとそっくりだ。もしかしたらRealToonはUTSのVer.1系のソースコードを流用して開発したのでは?とすら思える。それがいいか悪いかは私には分からないし事実かどうかも分からない。あくまで私個人の感想です。

手間がかかる分、実はUTSで割と仕上がりを追い込めることも分かった。割と細かい所まで制御できる。当然パラメータの数も多いのだが無限にあるわけじゃない。

画像1

例えばこんな感じで、色々と表現力を変えられる。線画や線の色、影色、ぼかし、反射光、リムライトなどなど、上記のように色々と指定できる。半透明も可能。UTSは2色の影まで指定できる。左の緑色の球には1影(1号影)と2影(2号影)があり、ぼかしのなじませも可能。他の2つは1影のみ(ぼかしも可能だが今回はくっきり表現とした)。セル画調にしても立体感の表現力に差が出る。他にもリムカラーを赤にしてみたり、半透明にしてみたり。

黄色と青の球はThe アメリカンコミックスという感じでチープだ。これではないんだな、欲しいのは。リアルとチープの間を表現できるUTSは、やはり欲しいと思った。

Blenderなどの有料トゥーンシェーダーではたいていは右の青い球みたいな仕上がりになり左側の緑の球みたいにするのは手間がかかる。と言いたいところだが、手数としてはBlenderの有料トゥーンシェーダーでも同じくらいの仕上がりにはできる。そしてどちらも結論としては1マテリアルずつの手動調整になるから、手間自体はUnityでもBlenderでもあまり変わらない。これが誤算。

というのも、ここで差がつかないとなると、静止画や動画を最終アウトプットする上では両者の差がかなり縮む。あえてUnityでなくても、という発想も出てきてしまう(笑)インタラクティブ性が不要だから。困った(笑)

強いて言えば繰り返し動作になるエフェクト系の応用先にゲームがあるという点でUnityは若干有利かな、程度。だがそこは本質じゃない。

マテリアル1つずつの指定ならばUnityアセットストアからの流用品をトゥーン化する際にもマテリアル1つずつプチプチプチプチ……とやるのか、と思うとめまいがする。例えばフィルタらしきものを全てのマテリアルに適用するだけで全ての色味がセル画調になるものだと思っていたので、この事実を知ったときの衝撃が大きい。UnityでもBlenderでも、トゥーンシェーダーの基本的な使い方には何の違いもなかったというショック。

3DCGをセル画調にするのは手間がかかって面倒くさい(笑)

でもまぁ冷静に考えればPBRマテリアルでリアルな質感を与えるにしても、マテリアル1つずつ吟味して設定していくことを考えれば、まあ当たり前なのかも知れない。前者があまりにも素人発想の幻想だったのかも知れない。

とはいえ背景に既存のアセットを流用する場合、PBRならば質感設定済みなのでポン付けで使えるが、それらの全マテリアルを1つずつセル画調にする作業が発生するとなると、色々と考えてしまう。手間の数は減らない、むしろ増えている。

Unityを使ううま味が減った?

この記事を書きながら、ふと思った。だったらフルでBlender内完結でいいのでは?と。そうすればモデリングからレンダリングまでBlenderから出さずに済むのでファイル互換を考えなくてもいい。

ただし将来的なインタラクティブ性への移行がスムーズにできるのはUnityだ。またエフェクト類もそのままリアルタイム表現に持ち出せる点もBlenderよりUnityのほうが有利だ。のちのちの「資産としてのAsset」の価値が高まるのはUnityのほうだ。

なのでどちらでも一緒ならばやはりUnityで挑戦したいと思っている。

VRChatとURP

これはちょっとUnity使いじゃないと訳が分からない話になりそうだがメモ。UnityとしてはレガシーなレンダーからURP, HDRPにユーザーを移行させたいようだ。だがVRChatではレガシーなレンダラーのみ利用可能でURPはまだ使えないようだ。

画像2

だからUTS Ver.2.0系がまだまだ現役なわけだ。Ver.2.2系はURP/HDRP対応だが、需要を考えるとVer.2.0系も現役ということになる。

恐らくはVTChatの内部仕様の都合でURPに対応する日は来ない気がしている。まぁそこまでVTChatに肩入れしているわけではないので、どうでもいいが。それにUTSのUIどちらもほぼ一緒なのでVer.2.0系だろうが2.2系以降だろうが使えることに違いはないし。

とりあえずこれで2週間以上かかったが、気が付けば念願のセル画調表現の手段が手に入った訳だ。

あれ、思ったほど感動がない(笑)まだ球体などのプリミティブ形状でしか試していないからだろう。


今回の創作活動は約1時間30分(累積 約2,767時間)
(757回目のnote更新)


筆者はAmazonアソシエイト・プログラムに参加しています。(AmazonアソシエイトとはAmazon.co.jpの商品を宣伝し所定の条件を満たすことで紹介料をAmazon様から頂けるという大変ありがたい仕組みのこと。)
以下のリンクを経由してAmazonでお買物をするとその購入額の1~3%ほどのお小遣いが私に寄付されます(笑)以下のリンクを経由して頂ければ紹介商品以外のご購入でもOKですよ~。



読んでくれてありがとう。気長にマイペースに書いてます。この出会いに感謝😊