UnrealEngine4.20の新機能とUnrealStudio その4

引き続き、UnrealStudioと機械CADデータ活用について、いろいろやってみようと思います。
今回の素材はAutodesk Inventorのオフィシャルのサンプルデータを使ってみます。

この中の「EngineCase」を使ってみます。

いつも通りUnrealStudioのImportCADからデフォルト設定でImportします。


上の三面図だと高さ37.75とありますので、10cmのゲージからすると正しいようですが、約4cmのエンジンは模型にしても変です。

Autodesk Design Reviewというフリーソフトで元の2D-CADデータの単位を確認します。

どうやら1インチ=25.4mmの設定のようです。
では、UE4の単位は1cmなので2.54倍すれば良い、ということです。

通常のUE4のスタティックメッシュのインポートなら、スケール設定の項目があるのですが、UnrealStudioではありません・・・

普通にトランスフォームで2.51倍します。
図のようなサイズになります。

さらに毎度のことですが、Y=-90度回転します。

CADデータの単位と変換に関しては、情報をしっかり入手しないとリアルタイムシミュレーションでの正しい大きさにならないので注意が必要です。


コンテンツブラウザでは、このようにジオメトリ、マテリアルフォルダがあり、もう一つアイコンがあります。

ダブルクリックでインポートの際のパラメータが全て出てきて変更できますが、ここで変更して保存しても、ポリゴン数の変化はありません。
CADデータのパスが変わった場合はここで変更できます。

スタティックメッシュエディタからReImportをクリックします。
インポートの際のパラメータが全て出てくるので、変更し「Import」します。
この設定は先週のブログをご覧ください。

インポートのバーが出てしばらくすると・・・

約一万ポリゴン以上を減できました。見た目はそんなに減った感じはしません。

しかし、ライトマップビルドで変な陰影が出ます。ライトマップを確認すると・・・

当たり前ですが、3dsmaxなどを通してないCADデータですからUVの0は何もありません。1番もオーバーラップが酷く、2番は自動UV展開ですが、テクセルが小さすぎます。


ライトマップを再設定します。

だいぶ細かいですが、展開できました。2番は消えます。

Importしたデータの上のノードから「UpadateActorf rom Scene」をクリックして更新しておきます。

ライトビルドをしますが、まだまだ問題があります。
mayaへ一度かきだしてUV設定すれば済む話ですが、なんとかUnrealStudioだけで解決できないか、それは今後の課題です。


そこで、マテリアルを「DatasmithColor」が設定します。
これでライトビルドを再びみましょう。
なんと綺麗になってしまうのです。つまりUE4の基本操作であるライトマップとUVをなるべく意識しなくて済む仕組みになっています。
「DatasmithColor」とは一体なんなのでしょうか?これは次回以降で解説予定するです。

Redshift & Mayaで始めるGPUレンダー その1

2018年も8月になりました。ちょうど1年前くらいにこのブログでRedshiftの情報を書いていましたが、ここで再び連載していこうと思います。

最近のRedshift情報として、yuichiro yamaさんのYoutubeチャンネルを紹介させていただこうと思います。

なんと、Redshift2.5、Arnold5、V-Ray3.6、Mantra(houdini標準レンダラー)の4種類のジャンル別のベンチマークテストをしている動画を9つも公開されています。


最初は標準的な質感+ライトだけのアニメーションです。
Redshift=3.2分、Arnold=5.5分、V-Ray=3.6分、Mantra=7.5分
※時間は1フレームあたり平均


2番目はティーポットが回転しているアニメです。屈折と反射があります。
Redshift=40秒、Arnold=10分、V-Ray=80秒、Mantra=9.5分


3番目はアニメーションでモーションブラーのテストです。
Redshift=2分、Arnold=9分、V-Ray=2分、Mantra=7.5分


4番目は爆発によるボリュームレンダーです。
Redshift=20秒、Arnold=4分、V-Ray=90秒、Mantra=83秒


5番目は屋内のGIのテストです。
Redshift=2分、Arnold=6分、V-Ray=5分、Mantra=14分


6番目は水のエフェクトです。
Redshift=3分、Arnold=6分、V-Ray=8分、Mantra=12分


