見出し画像

頂点カラーで地面を作る

地面は広いのでテクスチャをループして使う。
頂点カラーを使うことでテクスチャのループ感を薄くする。

★大まかな手順
①モデルを用意
②マテリアルを用意
③ノードをつなげてテクスチャをブレンド
④頂点カラーを付ける

地面のモデルは大きめにとる。
エッジの流れは、地面の道や地形に合わせて流す。
カメラに映る地面のポリゴン数を増やす。(割りを増やす)

マテリアルを作る
ハイパーシェード
>Amoldの中にあるShaderFx shader
 このマテリアルは、テクスチャをブレンドできる。
 ブレンドすることで、ループ感を薄くできる。

 ※ShaderFx shaderが無いとき
  ウィンドウ
  >設定/プリファレンス
  >プラグインマネージャー
  >上の「コマンド検索」で「fx」とうつ
  >ShaderFx Pluginのロードと自動ロードにチェック
  >リフレッシュ
 ※Mayaからアンリアルエンジンに持っていくとき
  ShaderFx shaderのテクスチャはそのまま移せないので付けなおす

>ウィンドウの右下「ShaderFX」
>「Open ShaderFX」
>ShaderFXというウィンドウが表示される。
 ノードを使ってテクスチャをブレンドする。
 ノードは画面左の一覧から右クリックで出せる。

【今回使用するノード】

・Hw Shader Nodes
 >Textures
 >TexturMap

・Hw Shader Nodes
 >Math
 >Linear Interpolate Mix

・Hw Shader Nodes
 >Inputs Commom
 >Vertex Color

【ノードをつなげる】

2つのテクスチャをブレンド


TexturMapを2つ出す
>TexturMapそれぞれの「Colar」と
 Linear Interpolate Mixの「Value」をつなげる。
 これで2つのTexturMapがブレンドされる。
>Vertex Colorの「Red」を
 Linear Interpolate Mixの「Mix」につなげる。
 これでVertex Colorが赤のとき(赤でテクスチャを塗るとき)
 ベース色にブレンドするTexturMapが表示される。
 アルファ付きテクスチャのように
 赤が0から1の値でどのくらい表示するか調節できる。
>Linear Interpolate Mixの「Result」を
 Tradtional Game Surface Shaderの「Dffuse Color」につなげる。
>TexturMapにベース色のテクスチャを割り当てる
>ハイパーシェードから「ShaderFX Shader」を選択
 (さっきいじってたマテリアル)
>ハイパーシェードウィンドウ右のプロパティエディタ
 「My Textuer/Path」の「・・・」
 TexturMapのノードを選ぶ。
>テクスチャを選択
 これが地面のベース色になる。
>プロパティエディタの
 「ConverToLinerSpace」にチェックを入れる。
 忘れると色が変になる。
>Vertex Colorが赤のとき表示されるテクスチャを
 TexturMapに割り当てる。
>TexturMapを選択
>さっきと同じように
 ハイパーシェードから割り当てる。
 「ConverToLinerSpace」にチェック
>オブジェクトにマテリアルを割り当てる
>地面オブジェクトのヒストリを消す
>地面のUV展開
 UVシェルがはみ出しても大丈夫。
 ループ感を薄くするために頂点カラーを付ける。
>画面上 メッシュ表示
>「カラーの適用」
 ※はじめは頂点カラーを入れるとき
  黒の値にすること。
  (説明)
  頂点カラーはアルファ付きテクスチャと似た表示方法。
  RGBでは・・・黒の値は0
         白の値は1になる
  つまりR(赤)を表示させないときは0
           表示させたいときは1にする。
  赤を塗る前に
  地面の頂点をすべて選び
  RGBを全部動かして黒にする。
>すべての頂点に黒を適用させる。
>テクスチャをブレンドする
 頂点を選択
>「メッシュの表示」
>「カラーの適用」
>RGBのRを1(0~1の値)
>「適用」
(メッシュ表示>頂点カラーペイントツール
 地面のテクスチャを描くときに便利)


【テクスチャを3つブレンドさせる】

上の2つのテクスチャを1つにしてブレンド


TexturMapを1つ出す
>Linear Interpolate Mixを1つ出す
>初めに出したLinear Interpolate Mixの「Resuit」をもう1つのばして
 さっき出したLinear Interpolate Mixの上の「Velue」につなげる。
>TexturMapの「Color」を
 Linear Interpolate Mixの下の「Velue」につなげる。
>Vertex Colorの「Green」を出した
 Linear Interpolate Mixの「Mix」につなげる
>Linear Interpolate Mixの「Resuit」を「Diffuse Color」につなげる
>緑を頂点に適用したとき表示されるようになる
>TexturMapにテクスチャを割り当て頂点を塗る


よく頑張りました!
おつかれさまです!

この記事が気に入ったらサポートをしてみませんか?