巨大なアクターや、サイズが変形できるアクターに適応したマテリアルでは、テクスチャが大きく引き伸ばされてしまうことがあります。(図左下)
UVのスケールを調整して伸び具合を調節する手段もありますが、アクターごとのサイズに合わせてマテリアルインスタンスを複数作成しなければならず、手間がかかる上にバラツキが生じます。
そこで、テクスチャのスケールを指定すれば自動的にそのスケールの大きさでアクターのサイズに合わせてくれるような(図右下)マテリアルを作成する手順を紹介します。
ということで図右下のようなキレイな砂場の地面を作りましょう!
まずは基本的なマテリアル作成
図のようにマテリアル作成の基本に忠実に従ってノードを組めばセットした質感の砂場マテリアルが作成できます。(簡単ですね。)
しかしこれでは図のように大きなアクターなどに適応すると大きく縦方向に引き伸ばされてしまい、せっかくのキレイなはビーチの砂場が台無しになってしまいます。もう少しレベルアップしてみましょう。
テクスチャデータはアセット
図で使用しているテクスチャデータは自分で用意したものではなくアセットで購入したものです。テクスチャを作るところもやりたいところですが、なかなかに大変な作業なのでまたいつかチャレンジしたいですね。
WorldAlignedTextureノードで伸びないマテリアル
若干ノードが難しいですが図のようにWorldAlignedTextureノードを組めば、均一でキレイなTextureSizeパラメータで指定したサイズの、砂場のマテリアルができ、テクスチャが綺麗に敷き詰められます。
※指定しているテクスチャはTextureSampleノードではなく、別のTextureObjectノードです。間違えないように注意しましょう。
また正直マスクテクスチャから取得したR値、G値でどう変わっているのかよくわかっていません。直接値を入力して砂場っぽく調整するのもありですね。
用語解説
ラフネス:表面のツルツル、ザラザラ具合
値の範囲:0(ツルツル)~1(ザラザラ)
低い値(0.0〜0.3) → 光をよく反射する。テカテカ、濡れたような見た目。
高い値(0.7〜1.0) → 光を拡散する。マット、乾いた表面。
アンビエントオクルージョン:穴や隙間などの狭い場所に陰影を乗せる機能
値の範囲:0(真っ黒、遮蔽強い)~1(真っ白、遮蔽なし)
小さな凹凸や隙間に「影っぽさ」を与える効果。
AOが効くと、表面に立体感が出て、のっぺりした見た目を防ぎます。
砂の隙間・粒の集まりなどを強調するのに効果的。
値は直接確認できない
WorldAlignedTextureのXYZの値をマスクしてRGで取得していますが、実際に中身がどんな値を取っているのかはマテリアルエディター上では分からない様です。
デバッグする機能もなく、強引な手段としてベースカラーに突っ込んで色がどんなふうに変わるかで確認するくらいしか方法が無いようです。
もう少しレベルアップすればもしかしたらパラメータにインプットしてマテリアルインスタンス上で確認できるなど方法が見つかるかもしれませんが、今回は諦めました。
まとめ
さらにテクスチャのタイリングの繰り返しが目立たなくなる方法も少し探してみましたが、今回のWorldAlignedTextureでそこまで繰り返しの切れ目が確認できなかったので、もしかしたら、タイリングの繰り返しをスムーズにする機能もWorldAlignedTextureノードに含まれているのかもしれません。
マテリアルノード初心者なのでまだまだ分からないことだらけですが、少しづつレベルアップしていきたいです。
コメント