3DCGで何をどう作るか考え中

ZbrushとBlenderの使い方、ヒント、コツなど。たまにZbrushプラグイン開発も。

だんだん分かってきたUnityとBlenderの違い(Unity学習9回目)

(約 7,300文字の記事です。)

Blenderで作ったオブジェクトをUnityに持っていく試行錯誤をしていて、だんだんとUnityの特徴が分かってきた。同時にBlenderとの違いも分かってきた。そんな日記。気が付けば超絶長文に😱 でも中身はタダの感想日記。

BlenderとUnityについて知りたい人には参考になるかも知れない。

どっちでもできるならば「どっちで作るのが楽?」

そもそもBlenderとUnityとではソフトウェアの性格が違う。だから単純に比較することはできないのだけれども、あることをやろうとするとどちらでも実現可能という場面が結構ある。どちらも柔軟性の高さがあるからこそである。

だがUnityを学ぶにつれて、Unityが得意なこと、Blenderが苦手なこと、これがだんだんと分かってきた。というのも今までは自分が使えるツールの中であることをやろうとするとBlenderだけでしかできなかったので、とにかく「Blender最高!」となりがちだった。

だがUnityを学ぶにつれて「アレ?これはもしかしたらUnityのほうが楽にセットアップできて拡張や後からの修正も楽では?」と思えるシーンがぽつぽつと出てきたのだ。

ゲームエンジンだからこそ「効率的に作業できる」シーンが結構ある

BlenderはDCCツールなので、色んなことができる。これは周知の事実だ。その代わり、色々と面倒臭い。できる=快適にできる、分けじゃない。ごちゃごちゃとやってようやく=できる、場合もあるので、「できない」訳ではないけれど、快適じゃなかったりもする。この辺に気が付き始めた。

Unityはゲームエンジンなので、何でもかんでもできるように作られていない。その代わり、どんなゲームでも必ず必要になる必須作業はとことん効率化されている。特にUnityでは「後からの修正」にメチャクチャ配慮して作られている。この点も私がソフトウェアに求める思想と合致しているので、使っていて気持ちがいいと感じる理由だ。

今回強く感じた点はマテリアルの学習に入ってからだ。Blenderでもマテリアルをシェーダーノードで組むことができる。だがノードのつなぎ方にもコツがあるし、どこに何をつなげばいいのか初心者はお手上げである。Blenderの場合、チュートリアルを見て見よう見まねでノードをつなぐ。ちょっと凝ったシェーダーになるとたちまち蜘蛛の巣のように色んなノードがつながってもはやカオス(笑)Blenderでシェーダーノードアレルギーになる人も多いだろう。

その点Unityではそういう作業が(基本的には)不要で、もうカッチリとしたパラメトリック制御になっている。ノードをつなぐ代わりに指定するテクスチャファイルを入力ボックスにD&Dするくらいだ。制御可能なパラメータも最初からスライダとして用意されているからスッキリしている。何でもかんでも出来るわけではなくて、UI上はできることを制限している分、分かりやすいし作業しやすい。

そして恐らくは細かいことはC#で記述してね、という割り切りなのだと思っている。

UnityでもPBRが基本

また意外だったのがUnityでもPBRベースのマテリアル設定になっていたこと。Unityと言えばUE4と違ってフォトリアルが苦手なイメージだったので、デフォルトでマテリアル設定をPBRでセットアップできるとは思っていなかったので新鮮だった。

当時、BlenderでPBRマテリアルについて学習したときには結構苦労した。

3DCGのテクスチャ表現はPBRマテリアルが主流(初心者は従来手法の古い知識に注意) - 3DCGで何をどう作るか考え中

もともとPBRとは何?という基本から始まったから基本の理解に時間がかかったのはおいといて。

PBRの基本が分かった上で「じゃあBlenderでは何をどう操作して何がどう変わるのか?」が分かりにくかった。それを確かめるのに、ごちゃごちゃしたシェーダーノードの、分かりにくいUIのスライダをいじってみる必要があった。(そもそもシェーダーノード自体も有料アドオンを入れないと各プレビュー画像を確認できない。)最終アウトプットだけが3Dビューに表示されるから、なんだか使いにくいなぁと思っていた。

