目次
- 4-1. 底面となる四角形の作成
- 4-1-1. 幅と高さから四角形を作成
- 4-1-2. 挿入点に四角形の中心を移動
- 4-2. 柱状体の作成
- 4-2-1. シンプルな柱状体
- 4-2-2. ハイブリッド化
- 4-2-3. いったん確認
- 4-3. レイヤとの連動
- 4-3-1. 上端のレイヤを取得
- 4-3-2. 下端のレイヤを取得
- 4-3-3. 所属するレイヤの高さとの差を設定
- 4-3-4. オフセットを追加
- 4-4. ムシ退治
- 4-4-1. レイヤ選択が正しいかを判定
- 4-4-2. もしも♫レイヤが♫カラ〜な〜らば〜
- 4-5. オブジェクトに変換
- 4-5-1. ラッパーノードに変換
- 4-5-2. オブジェクトノードに変換
- 4-5-3. 使ってみる
4-3. レイヤとの連動
ここからは中級コースになるので、気合いの入れどころです。
大まかに説明すると、上端用のレイヤと下端用のレイヤをポップアップで選択し、それぞれのレイヤの高さを取得して、Extrudeの「nTop」と「nBot」に接続する、というかたちになります。
レイヤの高さだけだとつまらないので、その高さからオフセットできるように改良もしてみます。
4-3-1. 上端のレイヤを取得
まずは上端のレイヤを指定できるようにします。
先に、4-2-1で追加したDimノードは削除しておきましょう。
- 使用するノード
- 入力関数>初級>Layer Popup 1つ
- レイヤ>その他>Get Layer Elevation 1つ
Layer Popupノードを選択し、名前を「3上端のレイヤ」とします。
3上端のレイヤノードの出力「hLayer」とGet Layer Elevationノードの入力「hLayer」を接続します。
上端のレイヤの高さを柱状体の上面の高さにしたいので、Get Layer Elevationノードの出力「nBaseElev」をExtrudeノードの入力「nTop」につなぎます。
これで上面の高さを指定する骨組みができました。
4-3-2. 下端のレイヤを取得
次に下端のレイヤを指定できるようにします。
基本的には4-3-1と同じ手順です。設定する名前とExtrudeへの接続ポートが変わる程度です。
- 使用するノード
- 入力関数>初級>Layer Popup 1つ
- レイヤ>その他>Get Layer Elevation 1つ
Layer Popupノードを選択し、名前を「5下端のレイヤ」とします。
数字を「5」にしている意味は後々わかります。
5下端のレイヤノードの出力「hLayer」とGet Layer Elevationノードの入力「hLayer」を接続します。
下端のレイヤの高さを柱状体の底面の高さにしたいので、Get Layer Elevationノードの出力「nBaseElev」をExtrudeノードの入力「nBot」につなぎます。
ここまでで上下のレイヤの高さを設定するための基礎ができあがりました。
4-3-3. 所属するレイヤの高さとの差を設定
4-3-2までの手順だと問題があります。
それは、レイヤの高さをそのまま柱状体の高さに指定してしまうと、柱状体は「Z=0」ではなく、所属するレイヤの高さが基準になるので、欲しい高さの柱状体になりません。
例) 高さ「500mm」の「レイヤ-1」があった場合、「レイヤ-1」を上面に指定すると、上面の高さは「500mm(レイヤ自体の高さ)」にさらに「500mm」が足されることになるので、上面が「Z=1000mm」の高さに位置します。
どうすればいいかというと、今回作成しているマリオネットネットワーク自体が所属しているレイヤの高さを差し引いてあげる必要があります。
実際に既存のネットワークに組み込んでみます。
- 使用するノード
- 図形の情報>Parent PIO 1つ
- レイヤ>基本>Get Layer 1つ
- レイヤ>その他>Get Layer Elevation 1つ
- 数学関数>基本計算>sub 2つ
Parent PIOノードは、いま作成しているマリオネットネットワークをオブジェクトに変換したときにだけ有効なノードで、選択しているオブジェクトのハンドルを取得することができます。(ハンドルについては前回の記事を参照ください)
使用するノードのうち上3つを使って、オブジェクトが所属するレイヤの高さを取得します。
Parent PIOノードの出力「hMarionetteObj」をGet Layerノードの入力「hObj」に接続し、Get Layerノードの出力「hLayer」をGet Layer Elevationノードの入力「hLayer」につなぎます。
あとは、上端のレイヤの高さとの差を柱状体の上面に高さに指定します。
3上端のレイヤノードからつながっているGet Layer Elevationノードの出力「nBaseElev」をExtrudeノードから切り離し、subノードの入力「n1」に接続します。さらに、Parent PIOノードからつながっているGet Layer Elevationノードの出力「nBaseElev」をsubノードの入力「n2」につなぎます。
これで、subノードの出力「n」が実際に欲しい高さとなります。
subノードの出力「n」をExtrudeの入力「nTop」につなぎます。
下端のレイヤの高さも同様です。
下図を参考に、ノードを接続してみてください。
4-3-4. オフセットを追加
レイヤの高さだけだと細かい高さ調整ができないので、レイヤの指定と合わせて、オフセット値を入力できるようにします。
subノードにGet Layer Elevationノードが接続されている箇所が2つありますが、どちらも接続を切っておきます。
- 使用するノード
- 入力関数>初級>Dim 2つ
- 数学関数>基本計算>add 2つ
まず、2つのDimノードそれぞれに「4上端のオフセット」「5下端のオフセット」と名前をつけます。(上下のレイヤ指定のポップアップの次の番号になります。)
上端のレイヤからつながっているGet Layer Elevationノードをaddノードの入力「n1」に、4上端のオフセットノードの出力をaddノードの入力「n2」に接続します。
さらに、addノードの出力「n」をsubノードの「n1」に接続します。
下端のレイヤの方も同じように接続します。
下図を参考に、ノードを接続してみてください。
この機能を利用できる製品
Vectorworks Architect建築設計や内装、ディスプレイデザインに対応した先進的なBIM・インテリア設計支援機能、拡張機能、さらには豊富な建築向けのデータライブラリを搭載した建築/内装業界向け製品 |
|
Vectorworks Landmark地形モデルや多彩な植栽、灌水設備計画等に対応するランドスケープデザイン機能、さらには豊富な造園向けのデータライブラリを搭載した都市計画/造園業界向け製品 |
|
Vectorworks Spotlightステージプランニングやライティング計画に対応した先進的な舞台照明計画支援機能、さらには各種メーカー製のトラスや照明機材、音響機器等の豊富なデータライブラリを搭載したエンタテインメント業界向け製品 |
|
Vectorworks Design Suite専門分野別(建築設計/ディスプレイデザイン、ランドスケープデザイン、ステージデザイン&スポットライトプランニング)の設計支援機能、拡張機能、さらには豊富なデータライブラリを搭載した最上位の製品 |