マリオネット・スクリプト解説講座

第35回「パス複製を再現する」

ArchitectLandmarkSpotlightDesigner2023

今回は便利なメニューコマンド「パス複製」をマリオネットで再現します。マリオネットでパス複製を再現するときにキーとなるGet Point On Polyノードを中心に解説します。

編集 > パス複製… から実行できるパス複製コマンドは、あらかじめ選択した図形を指定したパスに沿って複製することができます。複製の数や間隔、図形の回転角度を指定することができ、作業の効率化にもデザインにも活用できる便利なコマンドです。

ただし、メニューコマンド全般に言えることですがコマンド実行後に複製された図形は特に情報を持たないので、後からパスが変更なったとき、デザインを少し変えたいとき、コマンドの最初からやり直しとなります。その点、マリオネットでパス複製の仕組みを作ってしまえば、実行結果をパラメトリックに変更することができるようになります。

35-1. Get Point On Polyノード

Get Point On Polyノードは、パスとなる多角形/曲線に対して、長さ方向に距離を測って、その地点でのパス上の座標を調べることができます。

次のように、長さ100の曲線の50mm地点の座標を調べてみます。

(50,0,0)の座標を得ることができました。

このノードを使用して、パス上の任意の座標に複製したい図形を配置することで、パス複製を再現していきます。

35-2. 配置間隔を決める

次のようなパス図形となる曲線Aに四角形をパス複製で配置するプログラムを作成します。

35-2-1. 複製の数を指定する

それでは図形をパス上のどの距離に配置するのか配置間隔を求めます。まずは複製の数を指定する方法です。パスの両端に1つずつ複製を配置することにして、その間に決めた数だけ等間隔に配置していきます。

最初にパスの長さを測ります。

この長さを「複製の数-1」で割ることで、1区間の間隔を算出できます。ここでは8個の複製を作成するとして、長さを7で割ります。

複製図形それぞれのパスの始点からの距離は「1区間の間隔*何個目か」で算出できます。Seriesノードで0~7の数列を作成して間隔の値とかけます。

配置する距離が求まったのでGet Point On Polyに入力して結果を確認します。このとき、Get Point On Polyの許容誤差を少し緩く(0.01程度に)設定してください。

パス上に等間隔に8つの基準点が配置されました。

35-2-2. 複製の距離を指定する

次に複製の距離を指定する方法です。パスの始点から指定した距離の間隔で図形を配置して、パスの終点を過ぎたところで複製を終了します。

最初にパスの長さを測るところは前回と同じです。

パスの長さを指定した間隔で割ることで複製の数を算出できます。ここでは配置間隔を30mmとしてdiv floatノードで除算を実行します。始点にも図形を配置するため複製の数は「パスの長さ/間隔+1」となります。

複製の間隔と複製の数が決まりましたので、以降の手順は複製の数を指定する場合と同じです。Get Point On Polyに入力して結果を確認します。

パス上に30mmの間隔で8つの基準点が配置されました。パスの長さと配置間隔がピッタリ合わない場合は、パスが少し余ったような配置となります。

35-3. パスに沿って回転する

パスの向きに合わせて図形を回転させます。回転が分かりやすいように四角形を作図します。

Create RectAngle 2Ptノードを使用して、配置座標を中心に10*10の正方形を作図します。Create RectAngle 2Ptには四角形の対角線をとる2つの頂点を指定しますので、xy座標に5または-5ずつオフセットした座標を入力します。

実行して、四角形がプロットされることを確認します。この時点ではパスに沿って回転していないことが分かります。

図形に回転を反映するにはvTanポートの出力を使用します。vTanには指定した距離の地点でのパスの接線ベクトルを取得することができます。

Vector to Angleノードに接線ベクトルを入力して、Z軸の回転角度に変換します。

最後にRotateノードで四角形を回転します。

パスに沿って四角形を回転することができました。

35-4. オブジェクト化する

パスをコントロールジオメトリに指定して、マリオネットオブジェクトを作成します。

パス図形を参照していたNameノードをControl Geometryノードに置き換え、複製の数を決めるintノードに名前を設定します。

パスとラッパーノードを選択して、マリオネットオブジェクトに変換します。

複製の数を変更したり、

オブジェクトのコントロールポイントからパスの形状を変更したり、

パラメトリックにパス複製を実行することができるようになりました。

この機能を利用できる製品

Architect

Vectorworks Architect

建築設計や内装、ディスプレイデザインに対応した先進的なBIM・インテリア設計支援機能、拡張機能、さらには豊富な建築向けのデータライブラリを搭載した建築/内装業界向け製品
詳細情報 購入ページ

Landmark

Vectorworks Landmark

地形モデルや多彩な植栽、灌水設備計画等に対応するランドスケープデザイン機能、さらには豊富な造園向けのデータライブラリを搭載した都市計画/造園業界向け製品
詳細情報 購入ページ

Spotlight

Vectorworks Spotlight

ステージプランニングやライティング計画に対応した先進的な舞台照明計画支援機能、さらには各種メーカー製のトラスや照明機材、音響機器等の豊富なデータライブラリを搭載したエンタテインメント業界向け製品
詳細情報 購入ページ

Designer

Vectorworks Design Suite

専門分野別(建築設計/ディスプレイデザイン、ランドスケープデザイン、ステージデザイン&スポットライトプランニング)の設計支援機能、拡張機能、さらには豊富なデータライブラリを搭載した最上位の製品
詳細情報 購入ページ