ラベル SubstanceDesigner の投稿を表示しています。 すべての投稿を表示
ラベル SubstanceDesigner の投稿を表示しています。 すべての投稿を表示

2017年2月8日水曜日

IDMap作成のための頂点カラーについて


IDMapの作成を楽にする方法を色々考えてみました。

よくあるのはハイモデルにマテリアルで素材分けする方法ですが、
ZbrushとMayaからハイモデルを書き出して使用する場合、Zbrushからのデータはマテリアルカラーを持てないので頂点カラーで指定する必要があります。

MayaとZbrushそれぞれで頂点カラーでの指定する方法について調べてみたので、
まとめておきます。

今回例で使用するのはこの椅子のモデルですが、クッション部分はZbrushで加工し、それ以外はMayaでハイモデルを作成したものになります。

2017年1月27日金曜日

Substance勉強会にてハンズオンをしてきました


1/15(日)にAiming大阪スタジオ様の会議室をお借りして、Substance勉強会をやらせていただきました。

Substance勉強会 イベント告知ページ


寒波で雪がちらつくので欠席者とかいそうだなとおもったのですが、
まさかの満席で、寒い中皆さん参加してくれたこと本当に感謝です。

運営してくださった方々、本当に有難うございました。

2016年10月24日月曜日

UnrealFest 2016 Yokohamaにて登壇させて頂きました!

もう3週間ほど前の内容で申し訳ないのですが、
10/1に行われたUnrealFest2016Yokohamaにて、オックスフォード図書館のメイキング的なものについてお話をさせていただきました。

内容としては、どのようにして制作をしていったのかのワークフローと
協力してくださったコンセプトアーティストからどのようなアドバイスを頂いたのかなど
についてお話ししました。

講演のスライドはすでにアップしてありますので、
興味ある方は御覧ください。






2016年6月30日木曜日

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

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

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

How to Build Oxford Library in UE4?

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

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

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




2016年5月21日土曜日

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


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

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

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


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年4月25日月曜日

【SD】色調整をRGBのみのパラメータで調整できるようにする

Colorをパラメータ化するとfloat4が自動的に割り当てられます。

『アルファチャンネルは調整しないから消したい。』

という時の方法です。


Input Parametersのところからfloat3を選べばできるんじゃないかと思うかもしれませんが、
float3にしてしまうとアルファチャンネルに黒が入った状態になり、
色が表示されなくなります。

なんてこったい!


そこでグラフをすこしカスタマイズしてfloat3で編集しても色が表示されるようにしていきます。


【SD】インプットパラメータを整理する

今回は、パブリッシュした後の調整が楽になるようにインプットパラメータを整理することについて書いていきます。

エクスポーズした値たちはグラフのパラメータウィンドウ > Input parametersから一覧を見ることが出来ます。
このような感じですね。




項目の中をみると、各パラメータにたいして細かく設定ができるようになっています。
よく使うであろう用途毎にそれぞれの項目を見ていこうと思います。


公式のドキュメントにも記載がある情報なのでこちらも参考にしてみてください。

2016年4月24日日曜日

【SD】エクスポーズとパブリッシュをしてみる

Substance ShareからダウンロードしたマテリアルをSubstance Painer(以下SP)に持ってきた時に、
色やラフネス値、ノーマルの強度など様々なパラメータを調整できるようになっていたのに感動したので、
その方法について調べてみました。
(というか、それがSubatnceMaterialの正しい使い方なんですけどというツッコミがきそうですが…)


ひとまずSubstanceDesigner(以下SD)で作成した錆のパラメータを調整できるようにしてみました。

2015年10月6日火曜日

HeightからNormalに変換する時の組み方

SubstanceDesignerでいろんな方が配布されているsbsファイルを見てみると、
Normalを書き出す時のノードのつなぎ方がいろいろあるなぁと思っています。
(そもそも、ノードのつなぎ方自体色々な方法があるのでNormalに限った話ではないですが…)

SDを使うフローによって違いは出てくると思いますが、
ここでは外部で作成したノーマルマップなどを使用せず、
SD内で完結させる場合に限定して書きます。


SDで質感を作成する場合、凹凸情報はHeightマップとして組んでいき、
それをNormalに変換するという方法になるかとおもいます。


■①Height→Normal



SD内で見る分にはそのまま[Output]のNormalに接続してもいいのですが、
画像として書き出すと[Normal]ノードのプレビューのように透けた状態で書き出されるので、
[Channels Shuffle]を使って正しくノーマルマップが出るようにします。

2015年9月26日土曜日

亀裂の作り方(応用編)

前回は亀裂の作り方の紹介をしましたが、
ここでは亀裂の活用するための追加テクニックについて書いていきます。


前回コンクリートタイルに組み合わせるとこのような感じでおかしかった亀裂ですが、
ここでは2つ方法紹介します。
(ほかによい方法があれば追記していきます。)


