PiXYZ との連携により、Unity で AEC プロジェクトをホストできるようになりました。この記事では、PiXYZ PLUGIN for Unity の使い方と、PiXYZ PLUGIN を使ってリアルタイムでできることを説明します。
建築設計、エンジニアリング、建設(AEC)のプロフェッショナルにとって、Unity はクリエイティブなプロジェクトをホストするのに最適なプラットフォームです。目的が、顧客が空間をイメージできるようにフォトリアリスティックな環境のウォークスルーを制作する場合でも、バックグラウンドやスキルレベルに関係なく全員で同じ意識を共有する場合でも、時間と費用の損失につながるミスを探す場合でも、コンクリートを流し込んで建設を始める前に、適切な判断を下すことができます。皆さんの仕事を楽にするために、Unity は 2018.3 でさらに進歩しました。
ご存知かもしれませんが、私たちは PiXYZ と緊密な連携を続けてきました。たとえば、PiXYZ PLUGIN と PiXYZ Studio for Unity を使えば、IFC BIM ファイルを Unity にインポートできます。そこで、この記事ではその方法について説明したいと思います。また、その他の新機能とビジュアライゼーションの機能強化についても紹介します。さらに、リアルタイムで簡単に修正を加える方法についても説明します。
なお、ここで紹介した PiXYZ 製品の 2018.3 バージョンは、Unity Store からすぐに入手できます。
PiXYZ PLUGIN for Unity は PiXYZ が開発したソフトウェアスイートに含まれるもので、CAD ファイルやビルディングインフォメーションモデリング(BIM)データを編集、最適化して直接 Unity にインポートできます。
PiXYZ PLUGIN は最近まで、CAD モデルを Unity に組み込むのがその主な用途でした。PiXYZ 2018.2 でのプレビュー版のリリース、および PiXYZ 2018.3 での完全版のリリースにより、Industry Foundation Class(IFC)形式を使用して BIM データをインポートできるようになりました。このプラグインを使うと、BIM メタデータと Unity のさまざまな機能を活用しながら、CAD モデルのリアルタイムレンダリングを最適化および作成できます。
PiXYZ の詳細とライブデモを見るには、昨年の Unite Los Angeles のプレゼンテーションをご覧ください。この製品に関して幅広い範囲にわたる情報を紹介しています。このセッションのほかには、Unity のエヴァンジェリズムコンテンツ責任者の Mike Geig によるデモプロジェクトを使ったプレゼンテーションもご用意しています。このプレゼンテーションでは、データのインポートに関係する手順を取り上げています。また、ジオメトリのマージによるスポット修正の実行、ルールの使用、プレハブを使ったマテリアルとライティングの調整、簡単なポストプロセッシングについても説明しています。
このセクションでは、PiXYZ PLUGIN で .ifc 形式を使って CAD ファイルを Unity にインポートする方法について説明します。どのようにすればお使いの設計アプリケーションから Unity に CAD データをインポートすることができるかをお見せします。ここでは Autodesk Revit からのエクスポートを主に取り上げますが、IFC 形式を使えば、Civil 3D、Tekla、ArchiCAD など、IFC をサポートするどのプログラムからでも BIM データをインポートできます。
Unity エディターで「PiXYZ」を選択すると、ドロップダウンメニューが開きます(下の最初の画像を参照)。この記事で紹介する機能はどれも、利用にあたってライセンスが必要です。このリンクから PiXYZ の試用版またはフルライセンスを入手してください。
PiXYZ にアクセスしたら、下の画像に示すように「PiXYZ」 > 「Import Model」を選択すると、CAD モデルを Unity に取り込めます。「Import CAD」ウィンドウでは、インポートするモデルの全体的な出力を決定するパラメーターを選択できます。
次に、CAD モデルをインポートするときに検討すべきいくつかのインポートパラメーターについて説明します。
Live Sync を有効にすると、現在のプロジェクトの環境設定で複数のパラメーターにアクセスできるようになります。「Live Sync Beta」には 3 つの更新モードがあります。
関係するパラメーターをすべて設定したら、「Import」を選択します。すると、現在のシーンにプレハブとしてファイルが追加されます。「Import CAD」ウィンドウの詳細については、PiXYZ のドキュメンテーションを参照してください。
Live Sync は小規模から中規模のモデルと Unity シーンとの間の同期を維持するのに役立つ機能です。この機能を使うと、インポートしたファイルの編集内容に応じて Unity プロジェクト内のモデルが更新されます。すばやく効率的な同期方法であり、多くの時間を節約できます。また、Live Sync は PiXYZ でインポートできるすべてのファイル形式(.IFC、.OBJ など)に対応しています。機能を 1 つずつ見ていきましょう。
指定したフォルダーに、はっきりとした変化が見られるようになります。モデル/プレハブアイコンの左上にステータスアイコンが表示されます。これはプレハブの現在の状態を表しています(下図参照)。
モデル/プレハブのアイコンの右上にあるボタンをクリックすると、「Live Sync Settings」が表示されます。
ポップアップウィンドウに、マシン上のモデルのファイルパスなどの情報が表示されます。また、Rule Engine で使うために作成したアセットを割り当てることができるフィールドが 2 つあります。
「Preset」および「Rules Interaction」フィールドの使い方の詳細については、下記の Rule Engine に関するセクションを参照してください。
プロジェクトにモデル(ここでは BIM データを含む IFC)をインポートすると、前述のとおり、プロジェクトフォルダーとヒエラルキーの両方にプレハブが作成されます。ヒエラルキーウィンドウでプレハブを展開(ヒエラルキー内のプレハブの右にあるドロップダウン矢印を Alt キーを押しながらクリックすると、すべての子を展開できます)すると、インポートしたモデルのすべてのメッシュが空のゲームオブジェクトの子になっています。
メッシュ自体には BIM データは含まれていません。メッシュレンダラーコンポーネントと Revit からインポートされたマテリアルだけがあります。BIM データを含んでいるのは空の親ゲームオブジェクトです。
空の親ゲームオブジェクトを操作すると、Autodesk Revit などの BIM ソフトウェアパッケージからエクスポートされた BIM データを含む表がインスペクターに表示されます。表示される BIM データは Autodesk Revit 内の BIM データに対応しています。たとえば、「/Reference」は Autodesk Revit のオブジェクトの「Type Property」の名前に相当します。
「タイププロパティ」の「ファミリ」(Revit) = 「/Name」(Unity)
「タイププロパティ」の「タイプ」(Revit) = 「/Reference」(Unity)
このデータは、シーン内のインポートしたオブジェクトのルールで使用できます。
Unity 2018.3 で導入された PiXYZ Toolbox には、ジオメトリを効率的に詳細化および最適化するための処理が用意されています。Toolbox 内のツールは、シーンウィンドウで右クリックするだけで、シーン内の現在選択中のオブジェクトに適用できます。Toolbox を使えば、RuleEngine ルールセットを使用しなくても、オブジェクトを簡単に操作できます。
注:Toolbox のアクションが適用されると、元に戻すことはできません。
また、Toolbox は、カメラやライトのエミッターを含め、シーン内のあらゆるゲームオブジェクトに対して使用できます。手動で Toolbox のツールを使うには、シーンウィンドウ内かヒエラルキー内でオブジェクトを選択して右クリックします。
各 Toolbox ツールの使い方の詳細については、PiXYZ のドキュメンテーションを参照してください。
Toolbox の手動処理とは異なり、Rule Engine を使うと、ユーザーが定義した設定に基づき、インポート時またはエディター内で、モデルの出力を決定するルールセットの適用処理を自動で実行できます。ルールは実行時にカスタムルールに基づいて順番に実行されます。
また、Unity でルールを作成して、ルールの機能を指定することもできます。ルールを適用すると、選択したモデルに対して機能が実行されます。モデルとはこの場合、Revit からインポートした BIM データを含む IFC です。たとえば、モデルのマテリアルを置き換えたり、モデルを置き換えたり、シーン内にすでに存在するオブジェクトに追加したりできます。最も重要なのは、これはすべてワンクリックでできるという点です。その手順を確認しておきましょう。
新しい Rule Engine セットを作成するには、Create > PiXYZ > RuleEngine Rule Set を選択します。
または、PiXYZ > Rule Engine > Create New Rule Set を選択します。
指定したフォルダーに新しいルールセットが表示されたら、クリックするとインスペクター内で新しいルールを作成できます。プラス(+)アイコンをクリックすると、ルールの土台が作成されます。
どのルールも、最初にルールに含めるものを指定する必要があります。「+」アイコンをクリックして「Get」を選択します。すると 3 つのオプションが表示されます。
ルール機能では Toolbox のアクションをすべて利用できるため、ここからさらにルールを拡張できます。ルール機能は、商業向けのリアルタイムな建築ビジュアライゼーションのためのプラットフォームとして Unity プロジェクトを利用するのに役立ちます。ルールを土台として考えることで、さまざまなモデルにルールを再利用することができます。
Unity のルールを Autodesk Revit や BIM ソフトウェアパッケージのプリセットの命名規則と整合させれば、ルールを一度実行するだけで、ビジュアライゼーションを簡単に作成できます。
また、PiXYZ Toolbox にカスタムスクリプトを組み込んでルール内で使用することもできます。
ルール内で使える各アクションの詳細については、PiXYZ のドキュメンテーションを参照してください。
Rule Engine について十分に理解したら、次はインポートしたマテリアルを Unity のマテリアルと置き換えるルールを作成してみましょう。次の 2 つの方法で作成できます。
新しい RuleEngine ルールセットを作成するために、Create > PiXYZ> RuleEngine Rule Set を選択します。
次に、開始ノードを追加し、ルールの適用対象を決定します。「+」アイコンをクリックして「Get」を選択してから、次のオプションを選択します。
All Game Objects
または
Import Models
または
Latest Imported Model
Autodesk Revit では、オブジェクトのタイププロパティ内で命名規則が定められています。オブジェクトのタイプ名はカスタムの名前で置き換えられ、IFC の「/Reference」として Unity にエクスポートされます。
続いて、プロジェクト内の関連する BIM データにアクセスするために、データをフィルターする必要があります。「+」アイコンをクリックして Filter> On Property を選択します。
「Property Name」にはフィルターするデータタイプの名前を入力します。「BIM メタデータの処理」セクションで説明したとおり、タイププロパティのタイプ名は Autodesk Revit のカスタムの名前で置き換えられ、「/Reference」として Unity にインポートされます。
「Property Value」には、プロジェクト内のオブジェクトのタイプに固有のカスタムの名前を入力するか、またはその名前の一部を入力します。たとえば、インポートした内窓のマテリアルを Unity マテリアルに置き換えるとします。
命名規則が定められているため、「Interior-Window」という語句は、モデル内の透明な窓の名前の中にしか存在しません。そのため、Interior_Window をプロパティー値として使用することが可能です。この例で使用されている名前は「Btn_02_Interior_Window_01」です。
さて、これでルールによってプロジェクト内のすべての BIM データがフィルターされます。具体的には、プロパティー名「Reference」を対象に「Interior_Window」を含む名前が検索されます。
このままだと、このルールで検索されるのは、BIM データを格納しているヒエラルキー内の空のゲームオブジェクトだけです。そのため、「+」アイコンをクリックして Get > Children を選択する必要があります。「Recursive」を必ず有効にしてください。有効にすると、数によらず、すべての子メッシュが検索されます。
最後に、「+」アイコンをクリックして Set > Material を選択します。
右にある選択ボックスボタンをクリックするか、新しいマテリアルをボックスにドラッグし、Unity マテリアルを設定します。
インスペクターの下部で「Run」をクリックし、RuleEngine ルールセットのすべてのルールを適用します。
注:ルールは上から下へと順番に適用されます。
このルールは、マテリアルの置き換えだけでなく他の処理でも使用できるような構造になっています。このルールでは、指定された BIM データタイプのインポートされたオブジェクトが呼び出されます。ルールをさらに適用して、機能を拡張することもできます。
開始ノードを追加し、ルールの適用対象を決定します。
次に、「+」アイコンをクリックして Modify > Switch Materials を選択します。
右にある 3 連ドットのアイコンをクリックし、「Switch Materials」を開きます。ドロップダウンメニューに、次に示すルールのオプションが表示されます。
「Fill With All Materials In Scene」を選択すると、Rule Engine によりすべてのマテリアルが取得され、ルール内のテーブルに格納されます。これを使うと、Unity マテリアルを空白の選択ボックス内に入れるだけで、マテリアルを効率的に置き換えられるようになります。
最後に、「Run」を選択すると、ルールによってシーン内のマテリアルが置き換えられます。
BIM データのインポート、必要なパラメーターの設定、Live Sync、Toolbox、Rule Engine、マテリアルの置き換えルールなど、2018.3 で更新された PiXYZ の機能を詳しく説明してきました。PiXYZ PLUGIN を使って Revit のデータを Unity にインポートする方法をご理解いただけたなら幸いです。これは、インポートプロセスを大幅に改善し、多くの時間を節約することを目指して Unity と PiXYZ が緊密に連携した結果です。
繰り返しになりますが、昨年の Unite Los Angeles での PiXYZ のプレゼンテーションをご覧になることをお勧めします。機能がわかりやすく概説されています。また、Mike Geig によるプロジェクトのウォークスルーもご覧ください。インポート方法、スポット修正の実行方法、簡単なポストプロセッシングの実行方法を取り上げています。
Unity ブログをよく読む方なら、Revit から Unity に直接インポートする計画に関する過去の記事をご覧になっているかもしれません。Autodesk University の AEC 基調講演で私たちが発表した内容(2:22~)もチェックしてください。今年中に提供予定のこの素晴らしい新機能に関するニュースを、これからもお楽しみに。
私たちは常にお客様の声に耳を傾けています。下のコメント欄でアイデアやリクエストをぜひお聞かせください。私たちと直接話したい場合や試用版の利用をご希望の方は、こちらからお問い合わせください。今すぐ使用を始めたい場合は、ストアにアクセスして PiXYZ をご購入ください。
最後に、私の Twitter @KieranColenutt もぜひチェックしてください。Unity のヒント、テクニック、将来の AEC コンテンツについて継続的にお知らせしています。