2016年8月4日木曜日

【UE4】ライトマップの適正パディングを確保する

先日行われたUE4DeepDiveではLightmassについての勉強会が行われ、その内容の濃さに非常に感動しました。

勉強会で使用されたスライド等はこちらにアップされておりますので、ご確認ください。

○UE4 Lightmass Deep Dive ポストモーテム


Lightmassでライティングを行う以上ちゃんと作成しなければならないのがライトマップですが、
なかなかに面倒な作業だったりします。

ライトマップを作成するにあたりいくつか押さえておかなければならないポイントがあり、
これらを守っていないときれいな結果が得られにくくなります。


  • ライトマップUVはオーバーラップしないようにする。
  • UVシェルはできる限りつなげる(必ずしもよいとは限らない場合もある)
  • エッジのラインはピクセル(グリッド)の方向と合わせる。
  • UVシェルのパディング(間隔)は最低4ピクセル確保する。。。。

とこれだけではなくもっと細々とあったりします。

ライトマップについての解説は公式を読んでいただくのがよいのですが、
hisamuさんがblogにわかりやすくまとめてくださっています。

また、海外だとUDK(UE4の前のバージョン)でのライトマップの展開方法について数多くのサイトがあります。
基本的な考え方はUE4も同じなので参考にしてみてください。
(UDK, Lightmapで検索すると色々出てきます)

UDK: Lightmap UV Layout Techniques & How to Create a Second UV Channel in Maya

Tutorials – UE3 Lightmapping

今回私がやるのは、4つ目にあるパディングを4ピクセル確保するための方法についてです。


2016年7月24日日曜日

【UE4】新しいプロジェクトを作成した時に設定すること

私の場合ですと、UE4を使って何か背景を作成したいという場合が多いのですが、
新しくプロジェクトを作成した時に最初に設定しておく内容を備忘録的に残しておきたいと思います。

いつもどこだっけ~って探してしまうのでw





エディタやプロジェクトに関する設定はエディタの環境設定、プロジェクト設定から行います。

編集エディタの環境設定 もしくは プロジェクト設定



2016年6月30日木曜日

図書館のインタビュー(日本語原文)

ここ数ヶ月かけて作成した図書館のシーンをアップしたところ、たくさんのリツートやいいねを頂きました。
たくさんの反響をいただけて嬉しいです。ありがとうございます。

更にうれしいことに80lvというアーティストのインタビュー記事を載せている海外のサイトから
図書館についてインタビューをして頂きました!!!

How to Build Oxford Library in UE4?

すごい方々もインタビューの中でワークフローを紹介しているのですが、
その中に混じって良いのですかと…。
結構やってることしょぼいですよ… という感じですが、なかなかない機会なのでお受けすることにしました。

サイトには英語で記載されていますので、
こちらには編集さんに送った記事の日本語を掲載したいと思います。
(ちょっと日本語固めなのは翻訳しやすいような感じで書いたため…)

【追記2016/.9/01】
Gumroadにてオックスフォード図書館のプロジェクトデータを$1+で販売しております。
簡単な技術解説もついてますので、興味ある方はどうぞ。
【Gumroad】Oxford Library - UE4 Project




2016年6月4日土曜日

【Maya】らせん階段をカーブを使って作成する

Mayaのらせん階段の作り方についてちょっと調べてみました。

よくあるのは特殊な複製で配置する方法ですが、私この方法が好きではなくて…。
というのも、計算すごくめんどくさいじゃないですか…。

もちろん、決まった高さなどがあればこの方法の方がきれいに効率的かもしれないですが、
手すり部分も含めて一気に作れる方法、かつカーブで制御ということに絞って試してみました。


■Duplicate Along Pathを活用する

カーブに沿ってメッシュを配置してくれる便利なmelスクリプトです。
Creative Crushから無料で入手できます。


わかりやすい使い方の解説はphotoshop777に記載があるのでそちらを参考に。



Photoshop777さんの記事をみてもわかるようにパスに沿ってメッシュを配置することができるので、早速これでステップ部分の配置をしてみます。


