#memo

indiedev太郎

UE4でSubstance使う

地味に今回使ってなかったのでメモ

まずランチャーでSubstanceプラグインを探してきてインストールする、4.8と4.9に対応
インストール終わった後にプロジェクトを開いて、Edit > Pluginsを開いてインストールされてるのが確認できる、4.5とかの時もっとめんどくさかったゾ…

https://i.gyazo.com/287d7326e05df3a6bfe74ae57693ded9.pngあとはsbsarをコンテンツブラウザに突っ込むだけで使えるようになる
Importするときに、デフォルトのままで良いんだけど、チェックを外してUE4でどうやって使っていくかも確認していく

まず一番上のチェック、create default instanceを外してImportする、そうするとSubstance Instance Factoryっていう形式のファイルがインポートされる、これはそのままだと何にも使えなくて、ここからインスタンスを作成する必要がある

Substance Instance Factoryを右クリックすると、create graph instanceというところがあるので、そこを選択するとインスタンスを作成するgraphの一覧が表示される

Designerのソースファイルに複数のグラフがあった時、多分ここで複数のgraphが表示されるはず、目当てのgraphを選択すると再度import optionsが開く、create materialにチェックが入っているので外して生成する

そうすると、graph名_INST という substance graph instanceと graph_名_INST_Basecolor(Outputの数だけ)という2つ(以上)のファイルが生成される、前者のsubstance graph instanceで、自分でエクスポーズしたパラーメータを設定できる。後者はOUTPUTで、コンテンツブラウザだとSubstance Texture 2Dという、DesignerのOutputの数だけUE4で扱える画像の形で出てきている。substance graph instanceのパラメーターを変更すると、これに対応したOutput全てが更新される、後はこのOutputの画像からマテリアルを作成して、それをUE4で扱う形になる

普通に最初のcreate default instanceにチェックを入れておけばここまで一気に生成してくれるので、それを使えばいい

https://i.gyazo.com/f48e807d2ed8b640b533b04944686dd6.gif

 だいたいImportの方法はわかったけど、例えばスポーンしたキャラクターごとにシード値変えたいみたいな時、UE4のダイナミックマテリアルインスタンスからsubstanceにアクセスできたら嬉しいみたいなのがあるので調べてみる

調べました
SubstanceのパラメーターをBP側からいじる - #memo