このページでは、Datasmith が Maxon Cinema 4D から Unreal Editor にシーンをインポートする方法について説明します。ここでは、「Datasmith の概要」と「Datasmith のインポート プロセスについて」で説明されている基本的なプロセスに従っていますが、Cinema 4D に特有の特別な変換動作がいくつか追加されています。Datasmith を使用して Cinema 4D から Unreal Editor にシーンをインポートする予定がある場合は、このページを読むとシーンがどのように変換されるか、およびその結果を Unreal Editor でどのように使用できるかを理解するのに役立ちます。


**提供:このページで使用された教室シーンは [Turbosquid] (https://www.turbosquid.com/3d-models/3d-3dm-car-offroad-van/1137533) ユーザー scripter のご提供です。
Cinema 4D のワークフロー
Datasmith は Cinema 4D に対して 直接 ワークフローを提供するため、Datasmith を使用して Cinema 4D のコンテンツを Unreal に取り込むには以下を実行する必要があります。
- Cinema 4D で、対象シーンを
.c4d
ファイルに保存します。Cinema 4D のメインメニューから、次のいずれかを実行します。- Cinema 4D の新しいバージョンを使用している場合、[File] > [Save Project for Cineware] を選択します。
- 古いバージョンを使用している場合は、代わりに [File] > [Save Project for Melange] を選択する必要があります。
-
Unreal Engine で、プロジェクトに対して Datasmith C4D Importer プラグインを有効にします。プラグインを有効にする方法については、「プラグインを操作する」を参照してください。
- Unreal Engine で Datasmith インポート オプションを使用して、
.c4d
ファイルをプロジェクトにインポートします。詳細の手順については、「Unreal Engine に Datasmith コンテンツをインポートする」を参照してください。
Cinema 4D の R22 より前のバージョンでは、Cinema4D を設定して、.c4d
ファイルを保存するときに、Datasmith で必要な情報を含めることができます。
-
メインメニューから、[Edit] > [Preferences] を選択します。
-
[Preferences] ダイアログの [Files] タブで、次のオプションを有効にします。
- Save Polygons for Melange.
- Save Animations For Melange.
これらのオプションを有効にすると、保存するファイルのサイズが大きくなります。ファイル サイズが懸念される場合や、Unreal Engine にインポートする必要のない Cinema 4D シーンを頻繁に使用する場合は、[File] > [Save Project for Melange] オプションを必要なときだけ使用することをお勧めします。
ジオメトリ
Datasmith は、Cinema 4D シーンに表示されているジオメトリ オブジェクトごとに個別の Static Mesh アセットを作成します。
[Cinema 4D Properties] パネルに表示されるオブジェクト名は、Unreal Engine の対応するスタティックメッシュ アセットに Datasmith により割り当てられた名前です。
Datasmith により作成されるスタティックメッシュ アセットとアクタの粒度を調整するには、Cinema 4D でオブジェクトをマージしてから、シーンをエクスポートします。
たとえば、次の方法で実行できます。
-
Cinema 4D の [Connect Objects] コマンドを使用して、2 つのオブジェクトを 1 つのオブジェクトにマージします。Cinema 4D のドキュメントの『Connect Objects』を参照してください。
-
より柔軟に行うには、Cinema 4D の [Connect Object] を使用して、指定されたしきい値よりも近いオブジェクトを 1 つのメッシュに結合します。この場合、Datasmith インポータにより、結合されたメッシュに対して 1 つのスタティックメッシュ アセットが生成されますが、結合された部分は Cinema 4D では個別のオブジェクトのままです。Cinema 4D のドキュメントの『Connect Object』を参照してください。
オブジェクトの可視性
Unreal Engine にインポートしたくないオブジェクトがある場合は、.c4d
ファイルを保存する前に Cinema 4D で非表示にしてください。Datasmith インポータでは、非表示オブジェクトのジオメトリはスタティックメッシュ アセットにインポートされず、Datasmith のシーン階層にも含まれません。
Cinema 4D の [Objects] パネルを使用して、オブジェクトを個別に非表示にできます。または、除外するオブジェクトを独自のレイヤーに配置し、[Layers] パネルを使用して、そのレイヤー内のすべてのオブジェクトを非表示にすることもできます。
ジェネレータとデフォーマ
Melange 用に Cinema 4D シーンを保存すると、シーン内のすべてのジェネレータが、プロシージャルに生成されるオブジェクトのジオメトリ全体を表す単一のトライアングル メッシュに ベイク されます。同様に、すべてのデフォーマは、デフォーマの最終状態に基づいて単一のトライアングル メッシュにベイクされます。Datasmith は、これらのトライアングル メッシュを単一のスタティックメッシュ アセットとしてインポートします。
インスタンス、クローナー、配列
Cinema 4D シーンでインスタンス、クローナー、または配列を使用して、シーン内の複数の異なる場所に 1 つのオブジェクトのコピーを配置する場合、Datasmith はコンテンツ ブラウザでそのオブジェクトのジオメトリから単一のスタティックメッシュ アセットを作成することで、意図したとおりに処理します。次に、このスタティックメッシュ アセットの複数インスタンスを Datasmith シーンに配置します。
法線の向き
Unreal Engine は、ほとんどのリアルタイム レンダラと同様に、パフォーマンスを最大化するために、カメラから見えない向きにあるトライアングルを自動的にカリングします。ただし、Cinema 4D では、この 背面カリング の有無にかかわらず、ジオメトリをレンダリングできます。Cinema 4D の設定方法によっては、サーフェスの向きを考慮する必要がなくなります。シーンに片面ジオメトリが含まれ、その各面のサーフェス法線が基本のビュー (カメラ) 方向に向いていない場合、Unreal Engine で特定の角度から見ると、そのジオメトリが消えているように見えることがあります。
たとえば、下の画像には、1 つのサーフェス法線が内側向きでモデリングされた本が表示されています。このシーンが Unreal にインポートされると、最初は表紙がないように見えます。この場合、サーフェスの法線方向を反転させると、その面が適切に表示されます。


この問題を回避するには、Cinema 4D でサーフェスが想定の方向を向いていることを確認します。これにはいくつかの方法があります。例:
-
ビューポートの [Options] > [Backface Culling] の設定を有効にします。これにより、Unreal Engine で非表示になるのと同じように、法線がカメラ方向を向いていないすべての面が非表示になります。
-
ポリゴン モードでは、選択した面がカメラに向いているときは黄色のハイライトで表示され、カメラに向いていないときは青色のハイライトで表示されます。
-
頂点法線を各面の中心から伸びる白い線として表示するようにビューポートを設定します。[Options] > [Configure] を選択し、[Attributes] パネルに移動します。[Polygon Normals] の設定が有効になっていることを確認し、その [Selected Only] オプションを無効にして、ポリゴン モードで選択したモデルにあるすべての面の法線を可視化します。
Cinema 4D で法線が反転している面を見つけたら、[Reverse Normals] コマンドを使用して反転させることができます。Cinema 4D のドキュメント を参照してください。
詳細な説明と可能な解決策については、「Datasmith インポート プロセス」を参照してください。
ライト
Datasmith は、Cinema 4D のライトのほとんどのタイプを Unreal Engine のライトと等価なライト タイプに変換します。この変換では、シーン内の配置、カラー、フォトメトリック強度、コーン角、IES プロファイルなど、ライトで最も重要なエミッシブ プロパティが保持されます。
以下の表に、Datasmith で Cinema 4D のライト タイプを Unreal Engine のライト タイプにマップする方法を示します。
Cinema 4D | Unreal Engine |
---|---|
ポイント ライト、IES ライト | ポイント ライト |
スポット ライト、ターゲット ライト | スポットライト |
エリア ライト、PBR ライト | DatasmithAreaLight ブループリント |
太陽光、無限ライト | ディレクショナル ライト |
カメラ
Datasmith は、Cinema 4D シーンのカメラごとに、Datasmith シーンの CineCamera アクタを作成します。このカメラは、Cinema 4D 内の対応するカメラと同じ位置と回転で配置され、焦点距離など、カメラの物理的特性に関連するいくつかのオプション設定が保持されます。
シーン階層
Datasmith により、Cinema 4D シーンを Unreal Engine にインポートするとき、Cinema 4D のオブジェクトの階層とよく一致するアクタの階層が生み出されます。Datasmith はオブジェクト名と階層関係をできるだけ忠実に維持しますが、完全に一致したものが作成されるとは限りません。
次のような差が生まれる可能性があります。
-
オブジェクトの順番: Unreal Editor の アウトライナー では、階層の各レベルでアクタがアルファベット順で並べられます。アクタが Cinema 4D の対応オブジェクトと異なる順番で表示されることがありますが、階層関係が変わることはありません。
-
オブジェクト名: Datasmith で作成されるアクタの名前には、英数字、ハイフンおよびアンダースコアのみ使用できます。Cinema 4D オブジェクトの名前に他の文字が含まれている場合、それらの文字は Datasmith により自動的にアンダースコアに変換されます。
-
プロシージャルな要素のベイク: インポート処理において、Datasmith により、Cinema 4D シーンのプロシージャルな機能がベイクされ、エフェクトをレプリケートする一連のスタティック アクタでそれらを置き換えます。これは Unreal Engine での最終階層に影響を及ぼすことがあります。詳細については、次のセクションを参照してください。
Datasmith により Cinema 4D のプロシージャルな機能をベイクする方法
Datasmith により Cinema 4D シーンの各プロシージャル オブジェクト (ジェネレータ、クローナー、配列など) を Unreal Engine に、オリジナルの Cinema 4D オブジェクトと同じ名前で、単一の親アクタをとしてインポートされます。
それぞれの親の下で、Datasmith により、プロシージャル ジオメトリのエフェクトをシミュレートするスタティックメッシュ アクタが作成されます。これらのスタティックメッシュ アクタの名前は、親アクタと同じで、数字のサフィックスが付いたものになります。
Cinema 4D のプロシージャル機能を十分活用する場合、Datasmith により対象シーンが Unreal Engine にインポートされるとき、複雑なシーン階層を生み出すことがあります。ただし、Unreal Engine では個々のアクタに個別のインスタンスとしてアクセスできます。
レイヤー
Cinema 4D シーンをインポートするとき、Datasmith により、少なくとも 1 つのオブジェクトが含まれる名前付きレイヤーがすべてインポートされます。空のレイヤーつまり、Cinema 4D シーンにある、オブジェクトを含まないレイヤーはインポートされません。Datasmith により、Unreal Engine に作成されるレベル アクタは、Cinema 4D シーンで対応オブジェクトが割り当てられた同じレイヤーに、割り当てられます。
インポートされたレイヤーを表示するには、[Layers (レイヤー)] パネル (レイヤー パネル を参照) を使用します。
Cinema 4D マテリアル
Datasmith は、Cinema 4D シーンの標準マテリアルと物理マテリアルごとに Unreal Engine のプロジェクト内に新しい Material アセットを作成します。
これらの Material アセットの目的は、Unreal の物理ベース レンダラを利用できるプロパティを公開しつつ、Cinema 4D で設定したサーフェスの外観を再現することにあります。
マテリアルを変更するには、次の手順を実行します。
-
コンテンツ ブラウザ で目的のマテリアルをダブルクリックします。または、レベルで変更するマテリアルを使用するアクタを選択し、[Details (詳細)] パネルでそのマテリアルをダブルクリックします。
-
以下のマテリアル インスタンス エディタを開き、[Details (詳細)] パネルの設定を使用して、Cinema 4D からインポートしたプロパティを修正します。Unreal レンダラで提供されている他のビルトイン パラメータを変更することもできます。
マテリアル インスタンス エディタの使用方法については、「マテリアル インスタンス エディタのユーザー インターフェース」を参照してください。
マテリアル チャンネルを使用する
Cinema 4D からインポートしたマテリアルを編集する場合は、[Details (詳細)] パネルの上部に、Datasmith がインポート プロセスで処理する Cinema 4D チャンネルの種類が一覧表示されます。Cinema 4D でのマテリアルの操作に慣れている場合は、これらのチャンネルのエフェクトと設定についてはすでに馴染みがあると思います。

トップの [00 Global] セクションでチャンネルがアクティブになっている場合、[Details (詳細)] パネルの下のセクションで、そのチャンネルに関連する設定を行うことができます。これらの設定は、Cinema 4D 内の対応するチャンネルに設定できる最も重要なプロパティを公開します。
たとえば、上の画像で有効にしたチャンネルによって、セクションが追加で表示されます。下の図のように次のセクションが表示されます。Color (色) (1)、Reflectance (反射率) (2)、Specular (スペキュラ) (3)、Normal (法線) (4) があります。

反射カラー チャンネルは、この規則の唯一の例外です。[Use_ReflectionColor] の設定を有効にすると、新しい [Reflection Color] および [Reflection Color Strength] の設定が [01_Color] グループに追加されます。

[Reflectance] チャンネルで設定した値は、[Roughness]、[Metallic]、そして [Specular] チャンネルなど、Unreal Engine の複数のマテリアル出力チャンネルに影響します。こういった複雑な関係があるため、Datasmith は Cinema 4D の [Reflectance] チャンネルからは 1 つのレイヤーだけを変換します。
テクスチャ UV を制御する
[Details (詳細)] パネルの下部に、マテリアルにある全チャンネルの UV マッピングを制御する設定が表示されます。これらの設定を変更することで、シェーディングするスタティックメッシュのジオメトリにマテリアルがテクスチャマップを適用する方法を変更できます。ここで設定する値は、テクスチャマップを使用するすべてのチャンネルに適用されます。これらの設定には、Cinema 4D の テクスチャタグ のオフセットおよびタイリング設定と同様の効果があります。

その設定内のテクスチャマップを提供する各チャンネルにも、独自のオプションの UV ラッピング コントロールがあります。たとえば、[04_Normal] チャンネルは法線マップ テクスチャを受け入れるため、法線マップ テクスチャにのみ適用される UV コントロールの 2 次セットをアクティブにする設定も提供します。

このオプションを有効にすると、UV マッピング コントロールの新しいセットがチャンネル設定に追加されます。

UV グループの一般的な UV 設定と特定のチャンネルの設定の両方をカスタマイズすると、効果がまとめて追加されます。
親マテリアル
Datasmith が作成する各 Material アセットは、マテリアル インスタンスです。このマテリアル インスタンスの親は、常に Datasmith プラグインに組み込まれている C4DMaster マテリアルです。この親マテリアルを開くと、マテリアル インスタンスで公開されている各プロパティがマテリアルグラフでどのように接続されているかを確認できます。シェーディング計算時に既存のプロパティが考慮される方法を変更する、または他のプロパティを公開するために親マテリアルを変更することもできます。「Datasmith のマスター マテリアルを変更する」を参照してください。
マテリアル インポートの制限
Cinema 4D から Unreal Engine への Datasmith によるマテリアル変換プロセスには制約があり、ノイズ、ノードベースのマテリアル (Cinema 4D R20で導入)、サードパーティ製のレンダラなどのプロシージャル テクスチャはサポートされません。
このような場合でも Unreal Engine と Cinema 4D の結果を厳密に一致させる必要がある場合の最善策としては、マテリアルをビットマップ テクスチャとしてベイクし、ベイクされたビットマップを適用する新しいマテリアルを作成します。Cinema 4D のドキュメントの『Bake Material』を参照してください。
アニメーション
Cinema 4D シーンに、キーフレーム アニメーション、MoGraph、または Dynamics など、時系列で 3D トランスフォームがアニメートされる要素が含まれている場合、Datasmith はそれらのアニメートされたトランスフォームを新しいレベル シーケンス アセットに自動的にインポートします。シーケンサー ツールを使用すると Unreal Editor 内でアニメーションを再生できます。そして、ブループリントを使用するとランタイム時にインタラクティブな再生を管理することができます。
Datasmith が作成するレベルシーケンスの操作方法に関する重要な詳細については、「インポート プロセスについて」の「アニメーション」セクションを参照してください。
ユーザー データ
Cinema 4D では、[Attributes (属性)] パネルで [User Data (ユーザー データ)] > [Manage User Data (ユーザー データの管理)] を選択して、シーンの各オブジェクトにユーザー データを追加できます。Cinema 4D でのユーザー データの追加については、Cinema 4D のドキュメント を参照してください。

Datasmith によりユーザー データが Cinema 4D オブジェクトからインポートされ、対応するレベル アクタ上の Datasmith メタデータとして保存されます。このメタデータには、ブループリントまたは Python を使用して Unreal Editor からアクセスでき、ランタイム時にエンジンから、ブループリントを使用してアクセスできます。詳細については、「ブループリントおよび Python でメタデータにアクセスする」を参照してください。
データ変換にはいくつかの重要な注意事項が適用されます。
-
Cinema 4D では、ユーザー データを階層グループに編成することができますが、Unreal Engine では Datasmith のメタデータは常にキー/値のフラット リストです。ユーザー データに何らかのグループが含まれる場合、Datasmith により次の処理が行われます。
- 階層を平坦化します。
- 全グループのメタデータ キーすべてを単一のフラット リストに保存します。
- グループ名を破棄します。
-
Cinema 4D でユーザー データに設定したデータ型に関係なく、Datasmith のメタデータに保存される値は常に文字列です。Datasmith では、できる限り、元のデータの値を文字列に変換します。この文字列を解析すると関連情報を抽出できます。この文字列を解析すると関連情報を抽出できます。ただし、グラデーション、他のシーン オブジェクトへのリンク、優先度の値、スプラインなど、一部の Cinema 4D のデータ型はサポートされていません。
-
メタデータのキー名には英数字、ハイフンおよびアンダースコアのみ使用できます。Cinema 4D のユーザー データの名前に他の文字が含まれている場合、それらの文字は Datasmith により自動的にアンダースコアに変換されます。