■ステップを配置する


このようならせん状のカーブとステップ部分を用意。

DuplicateAlongPathを利用してステップを配置します。
一見うまくいってるようですが、ステップ部分が地面と平行ではないのがわかります。

向きがおかしいなどあれば、一番下のOPTIONSで軸の向きを変更するなどして修正しておきましょう。


ROTATEのSideに値を入力するとステップの角度を調整できます。
サイドビューから見てなるべく平行になるような値を入植します。



これでステップ部分は完成。
厳密に言えば平行ではないので、
綺麗に変更になってることを求めるのであればこの方法は向かないです。

うーん、綺麗に平行にできそうなのにできないのすごくもどかしいですが、
それは次の課題にしておきたいと思います。


■手すりを配置する

次に手すり部分を配置していきます。
手すり部分としてこのようなメッシュを作成。

側面に分割をいれてなめらかになるようにしておきます。

このメッシュをDuplicateAlongPathにObjectとして登録し、
今度はDeformタブからメッシュを配置します。

するとこのように、カーブに沿ってメッシュの形を変形してくれます。
モーションパスを使って変形するやつと同じような感じですが、
カーブの長さに合わせてメッシュを複製しつなげてくれるので楽ちんです。



このままではカクカクなのでラティスの分割数を増やします。
これで手すりもなめらかになりこれで手すりも完成。



先ほど作成したステップと組み合わせれば螺旋階段は完成となります。
ざっくりと作成し、かつ後からでもカーブの形にあわせて変形できるのはちょっと便利ですが、その後に調整に合わせて同じ工程で作り直しが必要です…。

なので、やっぱりHoudiniがいいなーと思ってしまいました。


2016年5月21日土曜日

Substanceユーザーミーティング レポート


5/16に開催されたボーンデジタルさん主催の
Substance ユーザーミーティング&マスタークラスに参加してきました。

16日はユーザーミーティング、17日はマスタークラスと両日参加させて頂きました。
Naughty Dogから2人のアーティストが講師に来てくださり、
SubstanceDesigner,Painterそれぞれについて開発の中でどのように使われているかを説明してくれました。

Allegorithmic Substanceユーザーミーティング2016


マスタークラスも基本的には同じことの解説にはなるのですが、それぞれ解説に3時間と時間をかけ、より詳しく具体的な内容まで説明してくれました。
ここではユーザーミーティングでメモした内容をまとめています。


とったメモを少し加筆した程度ですのでわかりにくい部分があるかと思いますが、ご了承ください。
また、メモの取りミスなどで誤った記述があるかもしれません。
気づかれた方はご指摘していただけますと幸いです。

---------------------------

■SubstancePainter


講師:Christophe Desseさん
ポートフォリオ

ノーティには10年以上在籍。
アンチャ1、2はテクスチャアーティストとして参加。
3からTAに転向。


◆Naughty DogとAllegorithmicとの関係

2012年ごろからAllegorithmicとNaughty Dogで提携して、
Naughty DogのSubstanceを使ったパイプライン制作についてアドバイスをもらったり、
Naughty Dogがよりよいテクスチャ制作のために必要な機能をフィードバックしたりした。



◆テクスチャ制作の時代

Photoshop時代 暗黒期
テクスチャ作成に3日かかる。

Mudbox時代 ルネッサンス
テクスチャ制作が1日に短縮!

Substance時代 未来が今来てる!
テクスチャ制作が30分まで短縮



◆Substanceがもたらした効果

○ブロックメッシュの段階から仮の質感を割り当てることができる。

今まではブロックメッシュはグレーの状態だったが、簡単にテクスチャ情報を入れることができる。
→早い段階からディレクターのフィードバックがもらえる。
→早い段階からライティングアーティストが完成に近い結果を得ることができる。
→メモリなどの見積もりも立てやすい


○BodyTest 

様々な質感や、汚しの入り方などを簡単にテストし、差し替えることができる。
テクスチャ制作のトライ&エラー



◆社内のSubstance制作環境

