substanceテクスチャワークフロー xxx編
TRANSCRIPT
Substanceテクスチャワークフロー
XXX編
自己紹介
•もんしょ• エンジニア
• プログラム、ちょっと出来る
• 『もんしょの巣穴』の管理人
• 絵は描けません
• テクニカルアーティストでもありません
• クライマー• 趣味で岩登り
• 岩とか苔のテクスチャ素材には事欠かない
• フォトグラメトリも頑張れば出来る
• オススメ
今回のお話
• Substanceを用いたワークフローのお話• ツールを用いた部分が主
• サービス側(SourceやDataBase)の話はあまりしない
• 最高にCOOL!なマテリアルの作り方の話はしない• そもそもできない
• ツールのオペレーション方法の話はあまりしない
• あくまでもワークフローの話です
•ただし…
免責事項
•今回の話は他社の話と自分が考えた妄想で出来ています• ぶっちゃけ、仕事で使ったことない
• 今後使う予定• アーティストがね
• 自分、エンジニアなんで…
•俺が聞きたかった話はそういうんじゃねぇよ!という方• ごめんなさい
Substanceテクスチャワークフロー
非実践編
おさらい:Substanceとは?
• Allegorithmic社が提供するツールとサービスの総称• 用途は主にPBRマテリアルの作成
• 最終的にはテクスチャとして出力
• 使用目的に応じて複数のツールが有る• マテリアル単体を作りたい!
• Substance Designer
• モデルにマテリアルを描きたい!• Substance Painter
• 写真素材を取り込みたい!• Substance B2M
• ベイクとかを自動処理したい!• Substance Batchtools
• 要Substance Designerライセンス
• ここまで有料• マテリアルをビューイングしたい!
• Substance Player
なぜSubstanceを使うのか?
• PBRでは質感情報として複数の情報が必要になる• ベースカラー、メタリック、ラフネス、法線など
• 1枚のテクスチャでは管理不能
•それぞれの情報は連動する• 傷が付けば表面は粗くなり、ペイントは剥がれ、凹凸も出来る
•複数の情報をどうやって管理する?
なぜSubstanceを使うのか?
• Photoshopで1枚1枚丁寧に手作りいたします!• 手作りの暖かみのあるテクスチャが好きな方向け
• 某人物に言わせると、暗黒時代
• 別の人物に言わせると、反吐が出る
•すべての情報をマテリアル単位で管理出来れば楽じゃね?
• Substanceマテリアルの導入!
Substanceマテリアル
• Substanceの中心となるアセットファイル• .sbs, .sbsarという拡張子のファイル
• .sbsは編集可能なSubstanceマテリアル• .sbsarはアーカイブされていて編集不可
• 外部に出す場合はこちらを使ったほうがいい
• パラメータを変更するだけで質感に変化を与えることが出来る• いわゆるプロシージャルアプローチ
•編集はSubstance Designerを使う• ノードベースの非破壊マテリアル作成ツール
• 取り込んだ画像も使えるし、ノイズを利用してフルプロシージャルなマテリアルを作成してもいい
本題
• Substanceワークフローはどうすべき?• これが正解!と言うものはない
• まあ、当たり前ですが…
• 考えなければならないこと• Substanceを使うことで、これまで以上の成果が出せるのか?• 学習コストはどの程度か?• データの管理方法、共有方法は?• 職能によるワークフローの管理は?
• 背景アートとキャラクタアートでは使い方が異なる• etc…
• 手探り状態ではどこから手を付けていいのかわからない• とりあえず事例に学ぼう!
Substance事例紹介
事例:Naughty Dogの場合
• Unchartedシリーズの開発会社• 現在、最も素晴らしい映像を作成するゲーム開発会社の1つ• Allegorithmicと協力してSubstanceツールへの技術提供などを行っている• テクスチャワークフローの構築にAllegorithmicの協力を受けている
• (多分)世界で最もSubstanceを使いこなしている
•最新作『Uncharted 4』では大半のテクスチャがSubstanceで作成された• プロップ類はすべて• キャラクタでも7割くらい使ってるとか• 今回の話は背景アートのもの
事例:Naughty Dogの場合
事例:Naughty Dogの場合
• 使用しているツールは?• DesignerとPainter• 背景の環境系はほぼDesigner• 背景プロップはPainter併用
• 基本的な使い方は?• Naughty Dogがリファレンスとなるモデルとマテリアルを作成
• マテリアルはDesignerで• 外注先にリファレンスとツールを渡して作成してもらう
• 納品形式は厳密に決まっていて、承認はNDのアーティストが行う• 承認後の責任はNDが持つ。承認後のリテイクはなし• .sbsarで納品してもらうが、Base Materialにすべて繋いでもらう
• 量産は基本的に外注
事例:Naughty Dogの場合
•教育方法は?• 疑問に思ったら、それについて得意な人に聞きに行く
• NDでは聞きに行く→教えるというプロセスが当たり前に存在する
• Painterは2~3時間くらい教えて放置しておけば勝手に出来るようになる
• Designerは何人かで集まって自作品を披露したりする時間を設ける• 忙しくなければ定期的に
• 外注の教育は出張して教える• 何日間かみっちり教える
事例:Naughty Dogの場合
•マテリアルライブラリの構築方法• Substanceマテリアルのライブラリについては不明
• スマートマテリアル、スマートマスクのライブラリは単純な管理方法• ネットワークマシンの共有フォルダに皆でコピーする形だった
• 特にバージョン管理システムは導入していない
• 共有フォルダのマテリアルを取得するかどうかは自由
• 更新するかどうかも自由
• 他人が作ったものをいじったりするルールについては不明
• 最終的なスマートマテリアルは60、スマートマスクは40~60
• 単純な機能だけで作った
• 複雑な処理は組み合わせとパラメータ調整で対応
• 多く作りすぎたり、1つが複雑すぎたりは混乱の元
事例:Naughty Dogの場合
• Naughty Dogのワークフローの肝• なんでも出来るNDアーティストの力
• ND内の背景アーティストは15名前後• 全員テクニカルアーティスト• しかもなんでも出来る
• モデリング、テクスチャリング、リグや物理のセットアップ、etc.
• 外部の会社との強い結びつき• Allegorithmicとの協力関係• 外注スタジオへのバックアップ
• 教育• ツール提供
• あくまでも参考程度にとどめておくほうがいいのでは?• 割とマネ出来ない…
事例:UBIの場合
•『Rainbow Six:Seige』の事例• 実に98%のテクスチャをSubstanceで作成している• www.youtube.com/watch?v=alTudAbJXGk
• PainterとDesignerを併用• プロップ、小物、キャラクタはPainterがメイン
• 背景用のタイリングテクスチャはDesignerメイン
• 当初はPhotoshopを使っていた• とてもじゃないけど無理なのでSubstanceを導入した
事例:UBIの場合
事例:UBIの場合
•実際にどう使われたのか?• UBIとは別の会社の人の話
• 正確ではないかも
•スタートはフォトスキャンライブラリ• UBIは巨大なフォトスキャンライブラリを持っていた
• 当初はこれをPhotoshopで加工しようとしていた
• フォトスキャンテクスチャを取り込んだSubstanceマテリアルを作成• 合成や加工はこれを元に行っていた• Substanceマテリアルの9割くらいはこれ
• 残り1割はフルプロシージャル
事例:UBIの場合
•全体的に理にかなっている作りになっている• 作成するゲームが現代を舞台にしたフォトリアル
• フォトスキャンが活躍する
• フォトスキャンのライブラリだけでは難しい場面をSubstanceで補っている• 加工する必要がある場合、Photoshopで1枚1枚調整するのは手間
• SubstanceマテリアルにすることでPainterでの作業にも役立つ
• 傷や埃のようなスキャンだけでは対応しきれない調整が簡単
•物量をこなす必要があるAAAタイトルでのスタンダードな使い方かも?
事例:UBIの場合
•『Ghost Recon : Wildlands』の事例• RainbowSixと同様のTom Clancyシリーズ
• オープンワールドの広大なマップで犯罪組織を撲滅するのが目的のTPS
•使用ツールはDesignerとPlayer• 開発開始が4年前
• このときにはPainterが存在しなかったため
• これからの開発では使っていく予定
• https://www.allegorithmic.com/blog/ghost-recon-wildlands-user-story-substance
事例:UBIの場合
事例:UBIの場合
• Substance自体は前作から使用済み• 『Ghost Recon : Future Soldier』(2012)
• Substanceの経験は十分だが、物量をこなすには工夫が必要
• Substance Playerでテクスチャを出力• DesignerでPBRマテリアルを作成
• はっきりした形状はZbrushでスカルプトして作成• ベースの形状やテクスチャはZbrushなどによる手作り
• ここで得られたハイトマップを元にSubstanceマテリアルを作成
• 背景アーティストはパラメータを調整して出力するだけ
事例:UBIの場合
• Metalizer• 金属小物用のDesignerノード
• 複数のマテリアルをレイヤーで設定し、形状から求めたマスクを利用して調整できる
•使い方• ハイポリモデルとローポリモデルを作成• Substance BatchToolsを利用して形状に関するマップを生成
• マスクの“種”としてこれらのマップを利用する
• .sbsでMetalizerとマップを合わせて調整可能なようにする• アーティストは.sbsをPlayerで読み込んで調整• モデルに変更があっても基本バッチを叩くだけで即調整可能
事例:UBIの場合
•自動マスク• Painterのスマートマスク的な機能を自作
• Substance Engineを組み込んで実現
• ベイクしたマップ(Curvatureなど)を元に調整可能
• テンプレート化して再利用
• アセットが変更されてもボタン一発でテクスチャの再生成が出来る
• Make It Tile
• デフォルトであるMake It Tile Patchを元に作成
• マスクした部分を消し去ってタイル画像を作れる
• 草地から石をマスクで取り除いてタイリングとか
事例:UBIの場合
• Substance Playerを使った理由• Designerでも同じことが出来るが、アーティストの習得時間がなかった
• Playerはパラメータ調整しかできないので、すぐに誰でも使える
• 今ならPainterを使うんじゃないかな?
• Substanceワークフローを浸透させるのに苦労した• 製作速度はよくなるけど、品質低下するんじゃないの?という声
• 数回のクリックとパラメータ調整で手調整のテクスチャと同じ品質を出して黙らせた
事例:UBIの場合
• Substance Playerワークフローの利点• 品質を一定に保ちやすい
• Painterだと品質にバラつきが発生する可能性がある
• 自動化しやすい• モデルやマテリアルに変更があってもボタン一発で対応できる事が多い
• 調整が容易• パラメータ調整くらいしか出来ない
• 欠点• 品質を一定に保ちやすい
• マテリアルの品質が低いと、低い品質で一定化してしまう
• TAの負担が大きい• マテリアル作成がほぼTAに一任される
• Painterの方が微調整しやすい
事例:Interceptor Entertainmentの場合•インディーゲームを開発している会社
• デンマークの会社• UE4を使ってSide-Scrollerアクションゲームを作成中
•『RAD RODGERS』でのSubstance事例• https://www.allegorithmic.com/blog/rad-rodgers-using-substance-
designer-style
• StylizedなテクスチャをSubstance Designerで作成• 初期はPhotoshopで手描き• 現在はSubstance併用
事例:Interceptor Entertainmentの場合
事例:Interceptor Entertainmentの場合•背景でSubstance Desingerを使用
• キャラクタは不明
•カメラは横からの視点のみ• モデリング等もそれを意識している
•地面のテクスチャはDesigner大活躍• Stylizedなテクスチャも簡単に作れる
•スカルプトしたような木のテクスチャもDesigner• Allegorithmicのブログでどう作ってるのかある程度わかる
• Stylizedなゲームを作るなら参考になるかも
事例:キャラクタアーティストの場合
• https://www.allegorithmic.com/blog/porunn-character-making
• Genci Buxheli氏のキャラクタアート事例• ポートフォリオ用に作ったプロジェクト『Porunn』
• Zbrushでモデル作成、Marvelous Designerで服を作成• 再度Zbrushに持っていって細部の仕上げ。これがハイモデル
• リトポしてUV展開。これがローモデル
• ここから先がSubstance Painterの役目
•テクスチャはほぼすべてSubstance Painter• 一部写真を利用
事例:キャラクタアーティストの場合
事例:キャラクタアーティストの場合
•肌はFill Layer基本• ベースの肌色に化粧をするようにFill Layerを乗せていく
• 基本ペイントレイヤーは使わない
• レイヤーはシンプルなカラーで作成
•服は既存のスマートマテリアルを極力使う• レザーはスマートマテリアルにHeightチャンネルだけ別枠で乗せたものが基本• あとは傷とか
• 麻布の服もHeightチャンネルだけ特別• 写真からタイリングされたHeightマップだけ作成し、これを利用
Substanceワークフロー想定
ワークフロー想定
•事例を踏まえたワークフローの想定
•個人的な見解を多分に含みます
•会社の規模、スタッフの技量などによっては“はまらない”ワークフローもある
•他のツールを使うことも検討すべき
誰がどのツールを使うのか?
• 全員がSubstance Packを持つべき?• 不要• ただし、B2Mだけいらない、というのであればPackの方がお得
• テクニカルアーティストの方• Packを持っておくべき
• 背景アーティストの方• Designerのみでも最悪OK• プロップ類を作成する場合はPack• PainterのMaterial Layering機能は今後使えるかも?
• キャラクタアーティストの方• PainterのみでもOK
• VFXアーティストの方• Designer持ってると幸せになれるかも?
テクニカルアーティスト
• Substanceを使わせる役目を担う• 無理矢理使わせるより、使いたい!と思わせること
• 学習方法を意識しておく• Painterはさほど難しくない• Designerは定期的に勉強会を開くなどが必要か?
• マテリアル、フィルタの作成• 他部署からの要望で作成する• が、自分の考えで作っていくことも重要
• ツールの検証• とにかくバージョンアップが早いので
背景アーティスト
• タイラブルテクスチャの作成はDesignerがメイン• Painterでも出来ないわけではないが、面倒くさい
• プロップの作成はPainterがメイン• 小物ならDesignerよりイテレーションが速い
• テクスチャ素材を取り込んでおく• 購入済みの素材をB2Mで取り込み、Substanceマテリアル化• 慣れたら自分で写真を撮影してもOK• Designer6ではフォトスキャン対応ノードが追加されている
• 4方向からライトを当てた写真素材からスキャン可能• 大規模な撮影スタジオじゃなくてもキレイに作れる?
背景アーティスト
• Substance Packをアーティスト分だけ購入できない!• Substance Desinger+Subsntance Player
•一部のアーティストがDesingerでマテリアル作成• 他の人はPlayerでパラメータ調整のみ• タイラブルテクスチャやプロップでも使用可能なワークフロー
• 限定的ではあるが、品質を保ちやすい
•重い仕事が一部アーティストに集中する可能性が高い• その他のアーティストがDesignerを覚える機会が失われる
キャラクタアーティスト
• Substance Painterでほぼ事足りる• Painterのみなら590ドル
• Packなら990ドル→ 400ドルお得
• DesignerやB2Mって使う?• Painterのフィルタ作成や服の生地などのマテリアル作成?
• ほぼPainterで完結できる
•お金に余裕があるならPack買ってもいい• いつ何時必要になるかわからない
VFXアーティスト
• Houdiniを使った方がいい• VFXといえばHoudini
•高くて手を出せない人はSubstance Desinger• エフェクト用のテクスチャ作成に
• 豊富なノイズとタイラブルテクスチャの作りやすさ
• Substance Shareにはテクスチャアトラスノードがある• https://share.allegorithmic.com/libraries/18
• 他にもいくつか同種のノードあり
VFXアーティスト
• Substance Playerを使った時間変化• $timeパラメータを使うとPlayerの時間に対応できる
• Flow Mapによる時間変化、パラメータによる形状変化を表現できる
• 単位は秒
• Playerのエクスポート時に時間指定ができる• アトラス化は別途作業が必要
• ちょっと面倒
•素直にHoudini使っておけ
まとめ
まとめ
• Substanceマテリアルを中心としたワークフローのススメ
• マテリアルデータベースを作りやすい
• テクスチャ素材を取り込んでおけば取扱も便利
• 複数のマテリアルのブレンドも容易
• 職能に合わせてツールを選択できる
• 全部買わなくてもいいので、懐にも優しい
• 有料・無料のマテリアルが豊富にある
• 学習アセットとしても使える
まとめ
•学習のしやすさ• 特にSubstance Painterは学習の入り口として優秀• インディー版なら個人でも購入しやすい価格
• 機能制限がないのが特に嬉しい
• チュートリアルが豊富• 動画やGumroadなどのストア• ただし、ほとんど英語
•ゲーム用途での事例の多さ• 海外ではAAAからインディーゲームまで幅広く使用されている• 最近は日本でも使われている
• 今後は日本での事例も多く発表されるかも?
懸念点
懸念点
•マテリアルデータベースをどうやって構築する?
• 購入したテクスチャ素材はまとめてネットワークドライブに
• 必要な人が必要な素材をDLしてPhotoshopで加工
• テクスチャ素材がアップデートされることは稀
• Photoshopで加工してしまうので、そもそもアップデートされてもあまり関係ない
• Substanceマテリアルはアップデートが頻繁に発生する可能性がある
• バージョン管理はどうする?
• アップデートされたマテリアルを使用しているアセットはどうする?
懸念点
•データベース構築の基本• Substanceマテリアルは単一機能に留める
• レンガならレンガのみ、木材なら木材のみ
• 複雑なマテリアルは作成しない
• ホラーゲーム用にフローリングの床に血をばらまける
• 複数の金属素材を選択できる単一Substanceマテリアル
• フォトリアルとノンフォトリアルを切り替えできる
• これらはNO!
• マスクを出力するようにしておく• レンガの継ぎ目部分などでマスクも出力できるようにしておく
• 利用者がマスクを利用してマテリアルレイヤリング可能
• 形状に基づくので変化にも強い
懸念点
• Substance Painterのデータがすごく重くなる• 数レイヤーのマテリアルでも数百MBのデータが出来上がる
• モデルデータ、マテリアルデータ、画像データもプロジェクトに保存される
• バージョン管理するとサーバを圧迫• 「圧迫祭り」よッ!興奮してきたわッ!• バージョン管理ツールの種類によってはほんとにサーバがやばい
• Subversionとか履歴が消せないので…
• もう確定した変更されない部分をマージする機能とかあればいいかも?• Painterの動作も軽くなりそうだし
• [File]→[Cleanup]で使ってないリソースを削れる• 場合によってはかなり小さくなる
• 何か情報がある方はこっそり教えてもらえないでしょうか?
SPファイルサイズ検証
番号 プロジェクト ファイルサイズ(バイト) 備考
0 初期状態 19,857,608 ポリ数2500、マテリアル数4
1 ベイク 1,697,216,312 サイズ4k、合計24枚
2 1+フィルレイヤー追加 1,697,216,312 単色カラー1つ
3 1+ペイントレイヤー追加 1,698,859,776 ストローク1回
4 1+ペイントストローク10回 1,698,990,848
5 1+マテリアル追加x4 1,748,233,864 マテリアル種別により増減
6 1+スマートマテリアル追加x4 1,715,061,544 マテリアル種別により増減
7 1+マテリアル追加x1 1,698,662,448 マテリアル種別により増減
8 7+マテリアル追加x1+マスクエディタx1
1,700,641,192 マテリアル種別により増減
9 1+再ベイク 1,705,542,920 Curvatureの設定のみ変更
ご清聴ありがとうございました