チュートリアル / Mayaで作るセルルックキャラクター
そこはかとなくアウトローなモデリング方法でセルルックの美女を作ってみた
第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

  • Maya
  • アニメ
  • ゲーム
  • コラム
  • チュートリアル
  • マテリアル・シェーダー・UV
  • モデリング
  • 学生・初心者
  • 映画・TV
第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

皆さまいかがお過ごしでしょうか。エスエフ・グラフィックス林です。
暑いですね。多分これが公開される頃もまだまだ暑いんでしょうね。
さて、今回でいよいよ最終回となります!

最終回はモデルデータのUnityへの移行 + シェーダー設定、また予告していたようにキャラモデルのちょっとした小技?を紹介させていただきたいと思います。
Unityで使用するシェーダーはご存じの方も多いと思いますが、「ユニティちゃんトゥーンシェーダー 2.0」を用いて行いたいと思います。

予め、Unityのインストールが必要です。今回、コラム(サンプルデータ)では「バージョン2020.3.1f1」を使用しております。また、今回キャラに使用するシェーダーは、「ユニティちゃんトゥーンシェーダー 2.0」で、こちらもインストールの必要がございます。

ユニティちゃんトゥーンシェーダー 2.0は、https://github.com/unity3d-jp/UnityChanToonShaderVer2_Project/より入手可能です。

MayaからFBX移行

MayaからUnityにモデルデータをFBX形式で移行させます。

・出力前の準備

①メッシュ

全てのメッシュを1ツリーにまとめます。ツリー内に存在する不要なノードや各メッシュのヒストリ等の整理を行います。

スキニングやブレンドシェイプ等のデフォーマ設定がなされているメッシュは、「デフォーマ以外のヒストリ」削除を実行してください。
ブレンドシェイプ用のターゲットメッシュは、出力データに含める必要はありません。

②マテリアル

マテリアルの名称を解りやすいルールで設定しておきます。今回は「AR_部位名」で統一しました。そして、不要なマテリアルの削除、統合等を行います。

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

アウトライナ(ハイパーグラフ)上で、メッシュツリー、ジョイントツリーそれぞれのトップノード(スキニングしてある場合)を選択し、ファイルメニュー 読み込み/書き出しの「選択項目の書き出し」を実行します。

ファイルの種類をFBX exportに変更し、FBX出力オプションの設定を行います。オプションですが、今回はシンプルなモデルデータですので、ジオメトリとアニメーション共にすべてチェックを外して出力いたしました。

設定が完了したら任意のフォルダに出力します。FBXエクスポートに関してのオプションの詳細は、オートデスクのサポート&ラーニングのページ等を参照にしてください。FBX入出力のトラブルは、ほとんどの場合ネット検索すると解消法がヒットするかと思います。

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

Unityで事前にデータの格納ディレクトリを作成します。今回はサンプルデータ配布の都合もあり、極力構成をコンパクトにするため、\Assets直下に「AREA_samples」というディレクトリを作成しそこにすべてまとめました。

AREA_samples以下の構成
・models →FBX
・materials →マテリアル
・textures →テクスチャ
・workdata →プレハブデータ
・scenes →シーンデータ

ディレクトリ構成の準備ができたら、先ほどMayaから出力したFBXモデルを\AREA_samples\modelsへ、テクスチャ(Maya上で使用していた画像データ)を\AREA_samples\texturesにそれぞれコピーします。

UnityのProjectウインドウ内のmaterialsディレクトリ上でマウスの右クリック→最上段の「Create」から新規のmaterialを作成します。

Mayaで作成したマテリアルと名称+数をそろえる必要があるので、複製して名称も揃えます。仮のマテリアルですので、ShaderはデフォルトのStandardのままでOKです。

マテリアルを選択し、[inspector]ウインドウの上部にある項目「Albedo」に対応するテクスチャを左ドラッグでアサインします。

Unity上で先ほどmodels内に置いたFBXをHierarchyウインドウにドラッグ&ドロップすると、Scene及びGameウインドウにモデルが表示されます。
この段階で明らかな不具合(メッシュの欠落等)が確認できた場合、もう一度Maya上でデータの修正を行いましょう。問題なさそうでしたらFBXを左クリックし、[inspector]ウインドウでオプション設定を行っていきます。今回はModelおよびMaterialタブのみ設定を行います。

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

