研究開発

今週のマリオネット バックナンバー

「今週のマリオネット」で過去に紹介された記事を閲覧できます。



パラメトリック本棚
Parametric Books




マリオネットでは、「マリオネットオブジェクト」をつかってオリジナルのパラメトリックオブジェクトを作成することができます。 その方法も簡単です。ノードを組み合わせてプログラム作成し、コンテキストメニューから「オブジェクトノードに変換」を選択するだけで完了です。 プログラムの実行結果がそのままオブジェクトになります。


今回は、インテリアのレンダリングをより美しくする、本棚のパラメトリックオブジェクトを紹介します。 このオブジェクトはシンボルに登録した複数の本の3Dオブジェクトを無作為に並べ本棚を表現しています。 ひとつひとつの本オブジェクトが独立してレンダリングされるため、平面的にならず奥行き方向までしっかり表現された本棚になっています。 また、ただ無作為に並べるだけでなく、実際の本棚のように、傾むけたり、平積みしたりといった表現も可能です。


この本棚オブジェクトは次のような特徴およびパラメータを持っています。
  • 指定したシンボルフォルダからボックス内に本を配置する
  • 本の幅や背の高さがボックスからはみ出すものは削除する
  • 配置順序をランダムにする
  • 長い本棚を埋めるように繰り返し配置を行う
  • 6種類のランダムな角度またはすべての直線
  • 本棚の端からのオフセット
  • 定型図書の間に任意の数のスタック(平積み)を入れることができる
  • スタックあたりの書籍数(ランダム:最大/最小)
  • 積み重ねた本のオフセットと角度(ランダム:最大/最小)
  • 積み重ねだけを持つオプション

便利な「マリオネットオブジェクト」をつかって、オリジナルのパラメトリックオブジェクトの作成に挑戦してみましょう。


2017/02/22

スライダーを活用した光のエフェクト
LIGHT EFFECTS




Vectorworks2017が先日リリースされ様々な機能が追加されました。 マリオネットツールでは、入力ノードのインターフェースの多様化やレイヤや光源等を管理するノード群の追加、 外部ライブラリを利用しやすくする関数の追加など、より活用の幅が大きくなりました。
そのなかでも、今回はマリオネットに新しく搭載された機能「スライダー」を紹介します。 入力関数ノードに追加された「Slider」ノードよって、データパレットのスライダー式のインタフェースから、入力ノードの値を変更できるようになりました。 このスライダーノードをマリオネットオブジェクトに組み込むことで、パラメータの違いによる形状の変化をリアルタイムに確認しながら、値を調節することができます。




フォーラムサイトでは、スライダーノードを活用した光のエフェクトを表現するオブジェクトが公開されています。 照明や光の反射の形状をしたシンボルに、サイズや角度のパラメータを与えたオブジェクトです。 シンボルにグラデーション・透明等の属性をあらかじめ付与しておくことで、 シンボルのサイズのパラメータを変更したときに光の距離感やぼかしによる影響が表現されています。 これらのパラメータを「Slider」ノードを用いてスライダー式の入力にすることでにすることで、 パラメータの違いによる微妙な光の影響の具合の変化を確認しながら調節することができます。


スライダーのほかにもポップアップやラジオボタンなどの入力インタフェースを利用できるようになりました。 活用の幅がひろがったVectorworks2017のマリオネットをぜひ触ってみてださい。


2017/01/23

ラベル自動作成ツール
Example for AutoLabeling




マリオネットができることは大きく言うと図形の作成と図面上の情報の収集の2つです。 マリオネットではひとつのネットワークのなかで図形の作成と情報の収集の処理を連動させることができるので、 図形を作成してその図形の情報を取得する、図面上から取得した情報を使って新しい図形を作成するといったことが可能です。


今回紹介するのは、図形の情報をラベルとして図形に付与するマリオネットオブジェクトです。 図面に配置した四角形の寸法やレコードを取得し、これらデータを文字列図形として図面上の四角形の位置に作成しています。
具体的には、まず図形の情報を取得します。"Objs by Crit"ノードで図面上の対象図形を検索し、検索した図形を "Get Bounding Box" ノードに渡し四隅の座標を取得します。 この座標から四角形の寸法データを作成します。同時に "Get Record Field" ノードでレコードの値を取得します。 次に、取得した情報を図面上に表示できるように図形に変換します。寸法データから寸法線と寸法の値の図形を作成します。文字データから図形を作成するには"Text"ノードを用います。 同様にレコードの値から文字列図形を作成します。作成した文字列図形を四角形の位置にプロットします。
最後にこのネットワークをマリオネットオブジェクトに変換し(プラグインオブジェクトとして)シンボル登録します。 このシンボルを図面上にドラッグすると自動的に寸法とレコードのデータが図形上に表示されます。 シンボル登録しておくことで、図形にラベルを付けているような表現を可能にしています。


