Copyright © 2009 Toshitaka Aoyagi. All rights reserved.
contact
Convert file
Vector Works to modo
modo to Vector Works
VectorWorksの2DデータをDXFで書き出し、modoに読み込む。
modoの3DデータをDXFで書き出し、VectorWorksに読み込む。
Illustrator to Vector Works(Logo)
IllustratorのロゴデータをVectorWorksで使用する。
PDF to Vector Works(Floor Plan)
pdfのFloorPlanをIllustrator経由でDXFに変換してVectorWorksで使用する。
VectorWorks2modo
modo2VectorWorks
Illustrator2VectorWorks_logo
pdf2VectorWorks_floorPlan
modo2Maya
modo to Maya
modoのシーンをfbxで取り出し、Mayaに読み込む。
Maya to modo
Mayaのシーンをfbxで取り出し、modoに読み込む。
modo
Subsurface Scattering 1
トラスの構造体に乳白色のシートをかぶせた内照式のサインをSSSを使用して表現する。
Subsurface Scattering 2(bake)
SSSの効果をベイクしてレンダリング時間を短縮する。
Cut out people 1(making)
modoでの添景用の人物の作成
Cut out people 2(Layout)
modo401のReplicatorを使用して、添景用の人物を配置する。
Anisotropy 1 (no Image Map for Reference)
Image Mapを使用しないで、Cylinderのキャップ部分のAnisotropy反射を表現する。
Anisotropy 2 (with XSI method Image Map)
Cylinderのcap部分にxsi方式のImagemapを追加する。
Anisotropy 3 (make Anisotropy Direction Map for modo)
modoのUV空間に適したCap用の画像を作成する。
close
Vector Works to modo
vectorworks2modo
VectorWorksの2DデータをDXFで書き出し、modoに読み込む。
VectorWorks12, modo401

ファイル>取り出す>DXF/DWGコマンドを実行します。
形式>DXF(テキスト)
バージョン>特にどのバージョンでもいいようです。
必要に応じて、クラスやレイヤーの表示設定をする。(クラスやレイヤーはmodoでそのままレイヤー名になるので、できるだけ、和文名は避けた方がいいでしょう)。
あとはデフォルトのままでOKです。

modoでのデータのインポート

modoを起動して、
File>import...を実行して、VectorWorksで取り出したDXFファイルを選択して取り込みます。modoでは、ファイル名がグループとして取り込まれ、そのグループの下にそれぞれのレイヤーがアイテムとして取り込まれます。

VectorWorksでの準備

単位の設定:modoで使用している単位に変更します。modoでmeterを使用している場合はmeterで取り出します。
四角形・多角形・円・円弧は問題なくmodoで読み込めますが、VectorWorksの長円および曲線はmodoには取り込めないようです。それらの図形が含まれている場合は、図形選択マクロ等で選択して、多角形に変換しておくようにします。また、基準点・寸法・テキストはmodoには取り込めないようです。
シンボルやグループに関しては問題なく取り込めますが、その構成するオブジェクトに上述の長円や曲線が入っているとmodoに取り込めないので、注意が必要です。また、階層構造のないオブジェクトは、VectorWorksのクラスやレイヤー名でアイテムとして、取り込まれますが、グループやシンボルはVectorWorks上の階層構造は無視されて"0"というレイヤーにひとつのアイテムとして取り込まれます。以上のことからシンボルやグループは"図形選択マクロ"等を使用して、選択した後分解しておく方がいいようです。(シンボルは一度グループに変換した後、分解します)。

close
modo to Vector Works
modo2VectorWorks_image
modoの3DデータをDXFで書き出して、VectorWorksに読み込む。
VectorWorks12, modo401

modoでの準備

4頂点を超えるポリゴンは三角形分割しておきます(shift+T)。Statistics>Polygon>By Vertex->4で選択します。
インスタンスはMeshに変換しておきます(ItemsList内でChange Type>Mesh)。
modoのアイテムはVectorWorksのクラスとして取り込まれるので、VectorWorksでの使用方法に応じてItemを整理します(グループや親子関係はVectorWorksで無視されます)。Itemの名前は分かりやすい名前にしておきます。

