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

第10回「マテリアルノード」

ArchitectLandmarkSpotlightDesigner2021

この記事は【2021年1月26日】に公開されたもので、2年以上経過しています。
記事の内容が古くなっていたり、新機能の追加・機能の改善が図られていることがあります。

Vectorworks2021では新機能”マテリアル”が搭載され注目されています。
マテリアルはテクスチャやクラス、物性値をまとめて”材料”として図形と切り離して管理することができる新しいリソースです。
このマテリアル機能にマリオネットからアクセスできるマテリアルノードをご紹介します。

早速マリオネットツールからノードを配置してマテリアルの材料管理を自動化しましょう。

 

あれ? マテリアルのノードがありません。。。

 

実は、Vectorworks2021では2021年1月の時点でマテリアル関連のノードが実装されていません。

というわけでA&Aで作りました。A&Aノードライブラリ「マテリアル」です。

A&Aノードライブラリのダウンロード

10-1. マテリアルノードの使い方

A&Aノードライブラリ.vwxをダウンロードして、Vectorworksのライブラリフォルダに配置します。

1.  ユーザフォルダを開く

Vectorworks2021を起動して、ユーザフォルダにアクセスします。

ツール > オプション > 環境設定... > ユーザフォルダタブ > フォルダを直接表示

2. マリオネットのライブラリフォルダを開く

ユーザフォルダから次の階層のマリオネットのライブラリフォルダを開きます。

ユーザフォルダ > 2021 > Libraries > Defaults > Marionette

3. A&Aノードライブラリ.vwx を配置する

Marionetteフォルダ配下にA&Aノードライブラリ.vwxを配置します。配置できたらVectorworksを再起動します。

4. マリオネットツールから使用する

マリオネットツールを選択して、”ノード定義を選択”からノード定義一覧を開きます。画面左側のユーザライブラリに”A&Aノードライブラリ”が追加されています。マテリアルフォルダにはマテリアルノードが展開されています。

標準のノードと同様にノードを選択して図面上でクリックすると図面上に配置されます。標準のノードと組み合わせてネットワークを作成することも、さらにコード編集してカスタマイズすることもできます。

10-2. 自作ノードのライブラリ化

今回のマテリアルノードのように、自作のノードをマリオネットツールから呼び出せるように”ライブラリ化”する方法をご紹介します。

(1) まずはライブラリ化したいノードを用意します。単一のノードだけでなく、ラッパーノードとオブジェクトノードもライブラリ化することが可能です。

(2) ノードを選択状態にして、「加工メニュー > シンボル登録…」を選択します。

(3) シンボル登録ダイアログで、その他の”プラグインオブジェクトに変換”に必ずチェックを入れ、名前やクラスなどを任意に設定してOKを選択します。

(4) リソースマネージャのアクティブファイルに登録したノードが登録されていることを確認します。ここでノードの名前が”赤色”(赤いシンボル)であることを確認してください。確認できたら保存してファイルを閉じます。

(5) 保存したvwxファイルを1章の手順と同様にライブラリファイルに配置することでマリオネットツールから呼び出すことができるようになります。

10-3. マテリアルの設定

マテリアルノードを使用して簡単なプログラムを作成します。事前に10-1.のライブラリのインストールを実施してください。

1. 仕様設計

マリオネット内で作成した柱状体に、デフォルトライブラリのマテリアルを設定します。

2. マテリアルの準備

配布しているマテリアルノードにはマテリアルを一から作るノードも準備していますが、今回はデフォルトライブラリから”コンクリート 3500psi MT”マテリアルを選択して使用します。リソースマネージャのVectorworksライブラリから、次のマテリアルを選択します。

Defaults > Materials > Materials.vwx > コンクリート > コンクリート 3500psi MT

マテリアルをダブルクリックしてリソースの取り込みを実行します。

3. 柱状体の作成

Boxノードを使用して柱状体を作成します。柱状体の基準座標・幅・奥行き・高さのパラメータをそれぞれ入力します。

  • 基準座標: (0,0,0)
  • 幅:100
  • 奥行き:100
  • 高さ:15

テスト実行してタイル状の直方体が生成されればOKです。

4. マテリアルの設定

“SetObjMaterialHandle”ノードは指定した図形に対して、指定したマテリアルを設定するノードです。

「A&Aノードライブラリ > マテリアル」からSetObjMaterialHandleを選択します。

次に、マテリアル定義の名前からハンドルを取得します。Nameノードを配置して、”Object Name”パラメータに”コンクリート 3500psi MT”を入力します。3.で作成した柱状体と、コンクリートマテリアルのハンドルをSetObjMaterialHandleに接続します。

5. プログラムの実行

作成したネットワークを選択してプログラムを実行します。

OpenGLでレンダリングすると柱状体にコンクリートのテクスチャが割り当てられています。オブジェクト情報パレットを確認すると、マテリアルのパラメータに”コンクリート 3500psi MT”が設定されています。

これでマリオネットのプログラムで図形にマテリアルを設定することができました。

10-4. マテリアルの集計

図面上で使用されているマテリアルの情報にアクセスして集計するプログラムを作成します。ポイントは壁の構成要素それぞれで使用されているマテリアルの情報を取得することです。

サンプルファイルのダウンロード

このプログラムでは次のマテリアルノードを使用してマテリアルの体積を集計しています。

  • ForEachMaterial:図面上で使用されているマテリアルの種類の一覧を取得します。
  • GetComponentMaterial:指定したオブジェクトの構成要素で使用しているマテリアルの名前を取得します。
  • GetMaterialVolume:指定したオブジェクトで指定したマテリアルを使用している部分の体積を返します。

「マテリアルの集計」のプログラムは、次回の講座で仕様設計やアルゴリズムについて詳しく解説します。

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

Architect

Vectorworks Architect

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

Landmark

Vectorworks Landmark

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

Spotlight

Vectorworks Spotlight

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

Designer

Vectorworks Design Suite

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