Open1

青海波を作る(それとマテリアルのコピー)

黒狐黒狐

円にテクスチャで同心円状の模様を作るのをやってみました!ayatoさんの真似・・自分で考えてみたかったので。
参考にしたのはWaveTextureとColorRampの連携についてはこれ:
 グラデーションの作り方
で、テクスチャの位置をいじるのはこれ:
 Mappingノード
です。つなぎ方・・


まずEEVEEなのでプリンシパルを使います。そこにWave Textureで波模様を使うのですが、そのままでは色がつかないので、間にColorRampをかませて色がつくようにします。さらにWave TextureはRingsのSphericalにしておきます。これで同心円になるかと思いきや、ずれます。


なので、そうならないためにMappingを使ってテクスチャの位置を操作します。
 この操作は逆変換なので、円の位置がたとえば(1,3,1)の場合は、ベクトルのところを(-1,-3,-1)にすれば中心になるようです。


同じマテリアルの適用だとずれてしまうので・・どうするのか。マテリアルのコピー!
中央にある円に適用されている青海波のテクスチャを新しく作った円に適用するとずれるのですが、ここに数字が書いてありこれはこのマテリアルが適用されているオブジェクトの個数だそうです。


ここをクリックすると番号が更新されて自動的に別のマテリアルができるので、そっちで数字をいじればOKです。


座標が(2,2,-1)なので(-2,-2,1)にすると揃います。
こういうのをScriptingでやってその都度色とかいろいろ変えるとあんな感じになるんですかね・・もっといろいろやってそうだけど。聞いてみる。。
追記
ベクトルタイプをTextureにすれば位置座標を反転させなくてもいい!


・・・っていうかね。
テクスチャ貼るのになぜジオメトリー使ったし・・それだと原点位置使っちゃう。テクスチャはUVが基本でしょうよ。そういうわけで。


まあそういうことですね・・UVmap使えと。で、0.5ずつずらせば大きさが同じすべてのあれに適用できると。あとはメソッドで大量に複製する。基本的にはこのマテリアルをあらかじめ用意しておいて、それを複製して使う感じですかね・・そして同じ色なら全く同じものが使える。やった・・!
タイプをtextureにしておけば原点を(0.5,0.5)にするのに反転させなくて済むのでよい。