アウトライン
このページは ノーマルアウトライン を初めてオンにする方のためのものです。 キャラクターのシルエットの外側に、マンガのような輪郭線を描きます。3分ほどかかります。
これは何ですか
メッシュを少し膨らませた殻をもう一枚描き、シルエットに線を残します。 深度テクスチャを読まないため、VRChatの通常の画面でも描画されます。
いつ使いますか
- アバターをマンガ風にくっきり見せたいとき
- 明るい背景でキャラクターのシルエットが埋もれて見えるとき
30秒でオンにしてみる
- 変換したマテリアルを1つ選びます。
- ノーマルアウトラインを使用 をオンにします。
- アウトライン幅 を1にしておきます。
- アウトライン色 をベースより暗い色に変えます。
シルエットの外側に線が見えれば成功です。 線がまったく出ない場合は アウトラインのトラブルシューティング へ進んでください。
ノーマルアウトライン
基本設定
- ノーマルアウトラインを使用 をオンにします。
- 幅モード を選びます。
- アウトライン幅 と アウトライン色 を合わせます。
幅モード の既定値は WorldSpace で、遠ざかるほど線が細くなります。
PixelStable は画面ピクセル基準のため、距離が離れても太さが変わりません。
アバターには PixelStable が安全です。
URPプロジェクトでは、アクティブなURPアセットのすべてのレンダラーに機能が必要です。
なければ値はすべて編集できますが、線は1ピクセルも描画されません。
StudioRaming > MingToon > URP > Install Outline Renderer Feature
アウトラインマスター は、ノーマルアウトラインとInner Depth Edgeの共通スイッチです。 この値がオフだと、どちらのタブも描画されません。
よく触る値
| インスペクターのラベル | 何が変わるか | 推奨する初期値 | 上げると / 下げると |
|---|---|---|---|
| アウトライン幅 | 線の太さ | 既定値のまま(1) | 上げると太くなり、0にすると消えます |
| アウトライン色 | 線の色 | ベースより暗い色 | 黒に近いほどマンガ風が強まります |
| アウトライン色の合成強度 | 色の合成方式が効く量 | 既定値のまま(1) | 0に下げると合成色の影響がなくなります |
| 圧力コントラスト | 部位ごとの太さの差の大きさ | 既定値のまま(2) | 上げると細い箇所がさらに細くなり、0にすると圧力を無視します |
| 遠距離の最小ピクセル | 遠くで線が保たれる最小の太さ | 既定値のまま(0.95) | 上げると遠くでも線が残り、0にすると途切れて見えます |
| 深度バイアス | 線全体を前後に押す量 | 0 | 上げると埋もれた線が現れ、上げすぎると顔の手前に浮きます |
| DOFからアウトラインを保護 | 被写界深度ぼかしが線を消さないようにする | 既定値のまま(オン) | オフにすると、被写界深度ぼかしが有効なワールドで線がにじんで消えます |
全項目と範囲は アウトラインリファレンス にあります。
DOFからアウトラインを保護 はBRPとURPで同じように動作します。 バックエンドで分かれるのは、上のRenderer Featureをインストールしているかどうかだけです。
線の太さを部位ごとに変える
圧力ソースを選ぶ
圧力ソース は太さを調整するチャンネルを決めます。既定値は Constant です。
| 値 | 読み取るもの |
|---|---|
Constant | 何も読まず、幅をそのまま使います |
VertexAlpha | 頂点カラーのA |
VertexRed | 頂点カラーのR |
WidthMask | 幅マスクテクスチャ |
OutlineNormalUV8 | UV8にベイクした値。長い面は太く、頂点は細く |
圧力をどの線に反映するかは ノーマルアウトラインに適用 と インナーアウトラインに適用 がそれぞれ決めます。
このトグルはノーマルアウトラインのグループにありますが、Inner Depth Edgeに作用し続けます。 頂点カラーが黒いメッシュでオンにしておくと、内側の線がまるごと消えます。
シーンビューで直接塗る
- 圧力ソース を
VertexAlphaまたはVertexRedにしておきます。 - このマテリアルを使うレンダラーを選択項目の下に置きます。MingToonマネージャーを選べば大丈夫です。
- マテリアルを1つだけ選択します。
- シーンビューでアウトライン幅を塗る を押します。
ドラッグで塗り、Shiftを押しながらドラッグすると消えます。
[ と ] でブラシサイズを変え、Escで終了します。
オーバーレイで 半径 ・ 強度 ・ 減衰 ・ 裏面まで塗る を調整します。
Playモードではブロックされます。Unityが元に戻してくれないためです。 同じメッシュを使う他のレンダラーも一緒に変わります。
このレンダラーだけに適用するには、メッシュを複製して割り当ててから塗ってください。
圧力ソース が VertexRed で ノーマルソース が VertexColorTS の場合、
2つは同じチャンネルを読みます。圧力ソースを VertexAlpha に変えてください。
角張った部分で線が途切れるとき
原因は ノーマルソース です。既定値は MeshNormal です。
VertexColorTS と UV8TS は、スムージングした値を事前にベイクしてある場合にだけ正しく機能します。
ベイクしていないメッシュで UV8TS を選ぶと、線はかえって途切れます。
UV8をベイクする方法は メッシュUVベイク にあります。
髪・スカートで線が形状から外れるとき
球や円柱からノーマルを転写したモデルは、シェーディングノーマルが形状と一致しません。 UV8をベイクするときに ノーマルを編集したモデル用に計算 をオンにしてください。 → ノーマルを編集したモデル
方向をテクスチャで直接与えることもできます。 指定ベクトル方向を使用 をオンにして ベクトルUV と ベクトルスケール を決めます。 体の内側に余計な線が出る場合は 内側線抑制オフセット を上げます。
アウトラインの色を照明に追従させる
ライティングを適用 をオンにすると、フォームシャドウ・リム・フロントライトが線にも適用されます。 太い線が照明に沿って暗くなる印象が残ります。 オフにすると、照明と無関係な均一の色を保ちます。
フロントライト色 と フロントライト強度 で明るい側の色を個別に与えられます。 フロントライト強度 が0だと、フロントライトの色は反映されません。 スクリーントーンを線にも入れるには アウトラインのシャドウパターン をオンにしてください。
VRC Light Volumesワールドでは、線の明るさもボリュームの明るさに追従します。 BRPはボリュームを頂点ごとに1回だけ読み、明るさだけをフラグメントへ渡すため、ピクセルごとの追加サンプルはありません。
さらに詳しく
- アウトラインリファレンス — 全項目と範囲
- メッシュUVベイク — UV8のスムースノーマルをベイクする
- アウトラインのトラブルシューティング — 線が見えない、崩れるとき