ゲームをプレイしていると、地面は様々な表情をしています。
土、草、岩場など地面を見ると多くのテクスチャが切れ目なくきれいに貼られています。
そのようにするためには、頂点カラーとシェーダーを使う必要があります。
自分が指定した場所に違うテクスチャを適用する事ができ、覚えておくととても便利な方法です。
今回はUnreal Engineで頂点カラーごとにテクスチャを適用する方法について紹介します。
頂点カラーの適用
事前準備
Blenderを起動し、グリッド(50m×50m/分割数50)を出します。
これに頂点カラーを塗っていきます。
今回使う色についてはRGB(1/0/0)(0/1/0)(0/0/1)、つまりは赤100%、緑100%、青100%で頂点を塗ってください。
頂点カラーの塗り方については下記からご覧ください。
今回は上記のように塗ってみました。
メッシュ名を「SM_VertextcolorTest」マテリアル名を「M_VertextcolorTest」にしました。
モデルを選択してfbxで出力し、UEにインポートしましょう。
インポート
先程のfbxをUEをインポートします。
インポートする際に、詳細設定の「Vertex Color Import Optionを置換」からインポートしましょう。
これでインポートは完了です。
シェーダーを作ろう
今回は上図のノードを使ってシェーダーを作っていきます。
Lerpとは「LinearInterpolate」の略で、アルファに基づいてAとBの間を線形補完する機能を持ちます。
簡単に解説すると、アルファが0%の時はAが出て、アルファが100%の時はBが出ます。
ブレンドをする際は必ずと言ってもいいほど使うノードになるので、覚えておきましょう!
頂点カラーごとにテクスチャを適用する
2つのテクスチャをブレンドする際は上図のようにノードを組みます。
今回はRチャンネルをアルファに使っていますので赤い部分には地面のテクスチャ、それ以外の部分には草のテクスチャが適用されてました。
3つのテクスチャをブレンドする際は上図のようにノードを組んでみましょう。
RGBそれぞれにテクスチャを適用すると上図のようになると思います。
RGBを使うと3つまでテクスチャをブレンドすることができますが、アセットを配置した際にAO(アンビエントオクルージョン)を付けられない、色味を頂点カラーで付けられないというデメリットもあります。
アルファチャンネルをブレンドに使って、RGBは色味と付けるために使用する。
もしくはアルファチャンネルをAOを付けるために使用するという方法もありますが、やりやすい方法、プロジェクトに応じて使っていきましょう。
オススメの本
SHOP
BOOTH
-マナベルCG 出張所-
マナベルCGではBOOTHにて、アセットショップ「マナベルCG 出張所」を開設しています!
テクスチャもpsd、もしくはspp付きで販売していますので、是非とも足を運んでみてください!
まとめ
ゲームで地面を作る上では必須と言ってもいい内容だったと思います。
頂点カラーで色味を追加するもできるので、状況に応じて使い分け見てください。
X(Twitter)も運営していますのでフォローしてくるとうれしいです。
記事投稿のお知らせもしていますのでよろしくお願いいたします。
以上、最後まで読んでいただきありがとうございました。
ここの記事で使用しているのはUnreal Engine5.2.1となっています。
コメント