Modelタブのチェック項目は、画像のようになっております。
今回使用するのは、法線編集を行ったモデルです。デフォルトの状態だとブレンドシェイプを動かした際に法線が競合し、見た目がおかしくなってしまいます。
タブ下部にある「Blend shape normal」の項目を「None」に切り替えます。こちらの設定を行うと、ブレンドにかかわらず常にベースメッシュの法線が適用されるようになります。

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

続いてMaterialsタブ内の設定を行い、Unity用マテリアルに一括変更します。

[On Demand Remap]の▽アイコンをクリックして開き、Naming→From Models MaterialにSearch→Recursive-UPにそれぞれ変更します。
直下のSearch and Remapをクリックすると、FBXに含まれるマテリアルに対し\AREA_samples\materialsフォルダ内の同名マテリアルに再マッピングされます。うまくマッピングされないマテリアルがございましたら、名称等再確認してください。

再マッピングに成功したら、右下のApplyをクリックして完了です。一度マッピングを行えば、FBXを更新しても設定は引き継がれます。マテリアル名称の変更+追加等行った場合は、再設定の必要がございます。

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

先ほどのマテリアル作成同様に、Hierarchyウインドウ上でマウスの右クリックからカメラ、ライト等が作成できます。

トゥーン系ですのでライトは基本ディレクショナルライトとなります。チェック用カメラを複数作成し、GameウインドウのDisplayに各々アサインしておくとチェックがスムースに行えて便利でしょう。

さて、前述のとおりユニティちゃんトゥーンシェーダー 2.0(※以降UTS2と表記します)を用いてマテリアル設定を行いたいと思います。
こちらのUTS2ですが、非常に優れたトゥーンシェーダーとなっております。これが個人使用、商用使用にかかわらず無料で使えるなんて恐ろしいですね。
今回はかなり限定的な基本機能のみを使用するので、少々もったいないというか申し訳ない気がいたしますが・・・。

まず、一番キモとなる肌のマテリアルから設定していきたいと思います。肌マテリアル「AR_face」を選択し、inspector上部の「Shader」からUTS2のToonhadeingGradeMapに切り替えます。

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

シェーダーが切り替わり画像のような状態となります。ここからシェーダーのパラメーターを設定していきます。まず、下地として基本グラデーションとアウトライン設定を行い、そこから拡張していくのが最も設定しやすいかと思います。

最初から様々な機能を使用すると、どのパラメーターがどう影響しているのか認識しづらく混乱してしまいますので、まずは基本設定をじっくりと。

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

「Basic Three Colors and Control Maps Setups」にて基本色と影色の設定。
「Basic Lookdevs : Shading Step and Feather Settings」にて影色の範囲、およびボケ加減を設定。
「Outline Settings」にてアウトラインの設定を行った状態です。第五回で施した法線の設定もここで生きてきます。

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

<基本色と影色>

UTS2に限りませんが、肌色設定のコツをお伝えしておきます。
・明るい領域→黄色系
・影色→赤系
を意識すると、発色よく健康的な肌色を表現しやすいかと思います。

「同じ色相」の明度+彩度の違いだけで陰影表現を施そうとすると、単調でくすんだ印象になりがちです。画像の右側はシェーダーで色相の変化を盛り込んだサンプル、左は同一色相で明度のみ変更したサンプルモデルです。カラーマップはいずれも白単色となっております。

注意点として、特にベースカラーはカラーマップの影響をダイレクトに受けます。カラーマップとマテリアルそれぞれ単体ではなく、「組み合わさった状態」での色味の変化を意識して設定します。白目などを考慮すると、ベースカラーのマテリアルカラーは完全な白色が望ましいです。黄色成分はカラーマップに依存するのが良いでしょう。

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

UTS2のアウトラインは、グレースケールのテクスチャで太さの制御が可能です。完全に線を消失させたい部分は黒(0.0.0) 幅を最大にしたい部分は白(255.255.255)という感じですね。

通常のカラーマップ同様、UVのスクリーンショットをガイドにテクスチャ素材を作成します。テクスチャはPhotshop等のペイントソフトで作成しますが、テクスチャ画像の状態では中々イメージがつかめません。、基本的にUNITY上のScene+Gameビューで適用状態を随時確認しながら作成していくのが確実です。

作成の手順としては、まずダミーでグレー単色(50%グレー)のテクスチャをOutline Samplerにアサインし、Gameビューで状態を確認しながらおおよそイメージ通りになるよう<Outline Width>を設定します。この段階でのラインの太さが基準となります。そのうえで、ラインが描画されてほしくない部分や入り抜きを表現したい部分に黒を塗り重ねます。最後に、ラインを強調したい部分に白を重ねていくような手順で進めると作業しやすいと思います。

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

