見出し画像

シェーダー遊び②Random

カラフルなブロックが敷き詰められた画像を作ります。

準備

カラーパレット用に6色のブロックを Mecabricks から出力してインポート。

画像1

ブロックをどれか選択して、Shader Editor を Object モードにし、Home キーを押してシェーダーを表示させます。

画像7

Base Material の入力 Color を改造していきます。

画像2

ColorRampノード

Add → Converter → ColorRamp ノードを追加し、Color を繋ぎます。

画像5

画像6

ColorRamp ノードは上段のカラースケールに沿って Fac の値を色に変換します。Fac = 0.0 は黒、0.5 は灰、1.0 は白といった感じです。

カラースケール右上の Linear を Const にして、右端のスライダーを真ん中まで動かすと、0.0 ~ 0.5 は全て黒、0.5 ~ 1.0 は全て白、と段階的に変化するようになります。

画像8

今回は 6 色使いたいので + ボタンを押して 6 段階に増やします。
Pos は 1/6, 2/6, ... , 5/6 と均等な間隔にします。

画像9

Fac の上のセルをクリックして色を設定していきます。スポイトを使うと楽です。

画像12

3D Viewport の Lighting を Flat にするとスポイトで吸いやすいです。

画像10

画像11

画像13

Object Infoノード

Add → Input → Object Info ノードを追加します。

画像3

一番下の Random からは 0.0 ~ 1.0 の範囲でランダムな値がオブジェクト毎に出力されます。これを ColorRamp ノードの Fac に繋ぎます。

画像13

これでシェーダーは完成です。

画像14

ブロックを複製

シェーダーを改造したブロック以外はもう不要なので削除します。

後の物理シミュのため、Alt + P → Clear and Keep Transformation で親子関係も解除しておきます。

画像18

改造したブロックを Alt + D で複製します。大量に複製します。

画像16

試しにレンダリングするとちゃんとカラフルになっています。

画像15

物理シミュレーションでランダムに配置

全てのブロックを選択して、Object → Rigid Body → Add Active

画像17

受け皿としてキューブを追加します。
Add → Mesh → Cube

画像19

X, Y のスケールを 10 倍くらいにして、Z 位置も少し下げて配置。

画像20

物理シミュの安定性のため Object → Apply → Scale しておきます。

画像21

受け皿は動かなくていいので Add Passive

画像22

シミュレーションする時間の長さ(フレーム数)は Output Properties の Dimensions と、

画像24

Scene Properties の Rigid Body World の Cache で指定します。

画像24

ランダム性を増すためブロックを傾けたら、スペースキーを押してシミュレーションさせます。

画像26

画像25

画像27

これで色も配置もランダムなレゴ画像が完成です。

画像28

おまけ

参考にしたチュートリアル動画です。


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