今年7月にUnity Technologies Japanより発表された「ユニティちゃん」の新プロジェクト『The Phantom Knowledge』。今回はそのティザー映像について、[TimelineEditor]などの主要新機能を中心にメイキングを紹介する。
※本記事は月刊「CGWORLD + digital video」vol. 232(2017年12月号)からの転載となります
TEXT_京野光平 a.k.a. ntny & 小林信行(Unity Technologies Japan)
EDIT_海老原朱里 / Akari Ebihara(CGWORLD)、山田桃子 / Momoko Yamada
Unityの新搭載機能を活用したテックデモ映像
『The Phantom Knowledge』(以下、『TPK』)はUnity Technologies Japanが制作するユニティちゃんの新しいテックデモ・プロジェクトです。ユニティちゃんについては2014年にも『ユニティちゃんライブステージ! -Candy RockStar-』( 以下、『CRS』)という歌とダンスのテクニカルデモを制作しており、このプロジェクトはデータを丸ごと公開することで、様々なゲーム開発者やメディアクリエイター、教育方面など、多岐にわたってひとつのベンチマークとして使われてきました。
ユニティちゃん新プロジェクト『The Phantom Knowledge』
プロデューサー・大前広樹/ディレクター・ntny/キャラクターモデリング・ntny、かにひら、SIGE、今井舞子/制作協力・FlightUNIT/アニメーション・ntny、かにひら/テクニカルアーティスト・Eske Yoshinob/シェーダ開発・小林信行/テクニカルサポート・森 俊之、Seiya Ishibashi、山村達彦/制作・unity-chan!
unity-chan.com/contents/the-phantom-knowledge
©2017 Unity Technologies Japan
今回の『TPK』は『CRS』の第二弾に位置するプロジェクトで、Unity 2017.1から実装された[TimelineEditor]の機能の紹介と実例を兼ねたサンプルプロジェクトとなるべく制作されました。また、近年のDCCツールの高騰により、新しいパイプラインを模索する映像スタジオも少なくありません。Unityはゲームエンジンですが、Timeline機能の実装により、ゲームのデモシーンだけではなく映像制作のパイプラインに組み込むことで、Unityの新しい使い方を提案していきます。
また、『TPK』のために、ハイクオリティのトゥーン、およびセルルックシェーディングを実現するNPR(ノンフォトリアリスティック)シェーダを開発しました。それが「ユニティちゃんトゥーンシェーダー2.0」(以下、UTS2.0)です。UTS2.0は、「unity-chan! Official Website」(unity-chan.com)のDATA DOWNLOADコーナーより、ユニティちゃんライセンス2.0で提供されています。日本語、および英語の詳しいマニュアルと共に提供されており、商用・非商用を問わずゲームや映像に使用でき、しかも無料です。ぜひダウンロードしみてください。さて、今回は[TimelineEditor]とUTS2.0、そして本プロジェクトのために内部で開発された支援ツール「NormalPainter」などについて解説していきます。Topic 1 TimelineEditorの概念と付き合い方
Timeline機能を使いこなすための考え方
Timeline機能は基本的に見た通りのものです。各素材を要素別にトラック配置することで、時間軸に沿って表示/非表示を切り替えたり、特定のアニメーションやイベントを再生させます。CGWORLD読者であればAfter Effectsを使い慣れている方も多いと思いますが、UnityのTimelineはAfter Effectsとちがい、必ずしも1トラック1素材ではありません。
例えば、キャラクターモデルの表示/非表示を制御する[ActivationTrack]を置き、その下にアニメーションを制御する[AnimationTrack]を配置します。ユニークなのは、この[AnimationTrack]には複数のアニメーションファイル(FBX)をトラックとして配置することができる点です。最初にこの機能をテストしようとする人はおそらくキャラクター1体、背景1つ、2つのカットといった、少ないリソースで触り始めると思いますが、この概念は複数のキャラクター、複数の背景、複数のカットでこそ真価を発揮します。例えば、本ページで掲載しているシーンは1つの背景に3体のキャラクターがいて、連続した3カットのシーンです。ここでポイントとなるのは「連続した3カット」という点です。従来はこういったシーンでも基本的に「1カット×3」という概念で制作されましたが、UnityのTimelineを使う場合は「連続した3カット」として考えると非常にスムーズです。途中でカメラや背景、キャラクターが大きく飛ぶようなカットであっても"同じ場所で起こっている"という考え方が重要です。
TimelineEditorの使い方
『TPK』ではこれら「連続したカット群」を「シーン」として扱いました。1つのカットグループに複数のカットが入ることで、管理を効率化さています
UnityのTimelineは[Prefab]によって非常に柔軟なアセット管理ができます。それはキャラクターのみならず、背景データの扱いも同様です。『TPK』ではキャラクターやカメラ、ライトはカット側に、背景オブジェクトは背景側にグループ化させることで、カット単位ではなくシーン単位での管理を可能にし、複数のシチュエーションを頻繁に行き来する構成をつくることができました。なお、キャラクターはカット単位でのグループなので、特定のカットだけのスペシャルな編集も可能です。例えば、後述のカット単位で個別の法線情報をもつことができる「NormalPainter」は多くのクリエイターが望んだ機能のひとつと言えるでしょう。
Prefabによる柔軟なアセット管理
TimelineはPrefabによって高度、かつ柔軟な編集ができます。画像は緑の部分が大元になるベースで、赤が実際にカットで使われるコピー。緑はAスタンスでアニメーション類はいっさい、もっていません。赤は緑を複製し、各カットグループに入れることで、大がかりな修正はベースPrefabの更新、そしてカット単位の修正は複製した方を使うことで柔軟な編集が可能となります
次ページ:
Topic 2 ユニティちゃんトゥーンシェーダー2.0
Topic 2 ユニティちゃんトゥーンシェーダー2.0
UTS2.0は高品質のトゥーン、およびセルシェーディングを実現するのと同時に、プロのアニメーション制作現場や、高品質のVRコンテンツでの使用に堪えうるように、以下のような機能を備えています。
正確なカラー配置と柔軟な調整が可能
UTS2.0ではトゥーンシェーダの基本である「光源方向を考慮した各カラーの塗り分け」が正しくできます。したがって、カラー設計の担当者がいる制作ラインでは、各シーンに必要なカラーセットを定義しつつ作業することが可能です。しかも「通常色(BaseColor)」「1 影色(1st_ShadeColor)」「2 影色(2nd_ShadeColor)」「ハイカラー」「リムライト」の各カラーに対して、「各カラーの境界にぼかしを入れるか?」「ライトカラーを各カラーに反映させるか?」「光源方向を考慮するマスクをリムライトにかけたり、ハイカラーにマスクをかけたりなどの強力なマスク機能」などを使うことで、個々のカラーに対して様々な調整が適用できるようになっています。その結果として、セル調のルックからイラスト風のルックまで、幅広いルックを設計することができます。
イラスト風ルックとセルルック
シェーダプロパティの設定で、同じマップからイラスト風ルックもセル調のルックもつくることができます
カラー設定画面
複雑そうに見えるかもしれませんが、各カラーに対し共通のオプションがそれぞれON/OFFできるように設計されているだけです。順番に設定していくことで多彩な表現ができます
カラーやリムライトマスクの設定例
光源方向に応じたリムライトマスクの例。光源方向とその反対側でリムライトのカラーを分けて指定することができます
背景のカラー
3D背景オブジェクトにもUTS2.0を使うことで、セル調のキャラクターとよく馴染む背景をつくることができます。背景用のテクスチャは通常のアニメ用背景と同様に塗ってもらいました。また、影はシェーダで落としています
強力な影制御機能を搭載
UTS2.0では、「光源方向を考慮した各カラーの塗り分け」をする際に「通常色」「1影色」「2影色」が支配する各領域を、光源の設定を変えることなしに、シェーダ側のスライダのみで調整することが可能です。この基本機能に加えて、ライティングとは関係なくUVベースで「1影色」、もしくは「2影色」を常に配置する[ポジションマップ]や、ライティングに対してUVベースで各影色を現れやすくする[シェーディンググレードマップ]の2つの補正マップのいずれかをもつこともできます。これらの強力な影制御機能を使うことで、オブジェクトに対する光の当たり方をマテリアル単位で調整できるので、ライトリンキングを駆使したり、ライトの数を増やさなくても、ねらったルックをつくりやすくなっています。
顔の上の影と髪のハイライト
ユニティちゃんの顔の上を落ち影が滑り抜けると、髪の毛にハイライトが現れます。この効果は髪の形状に沿った影を[シェーディンググレードマップ]で指定することで、ライトが当たると自然にハイライトが浮かび上がるようになっています
ゲーム用に高性能なアウトラインシステムを搭載
[アウトラインサンプラー]を使うことで、UVベースでゲーム用のアウトラインの強弱を調整することができます。さらに、アウトラインカラーをベースカラーと馴染ませたり、カメラ位置を考慮した奥行き方向へのオフセット、カメラ距離を考慮したアウトライン幅の調整機能ももっています。また、PSOFT Pencil+ 4 Line For Unityと共に使用した場合を想定し、UTS2.0のカラー機能のみを搭載したシェーダも用意していますので、プロジェクトごとに必要とされるクオリティに応じて、使用するアウトラインシステムを選べます。
アウトラインサンプラー
Pencil+ 4 Line For Unityとの併用
UTS2.0にアウトラインシェーダとしてPSOFT Pencil+ 4 Line For Unityを使った作例。フレームキャプチャをすることで、映像クオリティのプリレンダー画像として利用できます
UnityのGIシステムに対応
特にゲームなどのリアルタイム向けの機能として、UnityのGIシステムに対応しています。事前計算によるライトプローブを間接光として反映することができるので、リアルタイムポイントライトでは負荷の高いモバイルやVRなどの環境でも、美しいGI表現を楽しむことができます。
GI表現
iOS/METAL/リニアカラーの作例。事前計算されたライトプローブの中をユニティちゃんが移動することで、ステージの環境光がユニティちゃんに反映されます
アニメ的な特殊表現のプリセットを用意
「前髪を透過して描かれる瞳」や「カメラに応じて動く天使の輪」などのアニメ的な特殊表現をシェーダがプリセットでもっていますので、すぐに使うことができます。また、UTS2.0はUnity 2017.1以降リニアカラースペースが使える環境ならば、どのプラットフォームでも同じ画を出すことが可能です。現在、Windows/macOS/iOS METAL/Android/PlayStation4/Xbox One/Nintendo Switchでの表示確認が終了しています。
次ページ:
Topic 3 内部で開発された支援ツール「NormalPainter」
Topic 3 内部で開発された支援ツール「NormalPainter」
今回のプロジェクトで制作した「NormalPainter」はUnity上でダイレクトに法線の調整ができる、非常に強力な支援ツールです。モデラーにとって法線の問題は非常にナイーブなものでした。一度設定してもポリゴンを切ったり貼ったりするたびに壊れてしまうので、どうしても"最後の転写"に頼らざるを得なかったのです。しかし、NormalPainterでは最終ルックを確認しながら、最終出力される場でダイレクトに法線の調整ができるので、トゥーン系のビジュアル表現をしたい人には心強いことこの上ないでしょう。何よりも強力なのは、従来の方法ではカットごとに法線を個別にもたせようとすると、都度DCCツールから再出力する手間が 発生していましたが、UnityではNormalPainterを使うことでDCCツールに戻らずとも、必要なときに必要な個所だけカットごとの法線編集を可能にしたという点です。
NormalPainterでの作業
カットごとのノーマル編集
編集したノーマルアセット。ポイントはデフォルト状態を先に保存して残しておくことです。といっても、多くのカットはデフォルトで十分なはずです
編集が終わったら、カット用に複製されたキャラクターPrefabから変更したいメッシュを保存したものに差し替えましょう。これでカットごとのノーマル編集が可能になります。なお、この一連のフローはさらに改良される予定なので、ご期待ください
Topic 4 Metasequoiaの作業結果をリアルタイムでUnityに転送する「MeshSync」
今回、開発したもうひとつのツール「MeshSync」について紹介します。MeshSyncは非常にユニークなツールです。キャラクターをモデリングする際、アーティストが使うツールは様々で、例えば自分はMetasequoiaを使っていますが、モデリング中はどうしてもMetasequoia上で表現可能なルックに限定されてしまいます。これが最終ルックでモデリングできるなら、アーティストにとってはまさに理想と言えるでしょう。MeshSyncはそれを可能にするツールです。Metasequoiaで操作した結果をリアルタイムでUnityに転送し、最終ルックで作業を進めることができます。
MeshSyncによるルックの確認
MeshSyncの作業画面。Unity上でシェーダやポストエフェクトを含めた最終ルックを確認しながらモデリングできます
Topic 5 手描きの2Dエフェクトをインポート
世の中には「描いた方が早い演出」というものがたくさんあります。例えば、大きな汗であるとか、擬音を入れてみるといった表現にはじまり、一部のエフェクトなどもそれにあたるでしょう。連番ImporterはそれらをTimeline上で簡単に扱えるようにした機能です。『TPK』では3Dキャラクターと手描きの2Dエフェクトの融合にトライしたかったので、この機能を開発しました。手描きの2DエフェクトはAfter Effects上で作成され、Unityにインポートしています。
手描きエフェクトを活用
エフェクトのために手描きの連番画像をインポートする拡張機能、連番Importerを開発しました。これらはストリーミング再生されるので、修正や管理も簡単です。なお、連番エフェクトをポストエフェクトの後に描きたい場合は画像をImageにし、Canvasに貼ることで解決できます