NDは独自のSmartMaterialを持っている。
SPで作成できない高度な質感が必要であればSDで作成をお願いする。
→ここではロゲリオさんの部署にお願いするなど。

SPはアウトソーシングにとても重要
レイヤーを見ればアーティストがやりたいことがすぐわかる。
アウトソーシング先には必要なテクスチャなども渡す?



◆実際にアンチャで使用された車を使った簡単な実演をする

テクスチャはストーリーを語るもの
すべてのマテリアルに手を加える。
(ベースカラーだけではなく、ラフネス、なども含めてという意味)


○汚しは3層ぐらい重ねる。
汚しを入れるときはべたでイヤーにわかりやすい色(赤とか)をベースカラーに入れて、どのように入るのかを見やすくする。

入り方はマスクでジェネレーターなどを使って調整。


○メッシュからベイクしたテクスチャは重要
UVの向きも重要だが、SP内でマテリアルの向きを変更することができるので、必要な個所だけマスクすることで対応できる。


○(大阪で出た質問)どのように銃に文字などをペイントするのか?
基本的にはべた塗レイヤーを使い、マスクでペイントするのがいい。
そうすることで色変更などあとから対応しやすい。

個人的な感想

Painterは比較的習得しやすいソフトなので使い方の面では自分が知ってる情報が多かったですが、クリストフさんが大事にされてたのは非破壊であるということ。
塗りつぶしレイヤーであればあとからの色や形などの修正がしやすいが、
ただのレイヤーだと消して直さないといけない。というのは破壊された使い方になってしまう。

というように、作業工程をいつでも戻れるように、なんどもいろいろ試せる。
という非破壊であることの利点を挙げてました。

また、いっぱい試すということも言っており、レイヤーの数は気にしないなど、いっぱいテストして、その情報を残しておいて、あとからまたつかってみるなど、
いろいろ表現を試すということがクオリティアップの上でも重要なことだなと思いました。

■SubstanceDesigner


講師:Rogelio Olguinさん
ポートフォリオ


◆Substance導入当時について

Substance導入当初NDではトレーニングに時間を使った
アウトソーシングのパイプラインの統合にも努力が必要だった。

Naughty Dogの社風として担当の仕事は分かれているが、みんなジェネラリストでDesigner,Painter両方とも使える。その得意なものが仕事に割り振られている感じ。
社内では質問があれば、わかる人のところに行っていろいろ聞くことができたり、
個別にレクチャーするなどをして社内の習得レベルを上げていった。


◆SubstanceDesignerを使った制作状況

メッシュの形状だけはZbrushを使用し、それ以外はSDを使用する。
SDで作成するタイリングテクスチャは半日~2日で作成。

○プロシージャルにテクスチャを作成するメリット
プロシージャルテクスチャは今後ずっと使用することができる。
今後バリーエーションを作成することができる。



◆SubstanceDesingerでテクスチャ制作を実演しながらTipsなどについていろいろ

ここでは地面のタイルの作り方を例に説明されてました。作業工程の中で話されていたTipを書いていくので、内容としては伝わりにくいかもしれません。



○一般的にノイズから作成を始める。


○タイルのメインの形を決める。
タイルにはグラデーションのかかった○のシェイプをブレンドする。
フラットなタイルの形状に丸みが出て自然な感じになる。


○タイルの形にグラデーションの情報をブレンドする。
こうすることで、タイルの傾きを表現することができる。

ここまではタイリングが目立つ状態

○次にダメージ表現を入れていく。
ダメージ表現にはSlopeGrayscaleBlurを使用する。
この表現をつくるのに時間を少々つかう。

○Vector WarpとCeilを接続して、ヒビのような効果を出す。
本来はこのような使い方をするノードではないが、どのような結果が出るのかいろいろ試してよいものを使っている。
決まった使い方はない。


○色変更するパラメータ(HSL)はすべて公開し、アーティストが使えるようにする



◆SubstanceDesignerの作業の大きな流れ

○SDはHeightMapから作成を始める。
メッシュの形状は大きな形状から小さな形状へと伝番していので、大きい形から決めていかなければならない。
HeightからAOやCavityを作成することができるというのも理由の一つ。

