こんにちは。
株式会社アドグローブ ゲーム事業部のデザイナー川原です。
本記事では、最近作成した個人作品で学んだことや使用した技術について、メイキングの形でざっくり概要で記載したいと思います。
そのため、1つ1つのツールについての話をするというより、作業を通して様々なツールをどんな考え方でつかったのか、プロセスについてのお話ができればと思います。
今回作ったのは以下の簡単なイメージ動画になります。
キャラクター+その世界観が伝わる背景をUnrealEngineで作成しました。
※音声流れます。画質設定を高くしてご覧いただけますと幸いです。
作成フロー概要
データ作成の全体概要は以下の図の通りです。ざっくり仮アセットを準備したら、レベルで仮配置の確認をし、その後各モデルを作り込みを行った後に本番モデルに差し替え、配置調整をおこないながら、マテリアル調整やライティング調整を行いました。
デザイン検討
まずは、どんなイメージや方向性で行くのか検討しました。
今回は、日本でもヨーロッパでもアジアでもない神様が出てくる、未来的な世界を作りたいと思いましたので、「神話・未来感」を切り口として、検討しました。
以前描いていたアイデアイラストが今回のアートワークの方向性にベースとして使えそうだったので利用しました(画像上2枚)。
デザイン的にこのままだと細かな要素が多いと思ったので、ミディアムパーツの構成を決めるためもあって、別案の構造も検討しました(画像左下)。また、キャラが何処にいるかもアイデア出ししました(画像右下)。
作業準備
準備としてUnrealEngineの作業環境を整えていきます。新規でプロジェクトを作成したら、レベルを準備したり、必要なアセットをコンテンツに追加しておきます。
キャラモーションの準備として、今回は「ActorCoreSampleMotions」を利用して、作成したキャラにリターゲッティングでモーションを流し込むことにしました。
UnrealEngineでキャラを簡単にポーズさせたり動かしたりする方法として、他にもMixamoを使ったフローや、UEマネキンを使用してコントロールリグでポージングしたり色々なやり方がありますが、今回はこのアセット内の待機モーションがイメージに近かったため使用しました。
今回同じ人型体系だったため問題は起こりませんでしたが、リターゲッティングは、関節比率が元と大幅に違うと足のスライディング現状が起こる場合があるので、その際は補正処理を入れる必要があります。
背景については、OBJ以外の自然物はUnrealEngineの無料アセットで組もうと思いましたので、テラインのマテリアル用に「Megascan-砂」や、間を埋める雑草用に「temperate Vegetation: optimized Grass Library」をプロジェクト追加しておきました。
ラフ制作
本制作のためのラフ作成をしていきます。
デザインの点では、静止画というより少し動くものでイメージしていたので、レベルを用意して3Dで配置してみたときに、キャラのプロポーションや配置されたバランスがどんな感じになりそうかの確認を先にとりました。
技術的な点では、今回はジオメトリキャッシュを用いた表現を試したかったのと、半透過や鏡面反射を多用するプロジェクトになると思ったので、どんな感じになるのか確認しておきたいという意図もありました。結構ノイズが発生していたので、アンチエイリアシングやレイトレーシングの設定検証が必要だということがわかりました。
キャラ制作
ハイモデル作成ー素体
ある程度印象をとった後、表面ディテールや肌ベースのテクスチャなどの準備しました。
Zbrushのレイヤーを作成して閉じた目を準備し、DisplacementやDiffuceのテクスチャ転写用モデルをZWrapで準備し、XNormalでベイクします。ここでベイクしたものをベースとして、ハイモデルのベースやスキンテクスチャの素材として使用します。表面ディテールのディスプレイスメントはレイヤーを分けて適応し、あとでRGBチャンネルごとに調整できるようにしておきました。
このタイミングで、ベタ色を付けた状態での印象を確認しました。
キャラの顔についてはカメラ広角設定とライティングの影響が大きく出やすいため、今回はSubStancePainterのビューポートで仮にラフ配置で設定していたカメラと同じ広角の設定にしてから、色を割り当てて見てみました。
方向性としてあまり外人顔にしたくなかったのと、かわいい雰囲気にしたかったのですが、基本お好みで作りましたので、こんな感じの顔になりました。
ハイモデル作成ー服
顔が定まったら、服などの他の要素を作りました。
進め方としては、始めにスケッチで区切っておいたミドルディテールの要素をガイドとしましたが、ラフの時に髪型がのっぺりしていてシルエットが単調だったので、なるべく顔に視線が行くデザインになるように、顔周りは大きくデザイン変更しました。
また、未来の神様なので、ネジ・ボタンや縫い付けなどの構造表現として説明的すぎるモチーフは極力無しとしました。
多少不思議な構造になってもいいので、紐などの伝統的なモチーフに異素材を割り当てた方が面白く、今回の方向性としてマッチしていると思いましたので、その想定で作りました。
個人的には、写実的な表現よりもCGだからこそできる表現のほうが好きです。
シワ表現は、MarvelousDesignerも補助的に使用しました。
髪の毛について
今回レガシーのxgenを使用しようと思っていたので、ハイモデル段階では構造を明確にして、後で手間がかからないような下準備だけしておきました。
レガシーxgenで個人的に一番時間がかかるのがガイド制御なのですが、今回は全体の作品見せ方のバランス的に髪作成にあまり時間をかけないで済むように、作業時に迷いが発生しない作り方にしました。
髪についてはZBrushでブロッキングしたモデルを毛束ごとにポリグループを分け、毛の流れる方向にリメッシャーをかけて、Mayaのメッシュからカーブ変換後に、ガイド追加しました。
また、頭部とは別にアタッチされるべきバインド元のメッシュ形状の配置も検討しておきました。
テクスチャ・UEマテリアル作成
ハイモデルが固まったら、リトポロジーして、ハイポリベイクにエラーがないかチェックしました。今回ベースメッシュは20万ポリゴン程度でそこまでハイモデル形状との乖離は無い形にしたので、2、3回の微修正でクリアできました。
今回は表現的にSubstancePainterで詰めるよりもUnrealEngineでマテリアルを詰めたほうが方針的に良いので、欲しかったのは大体の色分けと、マテリアルの制御もとになるNrmマップなどの情報でした。
そのため、SubstancePainterでは色分けと素材分け検討のみ作成しました。
UnrealEngineでチェックシーンにキャラを配置したら、マテリアル作業にて質感を作成し、テスト撮影しました。
不要なのでカットしましたが、本来は天候条件が変わったり、寒色・暖色の色味や、直接光系かアンビエントなのかなどの様々な条件で見え方が変わるので、本来は複数環境でチェックしたほうがいいと思います。
今回に関しては、一旦チェックレベルでざっくりマテリアルを組んで確認した後、後に配置するシーンにて、環境とセットで一括調整をするやり方にしています。
マテリアル詳細に関してはそれだけで量が多くなってしまうので概要となりますが、服に使われているキャラのスタンダードマテリアルは、以下の処理フローとなっております。
- SubstancePainterで作成したテクスチャ成分を取得後
- カメラアングルとNrmテクスチャを基に色が変わる制御2パターン、粒子表現、塗膜表現の計4種の制御追加
- 乗算や加算などで作成した制御を処理ブレンド
- 最終結果としてエクスポート
そのほかにはSkin用、髪の毛用、半透過を用意し、キャラのマスターマテリアルは4種となりました。
UE設定
アニメーションブループリントについては基本、始めにリターゲッターから生成したアニメーションシーケンスが再生されるのみですが、揺れ設定でRigidBodyの追加や、コントロールリグを挟んでいます。
コントロールリグは、後に発生したジョイントの構造変更で必要だったのもありますが、主に物理干渉の緩和のために太腿にエプロンのジョイントが追従して動くように、補助的に入れたものになります。
キャラのブループリントを作成したら、そこにgroomコンポーネントの設定や、アニメーションブループリントが再生される設定を入れました。
背景作成(撮影配置)
レベル配置&テライン調整
ラフで作ったキャラを本番のキャラBPと差し替えをしたら、レベル調整を行っていきました。足元が殺風景なので川を追加したり、アセット導入していた草の色変えを作ってFoliageで配置・アクセントで金の石を作ってばらまきました。撮影のため、カメラに移る範囲の背景が欲しかっただけなので、今回はエリア一帯を全部歩き回ってアクターの配置をデザインするというよりは、カメラから見える範囲で調整を行いました。
OBJ作成
レベルの調整が終わったら、後光をイメージしたサークルと、熔解した盆栽を作り込みました。
サークルについては、MayaのMASHというプロシージャルにメッシュを配置出来るツールを使いました。降り注ぐ太陽のようなデザインをイメージして、ループアニメを作りました。それをAlembicで吐き出して、ジオメトリキャッシュとして再生させました。
今回は植物については現実的でリアルなものは幻想感にマッチしないと考えたため、熔解する盆栽は、(元々のイラストもありますが)かなりスタイライズな植物を意識して作りました。Blenderのメタボールでアニメーションを作った後に、同じくAlenbicでエクスポートしたものをジオメトリキャッシュとして再生させています。
ジオメトリキャッシュは実験段階のものですが、Alembicで吐き出しさえすれば、スケルタルアニメでなくても、何でもモーションデータになってしまうので、思いついたアイデアを形にしやすいです。
また、オブジェクトのマテリアルも少し動きのあるものを2パターン作成しました。
撮影
ポストプロセスで色味を調整したり、雲の色を変えたりして全体のイメージが固まったら、レベルを再生して動画素材にして完成です。動画編集は、とりあえず色々なアングルやカメラの動きでシーンを撮影した後、premier上で検討しながら音楽の雰囲気に合わせて作りました。
今回はラフ作成時にジオメトリキャッシュでノイズが発生したり、半透過の描画がブレたりしていましたが、検証した結果、ジオメトリキャッシュのエクスポート時にあえてスケールを大きく吐き出してから配置時に縮小させたり、レイトレーシングを有効にすることで改善されました。
また、レンダリング時に、コンソール変数で反射や屈折の数値を設定することで、ノイズがクリアになりました。
最後に
ざっくりとですが、以上がUnrealEngineを使った3DCG作品制作概要でした。
私は思い描いたイメージをもっと上手く再現できるようになりたいとずっと思っているのですが、UnrealEngineで段々色々なことが出来るようになるに従い、やりたい事を実現させるためのハードルが下がったように思います。
UnrealEngineはリアルタイムで確認しながらビジュアル作成でき、簡単なイメージ作成程度であればデザイナーレベルの理解でも大概何でも出来るので、非常に制作するのが楽しいツールです。
これからもまだ作れていないアイデアを色々形にしていきたいです!
最後までお読みいただきありがとうございました。
アドグローブでは、さまざまなポジションで一緒に働く仲間を募集しています!
詳細については下記からご確認ください。みなさまからのご応募お待ちしております。