それに対してUnityでは、いじるべきところが少なくて、でもPBRの基本要素はしっかりと調整可能になっていた。それどころか、すぐに繰り返しパターンの制御など、フィールド一面を覆うテクスチャをすぐに使うための使い方の解説に入っていくことが多く、そのパラメータ設定もサクサクと解説されていく。(もちろん継ぎ目のごまかし方などそういう細かい話はC#の制御の話など、いくらでも上級テクニックが待っているw)だが知りたいのはまずは王道の操作方法なので問題ない。

何か1つ実現させるための手順の、分かりやすさと操作のしやすさがBlenderとUnityとではだいぶ違う!と感じた。

ビジュアライズはUnityでやったほうが良いんじゃない?

もちろんBlenderでもCyclesやEeveeがあるので、画像だったりムービーだったりを作れる。でもそれはUnityでも当然可能で、UnityのほうがそこからC#で更に細かく制御できるし、それゆえにゲームも作れる。

境界線は「どこまでフォトリアルな絵作りをするか」にかかっている。UnityはHDRPがあるにせよUE4やCyclesのようなリアル系の絵作りは苦手だ。HDRPは今後の進化に期待できるが、現時点ではまだ弱いと感じる。

BlenderとUnityのどっちでやっても同じことができるのだが、ビジュアライズに関してはUnityのほうが圧倒的に操作体系が洗練されているし、そこから外れる細かいトリッキーな制御はC#で制御できる。それがマテリアル単位だったり、シェーダーだったり、VFXだったりと、とにかく色んなことを制御できるように作られている。UIはあっさりと、だがC#による組み合わせでの実現可能性は広く担保する、というメリハリ。

Blenderの手順は「手探り」で洗練されていない

これに対してBlenderは、出来なくはないが、手順が洗練されていない。だからやり方が分からないのでネットで探して見るものの、見つかればラッキーだがその内容がトリッキーすぎて手順が意味不明だったり、そもそも情報がなかったりして「こんなことすらできないのか?」と途方に暮れる。

Unityでは枯れた手法については多くの人がたくさん情報を残してくれている。だから同じことを成し遂げようとすると数パターンのやり方に絞られるが、そのどれかにフィットする解説が複数あったりする。つまりUnityの場合の「この場合にはこうやる」というデファクトスタンダードな手法がある程度確立されている。それができているのはUnityのUIが優れているからだろう。

手法が確立されているから、上級者は初心者向けチュートリアルを作りやすい。解説しやすい。結果、無償での解説動画や解説記事がたくさん出てくる。しかも日本語の情報も多い点からも、Unityが支持されていることの証になる。

例えばYouTubeでUnityのマテリアルのセットアップについて調べてみると「unity material set up」では2年以内の動画がたくさん出てくる。ところが「UE4 material set up」となると途端に3年以上前の動画がぽつぽつ出てくるだけで、しかも本数が少ない。

これ、実は私が人生初のゲームエンジンを学んだUE4で感じた「難しさ、超えられそうもない壁」の印象だったのだ。知りたいのに情報が見当たらない。あっても分かりにくい、しかも数も少ない。となると、紹介されている情報が「果たして本当に正しいのか?」の検証すらできない。ずっと疑念が残る。

初心者に必要なのは「鉄板・王道的な手順」

これに対してUnityでは同じ課題について複数の人が解説してくれていて、そして大体同じ手法だったり、全く別で非効率なパターンと、驚きの超絶効率的なパターンと、の3種類に分かれる。そうやって情報を浴びていると「こういうときにはこういう操作」というデファクトスタンダードが見えてくる。これが初心者に取ってはとっても重要。鉄板・王道の操作、これが知りたいのだ!

Unityにはそのための情報がたくさんある。しかも情報があまり古くない。せいぜい2年以内の新鮮な情報がたくさん手に入る。

そして3年以上古いとUnityも2年くらい前に大きく様変わりしているので、情報として役に立たない。 これはBlenderが2.7系と2.8系以後で大きく異なる点と一緒だ。古すぎる情報は役に立たない。

【まとめ】初心者に王道な手順を示せる情報があるか否か

これが重要だ。同じ結果を出すのに無限のアプローチがあることなど、実は初心者にとっては無意味。それは中~上級者がお好みで選択すればいいだけのこと。初心者にとっては「まずは枯れた、確実な、安定した、誰がやっても同じ結果になる王道的な手順」が必要なのだ。

「こうしたければここをこう!」と一刀両断で答えてくれる道しるべ、これが重要。つまりは王道のみで構成された良質なチュートリアルが必要なのだ。Unityには公式でそれが用意されているし、YouTubeを見れば無料で詳しく解説してくれている動画がたくさん出てくる。1つのキーワードで10本ほど見れば「同じ手順と異なる手順」が分かるし、その解説の中で人によって異なる「ここに気を付けるべし!」という情報のバリエーションも出てくるので、初心者は学べば学ぶほどTipsが増えてUnityを使いやすくなる。

こういう好循環がUnityにはある。これは私がUE4を学んだ頃には感じられなかったことだ。だからUE4とはさようならしたわけだが。

(コラム)Blenderは現在進行形でUIが使いにくい

Blender 2.7系までが変態的過ぎたものが2.8系で「多少まともになった」くらいで、まだまだハッキリ言って使いにくい。出来なくはないけれど手間がかかったりボタン類が深い階層にあったり、アドオン開発したとしてもUI周りの実装にBlender特有の変な癖があったりと、使いやすいわけではないよ、Blender。

Mayaが無料だったら間違いなくMayaを使うね(笑)私が学生ならばMayaを先に学んで次にBlenderもついでに学ぶと思う。

だから何をやるにしても、変な独特なBlenderの使い方を覚えないといけない。覚えればそこそこ便利だが、でもそこに至るまでの手順が洗練されていないから、人に教えにくい。教わる側も、覚えにくい。それが至る所にある。

今は何とかモデリングについてはある程度自由に使いこなせるが、これがテクスチャ関連やマテリアル、UV関連、リギング、アニメーション、シェーダー関連となると、やっぱり「面倒臭いな、分かりにくいな」という感想はある。

これが原因でBlenderでビジュアライズしたいと思えなかったのだ。光学エフェクトを突き詰めたいとか思わなかった。なぜならば学習の道のりをイメージできなかったからだ。

手を動かしているよりもGoogle検索しているほうが長いんじゃね?その結果、何の成果も得られませんでした!となりかねないという予感。これが私にブレーキをかけていた。

知恵の王道があるか否か

Unityには学習の道のり(パス、path)に王道がある。学びやすい、実践しやすい。こういうプラスの風を感じる。まず学んでいて楽しい。Blenderとの連携方法が分かるにつれて、Blenderでやりにくかったことがあっさりできる・快適にできることが分かってくると、「じゃあUnityでビジュアライズすることにしよう」と思えてくるのだ。

繰り返しになるが、UnityとBlenderとで同じ光学系エフェクトを作るにしても、Blenderではかなりトリッキーな方法でシェーダーノードを組むので、Blenderではシェーダーノードに対する「網羅的な知識」がないと「そうやって組む」という発想すら出てこない。ではどうやってシェーダーノードに対する網羅的な知識を身に付ければいいの?シェーダーノードの迷路に入るための「その迷路の入り口を探す」ことから始まる。迷路 in 迷路である。

対してUnityでは「こういう類いのエフェクトは大体こうやって作る」という王道が決まり切っているので、そういう複数の王道を知ることで、あとは各自の発想で「あれとこれをこうすれば、こんな感じでイメージ通りに作れるのでは?」という一人歩きが可能になるのだ。王道の組み合わせで新たな物を作り出せるのはとても大きい。なぜならば、人に教えやすいからだ。

上級者になるにつれて「互いに共有している王道の数」が増えるので、上級者ほど、「あれとこれをこうすればできるよ」「なるほど!」となるのだ。話が早い。また初心者に教えるにしても、「まずは王道1~3を押さえてね。そうすれば1と3をこう組み合わせればこれになるよ!」と教えられる。

知恵の伝達がスムーズなのだ。Unityにはその土壌がある。

というわけでUnityというツールを手に入れた私は、何でもかんでもBlender最高!という一派から離脱しました😊

  1. 旧)Blenderはモデリング~レンダリング(絵作り)までのツール
  2. 新)Blenderはモデリングとセットアップ、リグアニメ設定用のツール

