🔖

細かすぎて伝わらないワールド制作のUX向上Tips

2022/12/24に公開

この記事は「Cluster Creator #1 Advent Calendar 2022」21日目の記事です。
https://adventar.org/calendars/7565

こだわりポイントありますか?

ワールドを作っていて、「多分気付いてもらえないだろうけど、こだわっているポイント」がありますか?
この記事ではそんな細かすぎて伝わらないワールドのこだわりポイントをいくつか紹介していきます。

ワールドのUX

UX(ユーザーエクスペリエンス)という言葉は、ワールドにおいてどのように関わってくるでしょうか?

  • 導線の整ったワールド
  • 説明書きがわかりやすいワールド
  • はっきりとしたコンセプトがあるワールド

考え方は人それぞれでしょう。今回はUX(日本語で言うとユーザー体験)を向上させるかもしれない?細かすぎるワールドの制作ポイントについて考えてみましょう。

ただの階段?

階段です。Pro Builderでは簡単に階段のオブジェクトを生成できて非常に便利ですよね。
ここに2つの階段があります。

この階段を登り比べてみましょう。

青い階段は非常にスムーズに登ることができますが、赤い階段は上るとどこか視点が揺れる印象があります。
特にVRでプレイしているユーザーに言えることですが、この画面の揺れは結構酔うんです...
そこで、あえて階段のオブジェクトのMesh Colliderをそのまま使わずに、別途斜めにコライダーを貼ります。
今回は、Box Colliderを斜めに配置しています。

緑の半透明なオブジェクトがコライダー
特に長い階段は斜めにコライダーを引くことで、揺れを抑えることができます。

アクションにリアクションを

全ての行為にリアクションを加えましょう。

ボタンのリアクション

主に2つです。

  • SEによるサウンドのリアクション
  • 動きによるリアクション

先に完成物を。
https://youtu.be/0k1RSMvjtBY
左のボタンがシンプルなプッシュボタン、右のボタンがトグルボタンです。

動作のポイント

  • SEはローカルで再生される
  • トグルボタンのオン/オフでSEの音程が違う
  • 押すとアニメーションが動く

SEの実装

Player Local UI内にAudio Sourceを配置し、Play Audio Source GimmickのTagetをLocalPlayerに設定することで、ボタンを押したプレイヤーに対してのみSEを再生することができます。

また、トグルボタンをオフにした時は、音程(Pitch)を下げたSEを再生しています。
同じ音源のSEでも、音程を変えることでオフと音で差を作ります。

アニメーション

AnyState使ってますか?使ってるなら今すぐやめましょう。
AnyStateは規模の大きいAnimatorになってくると非常に厄介なことになってきます。例えば、AnyStateから伸びる2つのState Transiton(矢印のやつ)の条件が同時に成立したらどうなるでしょう...?最悪、期待通りのトランジションにならず、Animatorが壊れます。
ありえる条件と、発生してほしくない条件を考えて、あらゆるパターンに対応できるAnimatorの設計を考えましょう。

プッシュボタンのAnimator 連打しても壊れにくいように工夫をする
また、Animatorは途中入室時に同期されないということも考慮した設計をしましょう。

トグルボタンのアニメーション 途中入出してもAnimatorが動作するようにする

スポーン地点のちょっとした工夫

Spawn Pointはなんぼあってもいいですからね

Spawn Pointが複数設置されているときは、ランダムなSpawn Point上にスポーンするという仕様があります。

たくさんのSpawn Point

入室(Play)するたびにスポーンするSpawn Pointがランダムになる

例えばSpawn Pointが一つしかなかった時、一度にたくさんの人が入室したらどうなるでしょう?
こうなります。

多分経験したことがある人がほとんどでしょう。開場直後のイベントだと特に起きやすいです。
個人的には「ワールドに入っていきなり目に入るのがアバターなのはVRだと特に、なんだかなぁ...」と思ったりします。
Spawn Pointをとりあえずばらばらに散らしておきましょう。

入室時のアニメーション

先ほどボタンの話をした時に、アニメーションが同期されないという話をしました。
この仕様を逆手にとって入室時に何かをしてみましょう。

ワールド入室時の視界のフェードイン

Color Gradingで視界を真っ暗にするPost Processingを用意します

そして、このPost ProcessingのWightを1から0にするアニメーションを作成します。(アニメーションのLoopを無効にしておきます)

Animatorは再生が終了すると、空のクリップに遷移するようにしておきます。

これでワールドに入室すると...?

入室したら視界が真っ暗の状態から明るくフェードインするようになりました。
後から入室した人にはAnimatorが同期されていないため、すでに入室した人には影響を与えません。ちなみに、ゴーストでも動作します。

なんかいいワールド

なんかいいワールドってなんなんでしょうね。
個人的には細かいけどよく見ると芸が細かいワールドって好きなんですよね...

ワールド制作でなにかこだわりポイントをもって作ってみてはいかがでしょうか...?

Discussion