このようにマリオネットでは目的に合わせて自由な形状・形式ののラベルを作成することができます。 マリオネットの持つ自由な形状の図形を作成する機能、情報を簡単に収集できる機能を連動させて効果的なオブジェクトの作成に挑戦してみてください。


2016/07/22

ブラインドオブジェクト
Vertical Blinds




今回紹介するのは、縦方向のブラインドを生成するマリオネットオブジェクトです。 このブラインドオブジェクトは、データパレットから総丈、スラットの高さ、スラットの幅、スラットの角度を変更することができます。 マリオネットネットワークでは、ブラインドのほぼすべての部分をパラメータで変更することができるように、 ブラインドを構成するスラットやロープなどのパーツを"Rect"ノード"Circle"ノード"Extrude"ノード等で作成し、それらを適当な座標・角度で組み合わせています。 また、各パーツに"SetClass"ノードを用いて別のクラスを設定しおり、それぞれ違う模様やテクスチャを自由に切り替えられるようになっています。


このオブジェクトではパーツの位置を調整するのに、DomCが作成しフォーラムサイトで共有されている"PutByRefPt"ノードを使用しています。 パーツごとにオブジェクトを作成した場合にあとで位置を調整するには、"Move"ノードや"Rotate"ノードなど操作カテゴリのノードが標準で用意されていますが、 位置揃えなど考慮しながらネットワークを作成すると複雑なって少し大変です。 "PutByRefPt"ノードは座標の指定・位置揃え・図形の回転をオールインワンにした便利なのノードで、 今回紹介したオブジェクト以外でも使用されているのをよく見かける人気のノードです。



フォーラムサイトでは"PutByRefPt"ノード以外にも便利なノードが多数共有されています。 自分の目的にあったノードをみつけて、マリオネットネットワークの設計をよりスムーズに行いましょう。


2016/06/14

ワークシートからグラフをつくる




今回は、ワークシートを操作するノード群を活用してグラフを作成する例を紹介します。 まず次の記事にアクセスしてワークシートを操作するノード群(vwxファイル)を入手します。

ノード群が登録されたvwxファイルをライブラリのMarionetteフォルダに配置します。 これで、マリオネットツールのノード一覧にワークシートノード群が追加されます。


今回の例では、10行×10列のセルに数値データが入力されたワークシートを用います。 "Select Worksheet"ノードに名前を入力してワークシートを取得します。 マリオネットネットワークではこのワークシートから値を10×10コのデータを取得し、 取得した値を高さに持つ柱状体をセルの位置と対応した座標に配置することで3Dのグラフを作成します。


"Get Cell Value"に値を取得するセルの番地を入力しますが、(1,1)(1,2)...(2,1)(2,2)...のようにm行×n列の番地をつくるには"Mix2"ノードが便利です。 m行×n列の番地のデータを作成するには、"Mix2"ノードのデータパレットで List Matching オプションを"Cross Reference"に設定し、 この"Mix2"ノードに[1,2,...,m]と[1,2,...,n]の配列データを入力します。 作成した番地データを縮尺などに応じて乗算し座標データを作成し、この座標の位置に作成した四角形と取得したセルの値を"Extrude"ノードに入力して柱状体を作成します。


おまけですが、乱数を用いて柱状体に色を設定しています。"Random"ノードを用いて、 柱状体の数だけランダムなRGBデータを作成し"Set Fill"ノードに柱状体とRGBデータを入力します。


ワークシートのデータをマリオットで活用するには、ワークシートノード群と"Mix2"ノードを使いこなすことが重要です。 これらのノードの詳しい使い方も今週のマリオネットや手習い帖のページで紹介していきます。


2016/05/23

Shapeファイルから3Dの街をつくる
Marionette Fun with GIS shapefiles




