🐡

【第2回】0から自分たちでメタバース上にオフィスを作る-表現・設計の工夫をモデリングで反映する-

2024/09/19に公開

はじめに

株式会社GUNCY’S(グンシーズ)テクニカルプランナーの小林です。前回では本プロジェクトの導入として、バーチャルオフィスの空間設計やイテレーションを回す方法を提示しました。まだ御覧になっていない方はぜひ見てみてください。

【第1回】0から自分たちでメタバース上にオフィスを作る-企画とコンセプトと設計-

今回は具体的な作業のうち、モデリングの部分にフォーカスして、デザインを形にした際のお話をしようと思います。

それでは早速始めましょう。

株式会社GUNCY’S

株式会社GUNCY’Sは、3DCGをはじめとする最先端テクノロジーを熟知したメンバーと独自の戦略・ユニークな提案などで、人々が思い描くあらゆるアイデアやイメージを実現・成功へと導く現代版”軍師”集団です。プロジェクトコンサルティングやデジタルコンテンツ制作・開発、教育・執筆・講演など様々な事業を執り行っております。

GUNCY'S

グレーモデル

まずグレーモデルについて説明します。グレーモデルと呼んだり、ラフモデルと呼んだり、現場や会社によってさまざまな呼び方がありますが、つまりは空間全体をプリミティブな造形で簡単に構成したモデルを指します。

例えば、絵を描くときは、ざっくり下書きしてシルエットを決めてから、色を乗せたり輪郭線を描きます。それと同様に、空間をモデリングする際もシルエットやスケール感を、プリミティブなモデルや簡単な機能で作れるメッシュで構成して確認します。



グレーモデルを作る際にとにかく気を付けることは、スケール感と導線です。後の項で詳しく述べますが、グレーモデルを用意する際にエディタ上で見た目を確認していると、一つ一つのパーツのスケール感を考慮せずに作ってしまうことがあります。

例えば、階段は1段蹴上18cm前後、踏面28cm前後、椅子は座面高・座面幅45cm、廊下幅は1m以上、導線幅は最低60cm以上など、現実のスケール感を参考にしつつ、そこで使用するアバターに合わせて調整をするなど、メタバース特有の注意点があります。

スケール感や寸法に秩序を持たせる考え方として「モジュール」があります。また建築デザイン界隈では「モデュロール」という考え方もあります。

参考:https://interior-no-nantalca.com/basics-of-modular-coordination/

無造作で無秩序な空間はメタバース上とあれど、ユーザ体験のレベルを落としてしまう原因になります。すでに建築の世界にもあるような、ある程度決められた秩序を利用して空間を制作すれば、ユーザ体験の向上につながるので、ぜひ意識してみてください。

また、導線も同様によく考査して設計する必要があります。あえて導線を消すような空間、1筆書きでスムーズに巡回できる空間、どの部屋にも均一な距離で到達できる空間など、目指している空間のコンセプトに合わせて設計しましょう。

  • 本プロジェクトにおける導線設計時の注意例

最適なモデルの作り方

今回はメタバースで使用する前提のモデルです。そうなると、見た目をリッチにしたり、あれこれ空間を付け足してしまうと、メタバース上での動作が重くなってしまいます。

そのため、ある程度の妥協と使い回しをしながら、それをカバーできるデザインや表現力が必要になります。

デザイン面での最適化

よくやってしまう手法として、少ない要素や機能しか備えていない場所でありながら、不釣り合いなほど空間が広いという現象が起きます。これは実際に実装する機能の数や、ターゲット層や使用用途を無視して、壮大な空間を表現しようとしてしまうからだと思っています。これをしてしまうと、一つ一つの機能や部屋同士の距離が遠くなりすぎたり、人口密度が下がり、空間に寂れた印象を与えてしまうなど、ユーザ体験の品質を下げてしまう要因になります。

そうならないように、必要な機能を必要な広さで配置する必要があります。

グレーモデルの時点で実際にメタバースに持っていき、皆で歩き回ることで、この場所が広すぎ・狭すぎる、必要のない機能や足りない機能がある、導線が微妙などの要素が見えてきます。

モデルを簡単に調整できるようにしておけば、イテレーションを気軽に行えるようになります。そうすることで、試行する回数を増やしてデザインを洗練させていきやすくなります。

グレーモデルの時点ならばモデルに変更を加えるのは容易です。簡単にモデルを調整できるようにしておき、イテレーションを気軽に行えるようにし、試行する回数を増やしてデザインを洗練させていきます。

もし、広大な空間に見せたいならば、ユーザが動く範囲を広げるよりも、その外側の遠景として要所要所にデザインを散りばめたほうが効果的なこともあります。

メッシュ作成時の最適化

ここではUnityを使用したメタバース用の空間を作成する場合のお話をします。

最適化と謳っていますが、グレーモデルから本番モデルに作りこんでいく際に、最適な状態で作るための注意点をまとめます。

モデルを制作する際にデータの造りの部分で気を付ける点は主に3つあります。

  • ポリゴン数を増やしすぎない。
  • マテリアルを増やしすぎない。
  • オブジェクト数を増やしすぎない。

順を追って説明します。まずはポリゴン数についてです。

ポリゴン数を増やしすぎない

キレイでハイクオリティなモデルを作りたいと思うとポリゴン数は必然的に上がっていきます。ただし、メタバースおよびゲームで使用するデータでは注意が必要です。