File>Export As...でAutodesk DXF形式で書き出します。

VectorWorksでの作業

新規のファイルを作成して、ファイル>書式設定>単位で、ファイルの単位をmodoで使用している単位に変更します。
ファイル>取り込む>DXF/DWGを実行して、modoで書き出したDXFファイルを選択します。単位は自動で問題なく認識されますが、必要に応じて、取り込み設定のカスタムボタンを押して確認します(メートルの場合は1DXF=1Mになっていることを確認します)。
"OK"ボタンで取り込みます。
必要に応じて、VectorWorksの単位を通常使用している単位に変更しておきます。

close
Illustrator to VectorWorks(logo)
Illustrator2VectorWorks_image
IllustratorのロゴデータをVectorWorksで使用する。
IllustratorCS2,VectorWorks12

Illustratorでの準備

ロゴデータを別名で保存して、塗りの色を透明に、アウトラインに色をつけた状態にします。
グループ化されているデータはできるだけ分解して、フラットな状態にしておきます。IllustratorのグループはVectorWorksで2Dシンボルに変換されてしまうので、この段階でグループを解除しておいた方が後々の作業が楽です。
ファイル>書き出し...を実行して、dwgあるいは、dxfを選択して、ファイルを保存します。設定はデフォルトの設定のままでいいようです。

VectorWorksでのデータの取り込み

VectorWorksで新規ファイルを作成します。サイズは後で調整できるので、縮尺や単位は適当で問題ないです。
ファイル>取り込む>DXF/DWGを実行して、Illustratorで書き出したファイルを取り込みます。オブジェクトに2Dシンボルが含まれている場合はこの段階でグループに変換してから、グループを解除して多角形に変換しておきます。
"O"や"D"といった穴の開いたオブジェクトは二つのオブジェクトが重なった形でインポートされるので、一旦、面に色をつけて、穴のオブジェクトが手前にあるか確認します。穴の開いたオブジェクトの背景のオブジェクト>穴のオブジェクトの順に選択して、加工>切り欠きを実行します。穴の開いたオブジェクト全てにその操作をして、最後に穴のオブジェクトのみを選択して削除します。
必要に応じて、元のロゴを参考にして、面に色を設定して完成です。

企業のロゴデータは.epsあるいは、.ai,.pdf等で供給されることが多いのですが、VectorWorksで図面に貼り込む場合、画像データに変換してイメージファイルとして読み込む方法もありますが、思いのほかファイルのサイズが大きくなってしまいます。コピー&ペーストでも取り込めるのですが、カーブの精度が劣化してしまいます。そこで、今回はIllustratorのロゴデータをDXF経由でVectorWorksにベクターデータとして取り込む方法を紹介します。
close
PDF to VectorWorks(FloorPlan)
pdf2Vectorworks_image
pdfのFloorPlanをIllustrator経由でDXFに変換してVectorWorksで使用する。
IllustratorCS2,VectorWorks12

Illustratorでの作業

pdfファイルをIllustratorで開きます。プロテクトがかかっている場合は諦めてください。
クリッピングマスクは解除します。必要な部分をコピーして新しいファイルにペーストします。一度アウトライン表示にして、壁のラインが、線の太さで表現されていないかどうかチェックします。そういうラインを発見したら、オブジェクト>パス>パスのアウトラインでアウトラインに変換します。
テキストや寸法線はあまり綺麗にコンバートされないので、必要に応じて削除しておきます。穴の開いたオブジェクトが含まれている場合は、ロゴのページで紹介したように、面を透明にして、アウトラインに色を設定しておきます(VectorWorksでの編集が多少面倒ですが…)。
ファイル>書き出し...を実行して、フォーマットをdxfまたはdwgにして書き出します。

VectorWorksでの取り込み