マリオネットでは "GetRecordField" や "SetRecordField" ノードを用いて、図形のレコードにアクセスすることができます。 今回紹介するのは、Shapeファイル取り込みで作成した図形のレコードにアクセスするサンプルです。 Shpaeファイル取り込みを行うと建物の平面形状の多角形が作成されます。この多角形には建物の緯度経度や高さなどのGISデータが付与されています。 サンプルではレコードの高さの値をもとに多角形に高さを与えて3Dの街の様子を表現しています。


今回のサンプルのように街のなかの建物の図形など、多数かつ同種の図形をネットワークに入力する場合は "ObjsbyCrit"ノードを用いると効率的です。 "ObjsbyCrit" ノードは、データパレットのCriteriaフィールドに図形の検索条件を入力すると、検索条件にあったすべての図形を取得します。 多角形を検索する場合は「T=Poly」と入力します。この式は「図形の種類(T)」が「多角形(Poly)」であることを示します。 検索条件の式は自作する他、図形選択マクロでPythonスクリプトを作成にチェックを入れて作成したスクリプトからコピーして使用できます。


サンプルのネットワークでは "ObjsbyCrit" ノードで建物平面の多角形をすべて取得します。 取得した多角形を"GetRecordField" ノードに接続し、付随したGISのレコードに記録された高さ情報を取得します。 最後に "Extrude" ノードを用いて、多角形を断面形状、取得した高さを押し出し長さとする柱状体を作成し3D建物を表現しています。


このようにマリオネットは図形の情報を利用するBIMツールとして、多数の図形を一括に扱うマクロツールとしても利用できます。 マリオネットを活用して設計を効率的に行いましょう。


2016/05/06

パラメトリックなキャビネットオブジェクト
Marionette 3 Drawer Cabinet




オブジェクトノードは内包するマリオネットスクリプトの実行結果の図形として表示され、スクリプトの実行を必要としません。 内包する入力ノードに名前を設定すると、オブジェクトノードのデータパレットに入力フィールドが追加されます。 この入力フィールドのパラメータの変更はすぐに図形の表示に反映されます。 このようにオブジェクトノードを使ってパラメトリックオブジェクトを作ることができます。


今回紹介するのは、オブジェクトノードを用いたキャビネットのパラメトリックオブジェクトです。 サンプルのネットワークは、複数のパーツ(柱状体)を組み合わせてキャビネットを作ります。 柱状体の厚みや断面形状を、キャビネットの引き出し等のパーツの幅や奥行きなどのパラメータに対応させています。 各パーツのパラメータを入力するノードに名前を設定した状態で、オブジェクトノードに変換することで 図面上にはスクリプトの実行結果であるキャビネットが表示され、 データパレットには可変なパラメータが表示されるパラメトリックオブジェクトを作成しています。


オブジェクトを作成するネットワークを作成すれば、あとは「入力ノードに名前を付ける」「オブジェクトノードに変換する」 の作業を追加するだけで、パラメトリックブジェクトを作成することができます。 オブジェクトノードを活用して便利なオブジェクトを作成しましょう。


2016/04/26

ワークシートを操作するノード群
Worksheet nodes




フォーラムサイトでは、Vectorworks社のマリオネットチームから、拡張ライブラリや開発途中の新ノードなどリソースが多数提供されています。 設計をマリオネットで行う場合に重要となるワークシートを操作するノードは、マリオネットツールに標準で登録されていませんが、 今回紹介する「Worksheet nodes」の記事から、これらのワークシートのノード群を入手することができます。


提供されているワークシートのノード群には次のような機能を持つノードが含まれています。

  • ワークシートを作成する
  • セルの値を設定/取得する
  • ワークシートのレイアウト(セル/行/列の 追加/削除/結合/分割 など)を設定する
  • ワークシートを再計算する
  • 列の値を操作(ソート/合計 など)する

サンプルでは、ワークシートに入力された座標値を "GetCellValue" を用いて取得し、座標値の頂点を持つ曲線を作図します。 ワークシート内の座標値を変更しても、再度マリオネットスクリプトを実行すれば変更内容がすぐに図形に反映されます。


ワークシートを用いたマリオネットのサンプルは、他にもいくつかフォーラムサイト内で公開されています。 ワークシートとマリオネットを連動したものは、いますぐの設計に活用できるものが多いので、今後もどんどん紹介していきます。


2016/04/15

引力を表現するオブジェクト
Suction Effects




