ウーパの手習い

私的開発メモ用途なのでご容赦ください。2020年現在はSwiftとUnityでARのお勉強中。

Vケット2用ブース制作について雑感

一番大事なのは出品するアイテムのクオリティだというのは重々承知の上、ブース製作において、店構えといったデザイン観点、サイズ軽量化や負荷軽減といった実装観点からの留意点を書いておきたいと思います。

現状未着手状態の私の個人的な考え、また、私の浅いスキルレベル目線からのポイントを書きますので、間違い等ありましたらTwitterでご教授いただければ嬉しいです。 

店構えについて

Vケット1のブースを再訪して、特徴あるブースを拝見して以下の気付きを得ました。

  • 両サイドに壁が無い店構えにすると、遠くから店の中を見られるので興味を持ちやすい(もちろん柱ぐらいはあってもいい)
  • 一方、密閉型の球形のブース等もあり、それはそれで入ってみたくなる
  • 横・背後の壁面については、片面ポリゴンにすることで、ブースに入った時だけ密閉空間にすることもできる
  • 床面はブースの規定サイズに合せた長方形が多いが、この床面を円形にするとカワイイ雰囲気を演出できる
  • ブースの裏側に意匠を凝らすことで、バイラルの誘因になるかもしれない
  • ブースの高さ規定は結構大きいので、ブース上部に看板等を設置している店舗もある
  • 看板が動いていたり、ネオンサインが点滅するといったアニメーション演出をしているブースもある
  • 2階や階段から、1階ブースの天井に飛び乗るという隠れた面白さを仕掛けておけるので、天井部分にコライダーを付けておいて、ちょっとしたコンテンツを提供しても面白い
  • 壁面やテーブルに厳密にコライダー入れない方が来場者が店内外を動きやすいケースもある
  • 動画を流していたブースもあった。※Vケット2では動画再生は要個別相談案件
  • ブース外観全体が巨大アバターモデルなブース、かわいい
  • 店員キャラクターが立っていて、こちらに視線を向けてくる仕掛けもあった

 

サイズ軽量化や負荷軽減といった実装について

出店応募者に対して共有されているVケット2のブース入稿ルール仕様書を拝読して、以下の感想を持ちました。
※私はVケット1は未出店で、12/19時点でVケット2用のブース作成も未着手、運営様側によるブース統合作業イメージも充分にできていないため、以下のリストはそういう現状である私のメモ書きレベルです。
12/20追記:簡易ブースを作って、一通りの工程は確認しました(ツイート

  • 一般論でもあるが、軽量化のためにはメッシュ数、マテリアル数は少ないほど良いという基本方針は同じですね
  • 極端な話、メッシュ統合して1メッシュでブースを作った場合は、自分のブース内においてのOcculusion Cullingは効果を発揮しないので深く考慮しなくてよい(はず)
  • マーケットワールド全体におけるカリング(例:あるブースを見ている時、背後のブースがカリングされる)用途のために、今回のOccluder Static配下設置が指定されているのが主目的かな?
  • 入稿ルール仕様書のライティングの記述は、ワールド全体におけるライト数の情報が記載されているんですよね?各ブースに関してはStaticオブジェクトはライトをベイクしておくことが推奨されてるから、Dynamicオブジェクトに対しての参考情報にするという認識で良いかな
  • 出品アイテムは別シェーダー(つまり別メッシュ)を使うとしても、ブース部分はほぼStaticオブジェクトなので、先日勉強会で紹介した。ベイク済の1テクスチャ&Unlitシェーダーの1マテリアル構成にすれば、ワールド全体のライトに影響されずに自分の意図した質感のブースにできるので良策ではないかと思う。
    ※ただしUnlitでもPostProcessingStackの影響は受けるので、ワールドにPPSが適応されるかを確認しておく必要あり
  • また、基本的にDirectionalRightは1灯でNo Shadowとのことなので、なおのことブースはUnlitで良いような気がする
  • LightProbeとReflectionProbeは、ワールド全体の負荷のことを考慮すれば、実装しなくてもいいかもしれない。そこまでブースの細部や質感を自慢するイベントではないので
  • アニメーションON/OFFブースは事前申請とあるけど、回転し続ける看板とかはON/OFFの類では無いという認識でいいのかな?
  • 床のコライダーはワールド側と重複するから納品時には不要かも。とはいえ開発中は必要だし、負荷もそんなないから同梱しておいても問題ないとは思うけど。覚えてたら最後削除しようかな。テスト中はブースサイズより大きいコライダー敷いておくと、遠くから眺めることができるので便利
  • その他、負荷を高める項目:ペデスタル、パーティクル、音声、VRCコンポーネント使用等については、私自身が導入するか未定なのでおって調査
  • AvatarPedestalに付随しているVRC_TriggerもLocal設定にするということかな?忘れがちな作業なので注意しよう

ブース作成時に使うと有用だと思われるテクニック

  • UnityでStaticにする予定かつ同一シェーダー使用予定のオブジェクトはBlenderモデリング時に1オブジェクト(つまり1メッシュ=1マテリアル)にまとめておくテクニック
  • BlenderでUVを個別に大きさ調整して配置するテクニック。例えば、画像を貼る予定の看板部分のUV面積を大きく調整し、表示される画像解像度をできるだけ上げる
  • BlenderでBebel等を利用した面取りテクニック
  • SubstancePainterでハイポリの凹凸をローポリのノーマルマップとして適用させるテクニック。ハイポリモデルも用意する必要はありますけどね
  • SubstancePainterの2DViewエクスポート。ブースを軽量なUnlitシェーダー+テクスチャ1枚で作ることができる
  • UnityのAvatarPedestalのビルボードのサイズを小さくして、代わりにアバターモデルを表示させるテクニック。動かさないならボーン不要のメッシュモデルだけ置けば良いね
  • ペデスタルにモデルを表示させている時、フォーカスを合わせると「Use」のテキストが表示されるが、その表示場所はVRCAvatarPedestalのカプセルコライダーの上端になるので、モデルの高さを考慮しながら、カプセルコライダーのheightを調整すると良い
  • ブース内に負荷高めのオブジェクト(SetPassCalls高めのオブジェクトやVideoPlayer)を設置する場合、ブースの入り口を小さくして、四方を壁に囲んだ茶室のような小屋にした方が、会場を歩いている参加者からはブース内がOcclusionCullingされるので良いのかもしれない。←外からブース内をアピールできないデメリットはあるけども。

 

以上、出品アイテムよりも、ブースという建築物と、負荷軽減とにこだわってしまっているという、マーケットの方向性から逸れてしまっている私の戯言です。

以上を念頭に私もブースを作ってみようと思いますが、そこで得た留意点については次回以降のATL広尾バーチャル勉強会の発表ネタにしたいと考えています。