例えばUnityの場合、ポリゴン数が増えるほどGPUへの負荷が高まっていきます。またDCCツール(MayaやBlenderなど)からFBX等に書き出した際に、ファイルのデータ容量が増えて、重いファイルになります。重いファイルを使用すると、メタバースに組み込んだ際にAsset bundlesの容量も比例して増えていきますので、ロード時間が増えたり、ロード後にデータが正しく表示されるまで時間がかかったりします。

ただし、これらの現象は単にポリゴン数だけでなく、後述のマテリアルの数や使用しているシェーダーの種類、オブジェクト数によっても左右されるので、注意が必要です。

マテリアルを増やしすぎない

表現力を高めるために、たくさんのテクスチャとマテリアルを使用したくなってしまいます。ただし、Unityの標準レンダーパイプラインを使用しているメタバース(VRChatなど)の場合、マテリアルおよびテクスチャの数が多いほどCPUの負荷が上がります。このあたりはSet pass call(ドローコール)やマルチパスレンダーなど、ディープな話につながるため今回は省略しますが、使用するマテリアルとテクスチャが増えると、その分動作が重くなってしまいます。

また、ポリゴン数の項と同様に、マテリアルおよびそれに付随するテクスチャが増えるほどデータ容量が増えていくので、Asset bundlesの容量も増えてしまい、ロード時間およびロードが終わった後にデータが正しく表示されるまでの時間が長くなっていきます。

オブジェクト数を増やしすぎない

オブジェクト1つあたりのポリゴン数やマテリアル数の話をしてきましたが、そのオブジェクトも数が多いほど、例に漏れず処理負荷が上がっていきます。つまり、オブジェクト数が増えるとドローコールが上がっていきます。その分CPU負荷に影響していきます。

オブジェクトの数はできるだけ少ない方がいいのは確かですが、逆に何から何までオブジェクトを結合してしまうと、Occlusion cullingの効果が薄くなってしまいます。

Occlusion cullingとは、カメラの範囲内に映ったオブジェクトのみ描画する機能です。

https://docs.unity3d.com/Manual/OcclusionCulling.html

したがって、同じ方向にまとまっているオブジェクト同士は結合する、壁の反対側にあるオブジェクトは結合しないなど、結合するオブジェクトもそれぞれ選定が必要です。

表現力アップTips

モデルを作成する際に使えるテクニックをいくつかご紹介します。

ガラス表現

ガラスは通常、シェーダー側で調整し、ガラス感を演出します。しかし、モデル側でも多少表現を工夫することができます。

現実にあるガラスが羅列されている場所では、それぞれ若干ガラスの反射がずれます。これは枠にはめたときに若干歪みが生じて固定されるからです。

それを再現するには、板ポリのガラスだとしても、それぞれのガラスの法線を若干ずらしてあげます。

  • ガラスの板ポリの法線がずれている場合

  • ガラスの板ポリの法線がずれている場合

トリムシートを使ってディティールを細かくする

トリムシートとは、ある材料の一部のみをモデルに付け加えることでディティールを細かくする演出のためのテクスチャです。

先述でマテリアルを安易に増やすことは厳しいという言い方をしましたが、それでもやはりディティールは欲しくなるものです。

例えば、壁や床などは面積が広く、リピートしたテクスチャを貼って対処することが多いと思いますが、その味気無さを補完するためにトリムシートなどを使用して少しディティールを加えます。

これは巾木やカブセなどでディティールを増やすために使用しているトリムシートの一部です。

これを使えば、リピートしてる面積の広い部分に多少ディティールを盛ることができます。


Filament系のシェーダーを使う

Unityに標準で入っているStandard Shaderは、PBRと謳っているにも関わらず、実は軽量化のために結構計算が適当になっているシェーダーです。

Filamentシェーダーにおいては、忠実に物理ベースの計算を行い、正しい明るさと色を再現して表示できるシェーダーの一つとしてGoogleが公開しています。

https://github.com/google/filament

また、それをUnityに使用できるようにしたものも複数あります。

https://booth.pm/ja/items/3250389

https://booth.pm/ja/items/4299750

今回は、弊社エンジニアが最適化したシェーダーとして用意してくれたものを使用しました。

標準のStandardシェーダーよりも、より忠実な物理ベースの表現ができ、品質の高い表現ができます。

また、それをVRChat用に使用できるようにしたものも複数ありますが、そこからさらに最適化したシェーダーとして、弊社エンジニアが用意してくれたシェーダーがあります。

それを使用することで、標準のStandardシェーダーよりもより忠実に品質の高い物理ベースの表現ができます。

  • Filamentベースの弊社シェーダー

  • Standard shader

まとめ

さて、今回はモデリングするときに気を付けたり工夫できる点のお話をしました。モデリングの方法はインターネットを探せばたくさん出てきますが、モデリングする際の考え方は意外と共有されていないものです。次回以降はUnity上でのライティングやテクスチャ、シェーダーの工夫したところや注意点をお話したいと思います。

モデル作成の依頼や0から企画するところなど、GUNCY’Sでお手伝いできることがございましたら何なりとお問い合わせください。

CONTACT

ここまでお読みいただきありがとうございました。次回もお楽しみに!

執筆者

株式会社GUNCY’S所属テクニカルプランナーとして従事。普段はプロジェクト進行時にプランニングとディレクションを務める。今回は本プロジェクトのPMを務めつつ、空間設計、アートディレクション、DCCツールおよびUnityのアートワークも担当。

Discussion