マリオネットツールに標準で備わっている、四則演算や三角関数、行列など数式のノードと、図形を操作するノードを組み合わせることで、 ある法則(数式)に従って図形を変形させるコマンドを簡単に作ることができます。


今回紹介するのは DomC による、数式でオブジェクトの形状を変化させるサンプルです。 サンプルでは、XY平面に配置した図形(NURBS,円,球,柱状体、四角錐など)に、 引力の効果や、sinカーブを与えて形状を変化させています。
具体的には、引力の式を「F = G*M*m/r^2」とし、 "Gravity force"ラッパー内で、乗算を行う"mul"ノード、除算を行う"div"ノードを用いて、この式を再現しています。 作成した万有引力ノードを用いて、XY平面に配置した球が、Z方向に引っ張られる様子を表現しています。
同様に、sinカーブの式を、"sin"ノードや減算を行う"sub"ノードを用いて作成しています。 XY平面上の複数の頂点について、Z方向の高さを乱数で設定し、その周辺の頂点の高さをsinカーブに沿うように変化させています。


このように、マリオネットツールは、数学ノードと操作ノードを組み合わせることで、Vectorworksのアルゴリズミックデザインツールとして使うことができます。 マリオネットを活用してアルゴリズミックデザインをはじめてましょう。


2016/04/06

自由な形状のトラス
Free Form Truss Using Marionette




マリオネットの得意な表現のひとつに3Dパス図形があります。 "Path Extrude"ノードにパス部分の図形と、断面部分の図形を入力すると、3Dパス図形が作成されます。 マリオネットで作成したパス図形の強みの1つは、パス形状や断面形状の変更などのパラメータの変更を、容易に図形全体に反映できることです。 パラメータの変更がただちに表示に反映されることで、例えば形状の試行錯誤を効率的に繰り返すことができます。


今回紹介するのは、MarkFlamer によるガイドカーブから屋根トラスを作成するサンプルです。この記事には3パターンのサンプルが添付されています。

  • "Truss_Network"は、ガイドカーブ(NURBS曲線)をパスとしてトラスを作成するマリオネットネットワークです。 図面上に作図したガイドカーブに名前を設定し、"Name"ノードを用いて取得しています。ネットワークでは、トラス部分の形状をパラメータで設定します。
  • "Truss_Object"は、1つめのトラスネットワークをオブジェクトノードに変換したものです。 ガイドカーブをコントロールジオメトリに設定しており、ガイドカーブを編集すると、実行ボタン等を操作することなく、ただちにパス図形に反映されます。
  • "Truss_Node"は、実際に屋根に沿ったトラスを作成するネットワークです。屋根はあらかじめ図面上に作図されたものを"Name"ノードで取得します。 このネットワークではトラス作成部分をラッパーノード化し、複数のパスを入力しています。 パスは取得した屋根面を"Contour"ノードに入力して、屋根面に沿った等間隔のNURBS曲線を複数作成しています。


記事のなかで DomC は、トラス作成部分のラッパーノードを応用して、ねじれた矢倉のようなオブジェクトを作成しました。 ねじり具合をパラメータとするNURBS曲線をパスとして、トラスのラッパノードに入力しています。 彼は、複雑なネットワークに単純なノードを付け足すだけで、より印象的な表現が可能であると述べています。 このようにネットワークの一部の処理のまとまりをラッパーノード化して、別のネットワークに流用できるのもマリオネットの強みです。 マリオネットの強みを活かして、オリジナルのパス図形を作成してみてください。


2016/03/25

マリオネットマンデー
Marionette Monday Webinar


マリオネットマンデーはVectorworks社のマリオネットエヴァンジェリストが1〜2月の隔週月曜日に行ったマリオネットのWebセミナー(Webinar)です。今回は、特別編として、Webinarの概要を紹介します。

マリオネットマンデーは、これまでに、1回1時間程度のセミナーが合計4回行われました。この4回のセミナーでマリオネットの基礎から高度な応用まで、一通りの技術を学習することができます。 各セミナーの動画は、YouTubeにアップされており、いつでも観ることができます。



各セミナーの概要は下のメニューを開いて確認してください。


Webinar Ⅰ : 基礎編

マリオネットの基礎


Webinar第1回は、Vectorworksの新しいグラフィカルなスクリプトツールマリオネットの基本的な操作方法および、ノードの説明、マリオネットのネットワークの構築方法について説明します。