VectorWorksで新規ファイルを作成します。元の図面の寸法がmmだったら単位をmmにします。
ファイル>取り込み>DXF/DWGを実行します。
ファイルを選択して"取り込み設定"の"カスタム設定ボタン"を押します。"モデル空間の単位"で"カスタム"を選択して、元の図面の縮尺に合わせて数値を入力します(1/200の縮尺で描かれた図面だったら、"1DXF単位=200"のように入力します)。OKボタンを押して取り込みます。元の図面の精度にもよりますが、おおよそ縮尺通りに取り込まれているはずです。必要に応じて、線や面の色等の属性を編集します。

ホテルなどのイベントホールでの仕事の場合、会場の躯体データがCADで供給されていることはまれです。最悪の場合、紙の図面をスキャンしてトレースことになります。ただ、最近では会場のサイトでpdfデータを手に入れることができることもあります。今回は幸運にも縮尺のはっきりしたpdfが手に入った場合に、その図面をVectorWorkに取り込む方法を紹介します。
close
modo to Maya
modo2Maya_image
modoのシーンをfbxで書き出して、Mayaに取り込む。
modo401, Maya8.5

modoでの準備

Cameraの情報はそのままではうまくコンバートできないので、新たにLocatorとCameraを作成して、新たに作成したCameraをLocatorの子ノードにします。CameraのFocal Lengthを調整して、他のTransformの値はそのままにしておき、親ノードのLocatorのTransform値を変更します。参照したいCameraが既に存在している場合はそのPositionとRotationの値をLocatorの対応する部分に入力します。必要に応じてCameraのFocus Distanceを調整します。
lightに関しては上述のCameraのようにしても、おかしな方向を向いてしまうのでMayaで設置する事にします。SpotLightはコンバートできますが、エリアライトはポイントライトに変換されてしまいます。
UVは出来るだけ、modoで設定しておきます。
File>Export As...を実行して、Autodesk fbxを選んで保存します。

Mayaでの取り込み

Mayaで、新しいシーンを作ります。File>Importのオプションでfbxを選択して、modoで作成したfbxファイルを選択します。必要に応じてInclude設定等をして、取り込みます。
modoのアイテムおよび階層構造は踏襲されたかたちでMayaに取り込まれているのがOutlinerで確認できます。レイヤーは空の状態になっているので、必要であれば新たに設定します。Camera・スケール・UVも問題なく取り込まれます。
インポートされたオブジェクトはVertex Nomalの関係ですべてスムージングされた状態になっているので、Normal>Unlock Normalsを実行して、必要であればSet Normal Angleでエッジのスムージングを設定します。
modoのマテリアルはすべてphongとして読み込まれます。Mayaでレンダリングを行う場合は編集が必要になります。また、同じマテリアルでも、違うメッシュに割り当てられていると、別のマテリアルとして処理されます。必要に応じて設定しなおす必要があります。fbxを別のマシンで作成した場合は、textureのパスの確認も必要です。

最近は、モデリングからレンダリングまでの作業をほとんどmodoで行っているので、modoとMayaでデータのやり取りをすることも少なくなってきましたが…。
close
Maya to modo
modo2Maya_image
Mayaのシーンをfbxで書き出し、modoに読み込む。
modo401, Maya8.5

Mayaでの準備

Nurbsはpolygonに変換しておきます。4頂点を超えるポリゴンはできるだけ、三角形分割しておきます。Mayaからmodoへの書き出しの場合はカメラは問題なくmodoに取り込めますが、Lightはやはりおかしな方向を向いてしまうので、modoで設置しなおした方が無難です。
File>Export All...を実行して、fbxを選んでファイルを書き出します。

modoでの取り込み

modoで新規のファイルを作ります。File>Import...を実行して、Mayaで作成したfbxファイルを選択して開きます。modoではMayaのグループがロケーターとして、ファイル全体が一つのグループとして取り込まれます。階層構造は継承されます。
Materialは取り込まれますが、編集が必要です。Specular Amount, Roughness, Transparent Amount, Luminous Intensityはチェックが必要です。特に、Transparent AmountとLuminous Intensityは100%になっているので、修正します(通常の不透明なマテリアルの場合は0%にします)。画像マップはShaderTreeの上の方のマテリアルに全てアサインされているので、それぞれのマテリアルにマップしなおします。UVは問題ないようです。

