アバター改変の解説 第1回

Render Queue(描画の順番)

半透明の髪やレース、メガネのレンズが、見る角度で消えたり、ほかの物の後ろに隠れたりする。その多くは、Render Queue(レンダーキュー)という「描く順番」の数字で直せます。

公開 · 対象は Unity の Built-in Render Pipeline(VRChat のアバター)です。2026年11月時点の内容です。

こんなときに読んでください

  • 半透明のパーツ(レース、メガネのレンズ、頬染め)が、カメラを動かすと消えたり出たりする。
  • 水のあるワールドで、アバターの半透明の部分が水面に隠れる。
  • 半透明のスカートの向こうのリボンなど、半透明の物越しに別の半透明の物が見えない。
  • パーティクルやエフェクトが、髪や服の前に出たり後ろに隠れたりする。

Render Queue とは

Unity は画面を描くとき、マテリアルごとに決まった数字の小さい順に描いていきます。この数字が Render Queue です。あとから描いた物が、先に描いた物の上に重なります。

不透明な物は、奥行き(深度)を見て前後が決まるので、順番を変えても見た目はほとんど変わりません。順番が見た目に効くのは半透明の物です。半透明の物は奥行きを記録せず、すでに描かれている色の上に、自分の色を混ぜるだけだからです。

おもな Render Queue の数字
  1. 1000 Background 背景(スカイボックスなど)
  2. 2000 Geometry 不透明な物。ほとんどのマテリアル
  3. 2450 AlphaTest 切り抜き(Cutout)。穴の開いた不透明な物
  4. 2500 ここまでが「不透明」の扱い
  5. 3000 Transparent 半透明な物
  6. 4000 Overlay いちばん最後。すべての上に重ねる物

2500 を境に、並べ方が変わる

2500 以下(不透明の扱い)
おおよそカメラに近い物から描きます。前後は奥行きで決まるので、順番がどうでも見た目は正しくなります。
2501 以上(半透明の扱い)
同じ数字の中では、カメラから遠い物から描きます。距離は、見えている面までではなく、メッシュの範囲(Bounds)の中心までで測ります。大きなスカートと小さなリボンのように中心の位置が違う物は、カメラを動かすと「どちらが近いか」が入れ替わり、ちらつきます。
1つのメッシュに半透明のマテリアルがいくつかあるとき
同じメッシュの中で同じ数字なら、距離ではなく、マテリアルの並び順(Element 0, 1, …)で描かれます。

動かして確かめる

アバターの半透明パーツは、水面より手前にあります。水面が先に描かれれば、正しく見えます。数字と距離を変えて、どうなるか見てみてください。

3000

3000

カメラから中心が近いのは?

描く順番

  1. ワールドの水面(3000)
  2. アバターの半透明パーツ(3000)

数字が同じなので、距離で順番が決まります。

正しく見える:水面を先に描き、その上にパーツが重なっています。

よくある困りごとと直し方

角度で消えたり出たりする

起きること
半透明のパーツ2つが、見る角度によって前に出たり後ろに隠れたりする。
原因
数字が同じなので距離で順番が決まり、その判定が角度で入れ替わっています。
直し方
手前に見せたい方の数字を、少しだけ(+1〜+10)大きくします。距離ではなく数字で順番が決まるので、入れ替わらなくなります。

水面に隠れる

起きること
水のあるワールドで、アバターの半透明の部分が水の中にあるように見える。
原因
ワールドの水面は、半透明の範囲の数字を使っていることが多いです。パーツが水面より先に描かれると、上から水面の色を塗られてしまいます。
直し方
パーツの数字を、水面より大きくします。私の SpiderWeb では、糸を 3100、衝撃波を 3110 にしています。水面が 3100 以上のワールドでは、糸のマテリアルを水面より大きく、衝撃波をさらに後にするよう、説明書に書いています。 SpiderWeb の説明書

1つのメッシュの中で重なる

起きること
同じメッシュにある半透明のマテリアル2つが、逆の順番で重なる。
原因
数字が同じなので、マテリアルの並び順で描かれています。
直し方
手前に見せたい方の数字を大きくするか、奥に見せたい方を前の Element に並べ替えます。

縁がくっきりでよいなら Cutout に

起きること
髪の毛先やレースの穴など、形を抜くためだけに半透明を使っている。
原因
半透明は順番の調整が要ります。Cutout(2450)は不透明の扱いで、奥行きも記録します。
直し方
縁がくっきりしていてよいなら、Cutout にします。順番の問題が起きなくなります。

数字の変え方

  1. 元に戻せるように、先にマテリアルを複製しておきます。
  2. Project ウィンドウで、変えたいマテリアルを選びます。
  3. Inspector で Render Queue の欄を探します。多くのシェーダーでは下のほうにあります。From Shader のままだと、シェーダーの既定の数字になります。
  4. 数字を入れます。
  5. 順番を確かめるには、Unity の Frame Debugger(Window → Analysis → Frame Debugger)を開き、描かれる物を1つずつ送って見ます。

気をつけること

  • 2500 を超えると、半透明の扱いになります。Built-in Render Pipeline では、2500 を超えた物は影を受けなくなります。不透明な物は 2500 以下のままにしてください。
  • シェーダーの描画モードを変えると、Render Queue が既定の数字に戻ることがあります。変えたあとに、もう一度確かめてください。
  • 大きく動かさないでください。数字が大きいほど、ワールドの半透明の物(ガラス、霧、エフェクト)より後に描かれ、その奥にあっても手前にあるように見えることがあります。
  • Render Queue はマテリアルの設定なので、アップロードすれば、ほかの人にも同じ順番で描かれます。

まとめ

  • Render Queue は描く順番の数字で、効くのは半透明のマテリアルです。
  • 数字が同じだと、メッシュの中心までの距離で順番が決まり、それがちらつきの原因になります。
  • 決めたい順番だけを小さな差で決め、できるところは Cutout にします。

アバター改変の解説の一覧