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

新着記事第56回「文字列の立体化」

ArchitectLandmarkSpotlightDesigner

今回はマリオネットで文字列を自動的に立体化する方法をご紹介します。チャンネル文字やネオンサインに使える文字のオブジェクトの作成します。

56-1. 文字列の作成

まずはCreate Textノードを使用して文字列図形を作成します。

sポートに文字列を入力します。

実行すると文字列図形が生成されます。

56-2. 曲線に変換

次に、今回のポイントとなるConvert to Poly Groupノードを使用して、文字列図形を曲線に変換します。

Convert to Poly Groupノードは、文字メニュー > 文字を曲線に変換 コマンドを実行したときと同様の結果を得ることができます。

Convert to Poly Groupノードでの変換された曲線はグループ化されます。加工しやすいようにUngroupノードでグループ解除しておきます。

56-3. 文字から柱状体を作成

変換した曲線を断面として、柱状体を作成します。今回はbottomの高さを0とし、topには厚みを入力します。

立体化できました。

今回は壁面等に設置することを想定して、文字列の面が垂直になるように回転します。Rotateノードを使用して、x軸を90度回転します。

文字が立ち上がりました。

Textureノードで任意のテクスチャを適用します。

56-4. 面ごとにテクスチャを適用

Textureノードでは、柱状体の面ごとにテクスチャを設定することができます。対象とする面はテクスチャノードのパートIDのプルダウンから選択します。

ここでは上面、側面、下面を設定するので、テクスチャノードを3つ用意して連結します。それぞれパートIDを指定して任意のテクスチャを選択します。

実行すると、上面、下面、側面それぞれテクスチャが設定されます。

グローシェーダーの反射属性を適用したテクスチャを使用することで、発光するチャンネル文字を作成することができます。

上面に発光テクスチャを設定

下面に発光テクスチャを設定

56-5. 3Dパス図形に変換

次に文字列から3Dパス図形を作成します。ネオンサインをつくるイメージです。

文字列を曲線に変換するところまでの手順は柱状体と同じです。

Path Extrudeノードを使用して3Dパス図形を作成します。

文字列の曲線をパスとし、楕円(円)を断面として新しく作成します。ここで注意があります。曲線をパスに使用する場合、「O」の文字など穴がある曲線では上手くいきません。この場合一度NURBS曲線に変換して入力します。

入力した文字列の3Dパス図形が作成できました。

柱状体と同じくx軸で90度回転しますが、3Dパス図形の状態ではうまく回転してくれません。NURBSのパスの段階で回転させ、そのあとでPath Extrudeに入力します。

立ち上がりました。

こちらも発光するテクスチャを適用します。ネオンサイン風の文字オブジェクトができました。

56-6. オブジェクト化

ここまで作成したプログラムをオブジェクト化します。柱状体とパス図形それぞれオブジェクトを作成します。文字列や厚みの入力ノードに名前を設定してパラメータ化します。

コンテキストメニューから「マリオネットネットワークをラップする」を選択してラッパーノードに変換します。

さらにコンテキストメニューから「オブジェクトノードに変換」を選択してマリオネットオブジェクトに変換します。

オブジェクト化することで壁に挿入することができるようになり、設置高さや壁からのオフセットなどを設定することができます。

文字列のパラメータを変更すると、テクスチャ等の設定はそのままで、違う文字のサインを素早く作成することができます。

56-7. フォント・サイズの変更を有効化する

文字のオブジェクトを作成したので、フォントやサイズも変更したいですね。Set Char Propertiesノードを使用する方法もありますが、今回はオブジェクト化した場合にのみ使用できる裏技をご紹介します。

マリオネットオブジェクトを含むプラグインオブジェクトは「文字」メニューを有効にするかどうかとういう設定値を持っています。

「文字」メニューを有効化すると、文字メニューにぶら下がっている「フォント」「サイズ」「フォントスタイル」をオブジェクトごとに設定できるようになります。

マリオネットオブジェクトではデフォルトでは文字メニューは無効となっています。今回文字オブジェクトを作成しているプログラムの親にあたるマリオネットオブジェクトを対象に、この文字メニューの設定値を変更します。

オブジェクトのスクリプト編集画面に入り、まずは親のマリオネットオブジェクトを取得するMarionetteObjectノードを配置します。

次にfunctionノードを配置して、MarionetteObjectの結果を入力します。

functionノードのf(x)パラメータに次の式を入力します。

vs.SetObjectVariableBoolean(x, 800, True)

この式は、設定項目800番の設定値をTrueに設定するという内容です。800番が文字メニューの有効/無効の設定にあたります。

有効化する処理自体はこれで終わりですが、マリオネットオブジェクトの中では一つのネットワークしか実行されません。文字オブジェクトを作成するプログラムとpassノードで接続して、一つのネットワークに合体します。

オブジェジェクトの外に出て、オブジェクトを選択した状態で文字メニューを確認すると、サイズやフォントが選択できるようになっています。

サイズやフォントを変更すると、文字オブジェクトに反映されます。

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

Architect

Vectorworks Architect

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

Landmark

Vectorworks Landmark

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

Spotlight

Vectorworks Spotlight

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

Designer

Vectorworks Design Suite

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