Datasmith で Rhino を使用する

Datasmith を使用して McNeel Rhinoceros 3D からシーンをインポートする際に特に考慮する必要のある事項について説明します。

Windows
MacOS
Linux

このページでは、Datasmith で McNeel Rhinoceros (Rhino) から Unreal Editor にどのようにシーンがインポートされるかについて説明します。ここでは、「Datasmith の概要」「Datasmith のインポート プロセスについて」 で説明されている基本的なプロセスに基づいています。ただし、Rhino に固有の特別な変換ビヘイビアがいくつか追加されています。Datasmith を使用して Rhino から Unreal Editor にシーンをインポートする予定の場合は、このページを読むとシーンがどのように変換されるか、その結果を Unreal Editor でどのように使用できるかを理解するのに役立ちます。

Rhino のワークフロー

Datasmith は Rhino に対して 直接 ワークフローを提供するため、Datasmith を使用して Rhino. のコンテンツを Unreal に取り込むには以下を実行する必要があります。

  1. Rhino で作成したシーンを .3dm ファイルに保存します。

  2. まだインストールしていない場合は、[Importers (インポータ)] > [Datasmith CAD Importer] プラグインをプロジェクトで有効にします (まだインストールされていない場合)。

  3. Unreal Editor のツールバーの Datasmith インポータを使って、.3dm ファイルをインポートします。方法については、「Datasmith コンテンツを Unreal Engine 4 にインポートする 」を参照してください。

他のタイプの Datasmith ワークフローについては、「Datasmith でサポートされているソフトウェアとファイル タイプ 」を参照してください。

ジオメトリをスタティック メッシュに変換する

Datasmith は、Rhino ファイルに含まれる各メッシュ、ソリッド、またはサーフェスに対して、個別の Static Mesh アセットを作成します。Rhino の [Properties (プロパティ)] パネルでオブジェクトに [Name (名前)] プロパティが設定されている場合 (下図の左を参照)、Datasmith は Static Mesh アセットにその名前を使用します (下図の右を参照)。Datasmith によってレベルに作成された、スタティックメッシュ アセットを参照するアクタも同じ名前を使用します。

インスタンス化

Datasmith が Rhino のシーン内に同一ブロックの複数のインスタンスを検出すると、そのブロックのジオメトリの Static Mesh アセットを 1 セットのみ作成して、これらのスタティック メッシュの複数のインスタンスをシーンに配置します。これにより、通常、ランタイム メモリ要件とプロジェクトのパフォーマンスが改善されます。また、コンテンツ ブラウザ でのスタティック メッシュ数の管理が容易になります。

シーンで繰り返し使用されるすべての要素 (窓、ドア、椅子など) を Rhino のブロックにすることで、この機能を可能な限り活用することを推奨します。詳細については、「Rhino のドキュメント 」を参照してください。

テッセレーションとレンダー メッシュ

Unreal Engine では、常に三角ポリゴン メッシュを使用してオブジェクトをレンダリングします。パラメトリック サーフェスまたは NURBS として定義されている Rhino ファイルにオブジェクトが含まれている場合、それらのサーフェスを三角ポリゴン メッシュにトランスフォームまたは テッセレーション する必要があります。Datasmith では、このような状況の処理に 2 つのメソッドを用意しています。[Import Options (インポート オプション)] ダイアログ ボックスの[Geometry (ジオメトリ)] 設定で、Rhino ファイルをインポートする際に使用するメソッドを選択することができます。

Rhino Import Options

  • Import as NURBS, Tessellate in Unreal - このオプションを選択すると、Datasmith は Rhino のすべてのサーフェスの元の曲線ベースのデータをインポートします。次に、それらのサーフェスを [Import Options] ダイアログに設定したその他のパラメータの値を使用して三角ポリゴン メッシュにテッセレーションします。これにより、元のサーフェスに対するメッシュの複雑度と忠実度を制御します。Datasmith のテッセレーション処理、および制御に使用できるパラメータの詳細については、「

    [Using Datasmith with CAD Files](Source/Engine/Content/Importing/Datasmith/SoftwareInteropGuides/CAD)
    」を参照してください。三角ポリゴン メッシュを生成すると、次に Datasmith は作成したメッシュ ジオメトリの UV マッピングを生成します。

  • Import Rhino Meshes and UVs - このオプションを選択すると、Datasmith はビルトインのテッセレーション ステップをスキップします。代わりに、サーフェスの Rhino によって生成され、Rhino ファイルに保存されている三角ポリゴン メッシュと UV マップを探します。該当する三角ポリゴン メッシュが見つかるとインポートし、Unreal Engine でレンダリングする際に使用します。

    Missing template.