NDでは独自のAOノードを作成し、使用している。
デフォルトのものよりも制度がいい。

繰り返し使うようなノードの組み方は独自のノードを作成している。


Heightを作成するとき、マテリアルにテッセレーション、ディスプレイスメントをかけてプロシージャルモデリングをするような感じで確認する。

使用するモデルはPlane(HQ)



○次にBaseColor、Roughnessを作成。
Heightの情報からグラデーションマップを接続し、ベースカラーを作成。
さらに別のグラデーションマップを用意する、または色を変更したものなどを用意し、
ノイズでマスクしてブレンドすることで様々な色の情報を作っていく。

RoughnessはBaseColorをグレイスケールしたものを使用するのはよくない。


個人的な感想

SubstanceDesignerを使ってノードを組むときどのように組むのが作りやすく、またデータとしてわかりやすいのかというのが自分の中でもわっとしていた部分だったのですが、
ロゲリオさんのHeightから作成し、プロシージャルモデリングをしながら、テクスチャを制作していく手法に驚きました。
非常に考え方がまとまっていてわかりやすかったです。

彼のViemoにもいくつか動画があるので参考に見てみるか、Gunomonで講師もされていますので、動画を購入してみてみると同じような解説を見ることができるかと思います。

ディスプレイスメントをSubstanceDesignerで表示する方法はこちらに簡単に書いてあります。

■ヒュンダイのSubstance使用事例


講師:Jerome Derelさん
チーフプロダクトオフィサー / Allegorithmic


ヒュンダイのGenesis G380のマテリアル、テクスチャをSubstanceDesignerで作成した事例の紹介。

レンダリングはIrayを使用。
モデルはCADから持ってきている。 → そのためかレンダリングが非常に重そうでした。


Irayで使用するマテリアルもSubstanceDesigener内でMDLを作成。
MDLは他のDCCツールやVrayなどのレンダラーにエクスポートすることができる。
MDLのパラメーターを保存する機能は5.5から使用可能。
(5.5は来月にはアップデートされるぽいです)


MDLとは…
NDIVIAから提供されているマテリアル定理言語。
ノードグラフでコントロールすることができるマテリアル。


FBXに入ってるすべてのカメラを取り出すことができるので、ビューポートで決まったカメラ位置からチェックができる。

ロゴのマークなどもSubstanceDesigner内でプロシージャルに作成することで、
形状の微調整などをすぐに確認することができる。
また、イラストレーターなどれ作成したデザインをパターンとして使用することも可能。



個人的な感想


映像系やプロダクト系の方はこのワークフローは結構いいのかなと思いました。
irayですぐにレンダリング結果を確認できる、かつ作成したマテリアルをレンダラーに持っていくことができる。(おそらくMDLを読み込むことも可能かな?)

となれば、質感の作成だけれはなくルックもチェックもできるので効率的なのかなと思いました。



■質疑応答


Q:ノーマルマップの制作は何を使っているのか?
A:最初はxNormalだったが、Substanceに移行した。


Q:アウトソーシング:外注さんにデータを作ってもらうのか?
マテリアルまで作ってもらう? 納品の形態は? 
A:サブスタンスを使うためのインターフェースを定義する(入力)
 リファレンスのメッシュ、テクスチャも一緒に渡してる?

 テクスチャのチェックは個々のアーティストが承認する。
 アウトソーシングのガイドラインを最初に決める。
 SD,SPしかつかわない。


Q:UDIMの採用は?8kは?
A:UDIMはある。今年のうちにSubstanせロードマップを公開する。
 8Kサポートもする。今年の夏 
 UDIMSubstanceScriptを公開する


Q:SDで質感を作成するとき、どのような発想があるのか?また、どのようにレクチャーをしているのか?
A:TAを集めて作成したグラフをみんなで見て評価する。
 または、一人ずつ回って教える。グループトレーニングもあれば、個々に教えることもある。
 
 NDは聞きたいことがあればその人のところへ行って聞く風習がある。