最近では、3Dのほとんどの作業をmodoで行っていますが、以前Mayaで作成したオブジェクトをmodoに取り込んで使用することは時々あります。今回はfbx経由でMayaのシーンごとmodoに取り込む方法です。
close
Subsurface Scattering 1
sss1_image
トラスの構造体に乳白色のシートをかぶせた内照式のサインをSSSを使用して表現する。
乳白色のシートを通してトラスの影が見えている状態をライトを使わずにGlobal Illuminationを使用して表現します。

modo401

シーンの構成
トラスの構造体の内部に照明用のCubeを設置して、トラスの外側にシートオブジェクトをかぶせます。今回の例では3mm程度の厚みをもたせてあります。Global Illuminationを使用するので、下からの間接照明を遮るためもあり、床に適当な大きさのplaneを設置します(fig.1)。それぞれUVを設定します。

マテリアル
トラスや床のマテリアルは今回はそれほど重要ではないので、適当に割り当てます。
内部の照明用CubeのマテリアルはDiffuse AmountとSpecular Amountを"0"にして、Luminos Intensityの値を"1"以上にします。今回はブルーから白の光のグラデーションを表現したかったので、Luminous ColorにGradient Layerを追加しました。

シート用のマテリアルは、Diffuse Amountを低めにして、Specular Amountは"0"にしました。Subsurface Amountを"100%"にして、Subsurface Colorにサイン用の画像レイヤーを追加しました。SSSのノイズが目立つ場合はSamplesで調整します。

Rendering
今回はEnvironmentにpresetのStudio Environmentを設定しました。Render PropertiesのGlobal IlluminationのIndirect IllumminationをEnableにして、Indirect IlluminationのSubsurface Scatterringを"Indirect Affects SSS"または"Both"にします。この設定をしないと、照明用のポリゴンの光がSSSに反映されません。
レンダリングします。必要に応じてIrradiance RaysやIrradiance Rateを調整します。(fig.2)

close
Subsurface Scattering 2(bake)
sss1_image
Global IlluminationのAffects SSSを使用すると、この例のような単純なシーンでは問題ないのですが、シーンが複雑になってくると、レンダリング時間がかなり長くなります。そこでSSSの効果をbakeすることにします。

modo401

Bakeの準備
Subsurface Scattering 1で使用したシーンを使ってシートのメッシュのSSSをbakeします。
シートオブジェクトのbake用の新しいUVマップを作ります。シートオブジェクトのポリゴンを選択してSelection Setをつくります(Select>Assign Selection Set...)。Shader TreeでBase Shaderの上に新しいグループをつくり、Polygon Tag Typeを"Selection Set"にして、Polygon Tagに作成したSelection Setを指定します。そのグループ内に新しいShaderを作成して、Indirect Illum Typeを"MonteCarlo"にします。バグなのかどうか分かりませんが、Indirect Illum Typeを"Irradiance Caching"のままにしておくと、うまくBakeできませんでした。
試しにレンダリングしてみます。Monte Carloのノイズが目立つ場合はGlobal IlluminationのIndirect Illumination>Indirect Raysの値を上げます。今回は512程度で綺麗になりました。(fig.1)

Bake
Render PropertiesのFrameで画像サイズを正方形に設定します(1024x1024とかにします)。Item Listでシートオブジェクトを、Lists>UV Mapsで新しくつくったUVマップをそれぞれ選択して、Render>Bake to Render Outputsを実行します。(fig.2)

Rendering
Bakeした画像を保存します。シートオブジェクトに新しいマテリアルをアサインします。先ほど保存した画像を新しいマテリアルのLumminous Colorにマップして、Luminous Intensityを"1"にします。Diffuse Amount, Specular Amountは"0"にします。床とシートオブジェクトを残して、それ以外のメッシュアイテムを非表示にします。レンダリングします。(fig.3)
レンダリング時間は、fig.1が6m11.4sで、fig.3が3.3sでした。

close
Cut out people1(making)
sss1_image
modoでの添景用の人物の作成方法です。今更って感じもしますが…。

modo401, Photoshop CS2