Shadow Control Mapsで疑似的な落ち影、影色部分を表現します。グレースケールのテクスチャをShading Grade Mapにアサインし適用箇所を設定します。髪の生え際や奥まった部分、下唇の下やあご下面など基本的に常時影色で見えてほしいところなどで非常に効果を発します。

この機能で適用される影色は、基本グラデーションで設定したシャドウカラーが反映されます。また、ライトの当たり方も反映されるため、カラーマップに比べ違和感が生じにくいです。

濃度、ボケ加減もパラメーターで変更可能です。極端な陰影はカラーマップに描き込まずシャドウコントロールマップで表現したほうがより自然に表現できると思います。

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

ハイカラー(スペキュラ)マップを使用し、唇のハイライト、鼻の頭、頬のワンポイントを表現。こちらはいわゆるスペキュラマップです。
MatCap(マットキャップ)を使用し、目の虹彩と唇に反射っぽいニュアンスを追加しました。いずれもマスク用のテクスチャを作成し、影響範囲を限定しています(画像右端)

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

肌以外も一通りシェーダー設定を施した状態です。眉は2D表現でよくみられる「眉を前髪の手前に描画」にしたいため、描画順を設定できるステンシルを使用しました。
髪はUTS2の「AngelRing」を使用し、天使の輪っぽいハイライト表現を行っております。こちらを設定する場合、モデルにあらかじめセカンドUVを設定する必要がございます。

今回主に使用した機能は以下の6項目です。
・基本グラデーション
・アウトライン
・シャドウコントロール
・ハイカラー
・MatCap
・Angelring

当たり前かもしれませんが、どの機能を使用したらどういった効果が生じるかをしっかり見極めるのが重要です。特に量産を前提とした場合、使用項目が少なければ少ないほど作業工数(再調整も含め)を削減できます。最終的に、ほぼ同一の見た目にできるのであれば極力シンプルかつ修正調整の行いやすい構造が望ましいと思います。

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

マテリアル設定の微調整を行い、ブレンドシェイプの組み合わせで色々表情を変更してみました。表情のターゲットメッシュは、基本的に第4回のコラム内容準拠の方法で作成しています。

表情が加わると、一気に「ポリゴン人形」から「キャラクター」に印象が変わりますよね。仮に数が少なくても、「そのキャラのイメージが最も伝わる表情」と「そのキャラのイメージからかけ離れた表情」を作るだけでもモデルの魅力は数段アップするはずです。ポートフォリオなど静止画の作品の場合、その辺を意識するとモデルのポテンシャル以上の評価を引き出せるかもしれません。

UTS2は設定できる項目の豊富さ、直感的に調整できる自由度の高さ等、とても魅力的なシェーダーです。ぜひとも皆さんに触れていただけたらと思います。(オートデスクさんのコラムで書くのもどうかと思いますが。)
公開されているマニュアルやサンプルデータも充実しておりますし、書籍やユーザーさんによるweb上でのTipsも多く、トゥーン系を初めて触るという方にもおすすめです。

頭部バランス調整の小技

いざ頭部を作成してみたけど、アングルによってはなんだか輪郭がモッサリして見える、目と耳との間隔が離れすぎて見える、斜めアングルだとなんだか下あごのラインやエラが目立ちすぎるなど、一度は経験したことあるかと思います。髪だと角度にとっては前髪が薄っぺらくなる、アングルによって反対側のもみあげが見えなくなるなど。

デザイン画にしっかり準拠して作成しているはずなのになぜか印象がずれてしまう。これはそもそもデザイン画の段階で破綻してるんじゃ???といった状況に陥り、「2次元のウソ」を名目に元デザインから離れてしまったとしても、立体として破綻のない形に修正を行うことも多いかと思います。
なんと、元デザインからの逸脱や誰得アレンジを行わなくても再現できてしまう可能性はまだ残っています!その一例を簡単に紹介いたします。

顔シルエットの処理

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

画像のサンプルモデルは、3種共にフロントはほぼ同一、サイドは完全に合致したモデルです。しかし、トップビューでお分かりいただけるように、顔の側面のバランスに変化をつけています。
A 後部にかけてハの字にすぼまる
B 平行
C 後部にかけて逆?の字に広がる
これだけ見ると三者にほとんど違いはないように見えますが、斜めアングルで見てみると・・・。

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