■タイル単位でマスクする


ノードはこのような感じ。
[Tile Generator]のRandom Maskのパラメータを使うとタイル毎のマスクを作成してくれるので、
それをブレンドするだけです。

2015年9月25日金曜日

【Weekly Substance Challenge】 Week1 コンクリートタイル

Polycount forum で開催されているSubstance Challengeに以前挑戦して作ってたやつを
自分の勉強&備忘録を兼ねて少し書いていこうかなと思っています。

大分前にSDのエントリーを書きましたけど、
しばらく離れてて、ほとんど忘れてしまいました。

Substance Shareも始まり、他の人が作ったsbsファイルを見れる機会も増えたので
しっかり勉強したいなぁと思うのです。


まずは、チャレンジの1週目で作ったのからやっていきます。
お題は【コンクリートタイル】



2015年6月28日日曜日

SubstandePainterとMarmosetToolbag2とUE4の見た目をあわせる

作ったアセットを作成し終えて、各環境出だしてみると見た目の結果が違うという問題があったのでその内容と結果をまとめてみました。

結論的にはPBRシェーダーの計算の種類による見た目の違いが原因なのですが、
正直PBRのシェーディング計算に関して調べて勉強したことはなく、
GGXとかそういうワードが耳をかすめた程度。


ここで言うシェーダーの計算の種類はスペキュラシェーディングについての話です。

ディフューズシェーディングとスペキュラシェーディングは当たり前ではありますが、
それぞれ異なる計算がされてるわけですね。
私はそれを混在させてしまってたので色々混乱してしまいましたがw

テクニカルな難しい話は私もわからないので軽く話を進めたいとおもいます。


■ テクスチャはSubstance Painterで作成

テクスチャの制作はSubstancePainter(以下、SP)で作成しました。
SPのビューワーのPBRの計算の種類はGGXです。

SPを使う上で特に気にする必要はないとおもいます。



2014年10月5日日曜日

[Tips]NormalMapのGチャンネルが反転する問題の解決

先日Substanceテクスチャワークフローのセミナーに参加したところ、NormalMapの反転の解決方法について知ることができたので、追記をさせていただきます。

多分、これが一番正しい修正方法。
元の投稿も何かの役に立つと思うので残しておきます。

NormalMapが反転する原因はベイクした環境はOpenGLかDirectXかによって異なるそうです。
これを3DViewの設定で変更することができます。

Materials>Default>Edit で3DViewの設定画面を開きます。


デフォルトではDirectXがTrueで有効になっています。



2014年9月30日火曜日

[Tips]作成したsbsファイルをライブラリに登録する方法

作成した金属塗装のグラフを今後も使い回しし易いように
ライブラリに登録してみたいと思います。



ライブラリのパスの追加

まずは、ライブラリに作成したsbsファイルを読み込ませるにはPrefarencesから設定が必要です。
Tool > Prefarences からひらき、Editorを表示します。

Libraryのところからパスを追加します。
パスはsbsファイルを保存するフォルダを指定します。



追加できたら、OKを押して閉じます。




sbsファイルの準備

テクスチャ制作中はライブラリのことなど考慮せずに作業をしていくと思うので、
以下のように新規でsbsファイルを作成し、
その中に制作したグラフをコピー&ペーストで入れます。

最初から作成されるグラフは削除し、リネームをします。
保存先は、先ほど指定したパスの中に保存します。




Attributesの設定/Filterの設定

グラフを選択し、アトリビュートを設定していきます。

設定できる項目は多いですが、私は以下の項目に登録しました。


Category
Label … ライブラリに表示される名前
Author … 作者の名前
Tags
Icon … ライブラリに表示されるサムネイル





















次にライブラリにフォルダを作成します。
フォルダから右クリックでEditを選択し、以下のように設定しました。



1つ目は、Author で Equal で自分登録した名前を入力します。
これで作成者が私のものを絞ることができます。

2つ目は Category で Equal で同様に登録した名前を入力します。

登録が完了したら☓をクリックして閉じます。
そしたらこのように表示されました。



アイコンの登録をしていない場合はDiffuseの情報が表示されるようで、
あまりわかりやすくないのでアイコンは手間ですが作成するのが良いと思います。

アイコンは3Dビューワー上で背景のキューブマップを非表示にし、
いい感じに見える辺りでスクリーンショットを撮り、
PSDファイルでアルファチャンネル付きで作成すればこのような感じで表示されます。

これは128*128のサイズで作成しました。




