チュートリアル / fieldjamのDesignVizエッセンス
第6回:Revit Architecture 2010 と3ds Max Design 2010の連携
- 3ds Max
- コラム
- チュートリアル
- データ
- 建築・製造・広告
最新版での検証が必要だったために、前回からかなり時間が経ってしまい申し訳ありません。
早速ですが、Revit Architecture 2010 と 3ds Max Design 2010で使用できるフォーマットについてまとめます。前回お話したように、マテリアルとオブジェクトの関係が壊れないことが最低条件です。
作業環境について、どちらのソフトも最新のアップデートを適用していることが条件です。また、3ds Max の[カスタマイズ]メニュー→[カスタムUI と既定値の切り替え...]でツールオプションをデフォルトの[DesignVIZ.mentalray]で使用しています。
プルダウンではオブジェクトの構成方法を選択します。図の設定はマテリアルとオブジェクトの関係をキープできる方法で、それ以外ではできません。通常はこの設定を用いると良いでしょう。
Revitで簡単なモデルを作成しました。
壁と建具がひとつずつです。壁や建具にはマテリアルを適用しています。
RevitモデルをDWGに出力し、上のオプションで3ds Maxに取り込みます。
Revitでは、壁、窓ファミリのインスタンスがひとつずつという状況ですが、3ds Maxに取り込むと、各要素がマテリアルによって分割されています。
3ds Maxで露出制御を行いレンダリングしました。
マテリアルは表現できているのですがUVがおかしいですね。まず、レンガのマテリアルを確認してみましょう。
Revitのmental rayマテリアルがArchitecturalマテリアルに変換されていることが確認できます。[拡散反射光マップ]に画像が適用されているのでその情報を見てみます。
リアルワールドスケールで、サイズが10mmになっています。これではよく分からないのでリアルワールドスケールを外し、サイズを1.0にします。
マッピング画像と比較すると、ポリゴンいっぱいにUVが設定されているようです。リアルワールドスケールに変換される規則性があるかもしれませんが、いまのところは不明です。そこで、UVに関しては再設定が必要なようです。
このような状況から3ds Maxでレンダリングを行うには次の操作が必要です。
・ライティング
・カメラの配置
・マテリアルの詳細設定(他のマテリアルに置き換えるなど)
・UVW設定
そこで、3ds Maxの機能である[ファイルリンク]を用います。
ファイルリンクでDWGファイルを3ds Maxに取り込みます。
通常のオブジェクトと同じように、マテリアルの割り当てやUVWモディファイヤの適用などを行います。今回は、レンガのオブジェクトに3ds Maxで作成したマテリアルを割り当てて、そのオブジェクトにUVWマップを適用しました。ガラスの質感も変えています。
レンダリング結果です。
次にRevitでモデルを変更します。
元の壁を延ばして、その先に同じタイプの壁を追加しました。さらに床を作成しましたが、床にはマテリアルを適用していません。
出力時にDWGを上書きしました。
3ds Maxに戻ってDWGファイルをリロードします。モデルがアップデートされました。注目する点は、3ds Maxで適用したマテリアルやUVWがそのまま反映されている点です。新しく追加したものは、デフォルトの状態です。
ファイルリンクを用いると、このように(不思議ですが)とても有効な連携を行うことが出来ます。ファイルリンクの詳しい解説は3ds Maxのヘルプにあるので確認してください。
ここで、DWGを用いた場合の作業分担をまとめてみましょう。
○:必須 / △:行わなくても構わない / X:必要なし
Revitで最低限行わなければならないことは、「モデリング」と「マテリアルを作成し各要素に割り当てる」という2点に絞ることができます。その他は、3ds Maxで設定するので、行わなくても構いません。また、ファイルリンクで取り込んだオブジェクトに対する編集は、マテリアルの割り当てとUVWの設定やオブジェクトプロパティの変更程度に留めておくべきです。移動や変形などを行ってしまうと、基になっているRevitモデルとの食い違いが発生するので、連携面から考えると行うべきではありません。
カメラを設定して、Revitでレンダリングしました。これをFBXでコンバートします。
3ds Maxに取り込みました。
Revitの各要素がそのまま3ds Maxのオブジェクトに変換され、ファミリやタイプなどの情報も取り込まれます。
マテリアルもRevit とまったく同じで、デイライト、カメラなどの情報もそのままです。
注意点として、単位の問題があります。Revitはfbx出力のときフィートで書き出すので、3ds Max もシステム単位がフィートでない場合は、各オブジェクトが自動的にスケールされます。その問題を解決するには、前回のコラムを参考にしてください。
Revitの露出設定と同じように、3ds Maxの[mr フォトグラフィック露出制御]の設定を行います。Revit側にあるパラメータはすべて3ds Max側にもあるので、まったく同じ設定が可能です。そしてレンダリングします。
Revit
3ds Max
レンダリング結果を並べてみました。厳密に一致させることは難しいのですが、それにしてもRevitの結果とは違いますね。そこでよく観察すると、マッピング画像の表現が特におかしいことに気づきます。私のコラムを最初から読んでいる方はお気づきかもしれませんが、これはガンマの問題です。
Revitのレンダリング結果は何らかのガンマ補正(おそらく1/2.2)が行われていますが、入力ビットマップのガンマ補正は設定できません。一方、今回の3ds Maxのレンダリング画像は、ガンマ設定を適切に行っています。
つまり、3ds Maxのレンダリング結果が正解、だと思います。というのは、もしRevitにデフォルトで入っているテクスチャ画像は元の画像をリニア化したものだったとしたら、元素材に対してRevitは正しい、という可能性があるからです。しかし、通常のユーザーはそこまで分からないので、やっぱり3ds Maxが正解ということにしておきましょう。
では、FBXを用いた場合の作業分担をまとめてみましょう。
○:必須 / △:行わなくても構わない / X:必要なし
FBXの再現性は高いので、すべてをRevitで入力し3ds Maxでそのままレンダリングということも可能です。
しかし、クオリティを上げようとするならばマテリアルやライティングを編集する必要があります。
さて、一度3ds Maxでレンダリングを行った後、Revitで修正が入ったとします。3ds Maxのデータもアップデートするので、Revitの全モデルを再度FBXで取り込みます。ライティングは、それまでのデータを再利用すればよいでしょう。UV設定もRevitのものをそのまま利用し、3ds Maxで再設定した部分のみUVWモディファイヤのコピーなどで対応できます。
問題はマテリアルです。3ds Maxはマテリアルライブラリを用いて同名マテリアルの自動置換が可能ですが、マルチマテリアルのサブマテリアルまではできません。
そこで、そのためのツールを作ったので使用してみてください。
>>ダウンロードはこちらから
マテリアルの更新が終われば、アップデート作業は完了です。
まず、3ds Max用のRPCプラグインを購入します。3ds Max用はver.2009から有料になってしまったのです。
これまでに結構な数のライブラリを購入してたので、私も困っていますがまとめておきます。
3ds MaxにRPCプラグインをインストールして、図の常駐アイコンを右クリックして[Open]を選択します。
[Path]タブを選択して[Add Path]をクリックします。
[Revitルート]\Data\Rendering\assetlibrary_base.fbm\RPCs を選択します。これで、RPCプラグインがRevitのRPCを認識できるようになりました。
Revitで入力したRPCを3ds Maxでもレンダリングできます。私はデモ版ですのでウォーターマークが入ってしまいます...。
早速ですが、Revit Architecture 2010 と 3ds Max Design 2010で使用できるフォーマットについてまとめます。前回お話したように、マテリアルとオブジェクトの関係が壊れないことが最低条件です。
作業環境について、どちらのソフトも最新のアップデートを適用していることが条件です。また、3ds Max の[カスタマイズ]メニュー→[カスタムUI と既定値の切り替え...]でツールオプションをデフォルトの[DesignVIZ.mentalray]で使用しています。
ポイント | DWG | FBX |
マテリアル | Architecturalマテリアルとして読み込まれる | ProMaterials として読み込まれる タイプ別にマテリアルが分かれている 現状は3ds Maxへの読込時に日本語のマテリアル名が文字化けする |
オブジェクト構成 | 入力時オプション 設定可能 |
Revitの要素に分かれている オプション設定不可 |
レイヤー | Revitの出力設定のレイヤに分かれている | 未対応 |
リンク機能 | DWGリンク | なし |
その他 | UV情報が正確にコンバートされない | カテゴリ、ファミリ、タイプ、レベルの情報も各オブジェクトに付随している |
DWG
Revitから3Dデータを書き出すには3Dビューをアクティブにします。DWG書き出しに、オプションで設定できることは何もありませんが、3ds Maxでの読み込みには、いろいろなオプションがあります。特に気をつける点はプリミティブ生成の方法です。プルダウンではオブジェクトの構成方法を選択します。図の設定はマテリアルとオブジェクトの関係をキープできる方法で、それ以外ではできません。通常はこの設定を用いると良いでしょう。
Revitで簡単なモデルを作成しました。
壁と建具がひとつずつです。壁や建具にはマテリアルを適用しています。
RevitモデルをDWGに出力し、上のオプションで3ds Maxに取り込みます。
Revitでは、壁、窓ファミリのインスタンスがひとつずつという状況ですが、3ds Maxに取り込むと、各要素がマテリアルによって分割されています。
3ds Maxで露出制御を行いレンダリングしました。
マテリアルは表現できているのですがUVがおかしいですね。まず、レンガのマテリアルを確認してみましょう。
Revitのmental rayマテリアルがArchitecturalマテリアルに変換されていることが確認できます。[拡散反射光マップ]に画像が適用されているのでその情報を見てみます。
リアルワールドスケールで、サイズが10mmになっています。これではよく分からないのでリアルワールドスケールを外し、サイズを1.0にします。
マッピング画像と比較すると、ポリゴンいっぱいにUVが設定されているようです。リアルワールドスケールに変換される規則性があるかもしれませんが、いまのところは不明です。そこで、UVに関しては再設定が必要なようです。
このような状況から3ds Maxでレンダリングを行うには次の操作が必要です。
・ライティング
・カメラの配置
・マテリアルの詳細設定(他のマテリアルに置き換えるなど)
・UVW設定
そこで、3ds Maxの機能である[ファイルリンク]を用います。
ファイルリンクでDWGファイルを3ds Maxに取り込みます。
通常のオブジェクトと同じように、マテリアルの割り当てやUVWモディファイヤの適用などを行います。今回は、レンガのオブジェクトに3ds Maxで作成したマテリアルを割り当てて、そのオブジェクトにUVWマップを適用しました。ガラスの質感も変えています。
レンダリング結果です。
次にRevitでモデルを変更します。
元の壁を延ばして、その先に同じタイプの壁を追加しました。さらに床を作成しましたが、床にはマテリアルを適用していません。
出力時にDWGを上書きしました。
3ds Maxに戻ってDWGファイルをリロードします。モデルがアップデートされました。注目する点は、3ds Maxで適用したマテリアルやUVWがそのまま反映されている点です。新しく追加したものは、デフォルトの状態です。
ファイルリンクを用いると、このように(不思議ですが)とても有効な連携を行うことが出来ます。ファイルリンクの詳しい解説は3ds Maxのヘルプにあるので確認してください。
ここで、DWGを用いた場合の作業分担をまとめてみましょう。
○:必須 / △:行わなくても構わない / X:必要なし
作業項目 | Revit | 3ds Max |
モデリング | ○ | X |
マテリアルの割り当て | ○ | ○(再設定) |
マテリアル設定(質感) | △ | ○ |
UV設定 | X | ○ |
ライティング | △ | ○ |
カメラ設定 | △ | ○ |
Revitで最低限行わなければならないことは、「モデリング」と「マテリアルを作成し各要素に割り当てる」という2点に絞ることができます。その他は、3ds Maxで設定するので、行わなくても構いません。また、ファイルリンクで取り込んだオブジェクトに対する編集は、マテリアルの割り当てとUVWの設定やオブジェクトプロパティの変更程度に留めておくべきです。移動や変形などを行ってしまうと、基になっているRevitモデルとの食い違いが発生するので、連携面から考えると行うべきではありません。
FBX
FBXの入出力については、基本的にユーザー側でオプション設定を行うことができませんが、Revitの情報をほぼ完全に再現することが可能です。しかし、難点がひとつ。いまのところ、マテリアルの日本語が文字化けするという現象が見られるので、安全に運用するにはこの点に限って半角英数字を用いた方が良さそうです。どうしても日本語で、という方はアップデートを待ちましょう。カメラを設定して、Revitでレンダリングしました。これをFBXでコンバートします。
3ds Maxに取り込みました。
Revitの各要素がそのまま3ds Maxのオブジェクトに変換され、ファミリやタイプなどの情報も取り込まれます。
マテリアルもRevit とまったく同じで、デイライト、カメラなどの情報もそのままです。
注意点として、単位の問題があります。Revitはfbx出力のときフィートで書き出すので、3ds Max もシステム単位がフィートでない場合は、各オブジェクトが自動的にスケールされます。その問題を解決するには、前回のコラムを参考にしてください。
Revitの露出設定と同じように、3ds Maxの[mr フォトグラフィック露出制御]の設定を行います。Revit側にあるパラメータはすべて3ds Max側にもあるので、まったく同じ設定が可能です。そしてレンダリングします。
Revit
3ds Max
レンダリング結果を並べてみました。厳密に一致させることは難しいのですが、それにしてもRevitの結果とは違いますね。そこでよく観察すると、マッピング画像の表現が特におかしいことに気づきます。私のコラムを最初から読んでいる方はお気づきかもしれませんが、これはガンマの問題です。
Revitのレンダリング結果は何らかのガンマ補正(おそらく1/2.2)が行われていますが、入力ビットマップのガンマ補正は設定できません。一方、今回の3ds Maxのレンダリング画像は、ガンマ設定を適切に行っています。
つまり、3ds Maxのレンダリング結果が正解、だと思います。というのは、もしRevitにデフォルトで入っているテクスチャ画像は元の画像をリニア化したものだったとしたら、元素材に対してRevitは正しい、という可能性があるからです。しかし、通常のユーザーはそこまで分からないので、やっぱり3ds Maxが正解ということにしておきましょう。
では、FBXを用いた場合の作業分担をまとめてみましょう。
○:必須 / △:行わなくても構わない / X:必要なし
作業項目 | Revit | 3ds Max |
モデリング | ○ | X |
マテリアルの割り当て | ○ | X |
マテリアル設定(質感) | △ | ○ |
UV設定 | ○ | △ (Revitでは不可能な部分) |
ライティング | △ | ○ |
カメラ設定 | △ | ○ |
FBXの再現性は高いので、すべてをRevitで入力し3ds Maxでそのままレンダリングということも可能です。
しかし、クオリティを上げようとするならばマテリアルやライティングを編集する必要があります。
さて、一度3ds Maxでレンダリングを行った後、Revitで修正が入ったとします。3ds Maxのデータもアップデートするので、Revitの全モデルを再度FBXで取り込みます。ライティングは、それまでのデータを再利用すればよいでしょう。UV設定もRevitのものをそのまま利用し、3ds Maxで再設定した部分のみUVWモディファイヤのコピーなどで対応できます。
問題はマテリアルです。3ds Maxはマテリアルライブラリを用いて同名マテリアルの自動置換が可能ですが、マルチマテリアルのサブマテリアルまではできません。
そこで、そのためのツールを作ったので使用してみてください。
>>ダウンロードはこちらから
マテリアルの更新が終われば、アップデート作業は完了です。
RPCオブジェクトの問題
FBXではRevitで入力したRPCオブジェクトも変換されます。しかし、3ds Maxでその情報を扱うには環境を整えなければなりません。まず、3ds Max用のRPCプラグインを購入します。3ds Max用はver.2009から有料になってしまったのです。
これまでに結構な数のライブラリを購入してたので、私も困っていますがまとめておきます。
3ds MaxにRPCプラグインをインストールして、図の常駐アイコンを右クリックして[Open]を選択します。
[Path]タブを選択して[Add Path]をクリックします。
[Revitルート]\Data\Rendering\assetlibrary_base.fbm\RPCs を選択します。これで、RPCプラグインがRevitのRPCを認識できるようになりました。
Revitで入力したRPCを3ds Maxでもレンダリングできます。私はデモ版ですのでウォーターマークが入ってしまいます...。