第一回、Houdiniゆるゆる会に参加、共同主催させていただきました。
ぼく自身はHoudiniはまだ触り始めた程度なのですが、Houdiniゆるゆる会が、ぼくとほか数名の方で共同運営させていただいているSubstanceDesignerゆるゆる会を参考に開催されたという経緯もあり、めんたいこさんと共同主催させていただきました。
会の様子などはめんたいこさんが詳しく話してくれているので、くわしくはめんたいこさんのブログを読んでください。
https://www.kickbase.net/entry/yuruhoudini01
もろもろの反省点はめんたいこさんが上げていただいているのですが、ぼくからみてもとてもいい勉強会でした。共同主催のぼく自身の反省点としては、もう少し相槌を打ったりして登壇者が孤立しないように立ち回るべきだったなと思います。
勝手の知っているSubstanceDesignerゆるゆる会では、(ややでしゃばりなほど)話に入り込んで登壇を回そうという意識でやっているのですが、Houdini勉強会となると、Houdini力が不足しているため他の方の作ってくるものの全体像が朧なこともあり、また圧倒的にスキルが上な人を前にして遠慮してしまったかなと思っています。
個人的にはゆるゆる会というものの定義は、登壇者にとってゆるゆると、発表データを片手に気楽に参加できる会というものです。
勉強会の抱える問題の一つとして、登壇者の負担が大きいというのがあります。この負担を少しでも小さくして、話したいことがあれば気軽に参加して話せるような、もっとみんなが教え合うような勉強会ができないか?というのがゆるゆる会を開催しているテーマの一つだったりもします。かっこよく言うと、相互学習型の勉強会というものを目指しているのです。
コロナ禍によってオンライン勉強会というものが増えてきて、参加する側からすれば自宅で気楽に見れるようになったのですが、以前にも増して登壇者の負担が増え、逆に旨味は減っているように感じます。
勉強会が終わった後、面識のなかった登壇者同士の交流が生まれて交友関係ができたり、新しい仕事につながったりといったこともオンラインでは難しく、(やろうとおもえば)公開イベントでなくとも登壇を記録されてしまうというディメリットも生まれたりします。
めんたいこさんの話していた登壇者の孤立というのも登壇者の負担問題の一つです。
会社でもZOOMを使ったミーティングなどは多いのですが、話し相手が多いほど誰も返事をしないので、一人でPCを前に話しているような虚しさを感じることがよくあります。オフライン勉強会であれば、話を聞いて頷いている人の顔を見ながら励まされたりして話を続けられるのですが、全く反応がないというのは辛いものです。
そういったことはよくわかっているので、もうすこし上手く立ち回って、登壇内容の面白いポイントを引き出せる側に回れるように動きたかったなと思いました。(そのためにはHoudini力もつけないと…ですね)
勉強会の反省点はこれまでにして、ぼくの登壇内容です。
ノードはこんな感じ
左側の塊で釘を作り、右側の塊でバットを作っています。
バットにScatterでポイントを配置してそこに釘をはやしています。
釘の生える密度やランダム度合いのほか、バット自体もフルプロシージャルです。
Houdini力のある人からすれば見たまんまでしかないネットワークなんですが、こだわった点はバットの頂点数の減らし方です。
凄く分割したLineをRampパラメーターでバットの形に変形しているので作っている段階では頂点数が多いのですが、それを曲率を参照して曲率が高い場所は急角度に曲がっているので頂点を多めに残しておこう、というアルゴリズムで減らしています。さらにカーブ全体の長さは変わってほしくないので、最初と最後の頂点は必ず残しています。
facetSOPでも同じことができるのですが、こちらは直線上の中点を減らすというアルゴリズムなので、バットのような緩やかなカーブだと、「どこまで直線とみなすか」の値にかなり小さな値を入れればならず、少しだけ使いにくかったりします。
とはいえfacetSOPが普通に便利なので、大抵の場合はfacetSOPで事足りるのでは?と作った後に思いましたが、ロジックをそのまま形にできるHoudiniは面白いですね。
こちらは参加者全員がテーマに沿ったマテリアルを事前に作成していただき、当日に発表形式で見せ合う勉強会です。今回はCOVID-19の影響で直接集まることが難しかったため、ZOOMで開催しました。
今回の勉強会で特に印象に残ったものをご紹介します。
Substance Designer ゆるゆる会
https://substance-teaparty.connpass.com/event/167698/
こちらは参加者全員がテーマに沿ったマテリアルを事前に作成していただき、当日に発表形式で見せ合う勉強会です。全員が作ってきたものをプレゼンする、相互学習型の勉強会です。
第2回のときに主催側になり、もう第6回になります。
参加者の意欲も高く、毎回新しい発見がある楽しい勉強会なのですが、今回の勉強会で特に印象に残ったものをご紹介します。
月のテクスチャをつくったのはいいけど、球体にマッピングするように変形する方法がないかという議題がありました。
最近、お仕事で環境マップをSubstanceで編集することが多かったので知っていたのですが、panorama3DPositionというノードがまさに球体のPositionMapを持っているんですね。これをつかってTriPlannerでマッピングすると球体型に変形できます。
ワンのタイル
https://ja.wikipedia.org/wiki/%E3%83%AF%E3%83%B3%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%AB
上下左右だけでなく、縦横それぞれ4分割したラインでもつながるようにつくったテクスチャを用意し、それを非周期的なタイルパターンで配置することで繰り返しがわからないまマテリアルを組むという手法です。
こちらはマテリアルの製作者のもんしょさんのブログに詳しく解説いただいています。
こちらは、地面の他に、草の生えた地面、敷石のある地面など、たくさんのテクスチャを作成してきていただきました(すごいノードだ…
なおかつそれらが自然につながるように、上半分だけ石で下は草のテクスチャなど、接合部となるテクスチャも組み合わせでつくられていました。
ただし、この手法だと組み合わせのパターンだけテクスチャが必要になりますし、上下だけでなく左右を用意したりし始めるとそれはもうすごい数が必要になるのであまりいい手法は言えません(重さのボトルネックがどこになるのかはタイトルによるので一概にダメとは言えないのですが…
作例がUE4で動画を作成して完成というものだったのですが、UE4であれば一般的には、草だけの要素をテクスチャとして出力し、そのマスクと頂点カラーをブレンドすることで「草のでやすさマップ」をペイントするという手法を取ることができます。
さらにLandScapeマテリアルであれば、頂点カラーの4色(RGBA)よりも多くの要素をブレンドすることができます。
ランドスケープで使用するマテリアルを作成する方法
https://docs.unrealengine.com/ja/Engine/Landscape/QuickStart/4/index.html
作例自体は力技なのですが、やりきったことにとても感銘を受けました。
SubstanceSourceにもたくさんのデータが公開されており、Megascanなどの大規模ライブラリが使えるようになりつつある今、一からSubstanceDesignerでつくるような仕事はあるのでしょうかという質問がありました。
仕事で使うかどうかはタイトルによるので、一概には言えないのですが、個人的な経験ではどんなにライブラリがたくさんあっても、なかなかタイトルに合わせたベストなものは見つからないです。欲を言えば地面やタイルにも、タイトルに合わせて手書き感や量感によるケレン味を入れたくなることが多々あるのですが、そのときにアートディレクションに答えられるSubstanceDesignerは強いなと思います。また、テクスチャを1から全部をつくらないまでも、SubstanceDesignerでのマテリアルの作成方法を習得していれば調整要素だけをつくって加えることも可能ですし、タイトルの肝になる部分だけでも、ユニークな表現ができるというのは強いでしょう。
また、SubstanceDesignerでのマテリアルの作成方法は、とても普遍的なロジックが多く含まれています。個人的な経験ですが、UE4のマテリアルやHoudiniにも通じる部分がたくさんあるので、今後に生きてくる部分はたくさんあるんじゃないかなと思います。
Substance Designer ゆるゆる会 の参加者には、学習用にデータの配布のご協力を頂いています。 公開されているファイルの著作権はその製作者に帰属します。 学習目的で作成しているものですので、使用用途は学習のみとします。
https://trello.com/b/cjLu20Ru/substancedesigner%E3%82%86%E3%82%8B%E3%82%86%E3%82%8B%E4%BC%9A
ともだちのサークル、「ラーメンどんぶり」に参加して、ワンダーフェスティバル2020に出品しました。場所はWF5-18-09。
こちらのイベントでプリレンダリングとリアルタイムレンダリングの違いについて話させていただきました。
https://3dmu.connpass.com/event/152761/
UnrealEngineなどのゲームエンジンを使用した映像制作が珍しくなくなり、BlenderのEEVEEのようなリアルタイムレンダリングの技術を使ったレンダラーも登場してきたことで、ますますリアルタイムレンダリングが身近なものになりました。なかには単純に高速だからという理由でリアルタイムレンダリングを採用する例も増えていると聞きます。
https://3dmu.connpass.com/event/152761/
ではなぜリアルタイムレンダリングは高速なのでしょうか?
UE4とBelnderを題材として、リアルタイムレンダリングでどういった嘘や簡略化や行われているのかを紹介しながら、設定や絵作りのコツについてお話します。
登壇資料も公開しています。
https://kurosaurus.booth.pm/items/1715328
コインスペース渋谷マークシティ店で行いました。
参会者は3名。それぞれ、AutoRIGPRO、スカルプトについてもくもくしてました。ぼくはEEVEEについて調べたので軽くまとめます。
走り書きですが、もくもく会の雰囲気でだけでもつかんでいただければと思います。
EEVEEはリアルタイムレンダリングの仕組みを使ったレンダラーです。リアルタイムレンダラーは基本的にそうなのですが、レイトレーシングのように正確に綺麗にというよりもまずは、リアルタイムに動かせることを重視して、多くの計算をフェイクで行っています。(いくら絵が綺麗でもゲームでカクツキが頻発したら遊びにならないですよね?)
しかしリアルタイムに絵が出るということは、調整→確認→調整のサイクルが回しやすいということもあり(ゲーム業界ではイテレーションを回すといいます)、絵のクオリティを上げやすく、単に早く絵が出る以上の価値があるのではないかとぼくは思っています。
上で書いたように、EEVEEはリアルタイムレンダリングの技術を使ったものなので、多くの場面でUE4などと同じような考え方を転用できます。
反射はリアルタイムで計算が難しいものの一つです。
EEVEEでは反射キューブマップ、反射平面、そしてスクリーンスペースリフレクションの3つを使用します。
ゲームだとそもそも反射キューブマップをゲーム実行中に作るというのは難しいのですが、映像案件の場合は時間がかかってもいいので再計算すればいいじゃないという判断があるかと思います。EEVEEがそこになにか機能を入れているかはまだ調べていません。
スクリーンに映っていないものは反射できない
反射キューブマップと反射平面
問題が多いのでスクリーンスペースで補うとよい
グローバルイルミネーション(以下GI)も計算に時間のかかる処理です。そのため、多くの場合はこれも事前計算しておくことになります。
EEVEEではイラディアンスボリュームという形式でキャッシュしておくことでレンダリング時にGIの計算を省けます。空間中にこの辺りはそれくらいの明るさというデータを保存しているので、計算後に追加したオブジェクトであっても、それなりに正しく陰影が計算されて見えます。
GI計算を行っていない状態。周辺の壁は拡散反射で照らされない。
※ 見やすくするためにスカイライトが有効になっています。
イラディアンスボリュームを配置して計算を行った。床からの拡散反射で天井や壁が照らされる。
計算後にオブジェクトを追加してもある程度なじませてくれます。
ワールドの背景に環境テクスチャ→HDRI画像を張ることで豊かなスカイライトを作成できます。
露出はポストエフェクトの一種です。このあたりもUE4と考え方が一緒ですね。
マテリアルの放射を強くしただけでは光って見えません。光って見えるためには、周辺への影響やブルームが重要です。
ニーという項目が理解できなかったので、そのうち調べます。
https://dcs.blender.org/manual/en/latest/render/eevee/render_settings/bloom.html
ビューポート表示とは?
3Dビューのシェーディング(NotEEVEE)のときに表示する設定で、レンダリング時には関係ありません。
SSSは基本的にはマテリアルの設定で行えます。
レンダー設定にはサンプル数などの全体の速度にかかわる設定があります
ESMからVSMに変更(するといい場合もある)
高ビット深度とセットで使う必要がある。サイズも十分に満たされていないといい結果を出さない
シャドウをきれいにするには?
上記のレンダー設定のシャドウのサイズが十分であること、ライトの設定も重要
シャドウの設定
終了、柔らかさ、バイアスなどは注意。デフォルトだとかなり速度重視のチューニングをさせている。
シーンを包み込むようなボックスを作りマテリアルをプリシンプルボリュームにする
参加者の一人が、スカルプトを行っていたのですが、Blender2.8でマルチレゾリューションモデファイアを使ったときに低レベルのサブデビジョンで編集を加え、高レベルのサブデビジョンに戻ると、例レイヤーのハードエッジのようなシワができる現象に遭遇して困っていました。もしかするとバグかもしれません。
https://blender.stackexchange.com/questions/149219/multiresolution-bug-in-blender-2-8
作成途中に サブディビジョン レベルを上げるのではなく、サブディビジョンを多く掛けた後、レベルを下げてスカルプトして、あげていけば比較的問題が起きにくいようです。
PlayStation 4のゲーム、 「Caligula Overdose –カリギュラ オーバードーズ-」 の制作事例について、UNREAL FEST EAST 2018に登壇させていただきました。
カリギュラオーバードーズにおけるUE4へのデータ移植の手引き from エピック・ゲームズ・ジャパン Epic Games Japan
会社主催のイベント、『出張ヒストリア2017』で「Art of airtone」というタイトルで登壇しました。
当日の様子をPANORA VR様に記事にしていただきました