ライブラリが増えていくと少しテンションも上がるので
どんどん数を増やしていきたいですね~ヽ(=´▽`=)ノ

2014年9月29日月曜日

[Function]Contrastを設定

金属の塗装色の変更は設定できたので、
次はRoughnessの値を調整できるようにしたいと思います。

どうせやるならば経年変化のような表現がいいのですが、
さすがに色々なパラメーターをコントロールする必要があるので
今回はコントラストだけ調整できるようにしてみたいと思います。

正直これがなぜコントラストをコントロールすることになるのかはきちんと把握していません。

ただ、こう組むことでコントラストが調整できると
まずは覚える(メモしておく)のがよいかなと♪~(´ε` )


コントラストの設定

  1. まずは、FunctionのInput Parameterを作成します。

    IdentifierはContrastとします。
    Type/EditorはFloat 1にします。
    Minは-1まで入力できるようにしましょう。



    .
  2. コントラストを調整したいのは最後になるので、
    Outputの前につないでいるLevelに設定をしていきます。


    .
  3. Levelのパラメーターを見るとどこからFunctionをつないだらよいかわからないのですが、
    右上のValuesのところをクリックすることで作成することができるようになります。



    ここをクリックすると…



    見慣れたパラメーター画面に切り替わります。
    .
  4. 設定する必要のあるFunctionの数は4つあります。
    中身は似ていますが、すべて異なる設定を入れていく必要があります。
    ノードの組み方は以下のとおり。

    Level In Low


    Level In High




    Level Out Low




    Level In High



    Get FloatにはContrastを設定するのをお忘れなく!

    これは、カラーのコントラストでも同様に組むことで調整することができます。
    もしかしたらグレースケールのコントラスト調整だったら
    OutputはVector 4でなくてもよいのかもしれないですが、
    ノードの意味を理解していないので、そのまま組むしかありません(泣)

  5. このように組んだらあとは動作チェック
  6. Input ParameterのDefaultの値を動かしてみます。

    結果はこのような感じ。



  7. Roughnessテクスチャだけでみてもコントラストが調整できているように見えますね。



    以上で完成です。

Contrastは非常によく使うFunctionになると思うのですが、
もう少し簡単に設定できるようにならないかなと思うところ。




2014年9月28日日曜日

[Function]Colorを設定

グレネードのテクスチャを作成した時に使用した質感データを
他の場合でも使えるようにしたいなと思いFunction作成に挑戦です。

Instanceで使用するときにパラメーターを調整できるようにしておけば、
汎用がきくというものです。

作成した塗装された金属の質感はこのような感じ。





ノードもこれぐらいとあまり複雑ではありません。

今回調整できるようにしたいのは、
塗装されている色とRoughnessの値も調整できたらいいと考えています。



Colorの設定


  1. まずはInput Parametersを設定します。

    Input Parametersの+から追加します。
    Identifierは識別子でFunction作成するときの参照するパラメーターの名前になるので、
    わかりやすいのをつけておきます。

    今回はPaintColorと設定しました。

    次にType/Editorですが、ここでは色を設定したいのでFloat 3Color(RGB)を設定します。


    ここでColor(RGB)を設定しないとただの3つのパラメーターが出ているだけになり、
    調整はできるけど、非常に使いにくいものになってしまうので忘れないようにしましょう。
    .
  2. 金属の塗装色を設定しているUniform ColorからOutput ColorにEmpty Functionを作成します。
    .
  3. Functionは以下のようにノードを組みます。

    先ほど設定した塗装色の値を受け取りたいので、Get Float 3を置きます。
    そして、右側の値のところでVariables/Get Float 3にはPaintColorをセットします。


    次にFloatを配置し、Constant/Floatの値は1です。
    これはアルファチャンネルになるので1にしておくのがよいのだろうと思います。

    最後にVector Float 4に配置して、つなぎます。
    右クリックからSet as Output Nodeを設定します。


    これでひと通りのPaintColorのFunctionは完了です。
    .
  4. 最後にきちんと動くかを確認。

    新規のGraphを作成し、そこに作成したグラフをドラッグ&ドロップで
    Instanceとして読み込みます。



    パラメーターで自由に色を変えて反映されるかチェックします。
    こんな感じで問題なく色が変更できたのでOKですね。


    最後にInput ParametersのLabelやGroupなど使いやすいように設定したら終了です。



今回の工程で疑問がひとつ。

Vector Float 3ノードを配置してOutputにしてしまえば一番早いのでは?
と思うのですが、そのような接続はできないみたいなんですよね。

おそらくカラーはVectorで設定しないといけないというのと、
Vector Float系のノードにはInとLastというInputノードが付いているので、
必ず2つセットしないといけないんでしょうね。

そのためにVector Floatというのはなく、Vector Float 2,3,4の3種類になっています。

ここでVector Float 3を使うとするとGet Float 2とFloatを接続しなければならなく、
RGBではなくRGとBを別々に設定するというややこしいことになるので、
Vector Float 4を使うという風に自己解釈しています。

それでも、根本的なところでVector Floatが2つの値を受け取らなければならない理由はわからないので誰かご存知でしたら教えて下さい。