研究開発


マリオネットマンデーは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のみ)