Top > Unreal Engine 4 (UE4) 其の弐 Advent Calendar 2015 - モデル3

#contents

----
time: 14:00

* 輪郭線を付ける [#f0341eed]

今回は背面法で輪郭線を付けます。
- 通常のモデルにもう1体モデルを被せて、少し拡大、裏面のみを描画することで輪郭線が描画できます。
- [[XIIIの秘密〜プログラマブルシェーダを使わなくてもできる効果的な表現(中編) (1/2)>http://www.itmedia.co.jp/pcupdate/articles/0403/24/news069.html]] 下部にも説明があります。

** モデルの設定 [#wefd182c]

+ 輪郭線用のモデルを付ける為にBlenderでモデルを弄ります。
+ Blenderを起動して、「File」→「Import」→「FBX(.fbx)」で、「Syachiku_chan.fbx」を開きます。
&ref(model_31.png,,80%);
+ インポート設定の「!EXPERIMENTAL!Apply Transform」にチェックを入れて、インポートします。
&ref(model_32.png,,80%);
+ こんな感じになるかと思います。
&ref(model_33.png,,80%);
+ 「Outliner」から「Syachiku_chan_mesh」を選択します。
+ Objectモードで、メニューバーの「Object」→「Duplicate Objects」を実行します。輪郭線用のモデルを作ります。
-- Mirrorモディファイアでもいけそうですが、別マテリアルを割り当てる方法有るのかとか分かりませんでした……
&ref(model_36.png,,80%);
+ 「Outliner」で新しく出来た「Syachiku_chan_mesh.001」を選択し、「Edit」モードで「Shading」タブの「Normals」項「FlipDirection」を実行します。これで法線が反転し内向きになり裏面だけ描画できます。
&ref(model_37.png,,80%);
+ 次に通常モデルと別のマテリアルを割り当てたいので、マテリアルを選択し「+」ボタンで増やしていきます。
-- 「+」ボタンを押すと、.001と末尾に付いたマテリアルが出来上がります。それを全マテリアル繰り返します。
&ref(model_38.png,,80%);
+ 「Outliner」で「Syachiku_chan_bone」を右クリック→「Select Hierarchy」でノード全体選択
+ 「File」→「Export」→「FBX(.fbx)」でFBXを出力します。
&ref(model_39.png,,80%);
+ 設定は下記を触り、元にあったFBXに上書きします。
-- 「Main」-「Selected Objects」をON
-- 「Main」-「!EXPERMENTAL! Apply Transform」をON
-- 「Geometrie」-「Smoothing」を「Edge」に
-- 「Armatures」-「Add Leaf Bones」をOFFに
&ref(model_40.png,,80%);
+ UE4に戻ります。社畜ちゃんのメッシュのツールバーで「メッシュを再インポート」
&ref(model_41.png,,80%);
+ なんかスケールが大きくなった……?高さ635。
&ref(model_42.png,,80%);
+ インポートしたてのを見ると高さ250。これも微妙に違う気が。
&ref(model_43.png,,80%);
+ メッシュの設定欄下部(マテリアルの下の方)に「Transform」があります。ここでTransformを指定すると、インポート時にそのTransformが適用されます。
-- 社畜ちゃんの身長分からないので、とりあえず160cmに合わせます。「Import Uniform Scale」を0.252を記述
&ref(model_44.png,,80%);
+ 再度メッシュのツールバーで「メッシュを再インポート」。今度は高さ160になりました。
&ref(model_45.png,,80%);
+ 一息入れます。
+ oO(なんかモーフが潰れた……)


** 輪郭線用のマテリアル [#ib12d9a4]

+ メッシュを見るとマテリアルが空になったりしていますが、ひとまず置いておいて輪郭線用のマテリアルを作成します。
+ ベースマテリアルを弄ります。頂点法線「VertexNormalWS」とスケール値を乗算、「ワールドポジションオフセット」に繋ぎます。これで輪郭線の太さが指定できます。
&ref(model_46.png,,80%);
+ ベーテマテリアルに、輪郭線用カラーを追加します。最後の「Clamp」の前に、「VectorParameter」ノードで乗算カラー「EdgeModulateColor」、加算カラー「EdgeAddColor」を追加します。
-- 乗算カラー「EdgeModulateColor」はデフォルト値を(1,1,1)にしておきます。
-- 加算カラー「EdgeAddColor」はデフォルト値を(0,0,0)にしておきます。
&ref(model_47.png,,80%);
+ 輪郭線用のベースマテリアルとして、マテリアルインスタンスを新規作成します。「EdgeBaseMaterial」として作成。このマテリアルインスタンスを弄れば一律輪郭線に変更を掛けられるように。
-- 「Parent」にベースマテリアルを指定。
&ref(model_48.png,,80%);
+ 各テクスチャ分、マテリアルを作成します。今度はParentに「EdgeBaseMaterial」を指定します。
-- 既存マテリアル(ClothesMaterialやFaceMaterial等)を複製して、Parentだけ置き換えるのが楽です。
+ 現状のマテリアルインスタンス
&ref(model_49.png,,80%);
&ref(model_50.png,,80%);
+ メッシュの方でマテリアルを設定し直します。
|''エレメント名''|''使用するテクスチャ''|
|エレメント0|SkinEdge|
|エレメント1|ClothesEdge|
|エレメント2|FaceEdge|
|エレメント3|FaceEdge|
|エレメント4|FaceEdge|
|エレメント5|FaceEdge|
|エレメント6|FaceEdge|
|エレメント7|FaceEdge|
|エレメント8|Hair1Edge|
|エレメント9|Hair2Edge|
|エレメント10|EyeEdge|
|エレメント11|EyeEdge|
|エレメント12|FaceEdge|
|エレメント13|FaceEdge|
|エレメント14|FacialEdge|
|エレメント15|Skin|
|エレメント16|Clothes|
|エレメント17|Face|
|エレメント18|Face|
|エレメント19|Face|
|エレメント20|Face|
|エレメント21|Face|
|エレメント22|Face|
|エレメント23|Hair1|
|エレメント24|Hair2|
|エレメント25|Eye|
|エレメント26|Eye|
|エレメント27|Face|
|エレメント28|Face|
|エレメント29|Facial|
+ 結果
&ref(model_51.png,,80%);



** 不具合修正 [#ma006bc8]
- [[「自前ライティング」項目>http://com04.sakura.ne.jp/unreal/wiki/index.php?Unreal%20Engine%204%20%28UE4%29%20%C2%B6%A4%CE%C6%F5%20Advent%20Calendar%202015%20-%20%A5%E2%A5%C7%A5%EB#u4039957]]で出ていた、ライティングがパッキリ出てる線の対処
-- どうやら、同一座標に頂点が複数有り、メッシュが分かれていた模様。共有頂点にしてスムーズにします。
++ 「Outliner」から「Syachiku_chan_mesh」を選択します。
&ref(model_34.png,,80%);
++ Editモードに入り、大体の足部分の頂点を選択し、「w」キー→「Remove Doubles」を実行します。ほぼ同一座標にある頂点をマージしてくれます。
&ref(model_35.png,,80%);
++ これで解消されたハズ

- マスク設定するのを忘れてた。
++ ベースマテリアルで、詳細パネルの「ブレンドモード」を「Opaque」から「Masked」に
++ 出力に「オパシティマスク」が追加されるので、テクスチャのアルファ成分を設定する

** 調整 [#m399b5ef]
- 輪郭線にスペキュラ、リムライト入っていたので修正
++ 輪郭線用ベースマテリアルのマテリアルインスタンスの「SpecularScale」「RimlightScale」を0.0に

- 輪郭線の色味調整
++ 輪郭線用ベースマテリアルのマテリアルインスタンスの「EdgeModulateColor」を(0.4, 0.3, 0.2)に

---- 
次はこちら
[[Unreal Engine 4 (UE4) 其の弐 Advent Calendar 2015 - シーン]]

    ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS