2017年5月8日~9日に行われた国内最大のUnityカンファレンスイベント「Unite 2017 Tokyo 」でおこなわれた講演のうち、今回紹介するのは谷口充大氏が登壇した「セルシェーダーを使用した3Dキャラアプリの開発事例」。
株式会社テトラの代表取締役でありディレクターも務める谷口氏がおこなったこの講演では、Maya+Unity+Shotgun(プロジェクト管理ツール)を使用した3Dキャラアプリ開発の事例が紹介された。そこでは、ハイクオリティなセルシェーダー・キャラクターの制作術や、短期間での開発を実現するための効率的なプロジェクト管理方法、3Dアプリ開発における様々な問題点と解決策、さらにはリアルタイムモーションキャプチャーサービスなどの具体的な解説がなされた。
谷口氏がまず話し始めたのは、リアルタイムモーションキャプチャシステムの紹介である。株式会社テトラでは現在、『夢幻のラビリズ』というリアルタイムモーションキャプチャシステムを活用したiPhone/Android向けアプリを開発しており、2017年5月末にβテストをする予定となっているという。
このアプリはマス目を移動しながらモンスターを倒しつつステージ攻略を目指すという内容になっているが、特徴的なのはメインキャラクター「リズ」の衣装をカスタマイズしながらキャラクターを強化していくことだ。
なおこのアプリ制作に役立ったのが、2016年に同社が手がけたTVアニメーション作品『アイドルメモリーズ』のダンスパート。これはアイドルものアニメのセルシェーダー表現であり、3ds MaxとPencil+で制作している。
そこでこの『アイドルメモリーズ』ほか、映像制作で培ったノウハウを生かしながら、世に出ているアプリのアニメの表現としては最高のものを目指した『夢幻のラビリズ』では、太いライン表現をどこまで描けるのかをテーマに考えたという。
「アニメでは映像をプリレンダーされているので、『夢幻のラビリズ』ではそれをいかにリアルタイムCGとして表現に落とし込んでいけるかがテーマでした」
それともう一つ。同社がプリレンダリング制作で培ったノウハウをどのようにUnityゲーム開発で生かしていくかというのもテーマとなった。
「リズモデルは素体×1体、髪色×7色、目色×7色、装備×21種類、さらに各装備の色替えパターンが3色という感じで企画をしている中でどんどん衣装が増えてきました。そこで今回、とにかくモデリング効率の重視と色替えのし易さなど、バージョン制作に耐えられる仕組み作りを心がけました」
『夢幻のラビリズ』の使用ソフトウェアとしては、モデル作成としてMaya、UV展開としてRoadkill、テクスチャ作成としてSubstance Painter、ゲームエンジンとしてUnity、チェックバックやアセット管理としてShotgun+RVを展開している。
「制作したモデルをUnityへ持っていく際に三角形が変化し、切り方によってはテクスチャやアウトラインがゆがんでしまうことがあります。そこでMayaでの見た目をそのまま三角形にするためのFBX変換ツールを、弊社のプログラムチームが作成しました。このツールは全モデルで使用する機能だったので、Shotgun Toolkitの中のパブリッシュ機能に盛り込んであります」
次に、RoadkillでUV展開をおこなっていった。カットするエッジを指定すれば自動で良い感じに開いてくれるので、あとは展開したモデルをMayaにインポートして並べることで完成した。コツをつかまないと面倒なUVの展開に関してはほとんど自動化を進めており、手作業と比較した作業スピードは1/5ぐらいまで速くできたという。
また、テクスチャ作成はSubstance Painterでおこなった。ローポリゴンでかつテクスチャの色味が非常に重要になってくるので、3Dビューで感覚的に描けるSubstance Painterをチョイスしている。
「オススメ機能としてはドラッグで囲んだ範囲をポリゴン単位で塗りつぶせる機能です。カスタムできるプロシージャルテクスチャとして、ゲーム用に開発されたSubstanceですが、現在弊社ではムービー制作にも頻繁に使用しています」
これらのソフトウェアを駆使してできたモデルは最終的にUnityで作成していく。
「弊社ではUnityを使用してゲームを制作したのは初めてのこと。そこで『どうやってクオリティを出せばいいのか』ということも模索しながらの制作となりました。なお今回は、アウトラインが付いたToonなルックスを目指していましたので、Unity-CnanToon Shaderをベースにして改良したShaderを使っています」
今回のポイントはアウトラインの表現だという。これだけ太いアウトラインを出そうとすると、オブジェクトの干渉範囲も広がり結果としてアウトラインが途切れたような見え方になってしまったり、腕を曲げた際に意図しないアウトラインが発生したりといった問題が生じる。そこでこの問題をUnity-CnanToon Shaderのデフォルト機能である「膨らませる量を制御する白黒マスク」を描いて解決したという。
「これは3ds Maxのペンシルでは有効な手段でありラインの調整をしていますが、それだけではうまくいかない部分もあったため何度もFBXのデータを渡しながらルックの調整をしていきました。最終画像ではどの衣装でも綺麗なラインが出るような調整を心掛けたことで、どの角度から見ても安定したルックのクオリティが、スマートフォンの機種に依存せず出せるようになりました」
(後編)に続く