セットアップ以後の撮影(ビジュアライズ)にはUnityを使うことにしました。霧やスカイボックス、山並みなどの遠景や近景のオブジェクト配置や、近景に関わる光学エフェクトなども全てUnityで実現させようと思う。

そもそもBlenderで霧やスカイボックス、山並みなどの遠景や近景のオブジェクト配置についても全然王道パスがないから途方に暮れていた。1つずつGoogle先生と対話して試行錯誤しろってか?気が遠くなるわ……。

Unityではオープンワールド系のゲームも普通にあるから霧やスカイボックス、山並みなどの遠景や近景のオブジェクト配置は「ごく当たり前の手順」が用意されている。また遠景ほど軽くなる処理などもゲームエンジンなら当たり前なのでそういうことも気にしなくていい。要するに背景を作りやすい。

Unityアセットストアのポテンシャル

またこれらの知識は色んなビジュアライズに応用できる。静止画だろうがアニメだろうが、背景は必ず必要だ。そしてUnityにはアセットストアに高品質なアセットがたくさんある(その代わり価格は2千円台以上がザラだが、品質の高さとその後の運用性の高さ。)

Unityアセットストアのアセットは一般パブリッシャーから買ったアセットはUnityでも、Unity以外でも、商用利用であっても利用可能。NGなのは公式が公開しているごく一部のアセットくらいだが、ちゃんとアセットストアに注意書きがある。
くどいが、一般パブリッシャーから買ったアセットはUnity以外でも、商用利用であっても利用可能。絶対NG項目は「アセットの生の3DCGデータを直接転売する行為」これくらいだ。(それを取り出せなくしていればどんな体系で流用してOKということ。)詳細はこちら。

よくある質問(FAQ) - Asset Store

まぁこれはUE4のアセットストアでも同じ条件なのでUnity特有のメリットではないけれど。

とにかくUnityで風景作り、VFX作りの王道の操作方法を浴びるように身に付けたい。

さて、分厚い本もまだ書店に並んでいることだし、王道を学ぶための書籍は山ほどある。

楽しみだ。





今回の創作活動は約2時間30分(累積 約2,751時間)
(805回目のブログ更新)

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