マリオネットの用途 1:19〜
  • 有機的なデザイン
  • アルゴリズミックデザイン
  • プロトタイピング/パラメトリックなオブジェクト
  • 手順の自動化

アルゴリズムとは 3:50〜
  • 家具の組み立ての例
  • チョコレートクッキーのレシピの例
  • 必要なパラメータやデータを集めて、それを操作するのが基本

マリオネットノード 5:07〜
  • ノードを選択する
  • ノードを配置する
  • ノードの各部の名称や機能
  • ノードをつなぐワイヤ

マリオネットネットワーク 8:52〜
  • クッキーのレシピをネットッワークに落とし込んだ例
  • マリオネットネットワークでの処理は左から右へ流れる
  • ノードに名前を付ける
  • マリオネットスクリプトの実行
  • マリオネットスクリプトで作図した図形は専用の名前がついたグループ図形

ノードの分類 14:45〜


  • データ作成

    - "Input"ノード

    - "Get"ノード

    - オブジェクト情報取得

  • データ操作

    - データフローカテゴリ

    - 数学カテゴリ

  • オブジェクト作成

    - 図形(オブジェクト)カテゴリ

  • オブジェクト操作

    - 変更ノード

    - "Set"ノード

    - 操作ノード


  • 複数の三角形を作る例でノードの種類を説明

図形内の点グリッドを作成する例 23:36〜


  • 枠の図形に名前を付ける
  • Nameノードで図形をネットワークに入力する
  • 図形のバウンダリングボックスを得る
  • RangeノードMix2ノードでバウンダリングボックス内のグリッド座標をつくる
  • Mix2ノードのリストマッチングについて
  • Nameノードで図形をネットワークに入力する
  • IsInorOnPolyノードでグリッドの各座標が図形内にあるか調べる
  • 図形内にある座標に基準点を置く

Webinar Ⅱ : 中級編

リスト形式データの利用方法について


WebinarⅠは単純なデータを扱ったのに対して、WebinarⅡはリスト形式のデータを扱っています。リストを使うとデータが複雑になるため、実際にどのようなデータが流れているか見たり、ネットワーク全体を複数のネットワークのまとまりとして設計したり、ネットワークの管理を工夫することで、設計の効率を向上できます。



デバッグモード 3:15〜
  • ワイヤをクリックすると、流れるデータを確認できる
  • オブジェクト(図形)はハンドルとして表現される
  • オブジェクトのタイプ番号について
  • dummyノード(出力を見るため)
  • エラーが起きたら、ワイヤーをクリックして、問題の箇所を探す

用語の説明 7:55〜
  • リスト
  • インデックス(0から始めるリストの項目番号)
  • 範囲(Range)
  • データの基本形

    ブール値(Boolean)/整数(Integer)/実数(Real/Float)/文字列(String)/座標・ベクトル(Point/Vector)


整数・実数 14:37〜
  • 整数を入力すべきポートに実数をを入力してしまった例

データフロー 16:05〜


  • 100組の座標から四角形を作る例
  • "最大最小" 面積が最大、最初の四角形に色を付ける
  • "データのソート" 四角形を大きさの順に並べる

ラッパー 33:55〜


  • ネットワークを選択してラッパーノードに変換する
  • ラッパーのクラスを変更する
  • 出力ノードに名前を付ける
  • 入力ノードに名前を付ける
  • ネットワークの一部をラッパーノード化して、整理、再利用する
  • passノードから入力ノードを作成する
  • ラッパーノードの中身をシンボル化し、複数のノードで共有する
  • ラッパーノードをプラグインオブジェクト(マリオネットノード)に変換する
  • コントロールジオメトリが設定されたマリオネットノードに変換する

    - パラメーターを変更する

    - コントロールジオメトリを変更する

Webinar Ⅲ : 上級編 Ⅰ

カスタマイズ・解析・条件設定


基礎とデータの流れを理解できれば、いよいよ応用編です。 標準で搭載されていないカスタマイズノードや条件分岐のネットワークを用いて、ある制限をもつオブジェクトの作成や、オブジェクトに付随したパラメータをもとに解析を行います。



