今回は、上画像の様にメッシュを変形させていきます。非常に簡単な内容となっているので、初学者の方も是非挑戦してみてください。こちらの記事は動画化もしております。動画の方がよい方は以下のリンクからどうぞ!
概要
上画像がプログラムの全体像となっております。各ブロックごとに説明していこうと思います。
球体メッシュ作成
- Mesh Sphere コンポーネントで球体のメッシュを作成します。中心は原点(0,0,0)、半径 100、メッシュ数は uv 方向 47 としています。
- Triangulate コンポーネントで四角形に分割されたメッシュを、三角形メッシュにします。
- Deconstruct Mesh コンポーネントでメッシュを分割しておきます。
メッシュの頂点を移動
- Move コンポーネントでメッシュの頂点を移動させていきます。Deconstruct Mesh コンポーネントから取得できる頂点を接続します。
- Deconstruct Mesh コンポーネントの出力端子 N から各メッシュの法線ベクトルが取得できます。Amplitude コンポーネントでこの法線ベクトルの量を再設定していきます。
- List Length コンポーネントで法線ベクトルの数を取得します。
- Random コンポーネントで法線ベクトルの数だけランダムな数値を作成します。ランダムな数値の範囲は適当に‐28 ~ 28 としています。(Construct Domain コンポーネントの入力端子 A には Expression で-x を入力しています)
- Range コンポーネントで取得したランダムな数値のリストを Amplitude コンポーネントの入力端子 A に接続しま。法線ベクトルの量がランダムに再設定されました。
- Move コンポーネントの入力端子 T に接続します。頂点が移動したかと思います。
- Construct Mesh コンポーネントで移動した頂点を使ってメッシュを再度構築します。入力端子 F には Deconstruct Mesh コンポーネントで分割した Face を入力します。これでメッシュの変形が完成です。
色付け
- ついでに色付けしていきます。Deconstruct Mesh コンポーネントで再構築したメッシュを再度分解します。
- Distance コンポーネントで各頂点と球の中心との距離を取得します。
- Bounds コンポーネントで取得した距離の最小値~最大値までのドメインを取得しまます。
- Deconstruct Domain コンポーネントでドメインを分解し最小値と最大値を取得します。
- Gradient コンポーネントで L0 に最小値、L1 に最大値を、t に Distance を接続します。これで、変形した際に中心から遠いほど Gradiate の右側の色に近づき、近ければ左側の色に近づきます。
- Mesh Color コンポーネントで色付けして完成です。
以上になります。応用していろんな形状を試してみてください。