個人的には、パースに添景の人物を入れるのは、撮影された時の照明と3D空間での照明とがマッチしないので、あまり好きではないのですが、ごくまれにどうしてもパースに人物をという依頼もあるので…。

画像の準備

人物の画像を用意します(Fig.1)。アルファチャンネルがない場合はPhotoshopのペンツール等を使用してアルファチャンネルを作成して(Fig.2)、.tga等でアルファチャンネル付で保存します。アルファチャンネルの精度が仕上がりの精度になるので、手を抜かずに地道にトレースすることをお進めします。

modoでの作業
Cube ToolでZ軸方向にplaneを作成します。サイズはYが人の身長になるようにして、XはYを基準に画像の比率に合わせます。UV Projection ToolでProjection TypeをPlaner, AxisをZにして、UVマップを作成します。"m"keyを押してplaneに新たなマテリアルを割り当てて、Diffuse Amounteを"0"、Specular Amountを"0"にそれぞれ設定して、Luminous Intensityを取りあえず"1"にしておきます。
Shader Treeでマテリアルに画像レイヤーを追加して、作成した人物の画像ファイルをロードします。EffectをLuminous Colorにして、PropertiesのAlpha Channelを"Ignore"にします(Fig.3)。
上記の画像レイヤーをShader Tree内で複製して、EffectをTransparent Amountに設定して、PropertiesのAlpha Channelを"Alpha Only"にします。今回の画像はAlfa Channelの白と黒が逆なので、Propertiesの"Invert"にチェックを入れます。
試しにレンダリングしてみます(Fig.4)。添景人物の完成です。

close
Cut out people 2 (Layout)
sss1_image
Cut out people 1で作成した添景用人物オブジェクトをReplicatorを使用して、空間に配置します。

modo401

Cut out people1の方法で添景用の人物をいくつか作成して、presetに保存しておきます(presetにしなくてもいいのですが…)。"Replace Icon with last render"でレンダリングした画像をプリセットのアイコンに適用しておくと便利です(Fig.1)。
全ての添景用人物オブジェクト(preset)を取り込みます。Groupタブで新しいGroupを作成して、取り込んだ人物オブジェクトをその中に入れます。
Item Listで新しいMesh Itemを作成して、Pen toolでType を"Vertices"にして、人物を配置したい位置にVerticesを作成します(Fig.2)。

Item Listで"Replicator"を作成します。Prototypeに先ほど作成したGroupを、Point Sourceに配置用のVerticesのMesh Itemをそれぞれ選択して、Source Modeを"Point Data"にします。Variationの"Face Camera"と"Planar"にチェックをいれます。これで、人物オブジェクトが常にカメラの方を向くようになります。Renderタブでプレピューをみながら、Seedを調整します。
背景にEnvironment Presetを適用して、床にShaderのAlpha TypeをShadow Catcherにしたマテリアルを割り当てたPlaneを配置して、レンダリングしてみます。人物の色が明るすぎたりする場合は、人物のマテリアルのLuminous Intensityで調整して背景と馴染ませます(Fig.3)。必要に応じて、Point SourceのItemのPosition Channelにキーを設定して、motion Blurを適用します(Fig.4)。

close
Anisotropy 1 (no Image Map for Reference)
sss1_image
Image Mapを使用しないで、Cylinderのキャップ部分のAnisotropy反射を表現する。
modo401

modo401からAnisotropy DirectionへのImage Mapがサポートされるようになりましたが、ここではImage Mapを使用しないでCylinderオブジェクトのAnisotropy反射を表現してみます。いわゆるNurbs的なUVマップの作成による方法です。
適当なサイズのCylinderを作成して、上部の円形のポリゴンを削除します(Fig.1)。
最上部のエッジをループ選択して、Extendで上部に引き延ばし、Projection TypeをCylindricalにしてUVマップを作成します(Fig.2)。
最上部のVerticesを全て選択してscale toolでx,z=0にして中央に寄せ(Fig.3)、下方向に移動してCap部分のポリゴンをフラットにします(Fig.4)。
必要に応じて、Cap部分にエッジを追加して、コーナーにBevelをかけてSubdivisionにします。UVを確認してみます(Fig.5)。