カスタマイズノード 2:24〜
  • オープンソースである
  • 既存のノードを編集することで新しいコマンドを作れる
  • フォーラムサイトでカスタムノードがシェアされている
  • リスト操作のカスタムノード

    【ChunkList】リストから複数の固まりごとのリストをつくる

    【Transpose】複数のリストの一つ目の要素を一つ目のリストに、二つ目の要素を二つ目のリストにする

    【FlattenList】複数のリストを連結してひとつのリストにまとめる

  • カスタマイズノードをマリオネットツールのリストに追加する手順

    - カスタマイズノードをシンボル登録する

    - シンボルが登録されたVWドキュメントをMarionetteのライブラリフォルダに保存する


オブジェクトノードのネットワークの共有 9:33〜
  • ソリッド図形を輪切りにするマリオネットスクリプトの例
  • オブジェクトノード内のマリオネットネットワークをシンボル化することで、ネットワークを共有する
  • シンボル化したネットワークでのソリッド図形の変更がオブジェクトノードにも反映される

様々な大きさの穴を持つファサードを解析する例 15:32〜


  • 壁の穴部分を作成する

    - 同じ大きさの四角形をグリッド状に配置する

    - ランダムな大きさの四角形を同様に配置する

    - グリッドに沿った四角形とランダムな四角形から多段柱状体をつくる

    - グリッド全体を囲む柱状体を作成し、多段柱状体で削り取る

    - 穴の縦横比に制限をつける

  • ファサードを解析する

    - 穴を開けるまえの壁の体積を算出する

    - 穴を開けたあとの壁の体積を算出する

    - 穴を開けた壁の表面の面積を算出する


インフォグラフィックス 30:14〜


  • GISのshapeファイルをimportして図形を作成する
  • 2色からグラデーションを作成して、値に応じて色を選択する
  • 図形のレコードの値に応じて、グラデーションから色を取得する

    - 面積、人口

  • 図形のレコードの値に応じて、ラベルをつける

    - フォント、サイズ、位置を調節する

    - 面積、人口に応じて文字の大きさを変える

  • 円グラフを作成する

    - 面積、人口、密度に応じて、色、領域の大きさ、文字の大きさを変える

Webinar Ⅳ : 上級編 Ⅱ

カスタマイズノードのコーディング


マリオネットに慣れてくると、ノードの中のプログラムを変更したくなってきます。 マリオネットは、Pythonで記述されており、Vectorscriptの関数を利用しています。 応用編2部では、マリオネットノード内のPythonプログラムの編集方法を説明します。



マリオネットノードのコードを変更する 3:05〜
  • ノードのプログラムの表示方法
  • プログラムの中身(定義文)

    - ノードの属性(名前、ポートなど)を定義する部分

    - モジュール(青文字)

    - 文字列(緑文字)

    - 数字(赤文字)

    - インデントされている部分はインデントされていない定義の内部

    - 入力ポート(必ず初期値を設定する)

    - 各属性の説明

    - SetLinksObject() 前に作ったオブジェクトを置き換える

  • プログラムの中身(命令文)

    - モジュール、クラス、値、関数

    - vs Vectorscriptモジュール Vectorscriptの関数であることを示す

    - Vectorscript関数の一覧は、developer.vectorworks.net を参照

    - 四角形を描くプログラムの例

    - 出力ポートの値を設定する

    - 出力の値を変数で書く


カスタマイズノードの作成 14:57〜


  • "Set Name"ノードを作成する

    - オブジェクトに名前を設定するノード

    - "Set Height"ノードを選択し、内部を編集する

    - 作成した"Set Name"ノードを使用して壁に名前をつける

  • 場合分けをしているネットワークを単純なコードにする

    - "Filter"ノードを編集する

外部ファイルの内容を取り込む 26:16〜


  • インターネット経由でGoogle Mapsの地図を取得する
  • 太陽光設定オブジェクトが指す位置の地図を取得する
  • プラグインオブジェクトの情報(隠しレコード)を取得するネットワークの作成
  • 位置情報を格納しているフィールドを探す
  • Google Mapsから情報を取得するためのURLを作成するネットワーク

    - 地図、衛星写真をパラメーターで変更する

    - URLを組み立てる

    - WEBにアクセスする

    - ファイルを取得する

    - ImportImageFile関数を使用してVectorworksに取り込む

  • デスクトップに保存したスクリーンショットをvectorworksに取り込む例(Macのみ)

2016/03/14

パンフレットスタンド
brochure holders