Q:SDで質感を作成するときに組み方のインスピレーションはどこから得てるのか?
A:ただ、練習あるのみ。
 試行錯誤でいろいろテストしてその結果を得る。恐れずにいろいろとやってみること。


Q:NDが持っているSmartMaterialの数は?
A:マテリアルは60 マスクは40
 ノードはシンプルに保つ
 できる限り小さい機能でまとめる。
 

Q:フォトスキャンかプロシージャルか?
A:政治的には両方やる。
 まあプロシージャルじゃないかなーという感じ。
 フォトスキャンでもノーティのルックに合うようにSDを使うことになると思う。

 (アルゴリズミックの方の回答)
 スキャニングオンリーでやるのはうまくいかない。
 プロシージャルオンリーでもうまくいかないだろう。

 レインボーシックスの最新作では、 90%はフォトスキャンを入力としてSubstanceで制作された。
 残り10%はスキャンできなかった素材。それらはSubstanceを使って作成された。
 スキャンした画像をテンプレートとして使うような100のスキャンに基づくテクスチャを作成。
 参考(ボーンデジタルのブログには98%とあるがどっちが正しいのかはよくわかりません)
 
 フォトスキャン 、SD 、3Dペイント の環境が必要だろう。

 正確さがほしいか、自由がほしいか。
 正確さ → フォトスキャン
 自由 → プロシージャル

※訂正:スキャンしただけの画像ではなく、スキャンしたものをSubstanceで加工したとの情報を頂きましたので記述を訂正しました。もんしょさんありがとうございます。

Q:Substanceが使えなかった部分、どのような手順でそこを作成したか?
A:キャラははじめSubstanceにあまり慣れてなかった。
 ステッチなどはシェーダーで作成
 ZbrushPhotoshopも使ってるのでそれらが10

 0か100かではない。その作業に最適なツールを選んで使うのがよい。
 Substanceは肌のテクスチャ作成にベストなツールではない。


Q:SubstanceMaterialは使用してますか?
A:NDのエンジンはSubstanceとコネクトしていない。

 Substanceで作成したビットマップをエンジンに読み込んでいる。


■GDCでの講演

セミナーの内容はGDCで講演された内容と同じ個所があります。
参考までに公開されている動画をみるとより理解が深まるかもしれません。

以下Allegorithmicのブログより。

TEXTURING UNCHARTED 4: GDC VIDEO SESSIONS PART 1

TEXTURING UNCHARTED 4: GDC VIDEO SESSIONS PART 2

UNCHARTED 4 SUBSTANCE ART DUMP

2016年5月15日日曜日

【SD】ディスプレイスメントをビューに表示する方法

いつもどこから設定するか忘れてしまうのでメモ。
バージョンは5.4.0です。
(バージョンアップ激しい上に場所が変わる可能性もあると思うので…)



  1. 3DViewのMaterial > デフォルト > Definitions > Phisically_metalic_roughness > Tesselationを選択。
    .
  2. Material > Editで詳細画面表示。
    .
  3. Scaleの値を変更することで押し出し具合を調整。


分割が足りない場合はTessellation Factorの値を増やすとメッシュの分割が細かくなる。
Scaleは1以上の値も入れられる。

2016年5月1日日曜日

【SP】ローメッシュを編集し、差しかえても手書きペイント箇所がついてくる

※2016/5/29 
一番下に2Dビューでペイントした場合にUV Reptojectionができない件について追記してあります。

SubstancePainterを使ってると途中でローモデルのUVを変更したい、
調整したくなることがあります。

そのようなときにローモデルを差し替えても、
ペイントした情報がちゃんとついてきてくれるのですが、
どの程度まで編集しても大丈夫なのかよくわからなかったのでテストしてみました。

ここで重要なのは”手書き”による箇所がついてくるかどうかです。
ジェネレーターやブロシージャルで描かれてる箇所は
ベイクしたテクスチャが更新されればついてくるので問題はありません。


まず、スタートはこのような感じでUV展開されている本に
わかりやすく「てすと」と書いてみました。