VRChat用技術の備忘録

# はじめに

VRChat1年生が覚えてきた技術のまとめです。VCCを使っています。旧SDK3では使えないものもあるかも。

## 便利ツール群

* [VRCアバター/ワールド体重計](https://booth.pm/ja/items/2638525)  
アバター容量をアップロード前にチェック。全テクスチャを重い順に一覧化。

* [Animator Controller Tool Post Processing](https://booth.pm/ja/items/3853091)  
write defaultを初期でオフ、アニメーションレイヤーのweightを初期で1にする。  
* [MeshSplitter](https://booth.pm/ja/items/1633965)  
指定したメッシュを真っ二つに。
* [VRCAvatars3Tools](https://booth.pm/ja/items/2207020)
Fxレイヤーとかパラメータをコピー。
* [VRCDeveloperTool](https://booth.pm/ja/items/1016739)
中腰を治す。
* [PhysBone Salvage Converter](https://booth.pm/ja/items/3821902)  
DB未所持でも元DBをPBに変換してくれる。
* [VRC Eyes Moving System](https://booth.pm/ja/items/3778780)  
面倒な目線操作アニメーションを全部セットアップしてくれる。
* [かゆい所に手が届くハンドサインセット vol.1](https://seilin.booth.pm/items/3473145)  
銃の持ち手とか刀の持ち手が欲しいニッチな方向け。

## Liltoon

設定で有効にしないと出てこない項目もあるので、見当たらなかったら設定からチェックを入れてください。

### Liltoonの基本

不透明は2000、カットアウトは2450~2499、半透明は2501~3000の間でそれぞれ1つの値で統一しておくと不具合がおきにくいと思います。

### トラブルシューティング

光り方や見え方がおかしい問題は以下のツールを通せばだいたい防げます。

#### 1.Fix Lighting

明るさの上限下限を統一するliltoonの専用機能。他のシェーダーは頑張って手動でそろえてください。

##### 使い方

1. 初期値設定
   画像の矢印の場所を0.2にします。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116924/9cdb1dfb-c581-768a-2467-b68c3a4cdeaf.png)

2. 適用
   ヒエラルキー上でアバターを右クリックして実行します。 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116924/1ae4eb57-fda1-e4ec-2109-716accca16ad.png)

#### 2.BoundsUnificator

BoundsとAnchor Overrideを統一するツールです。角度によって消えるとか顔だけ暗いとかをなくします。
[BoundsUnificator](https://esa-pages.io/p/sharing/15655/posts/40/5e66e9c4374afa5aba15.html)

#### 3.LightSettingEditor

必須ではないけど便利です。ワールド光の影響度をExメニューから調整できるようにしてくれるセットアップツール。
[LightSettingEditor](https://booth.pm/ja/items/3679951)

### コンバート

UTS2からlilへの変換は公式コンバータを使う。
[lilMaterialConverter](https://github.com/lilxyzw/lilMaterialConverter)

### テクスチャ設定

* AOマップはメイン2ndに乗算で適用。
* MatCapは以下が便利→
[matcap詰め合わせ](https://booth.pm/ja/items/4098293)
[MatCapテクスチャ詰合せ（金属・プラスチックなど）](https://booth.pm/ja/items/3165160)

### 光沢設定

* Roughnes は光沢の滑らかさ。値は0.5~1の間で調整。
* Metalic は光沢の色/マスク。値は0.5~1の間で調整。
* もしどちらもないが金属感を出したい時は両方に0.5付近を指定。

### Audio Link

音に合わせてピカピカするやつ。Audio Linkっていうアセットがワールドに入ってないと動かないです。

* 帯域 ...反応する音域。
* 無効時の初期値 ...未対応ワールドでの光り方。こちらだと通常のエミッションのようなほわ～んとした感じではなくシュッとした感じで光ります。

### Disolve

徐々に消えるやつ。物の出し入れで使われがち。

* マスク ...値を大きくするとマスクが適用される。アニメーションで動かしておしゃれな演出に使う。テクスチャはunity標準のnoiseでもなんとかなる。

## ComboGestureExpressions 

別ページに色々書いてるのでそっち見てください。

[導入記事](https://www.evernote.com/shard/s435/sh/8fe80f2b-dd4d-2d05-79ff-2c6d5ecb4ff3/5a6ba5065f7f216fecef340f12fb6303)

## MMD対応

1. ベース(ロコモーション)レイヤーに以下２つのパラメータを追加
後で使います。
InStation(bool)
MMD_Active(bool)

2. ロコモーションレイヤー改造
こんな感じに空のステートを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116924/36458798-88d5-0eb4-233e-eaaed228e25d.png)

3. ステート設定
画像のように設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116924/208ec63e-6437-87cc-4298-5325c5576c06.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116924/a2dfef5a-1f4c-a912-8f08-00fb9dd54434.png)

4. 遷移条件設定
画像のように設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116924/64274519-f184-e84e-5758-6924c996a283.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116924/697961a1-de85-ddf2-52ce-03aad571f537.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116924/c384031a-5508-5c10-2ab5-90909f4b085d.png)

5. アバターのパラメータ設定
以下を追加します。
MMD_Active(bool)
これをExメニューで切り替えます。

### 注意
MMD_Activeをオンにしている時はFXレイヤーが無効になります。  
つまりUnityでアップロードしたままの状態で服や表情が固定されます。
アニメーションで着せ替えしている方は服を着せた状態でアップロードしてください。

## 参考になりそうな技術(未解析)

[Player-Tracker](https://github.com/hfcRed/Player-Tracker)

ユーザーに張り付くやつ。ぴたっとくっつく。

## 参考文献