マリオネットオブジェクトは、複数図形のグループ図形をコントロールジオメトリに設定することができます。 ネットワークで図形を取得するには、単一の図形の場合と同様に、Control Geometry ノードを使用します。 グループ図形の場合は、Control Geometry ノードのあとに、Contents ノードを接続することで、内部の図形を取り出すことができます。


今回紹介するのは、DomC による、グループ図形をコントロールジオメトリに使用したパンフレットスタンドのマリオネットオブジェクトです。 スタンドの各パーツの断面4種と、パンフレットの形状をコントロールジオメトリに設定しています。 ネットワーク内部では、それぞれの断面をパス図形に変換して、パーツを作っています。 パス図形の位置や長さは、幅、高さ、段数、角度など、可変なパラメータにより決定しています。 各段に、パンフレットをきれいに整列するのに、図形を参照点についてソートするオリジナルノードを使用しています。 サンプルの各パラメータを変更する様子は動画でも紹介されています。


また、彼は記事の中で、Pass ノードを使用したネットワーク作成の工夫を紹介しています。

  • ワイヤーを分配するために使用する
  • ワイヤーを流れるデータの種類を確認するのに使用する
  • ラッパー内のPassノードに名前を設定することで、Passを通過する値をラッパーの外に表示する
  • ネットワークのまとまり毎にPassノード接続しておくことで、他のまとまりの変更や追加によって、ネットワークを修正することなく管理する
  • オブジェクトの順序管理に使用する

彼のネットワークでは、上で紹介したグループ図形をコントロールジオメトリに設定した場合の内部図形の取得方法や、Pass ノードの工夫をはじめ、 比較的簡単で有用なオリジナルノードなど、マリオネットネットワーク作成において参考にできるポイントが多々あるので、確認してみましょう。


2016/02/26

軌跡に沿った光源オブジェクト
A String of Lights




マリオネットのオブジェクトノードはコントロールジオメトリに登録した図形をパス図形に設定することができます。 パス図形を編集すると、リアルタイムでオブジェクトノードが表示する図形に反映されます。 ネットワークでパス図形を取得するには入力関数カテゴリの「Control Geometry」ノードを使用します。


今回紹介するのは、ユーザー Alan Woodwell によるコントロールジオメトリに登録したNURBS曲線と光源オブジェクトを組み合わせたサンプルです。 このサンプルは、「Control Geometry」ノードを使って取得したNURBSを等分割して、光源を作成するノード、光源のパラメータを変更するノードと組み合わせて、 軌跡に沿った光源配置を表現しています。 また、パスと光源は連動したひとつのオブジェクトしとして図面に配置されます。例えば、パスを編集すると自動的に光源の位置が再計算され、ただちに再描画されます。 このように、オブジェクトノードとコントロールジオメトリを活用することで、オリジナルのオブジェクトを簡単に作成できます。



※関連記事 光源を操作するノード群
Objects - Lights




マリオネットツールに標準で登録されているノードには、光源を操作する機能を有しているものはありませんが、 Vectorworks社の Marissa Farrell から、マリオネットの拡張ライブラリとして、光源を操作するノード群が提供されています。 上で紹介した Alan のサンプルでは、このノードを使用しています。 光源のノード群には次のような機能を持つノードが含まれています。

  • 光源オブジェクトを作成する
  • 光源の情報を取得する
  • 光源の情報を取得する
  • 光源のパラメータを設定する
  • 環境光を設定する

これらのノードはvwxファイルのリソースに登録された状態で提供されています。 リソースに登録されたノードは、マリオネットツールのノード一覧に追加することができ、簡単に共有できます。 ノード一覧に追加するには、ライブラリのMarionetteフォルダにリソース登録されているvwxファイルを配置します。 光源ノード群を導入して、光源を使ったオリジナルオブジェクトを作成してみましょう。


2016/02/17

マリオネットを使ってインターネットにアクセスしよう
Use Marionette to access the internet from VW




マリオネットのスクリプト言語のPythonには、非常に便利なモジュールが多数用意されています。 数値解析、画像処理、暗号化、データベース、HTMLパーサなどなど。Pythonではこれらの機能を比較的容易に利用することができます。 マリオネットでも、スクリプトを直接編集または、誰かが作成したスクリプトを取り込むことで、 Pythonの便利なモジュールの恩恵を受けることができます。


