【Unity】VRChatアバターにBillboardを組み込む方法【Particle,1か所,常時表示】

3DCG
スポンサーリンク

はじめに

今回はVRCアバターにBillboard表示を組み込む方法を紹介します。
Unity 2022のParticle機能を使います。

ビルボード – billboard
これはずっとカメラの方向を向いてる形状や面などの意味です。

この記事の続きで書いたので「め」という3DモデルがParticleで表示されてます。

【Unity】Particleで3Dモデルを飛ばす方法
3DモデルをUnityに読み込みんでプロジェクトの▶を押すとメッシュデータが取れ、Particleのレンダーモードをメッシュにすると3Dの形状を読み込めます。マテリアルを設定すると立体的に表示でき、開始時の回転などで向きを調整できます。

またParticleなのでVRChatで表示可能。
アバター上で動作します。

ある程度UnityやBlenderなどの3Dツールが扱えることを前提に進めます。
基本操作などはこちらをご覧ください。

作り方

作り方は下記。

・Particleを作成
・Particleを操作して1か所から動かないようにする
・Particleの表示数を1か2にする(最適化)

こちらを解説していきます。

パーティクルを作成

ヒエラルキーを右クリック。
エフェクト → パーティクルシステムでパーティクルを作成。

ヒエラルキー上の「ParticleSystem」を選択。

インスペクターを確認。
形状のチェックを解除。

するとParticleの発生位置が1か所になります。
(Transform値の所)

画面の見やすさを調整するために形状を一度有効化。
形状を「スフィア」にしてスケールを調整。
再度、非表示化で画面を見やすくしました。

そしたら「開始時の速度」を0に設定。

これでパーティクルが1か所で動かなくなりました。

この時点でビルボードとして成立してます。

表示がおかしい方はレンダー整列を「ビュー」に調整してください。

これで完成に見えますが…
現状は「50」このパーティクルが1か所に重なってる状態です。

Unityの処理的にあまりよくないので最適化します。

Particleの最適化

下記の4つを調整します。

・事前準備を有効化
 → Particle生成時の挙動の変化を無くす

・最大Particle数を1か2に設定
 → これが生成される数
 → 切り替わりの挙動を安定させるなら「2」が安全

・放出の「時間ごとの率」を0に設定
 → バーストを使ってParticleを出す

・放出のバースト右下の+を有効化して下記のように設定
時間=0、数=1、サイクル=無限、間隔=0.010、発生率=1.00

これで「開始時」以外は常時表示されるParticleになります。

筆者はこのあたりの挙動は完全に把握しきれてません。
もしかしたら、もっと良い設定がある可能性があります。

またParticleの生成数は「1」だと設定次第で切り替わりに点滅することがあります。

↓こんな感じの挙動です。

一番最初の所ではなく…
再生時間が「1.00」あたりになったところで一瞬消える点に注目。

よくわからないですが…
「時間ごとの率」を使うと切り替わりで点滅する挙動になりました。

これの一番の対策は2個Particleを出すことです。

これで切り替わり時に不自然な挙動が起こりにくくなります。

また私もなぜそうなったか分からないのですが…
「バースト」で放出するとこの挙動が治りました。(謎です)

以上がParticleの最適化です。

VRChatにアップロード

ヒエラルキーにあるParticleをプロジェクトにドラッグ&ドロップ。
忘れず保存します。

適当なアバターを用意。
配置を調整。

あとはParticleに「MA Bone Proxy」あたりを入れて適当なボーンに追従させます。

VRChatにアップロード。
適当な3面図表示ワールドに移動。
するとビルボードの挙動なので全てこちらを向いてます。

カメラを使って視点移動。
上手く動いてます。

以上がVRCアバターにBillboardを組み込む方法です。

まとめ

今回はVRCアバターにBillboard表示を組み込む方法を紹介しました。

・ビルボードはずっとカメラの方向を向いてる形状や面などの意味
・Particleにはビルボード表示機能がある
・1か所から動かない、表示数が1か2のParticleを作る
・このParticleにビルボード表示したいマテリアルや形状情報を入れる
・レンダー整列が「ビュー」ならビルボード表示になる

また他にもUnityや3DCGについて解説してます。

【Unity】衝突して消えるParticleの作り方
「衝突」を有効化してタイプを「ワールド」にすれば衝突判定にパーティクルがぶつかります。バウンスや減衰率を操作すると衝突の挙動を操作できます。そして生存期間の損失を1にすると衝突した瞬間に消えるパーティクルが作れます。こちらを画像付きで解説。
【Unity/VRChat】半透明が正しく表示されない理由と対処法【描画順,設定】
半透明の表示エラーは描画順の問題で、「後ろ → 前」の順で描くと正しく表示されます。描画順はRender Queueや視点からの距離で決まります。こちらの設定方法や挙動の違い、VRChatで水面で服だけ消える現象へのおすすめ対処法などを解説。

ぜひこちらもご覧ください。

初心者向けUnity Particleエフェクト講座
初心者向けUnity Particle System (Shuriken) を使ったParticleエフェクト制作講座

コメント

タイトルとURLをコピーしました