左目の目尻から耳の付け根との間の距離に差があるのがお分かりいただけるでしょうか?Bはちょっと解り辛いかもしれませんが、AとCとでは幅に大きな差があるのがお分かりいただけるかと思います。一見些細な違いに思えるかもしれませんが、下あご~耳にかけてのシルエットは大きく異なるのがお分かりいただけるのではないかと思います。

デフォルメが強いキャラ(低等身、頭と首の太さのギャップが大きいなど)では特に有効です。むしろ、一般的なアニメキャラクターや2Dキャラクターは、多かれ少なかれこのような処理を行わないとアングルによって大きく破綻する可能性が大きいかと思います。

前髪 もみあげのボリューム

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

こちらも基本的に先ほどの顔側面の処理の応用になります。前髪の前面と側面との境を明確に協調することによりボリュームをコントロールすることが可能です。

先ほど同様、AB2つ共にフロントサイドは同一ですが、トップから見た際の前髪側面部分に変化をつけてあります。(見えませんがもみあげも同様。)
Aは明確に面の境目を強調したもので、Bは球面状のなだらかなカーブとなっております。

第6回:Unityへデータを移行、ユニティちゃんトゥーンシェーダーで仕上げ

斜めからのアングルで比較した状態です。特にカメラの反対側のもみあげなどは、なかなか2Dイラストボリュームを表現し辛いところではあります。このように面の変化のピークを意識的に盛り込むことにより解消できる場合がほとんどです。

※顔、前髪共に水平断面形状を円形ではなく四角形として捉えてみてください。
その四角形の対角線がカメラ(視点)に対して垂直に位置した時、最も幅が広く見えるはずですよね?それを利用して、特定のアングルで対角線を一番長く見せるような断面バランスにしたのが上記前髪+もみあげで、逆に対角線を短く見せるために断面を台形としたのが上記顔側面です。当然、円形断面が最もボリュームの変化が生じにくいですが、逆に言うと変化やメリハリを盛り込めません。

使いこなせると正面+側面のアウトラインは一切変更せずに、フォルムの調整が行えるようになります。
実践自体は非常にお手軽にできると思いますので、顔の輪郭バランスや髪のボリュームなどハマってしまったらぜひ試してみてください。

2Dキャラクターを3D化する際、多かれ少なかれ破綻は必ず生じます。自分の場合、頭部モデルで目に見える破綻は、真上もしくは真下アングルで見た場合に集中するよう心掛けています。

真上や真下から見てキャラクターを評価する人はめったにいないはずですし、真上に関しては髪に隠れますからね。もちろん、360°どこから見ても完璧なのが最高ですが、一番見られるアングルや一番見てほしいところを最大限良い状態にするのが重要かと思います。

今回もサンプルデータを用意いたしました。コラムで使用したUnityデータとFBX出力直前のMayaデータとなります。詳細はデータ同梱のドキュメントを参照ください。

さて、今回を持ちまして最終回となります。いまさらこんなことを言うとあれですが、キャラクター制作において作成手順の一つ一つの手法は、たいして重要だとは思っていません。

紹介した一つ一つの手法に、目新しい情報がなかったという方もいらっしゃるかもしれません。また、これらを順繰りに実践したからといって、思い通りのキャラクターが作れるようになるかと言ったらそうでもないと思います。

重要なのは、<明確な完成イメージを持つ>こと、そしてそれを成し遂げることに対して<妥協しない>ことだと私は思います。

スキルやキャリアにかかわらず、これさえ念頭に置いて取り組めば、必ず素晴らしいキャラクターモデルを生み出せるはずです。逆に言うとこの2つをないがしろにすると、見る人に響くキャラクターを作り出すことは非常に困難になるかと思います。

今回紹介させていただいた手法はそれを実現させるために、私なりの経験や考え方をもとに提案させていただいた作成法の一つだと捉えていただけると幸いです。

最後になりますが、弊社エスエフ・グラフィックスではキャラクターモデルに限らず各種3DCG全般のお仕事絶賛募集中です。まだまだ具体的ではないご相談レベルからのお話でも全く問題ございません。弊社お問い合わせフォームよりお気軽にお問い合わせください。

途中紆余曲折ございましたが、最後までお付き合いいただき、本当にありがとうございました。また機会がございましたらどこかでお会いしましょう!

製品購入に関するお問い合わせ
オートデスク メディア&エンターテインメント 製品のご購入に関してご連絡を希望される場合は、こちらからお問い合わせください。