今回紹介するのは、マリオネットでインターネットに接続して、接続先の情報を取得してくるサンプルです。 このサンプルは、太陽光設定オブジェクトから取得した、緯度・経度からGoogleのマップのURLを作成し、 「Image from URL」ノードを使用して、地図をビットマップイメージとしてインポートします。 「Image from URL」ノードは、Pythonのインターネットに接続するモジュールを活用して、 指定したURLから、画面のキャプチャをVectrorworksのイメージに変換するオリジナルノードです。


さらに、この記事には、インターネットから世界の気象情報を取得して、世界地図上に気象情報をボロノイ図としてプロットしている様子も紹介されています。 これはインターネット接続や数値解析など、複数のモジュールを組み合わせた上級技なので難易度は高いですが、マリオネットの表現の可能性を示しています。 Pythonモジュールを活用して、マリオネットの表現方法の拡張に挑戦しましょう。


2016/02/09

太陽電池パネル:ファイルの情報を読むマリオネットスクリプト
Photovoltaic Panel: A Marionette script that reads the Vectorworks file




マリオネットの良い点のひとつは、マリオネットのシステムがVectorworksでの設計環境に統合されているということです。 つまり、2D/3Dの作図やオブジェクト、レンダリングなど、Vectorworksの様々な機能に相互にアクセスすることができます。


今回紹介するのは、Vectorworks社 Robert Anderson による、マリオネットからオブジェクトにアクセスするサンプルです。 サンプルでは、ドキュメント内の太陽光設定オブジェクトから取得した方角と緯度をもとに、最適な角度の太陽電池パネルを描画します。 サンプルネットワークでは次のような処理を行っています。

  • 太陽光設定オブジェクトを探す
  • 太陽光設定オブジェクトから、方角と緯度のパラメータを取得する
  • 方角と緯度からパネルの最適な角度を求める
  • 柱状体ノードからパネルを作成する
  • パネルを求めた角度で回転させる

このネットワークを参考にすれば、Vectorworksのプラグインオブジェクトからパラメータを取得して、その値をもとに別の図形を作図するという仕組みが実現できます。 また、マリオネットで作図したオブジェクトは、Vectorworksの図形なので自由に編集できます。 このように、設計過程をマリオネットと連動させれば、より効果的・効率的な設計が期待できます。


2016/02/02

点グリッドのノード、ラッパー便利集
Some handy Nodes and Wrapper for PointGrids




マリオネットのノードのスクリプトは Python で記述されています。このスクリプトはVectorworks内のエディタで自由に編集することができます。 Python の知識があれば、既存のノードを編集することで、オリジナルのノードを作成できます。 オリジナルノードは Vectorworks のひとつの図形として存在するため、簡単に共有することができます。 自分が作ったノードを公開したり、他者が作ったノードを自分のマリオネットネットワークに組み込むことが可能です。


今回紹介するのは、たくさんの効果的なノードを生み出すユーザー DomC によるオリジナルノード群です。 彼は、乱数やグリッドなどを用いたノード(ラッパーノードを含む)11点を作成しました。

  • 乱数のリストを作成するノード
  • リストの順番をランダムに入れ替えるノード
  • 2次元の座標群をシェイク(それぞれランダムにオフセット)するノード
  • 図形のバウンダリングボックスから任意の間隔のグリッド座標を取得するノード
  • リソースに登録されているシンボルを図面に配置するノード   ...などなど。

これらのノードを活用すれば、例えば広場にランダムに人を配置したり、建物の周りに樹木を配置したりといった表現が可能となります。
DomC による記事「node example for filling an area with symbols」では、 NURBS曲面上に人形シンボルをランダムに配置するサンプルや、建物の周りに人形シンボルを配置するサンプルが添付されています。 サンプルファイルのネットワークを参考にして、是非ご自身のネットワークに組み込んでみてください。


2016/01/21

マリオネットの冒険
My journey thru Marionette




Vectorworks社の Luis M Ruiz が、マリオネットでの経験と発見を、サンプルファイルとして共有してくれています。
ここでは、マリオネットでできる基礎的な部分をまとめた、サンプルファイル33種類が公開されています。
・2D図形(線・円・四角形)の作図
・図形の操作(複製・回転・整列)
・3D図形の作図
などの方法が、段階的に分かりやすくまとめられています。
最後には美しいトロフィーの3Dモデルを作成するサンプルが用意されています。
マリオネットをはじめて触る方には、とても良い教材となる記事です。


2016/01/15