Structure Synth によるアート入門(EisenScript)

えーっと、今日は眠くないので書き溜めておいたものをもう1稿、明日の分を放出してしまおう。
っていうか今はさっき思っていた明日になってしまったけど、、、
イメージ 1

やはりアートは自分で作らないと面白くない。という事で今日はStructure Synth のEisenScriptに挑戦です。慣れると面白いアートが出来る。そしてちょっとした頭の体操にもなる。そして出来上がるアートは想像と違ってたり想像を超えてたりするから面白い。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804222911.jpg
File => New で新規のEisenScript入力が出来るようにします。


下の入力例は簡単なEisenScriptです。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804222915.jpg
このEisenScriptの基本動作はR1規則を適用するという意味です。Render=>Renderでレンダリングを実行すると球が一個作られただけで面白く無いね。まずは、このルールというものがどういうものかを覚えておこう。
ルールは次のように定義します。上の例だとルール名はR1とした。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804222920.jpg
EisenScriptの基本は再帰的な繰り返しによって3Dオブジェクトを生成していくことです。なのでこの再帰繰り返しを止める事がCG生成の終了になります。それにはmaxdepthかmaxobjectsによって停止させます。オブジェクトやルールをある規則で適用させていきます。その規則は移動、回転、拡大・縮小、行列による回転等を指定する事が出来ます。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804222923.jpg
変換パラメータには次のような指定が出来ます。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804222928.jpg
これらは局所座標に対して効いてきます。この変換パラメータを使った例として次のような例を見てみる事にする。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804222934.jpg
上記の例ではルールR1を再帰的に適用する際にx方向に1移動し、z軸を6度、y軸を6度回転し座標系に対する縮尺を0,99倍にします。球を移動させようとして
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804222939.jpg
としても球は動きません。座標系の移動なしにx方向に1移動し、z軸を6度、y軸を6度回転し座標系に対する縮尺を0,99倍した球が置かれるので見た目は一個の球が常に置かれた状態になります。例えば次の例では球が2個置かれます。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804222944.jpg
次の例のように変換パラメータは並べて書くことも出来る。
https://cdn-ak.f.st-hatena.com/images/fotolife/c/cat_falcon/20190804/20190804222951.jpg