BLOGブログ

2015.03.18UE4UE/ DCC

[UE4] Pivot Painterを使ってみる その2 [3ds Max](基本編)

こんにちは。sharaです。

前回に引き続きPivot Painterのご紹介をします。

 

【動作・検証環境】

Unreal Engine 4.7.2

3ds Max 2015 SP3

 【対象ユーザー】

UE4:Materialの基本、World Position Offset、FBXのインポート手順などがわかる方

3ds Max:基本操作(モデリング、サブオブジェクトレベル、基点、UV、頂点カラーへの理解)、スクリプトの導入方法などわかる方

 

・今回の概要

3ds Maxで階層を持たない簡単なアセットを用意し、それにPivot PainterスクリプトでPivot情報の設定をします。

次に、それをFBXで書き出し、ひとつのメッシュとしてUE4へと読み込み、新規マテリアルを適用します。

そのマテリアルにPivot Painter Functionノードを設定し、値をWorld Position Offsetへ渡し、その結果、エディタ上でPivot Painterの設定がどう影響してメッシュが変化するのか確認します。

 

・テスト用のアセット作成

まずは、3ds Maxで簡単なアセットを作り、それに対してPivot Painterの設定をしていきます。

…と、その前にMaxのSystem Unit(システム単位)の設定を確認しておきましょう。

下図のように1 Unitが1cmになっていればUE4にエクスポートしても大丈夫なはずです。

20150306_PivotTut2_001

余談ですが、以前別件で広大な景観シーンなどを作った際はcmだと単位が小さすぎて困ったことがあります。そういったときはいっそのこと単位を大きくするかUE4のインポート時にスケールを調整するなどして適宜対応しましょう。

 

さて、記事を書くにあたって、どのような例で説明しようか悩んだのですが、今回は基本編ということで仕組みがわかりやすいよう、プリミティブの配列に対して設定をしてみます。

 

下図のオブジェクトは、ひとつのメッシュを複製後、アタッチしEditable Polyへ変換したものです。Teapotなのは半分自分の趣味ですが、取っ手やフタなど複数の分離したパーツ(要素)で構成されているため、Pivot Painterの変化が確認しやすいかなと思いチョイスしました。

20150306_PivotTut2_002

 

・Prep Toolsロールアウト

では、Pivot Painterスクリプトを実行し、オブジェクトを選択した状態でPrep Toolsロールアウトの上項目から[Detach Selected Model’s Elements]ボタンを押しDetachします。Detachの際にObject Colorが新しく割り当てられます。

20150306_PivotTut2_003

 

さらに下項目に進みます。

Detach時にSelection Setが作られていますので、ロールアウト中央項目のUpdateを押してから、リストボックスで指定します。

20150306_PivotTut2_004

今回の例では[Pick Leaf Pivot Obj]で中央のメッシュを選択し、[Num Of Face Norms to…]でAverage Allチェックボックスを選択しました。

これらの項目は木の枝や葉などPivotの位置を指定する際に使うことになります。

設定ができたら、[Create New Pivots]を押してPivotを作成します。

 

・Per Object Painterロールアウト

次に、Per Object Painterロールアウトを開きましょう。

今回は個々のオブジェクトでPivotを設定することが目的であり、階層を持たないためHierarchy Painterロールアウトは使いません。

では、先程と同様にリストボックスをUpdateし同じSelection Setを選択しましょう。

そして下方にあるPaint Options項の[Paint Current Selection Set]を押すとPivot値が新規UVとVertex Colorに書き込まれます。

20150306_PivotTut2_005b

ロールアウト中央やや下にあるPreview:からラジオボタンで表示を切り替えられます。上図はColor表示の状態です。

 

・FBXエクスポート

では、FBXで書き出してUE4へ読み込んでみましょう。

書き出しオプションは下図の通りです。アニメーションの設定は不要です。

20150306_PivotTut2_006

 

・UE4でインポート

書き出したFBXをスタティックメッシュとしてContents Browserにインポートします。下の設定で読み込みました。

20150306_PivotTut2_007 

そして、レベルに配置します。

20150306_PivotTut2_008

 

・マテリアルの割り当てとPivotPainterノード

それでは新規マテリアルを作成し、割り当てます。

PivotPainter_PerObjectData Functionノードを呼び出し、下図のように接続すると…

20150310_PivotTest01

 

Pivot Painterで各Objectの要素毎に指定したPivotを基準に、スケール(正確には頂点座標)がサイン波に応じて変化します。

ひとつのメッシュで読み込まれているにもかかわらず、各々のメッシュの要素毎に個別の動きをつけることができました。

 

他にも、下図のようにノードを組むと…

20150306_PivotTut2_010

メッシュの要素毎に、各々の軸で回転させることができます。

上図のMaterialでMaterial Instanceを作成すれば、リアルタイムにSpeed Parameter値を変えて回転速度を変化させることもできます。

 

・おわりに

いかがだったでしょうか。以上が、Pivot Painterの初歩的な説明になります。

 

簡単な例で恐縮ですが、Pivot Painterでどのようなことができるのか少しでも伝われば幸いです。

応用になりますが、樹木の枝や葉、さらにはキャラクターの小道具やゆれものなどにも使える機能だと思います。

Blueprintと連携させることで、プレイ中にプロシージャルな動きを生成することもできます。

 

UE4もフリーになったことですし、3ds Maxをお使いの方は是非ともお試し下さい!

 

・事例紹介

最後にPivot Painterが活用されている事例をご紹介します。

Epic Games JapanのJoe Conleyさんの講演(Unreal Fest 2014)です。

「Epic最新作『フォートナイト』:シェーダーとブループリントが作る、生き生きとし­た世界」

非常に高度な内容ですが、使いこなせばここまでできるんだなと思わされます。