あっぷあっぷブログ

UnrealEngine(ゲーム用途)関連の備忘録です。

【UE5/Material】特定のカラーだけ抽出して別のカラーに変更してみる

特定の色だけを変更してみる

紫色を水色に変更する処理
Distanceノードを使えば、指定した色と近いほど、0に近づきます。
このノードの特徴を使えば、指定した色だけ取得したり書き換えたりが可能になりそうです。

Distanceノードの注意点

1以上の値が返される可能性がある。
Distanceノードは指定した色(Vector)と色(Vector)が離れていると、1以上の値を返す可能性があるので、Saturateなどの0-1に丸める処理を挟むのが良いと思います。

一部の色だけエミッシブカラーで光らせる

抜き出した色だけ光らせる

結果

グラデーションは難しい?

紫色を抽出し、元に戻そうと試みる
グラデーションでも試してみましたが、難しくて上手くいきませんでした。

CheapContrastで色の境目をきっぱりさせる

TextureSampleの色同士の境目は少々ぼやけています。
CheapContrastの値を大きくすればするほど、きっちり分かれます。境目のアンチエイリアスが薄くなっていき、ギザギザしてきます。

感想

一部の色を変更できるということは、テクスチャ作成の段階で、あらかじめ被らない色を指定しておけば、そこの色だけ別の色に変更することが可能になりますね!