Cylinderに新しいマテリアルを割り当てます。ここでの設定は、
Diffuse Amount > 10%, Conserve Energy>on, Specular Amount > 60%, Fresnel > 90%, Roughness > 40%, Anisotropy > 100%, Reflection Amount > 30%, Fresnel > 90%, Burry Reflection > onにしてあります。そして、ここが一番重要なのですが、Anisotropyの下のUV Mapは必ず指定します。
試しにレンダリングしてみます。Fig.6はAnisotropy>100%(u方向に水平な溝が入っている状態)で、Fig.7はAnisotropy>-100%(u方向に垂直な溝が入っている状態)です。
この2枚の画像をリファレンスとして、次回は、Cap部分にFig.8のxsi方式の画像を使用する方法について検証してみます。

close
Anisotropy 2 (with XSI method Image Map)
sss1_image
ICylinderのcap部分にxsi方式のImagemapを追加する。
modo401

Cylinderのcap部分のポリゴンを選択して、UV projection toolでProjection TypeをPlanar, AxisをYにして、UV Mapを作成します(Fig.1)。Cylinderの筒の部分はCylindical Mapのままにしておきます。Cap部分のポリゴンに新たなマテリアルを割り当てます。前回作成したAnisotropy用のマテリアルをコピーして、新たに作成した、マテリアルに貼付けます。
Cap部分のマテリアルにxsi方式の画像レイヤーを追加して、EffectをAnisotropy Directionにします。試しにレンダリングしてみます(Fig.3)。前回レンダリングしたFig.2の画像と比べてみると、Cap部分のAnisotropy反射の方向が違っているのが確認できます。反射の形状はどちらかというと、Anisotropy-100でレンダリングしたものと近く、ブルーと白の光のラインが逆になっています。

解決策としては、Cap部分のマテリアルのAnisotropyを-100にします。これで、溝の方向が逆になるので、Image Map無しでレンダリングしたAnisotropy>100の画像と近い形状になります。反射の色が逆になっている問題は、Texture Locator PropertiesのRepeat設定を"Mirror"にして(Fig.5)、UV座標上で、Cap部分のポリゴンをU方向に"-1"あるいは、V方向に"-1"移動する(Fig.4)ことで解決しました。
Fig.6がレンダリング画像です。Image Map無しのリファレンス画像に近いAnisotropy反射が得られました。
上記の検証を踏まえて、次回は、modoのUV空間に適した画像を作成してみます。

close
Anisotropy 3 (make Anisotropy Direction Map for modo)
sss1_image
ImodoのUV空間に適したCap用の画像を作成する。
modo401

前回のxsi方式の画像での検証から、modoのUV空間に適したCylinderのCap用の画像を作るには、xsi方式の画像をミラーリングして、90度回転させればいいことが解りました。作り方は、xsi方式の画像がある場合は、Photoshop等で、上記の操作を行えば簡単につくれますが、最初から作る場合は、Photoshopで正方形のRGB画像を作成して、Fig.1のように、Red ChannelとBlue Channelに白から黒のグラデーションを描くだけです。気をつけなければならないことは、グラデーションの色の変化のグラフを直線にしなくてはならないことです。グラデーションエディタで、"滑らかさ"を"0"にして描きます。
Fig.2がmodoのUV空間に適した同心円状に溝を生成するCap部分の画像で、Fig.3がそれを90度回転させた、放射状に溝を生成する画像です。

また、以上のことから、Fig.4のA(R0,B50)とC(R100,B50)の部分の"色"がU軸に対して水平な溝を刻み、D(R50,B0)とB(R50,B100)の部分の"色"が、U軸に対して垂直な溝を刻むことが解ります。つまり、CylinderのCapのような特殊な部分以外でも単色の画像をマップすることで、意図的にAnisotropyの溝の方向をコントロールすることができるということです。
Fig.5は方向の違うAnisotropy Direction画像の間にCheckerのLayer Maskを挟んでレンダリングしてみた例です。