ETERNITY

エリンに存在する素材たち


2024/12/06 19:17:41
ミレシアンの皆さん、こんにちは!私はテクニカルアート(以下TA)パートの犬公と申します。

私たちが住んでいる現実世界と同じように、エリンには様々なテクスチャを持つオブジェクトや物質が存在します。

私たちが行っている様々な技術的なサポートの中で、

今回はプレイオネエンジン(以下、PE)で実装されていたマテリアルがアンリアルエンジン(以下、UE)環境ではどのように仕上げられているかについてお話します。


はじめに
前述したように、エリンには肌、毛、布、石、金属、流体など、さまざまなテクスチャが存在します。

こうした様々な素材を表現するために、

PEではルックアップテクスチャ(注1)やマテリアルキャプチャ(あるいはマットキャップ)テクスチャ(注2_1、注2_2)を使ったシェーダー(注_テクスチャ表現のためのプログラム)でエリンを描画していました。



注1) ある値の変化量を関数で計算するのではなく、0~1の範囲であらかじめ描き込んでおいたテクスチャ


注2_1) 球に反射テクスチャを表現したテクスチャ(右上)。これを利用して、視覚(カメラ)方向を基準にマッピングすることができます。


注2_2) ジュエリー(左)、粗い金属(右)を表現するためにPEで使用されているマットキャップテクスチャ。直感的にテクスチャを表現するのに便利だが、静的である。



上記の方法は結果を予測しやすく、実装も簡単な反面、素材の数だけテクスチャを作成する必要があり、

光の方向への反射を表現できないという欠点が存在します。

また、リソースの作成および管理でコストが追加要求され、動的な表現も困難です。

したがって、このような技術的な限界で表現された様々なテクスチャをEternityでは改善できるようにすることが私たちの目標です。


開発中のもの
環境に使われる素材とキャラクターに使われる素材に大きく分けることができますが、まずは環境に使われる素材から見ていきましょう。


植生
植物は、葉や茎の色(注3)、周囲の環境(天候や照明の変化)に変化する度合い(注4)、

物理的な衝突に対する揺れ処理、密度に応じて各種テクニックを駆使して最適化することも事前に十分な準備が必要です。

PEでは並列処理に対応していないため、植生を生き生きとレンダリングすることに限界がありましたが、

UEではマルチスレッド(複数のCPUコアを使用)、オブジェクトのインスタンス化(オブジェクトの再利用)などの技術を活用できるため、

生き生きとした植生群集を生成し、より豊かなエリンが描けるようになりました。


注3) 植生群集にランダムに色を設定するようにする


注4) 光との相互作用中。SSS(Sub-Surface Scatering 表面下散乱、ある物体内に透過した光が内部で散乱し、一部が反射すること)


流動体
水のような流動性のある物質も、環境によっては様々な状態を持っています。

色、粘度、波形の大きさや密度、光の反射量や吸収量などなど。

このような計算も過去の仕様では簡単ではなかったため、テクスチャアニメーションやスプライトシーケンス(連続した動きを持つ画像の集まり)などを使って表現するのが限界でした。

Eternityではこのような部分を積極的に改善していく予定です。

個人的に私は水を綺麗に(?)表現することに本当に本当に本気です。 想像してみてください。

夕日が沈むアブネア湖畔で、キラキラと輝く水面を見ながら釣りをするシーンを...

そしてその深淵にはネイドがうっすらと影を落とすかも...。



半透明のオブジェクト
エタニティプロジェクトでは、UEの遅延レンダリングを使って画面を描画します。

遅延レンダリングは、さまざまなテクニックを駆使して高品質の結果を得ることができますが、

半透明/透明なオブジェクトを描画することは、依然として実装が難しいです(注5)。

もちろん、PEでは半透明のオブジェクトにテクスチャを付与すること自体がほぼ不可能でしたが、

エタニティでは、現実世界と同じ反射特性とNPR(Non-Photorealistic Rendering非現実的なレンダリング)表現を混ぜ合わせ、

マビノギにふさわしい半透明のテクスチャを作るために、私たちTAは今日も苦労しています。



注5) 半透明のオブジェクトを描く過程が重く、描く順番のために様々な視覚的なエラーが発生します。



次に、キャラクターのテクスチャを見ていきます。

UEは基本的にPBR(Physically Based Rendering物理ベースのレンダリング)をベースにシェーディング(画面にオブジェクトを描画する演算)を行うため、

あまりにもリアルな結果が出るのを回避するために、少しエンジンのカスタマイズを行いました。

以前、スパゲッティモンスターさんが書いてくださった「キャラクタートーン補正の話」に一部記載されていますので、興味のある方は読んでみてください。


染色
以前、ミルクティーさんが染色開発過程の紹介で言っていたように、

韓国のゲーム史上、染色といえばマビノギ、マビノギといえば染色ではないでしょうか?

PEでは染色のために、3Dオーサリングツールである3Ds MAXにのみ存在するイルミネーションカラーというユニークなパラメータを利用していましたが、

UEでは3Dファイル形式の変更により、これを利用できなくなったため、いくつかのテクニックで回避することで、

既存のキャラクター作成パイプラインを大きく変えることなく染色機能を実装しました。




毛髪
毛髪を表現する方法はいくつかありますが、私たちは既存のモデリングへの修正を最小限に抑え、

マテリアル(シェーダーの一種)だけで毛髪を描くことを目指しました。

現在のマビノギでは、毛髪はアーティストが丁寧に作成したテクスチャで表現されていますが、

量感を出すには不十分なため、様々な毛髪の質感を表現できるように開発中です。

最終的には、豊かでリアルな羊のパンに仕上げたいと思っています。




おわりに
簡単に開発中の主な素材について紹介させていただきました。

皆さんのイメージにあるエリンをもっと素敵な姿でお見せできるように努力していますので、応援よろしくお願いします。

次回はもう少し深いテーマを選んで書いてみようと思います。


また、よろしくお願いしますね。

『Writer 犬公』