<2>アニメCGに適したシェーダの開発
続いて松本氏が「Unityにはスタンダードシェーダという物理ベースのが標準で実装されてるんですが、今回はアニメCGということで独自にシェーダを開発する必要がありました」と、話を引き継いだ。
開発時に半分冗談で自分の名前を文字ってつけた「ハッキネンシェーダ」。そのまま名称が浸透してしまったという。このシェーダのコンセプトとして松本氏は「単一のシェーダのみでアニメCGだけでなく、様々なマテリアル表現をできるようにすること」を目標とした。
© ABC・東映アニメーション
シェーダとルックの開発
「エンディング後半のUnityパートは背景が宇宙ということで、暗い背景でシルエットが際立つように輪郭線の色を明るくしたり、リムライトやライト下からの照り返しを付加しています。今回はプリレンダリング用のモデルをそのままUnityで使用しているため、UVやシェーダのアサイン方法のちがいなど、様々な制約がありました。なるべくUVに依存したりテクスチャを新たに描いたりすることなく、シェーダのみでルックを変更する必要があったのです。なので、本来プリレンダリングで素材を別出しして合成するようなところを、シェーダ内でできるようにしています」(松本氏)。
ハッキネンシェーダでは、標準色、影色、二号影といった各々の色はテクスチャあるいは単色で指定することができるとのこと。「それぞれの不透明度や位置などを調整できるようになっています。あとシェーディングの具合も白黒のランプテクスチャによって、アニメ調のハッキリした影からスムーズな影まで自由に変化させることができます。さらにAとBの2種類を用意してまして、違ったシェーディングの具合をミックスすることができます」と松本氏。シェーディングの組み合わせによって、立体感を強調したり影のディテールを調整したりすることを可能にした。
完成した本作用のシェーダ
シェーダによる処理で挙げられた問題点は、カメラの焦点距離によって線の幅が太く見えてしまう現象。「ゲームエンジンでの輪郭線の生成は、シェーダによる処理とポストエフェクトによる処理があると思います。しかし輪郭線の描画は、画像処理以外ではモデルを外側に膨らませることで、輪郭線に見せているんです」。松本氏は解決策としてシェーダ側でカメラの焦点距離を取得、それによって線の太さを調節する機能を実装した。
「もうちょっと片側にリムが欲しいなとか、一方向に偏らせたいなとかいう場合には、リムをXYZそれぞれの方向にオフセットするパラメータを実装しました。それから影になってる部分にリムが欲しくない場合などには、ディフューズとシャドーの部分でカットする機能もつけてます。あと顔などでリムがほしくない部分には、白黒マスクでキャンセルする機能も付けています」(松本氏)。
内部処理としてUnityのフラグメントシェーダに記述。「右に追加情報を示してありますが、左の基本的な情報さえあれば、今回実装した機能は概ね実現できると思います」(松本氏)
締めとして松本氏は、「リアルタイム性を大いに活用して、なるべく手描きのテクスチャに依存せず、シェーダによる計算でどれだけ斬新な画を出せるかという挑戦になってくる」と展望。そして「デザイナーがシェーダを記述することの重要性ですね。ゲームエンジンのおかげで記述のハードルが低くなってます。デザイナー(アーティスト)自身が実装できるようになるのもメリットが大きいと思います」と自身の経験も踏まえた。
最後は中谷氏。「Unity内ではモデリングしたりアニメーションしたりってのが難しいんですね。なのでMayaなどのDCCツールから持って来る必要があります。それでどのようにデータを持っていったのか、データの管理でSHOTGUNを使用しましたので、その連携の話をしたいと思います」と解説を始めた。
ユニティ・テクノロジーズ・ジャパンとMARZA ANIMATION PLANETが共同開発した「Alembic Importer」
「持ってきたいデータのひとつにキャラクターのアニメーションがあります。FBXファイルで持ってくる方法もあるんですが、持ってこれるデフォーマはスキンクラスタやブレンドシェイプに限定されてしまいます。弊社ではFBXで持ってこれないデフォーマーを使用している場合もありますので、Alembicを使用しました。AlembicですとFBXよりもファイルサイズが大きくなってしまい、10分から30分は待たされてしまう問題があるんですが、デフォーマーの制約がなくて、再現が可能でした」(中谷氏)。
制作の初期はディレクトリー構造をMayaと合わせる必要があったため、1カット当たり1つのUnityプロジェクトで管理していたとか。
「つまり10カットあったらそうした作業を10回繰り返すことになるので非常に面倒くさいです。現在までに放送されたエンディングのバージョンは、宇宙、海、お菓子とあるのですが、宇宙バージョンでは手作業によるシーン構築を行ってました」。中谷氏はその煩雑さを解消すべくSHOTGUNとの連携を試みた。
SHOTGUNとの連携
「SHOTGUNから各種カットの必要な情報を取得してきて、データのインポートからシーンの構築まで、全て自動でできるようになりました。実際の作業時間は連携前が約43分、連携後が約23分かかっています。内訳は連携前がインポートに19分、シーン構築に20分、レンダリングに4分です。連携後はインポートが18分、シーン構築が1分、レンダリングに4分となりました」(中谷氏)。