7番目は砂のエフェクトです。
Redshift=52秒、Arnold=2.2分、V-Ray=100秒、Mantra=3.5分


8番目は焚火の炎エフェクトです。
Redshift=2.5分、Arnold=17分、V-Ray=10分、Mantra=38分


9番目の最後はフォーカスとボケの効果です。
Redshift=2.5分、Arnold=9.5分、V-Ray=20分、Mantra=35分

CPUはXeon E52687W 3.0GhZ、GPUはGTX1080tiとの記載があります。
どのテストもRedshiftが良い結果を出しています。
GPUレンダーですので、グラフィックボードを追加すれば、さらに速くなるでしょう。

もちろん各レンダラーの仕上がりなど違いがあり、好みが分かれると思います。プロジェクトではレンダリングできる時間が限られますので、やはり速いのは有利ではないでしょうか。

ユーザー事例の新しい情報は、「Lego DC Villains」というゲームのトレーラーです。

これは「TEDx Sydney – Love Is Love – Robots」という作品。
個人的に一押しです。

ボーンデジタルさんの「Redshiftユーザー事例」にあるのが、最近公開された、ハリウッド映画「ランペイジ 巨獣大乱闘」があります。

どんどん、Redshiftも使われているようです。
次回から、オリジナルチュートリアルを始めようと思います。お楽しみに!

UnrealEngine4.20の新機能とUnrealStudio その3

前回の続きでCADデータのインポートを細かく分析してみようと思います。
公式のDatasmithのCADのマニュアルはこちらです。

例によってUnrealStudio4.20を起動し、「ImportCAD」を実行します。

前回もやったので省略しますが、CADのデータを指定すると、UE4に変換してくれます。

その際のオプションがこれです。上の「Process」はモデル、テクスチャ、ライト、カメラの読み込みの有無を決めます。
問題は下の「Geometry & Tessellation Options」の3項目です。

(1)Chord Tolerance=生成するポリゴンと元のサーフェスの間の最大距離を設定します。

 ※マニュアルより画像を引用させていだいてます。

CADデータはNURBS曲線で、それをUE4でポリゴンに変換します。つまり、輪郭は上の図のようにカクカクしてきます。しかし処理がリアルタイムで可能です。
この「Chord Tolerance」値が小さければ、より元のCADの曲面に近い形になるということです。

(2)Max Edge Length=生成されたポリゴンの辺の最大のエッジの長さを設定します。

※マニュアルより画像を引用させていだいてます。

この値が小さいほど、細かいポリゴンになりますが、平面の部分までポリゴンが多くなります。また、この値が大きすぎると細長いポリゴンなど問題が出ます。

(3)Normal Tolerance=サーフェスから生成された隣接するポリゴンの間の最大角度を設定します。

※マニュアルより画像を引用させていだいてます。

変換されたポリゴンの隣の面との角度の最大値を決めます。これが小さいほど、曲面に近い細かいポリゴンになります。この設定のメリットは値を小さくしても、平たんな箇所はポリゴンが増えません。

理屈は解ったので、実験してみましょう。

左から、Chord Tolerance=0.1、0.001、0.0001でインポートしてみました。
ポリゴン数の差が出てます。

Chord Tolerance=0.1 で、3325ポリゴン、

Chord Tolerance=0.001で、1万5553ポリゴン、

Chord Tolerance=0.0001で、14万5678ポリゴンです。
これは玩具の設計データなのでとても小さいモデルなので、値も小さくなっています。自動車、飛行機など大きさに合わせて調整が必要です。

次に、Max Edge Length=0.1、0.5、0.1で作成しました。0.1=3325ポリゴン、0.5=4116ポリゴン、、0.1=1万9756ポリゴン

最後に、Normal Tolerance=20度、10度、5度でインポートしました。

20度=3325ポリゴン、10度=11104ポリゴン、5度=4万0605ポリゴン

この実験で、パラメータの変更でどれくらいの細かさでポリゴンになるのか、が解っていただけたかと思います。

注意として、それぞれの値を間違えると、UE4ごとフリーズします。このパーツでは、Max Edge Length=0.001でフリーズしました・・・
形状ごとに最適なパラメータ設定には、コツをつかむまで慣れが必要かと思います。