今回は Anemone というプラグインを使用し、上画像の様なジオメトリを生成してみたいと思います。Anemone は再帰処理ができるプラグインとなります。Python などで再帰処理を書いてしまう方法もあるかと思いますが、こちらも使用できると便利なので今回記事にしました。
Anemone はこちらから
できます。事前にインストールしてから実装してみてください。
こちらのチュートリアルは動画化しております、動画の方がよい方は以下のリンクからどうぞ!
概要
Anemone を使用せず実装
Anemone を使用して実装
上画像 1 枚目が Anemone を使用せずに実装したプログラム、2 枚目が Anemone を使用した場合のプログラムとなっております。
2 枚目の 3 ブロック目は色付けしているだけなので、2 ブロック目までが 1 枚目のプログラムと一致しています。
比較するとだいぶコード量が少ないかと思います。
まずは Anemone を使用しないで実装したものから説明していこうと思います。
Anemone 不使用の場合 ①
- Center Box コンポーネントで 1 辺 200mm の立方体を作成します。
- Deconstruct Brep コンポーネントで作成した直方体のサーフェイスを取得します。
- Area コンポーネントで取得したサーフェイスの中心点を取得します。
- Volume コンポーネントで立方体の中心点を取得します。
- Vector 2Pt コンポーネントで直方体の中心点と各サーフェイスの中心点を結ぶベクトルを作成します。
- Amplitude コンポーネントで作成したベクトル長さを再設定します。
- Move コンポーネントで各サーフェイスの中心点を、作成したベクトルで移動させます。
- Extrude Point コンポーネントで各サーフェイスを移動させた各点に向かって押し出します。
Anemone 不使用の場合 ①
- 先ほど Extrude Point コンポーネントで押し出して作成したジオメトリに対して、Deconstruct Brep コンポーネント ~ Extrude Point コンポーネントまでの処理を同じように行います。上画像の様に各サーフェイスが更に押し出されます。
- この処理を更に 2 回繰り返すと、上画像の様になります。
このように同じ処理を何度も書く必要があり冗長ですね。
今回は繰り返し回数が少ないのでさほど大変ではないですが、繰り返し回数が多くなるとプログラムを書くこと自体がかなり大変ですし、プログラムが変更や修正になった場合も繰り返し回数分直さなければいけません。
それではこのプログラムを今度は Anemone を使用して実装してみます。
Anemone を使用した場合 ①
- Center Box コンポーネントで先ほどと同様、1 辺 200mm の立方体を作成します。
- Volume コンポーネントで立方体の中心点を取得しておきます。
Anemone を使用した場合 ②
- Loop Start コンポーネントと Loop End コンポーネントを用意し2つをつなぎます。
- Loop Start コンポーネントに Center Box コンポーネントを接続します。
- Loop Start コンポーネントと Loop End コンポーネントの間に繰り返し処理を記載します。先ほど繰り返した、Deconstruct Brep ~ Extrude Point コンポーネントまでを用意し、Loop Start コンポーネントと Loop End コンポーネントに接続します。
- Loop Start コンポーネントの入力端子 N に繰り返す回数を入力し,入力端子 T(Trigger)に Button コンポーネントを接続します。
- Button コンポーネントを押すと繰り返し処理が開始します。先ほど Anemone なしで実装したプログラムよりもだいぶスッキリしたと思います。
ジオメトリに色付け
- ついでに色付けしていこうと思います。Brep コンポーネントで LoopEnd コンポーネントからジオメトリを取得し、Flatten しておきます。
- Custom Preview コンポーネントに取得したジオメトリを接続します。
- Area コンポーネントで押し出したジオメトリ(各サーフェイス)の中心点を取得します。
- Distance コンポーネントで最初に作成した立方体の中心点から、各サーフェイスの中心点の距離を取得します。
- Bounds コンポーネントで取得した距離の最小値~最大値のドメインを取得します。
- Deconstruct Domain コンポーネントで取得したドメインから最小値と最大値を取得します。
- Gradient コンポーネントに最小値・最大値・距離のリストを接続します。
- Custom Preview コンポーネントに Gradient コンポーネントで作成した色のリストを接続します。
完成
以上になります。使いこなせば非常に便利かと思います。Anemone のチュートリアルはいろんな方があらゆるチュートリアルを作成していますので、是非実践してみてください。以下に、Anemone を使用した別の記事を載せておきます。興味ありましたら是非のぞいてみてください。