トライアングルの向き

通常 Rhino では、サーフェス法線の方向にかかわらず、すべてのサーフェスを両面として表示します。ただし、Unreal Engine では、カメラから外れた方を向いている三角ポリゴンを自動的にカリングします。これにより、特定の角度から見たときに、シーンにある一部のジオメトリが表示されないことがあります。

例えば、下の画像ではサーフェス法線を内側に向けてモデリングされた車輪格納部のカバーを表示しています。シーンが Unreal にインポートされると、最初はその側面がないように見えます。この場合、オブジェクトの法線方向を反転させると、その面が適切に表示されます。

backward-facing

forward-facing

詳細および推奨される解決方法については、「Datasmith のインポート プロセスについて 」を参照してください。

Rhino のマテリアル

Datasmith が Rhino のシーンで検出した異なるサーフェスのマテリアルに対して、Datasmith では Unreal で Material アセット を同じ名前で個別に作成し、Datasmith シーン アセットの横の 「Materials」 フォルダに配置します。

  • 「Materials」 フォルダの各マテリアルは「Rhino」ファイルで設定されている色の値、テキスト マップなどのプロパティを公開する マテリアル インスタンス です。これらの公開されたプロパティを変更すると、サーフェスに適用される時のマテリアルの外観を変更できます。Datasmith は作成するスタティック メッシュ アセットにこれらのマテリアル アセットを割り当て、Rhino レンダリングで表示される方法と同じようにサーフェスをシェーディングします。

    Datasmith では、Rhino オブジェクトから Unreal Engine にマテリアルをインポートするだけです。Datasmith では Rhino の表示色は完全に無視されます。これにより、Unreal Engine へのインポートの視覚的な結果が、Rhino でのレンダリングの結果と可能な限り一致するようになります。

  • また、Datasmith では「Materials/Master」フォルダに親マテリアルのセットも作成します。これらはそれぞれ、「Materials」フォルダの 1 つ以上の Material アセットの親です。各サーフェスの表示方法を定義したり、追加パラメータを子インスタンスに公開したり、公開パラメータをレンダリング時に反映する方法を変更したりするマテリアル グラフをより詳細にコントロールする必要がある場合は、これらの親マテリアルを編集することができます。

    なお、親マテリアルを変更すると、その親から継承するすべてのマテリアル インスタンスも自動的に変更されるので注意してください。通常、変更する前に親マテリアルを複製して、その複製を変更し、最後に特定のマテリアル インスタンスを更新して、新しい複製を親として使用することをお勧めします。詳細は「Datasmith マスター マテリアルを変更する 」を参照してください。

Datasmith のシーン階層を構築する

Datasmith では、シーン階層を次のように Rhino のモデルから構築します。

  • Rhino のシーンに含まれる各レイヤーに対して、Datasmith では該当レイヤーのすべてのオブジェクトに対する親として動作するアクタを Unreal で作成します。

    ただし、Unreal Editor の Layers パネルで作成されたレイヤーとは異なり、このアクタの階層は平坦化されません。Rhino のシーンのレイヤーと厳密に同じようにネストされています。

  • 各レイヤーを表すアクタの下に、対応するレイヤーにあるインスタンス化されたすべてのブロックが別のアクタで表されています。

    警告: 現時点では、Rhino のブロック上のピボット ポイントはワールド空間の誤った位置にインポートされます。

  • 最終的に、各レイヤーと各ブロックを表すアクタには、レイヤーまたはブロックを構成する実際のジオメトリ オブジェクトを表す Static Mesh アクタが含まれます。

    Rhino のポイントは Unreal Engine では空のアクタとして表されます。これにより、ポイントにジオメトリは作成されず、シーン階層の名前付き要素として保存されます。

  • Rhino のグループは、シーン階層における重要な要素ではなく、選択を補助する要素とみなされるため、Unreal のシーン階層に影響を与えません。

例えば下の画像では、Rhino の階層の各レイヤーに、それぞれに対応する Unreal のアクタがあることを確認できます。Rhino でジオメトリ オブジェクトのみを含む lights > [turn signals] のようなレイヤーは、対応する Unreal の Static Mesh アクタのみを保持しています。Rhino の lights レイヤーも left_headlightright_headlight という名前の 2 つのブロック インスタンスを保持しています。Unreal では、これらがそれぞれネストされたアクタで表されています。そのため、それらのブロックを構成するジオメトリ オブジェクトを保持しています。

クレジット: このページで使用されているモデルは、Turbosquid ユーザー tomashorin.design のご厚意によるものです。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback