UE4でモデルを読み込んだ際、使用しているDCCツールによって軸やサイズの扱いが異なるため、作った通りの方向を向いていなかったり、サイズが10倍単位で異なっていることがあると思います。
そういった場合、モデルの再インポートの変換オプションを使うことで簡単に修正できます。
(スケルタルメッシュでもスタティックメッシュでも可能です)
今回はUnreal Engine 4 (UE4) Advent Calendar 2014の3日目の記事です。
Bitmap2Materialというツールを使用して、写真から簡単に物理ベースのマテリアルを作成する方法について書きます。
物理ベースのマテリアルとはなにかということについては以下に詳細が書かれています。
物 理ベースのマテリアルとは、簡潔に言えばエネルギー保存の法則に基づき、入射光と出射光とで光のエネルギーの総和が等しくなるように設定されたマテリアル です。物理ベースという言葉を聞く前から、デフューズが明るいマテリアルにはスペキュラの値を入れ過ぎないようにしたり、デフューズの値を0.8以上は入 れないようにしていた方は多いと思います。「入射光と出射光とで光のエネルギーの総和が等しい」というとなんだか難しいですが、リアルな絵をつくろうとし た際にある程度自然にやっていたことなんですね。
物理ベースに基づいたマテリアルを使用すれば上記のサイトのサンプルのようにリアルな反 射 表現を使用した絵を作れるようになることもさることながら、CG屋さんにとっての一番の恩恵はどのようなシーンでもマテリアルの再調整を行うことなくライ トの設定で対応できるということだとおもいます。また物理ベースのマテリアルはすごい勢いで標準化が進んでいるので、UE4などのゲームエンジンにかぎら ず、Maya,Maxなどの統合ソフト、3Dペイントツールなどで全く同じ結果が得られるというありがたい環境が整いつつあります。
しか し 物理ベースのマテリアルは、接続されるテクスチャがかなり整理されているとはいえ、BaseColorとRoughnessが必要で、質感表現には NormalMapも欠かせないので、それだけのテクスチャーを作るとなると結構な作業量なんですよね…。なおかつスタッフがおのおの見た目で明るさを合 わせるのではなく、物理的に正しい値を入れるとなると、これまで陰影もデューズカラーに描きこんでいたCG屋さんにとっては、なかなかハードルが高いので はないかと思います。
そこで今回は写真一枚からBitmap2Materialというツールを使用して、陰影を除去した BaseColor の作成とRoughnessとNormalMapの作成を行い、物理的に正しいマテリアルの計測値に(なんとなく)合わせて、簡単に物理マテリアル(っぽ いもの)を作る方法について書いてみたいと思います。
Bitmap2Materialは以下から購入できます。UE4やMaya,Max等に自動で書き出す機能を制限したインディー版は5000円程度で購入できます。登録が必要ですが体験版を落とす事もできます。
Bitmap2Material | Image to Material Generator | allegorithmic
※ Steamでも時々セールを行っているので、少しでも安く手に入れたいという方はセール期間中に覗いてみるといいでしょう。
では制作方法に入ります。
UE4にPivotPainterという機能があります。モデルにサブオブジェクトの座標軸と向きの情報を格納し、マテリアル関数でコントロールするための機能です。
この機能を使用しなくてもシェーダーのヴァーテックスオフセットが使えるので、サイン波などで揺らがせることはできるのですが、それだけではすべてのメッシュが均等に変位してしまいます。マスクを当てるなどしてオフセットを制限したり、特定の頂点だけ別の向きに動かしたりということも可能なのですが、プロジェクトごとにその機能を作るのも手間だろうということで、用意されたのがこのマテリアル関数ということなんだと思います。
3DSMax用のスクリプトが提供されているのでMaxユーザーはスクリプトを使用するのが簡単なのですが、ぼくはMaxを使用していないので、せめてどこで制御していればわかれば、手間はかかるけど同じようなことができるのでは?と思ったので調べてみました。
Twitterで@LtYpE_AZさんに教えいただいたMeshMixerの自立チェック機能のドキュメントを翻訳してみました。一部意訳が入ってるので間違えてるかもです。間違えていた場合、教えていただけると助かります。
安定性の解析
このツールは、オブジェクトが重力に耐えれるかどうかを確認するために使用されます。
着色された球はオブジェクトの重心です。この球の色はオブジェクトが自立可能かどうかを示します。球の色が赤い場合、オブジェクトが不安定であり倒れることを意味します。球が緑色の場合、オブジェクトが自立できることを意味します。
オブジェクトの下の赤いラインは接触点の凸包です。これらはオブジェクトが地面に触れる場所を意味します。Contact Tolのスライダーでオブジェクトが地面に接触している領域を増減させてください。
重心から降りているラインは、接触面への投影を示しています。このラインが接触点の凸包の中央付近(つまり赤いラインの中心)に当たった場合、そのオブジェクトは最も安定します。このラインは赤いラインのエッジに近くにあたる場合、オブジェクトは簡単に転倒します。
オブジェクトは接触点が(Yは上方向の)XZ平面上にあるように配向されなければなりません。オブジェクトが適切に配向されていない場合は、Align toolを使用してみてください。
一度に面を貼るとき、四角ポリゴンでグリッド状に閉じたい時って多いですよね?
Blenderにはグリッド状に面を貼る機能が備わっています。
Using the Quick Tools Add-on
各モード中にQキーを押すことでよく使う機能に素早くアクセスできるアドオン。
オブジェクトモードには以下のとおり
サブサーフ
ミラー
その他のモデファイア
原点の設定
スムースの設定
両面表示とワイヤーフレーム描画のトグル
他にも編集モードとスカルプトモード中にも固有のメニューが出る。
たとえばモデリング中、この機能はモデファイア、この機能はオブジェクトディスプレイ、などと色々なところに分散した機能をひとまとめに出してくれるのでなかなか使いやすい。
http://www.blendernation.com/2013/01/20/f2-modeling-add-on-released/
通常のFキー(辺/面作成)の機能を拡張するアドオン。
標準でインストール済みだがアドオンのロードのチェックが外れているので、ユーザー設定から入れると使えるようになる。
CAD Addon: Edge Tools (blender 2.6x)
交点を作成するCAD系アドオン
使い方:エディットモードで2つのエッジを選択し、Wキーを押して以下の機能から選択
Edges V intersection:エッジがぶつかるところまで延長し、そこに交点を作成
Edges T intersection:後に選んだエッジを先に選んだエッジにぶつかるまで延長してそこに交点を作成
Edges X intersection:交わっているエッジ同士の交点を作成
VTXの表現が見た目通りでわかりやすい(CADツールでは一般的なのかな)