VRChat 日本wiki - アバター作成についてのメモ


アバターを利用する際の注意事項

アバターの注意事項
VRchat内で使用するアバター作成時の禁止行為・注意事項をまとめました。
「MMD4Mecanim」の利用禁止、「3Dモデル(MMDモデル)」をお借りする際の守るべき注意事項などありますので厳守してください。
違反行為が横行してしまいますと、VRchat文化全体が規制・衰退の流れができてしまいます。

VRC公式のドキュメント

ざっくりとしたドキュメントVRChat - Developer FAQ
VRChatで使えるアバター向けのunityコンポーネントWhitelisted Avatar Components

Unityに関する基礎知識系

Consoleのデバックログはログを選択した状態で[ctrl]+[C]を押すとコピーできるから、
それを翻訳機に突っ込むと案外たいした事言ってなかったりするのが分かります。
Unityの基本を学習する
【Unity】AssetBundleに格納したSceneやPrefabがピンクになる問題
【Unity】壁や床の絵がチラチラするアレを何とかする(Z-fighting)

軽量化の工夫

・マテリアルの数を少なくする。
 マテリアル毎に描画処理が異なる為、マテリアルの数だけ処理は重くなります。

・テクスチャの枚数を少なくする。
 例えば1024の4枚と2048の1枚だった場合、面積は同じなので処理はそんなに変わらない気がしますが、
 ファイル数の多い方がアクセスの回数が増えるらしく処理が重くなります。
 所謂これが”ドローコールの回数を減らす云々”という話らしいですが、グラフィックのAPIなんか素人にはさっぱり分からんです。

・ボーンとか減らす
 1ボーン1オブジェクトとカウントされるため、動作してない無駄なボーンは減らす方がよい。
 ただし、配布予定のモデルの場合はHumanoidの必須ボーンは入れておいた方が分かりやすいかもしれないので、そこは判断で。
 あと、結合可能なオブジェクトは結合したほうが良いとか。

・軽量なシェーダーを使う
 陰影の処理をしないunlitや、複雑な処理が少ないトゥーンシェーダー等を使用してみるなど。

・ダイナミックボーンを設定している場合、Gravityを使わないようにする

Lip Sync(マイク音声とモデルの口の同期)について

リファレンス:Blender To Unity Vrchat Avatar Creation
※19種類のモーフを正しく設定して組み込む必要があります。
※2017年8月31日のアップデートでミラーにモーフとアニメーションの状態が反映されるようになりました。

髪を揺らしたりするためには

Dynamic Boneという有償のアセットが広く使われています。
解説ページ:Dynamic Bone (コンポーネント)
unity store:Dynamic Bone

スカートをリアルに揺らしたい

Clothというコンポーネントを使うとスカートを布のように揺らすことができます。Clothの使い方

アイテムを出し入れさせたい

ハンドサイン

指の動きでアニメーションをスイッチさせ、アイテム(オブジェクト)をオンオフさせることができます。
アニメーションオーバーライドで物を取り出そう
アニメーションオーバーライド(アニメ−ションファイルの上書き(youtube)

エモートスイッチ

MenuのEmoteボタンでアニメーションをスイッチさせ、アイテム(オブジェクト)をオンオフさせることができます。エモートスイッチを使って物を出す方法
こちらは一度オンにしたら出しっぱなしにすることができるメリットがありますが、同期ズレ(見える人と見えない人がいる)がありますので注意してください。

サブアームを使いたい

Fixed Jointを使用することでアバターの腕ともう一つの腕を同期させることができます。
応用で足を同期させればケンタウロスを作ることも可能です。


魔法を使ったり、ビームを出したい

パーティクルシステムを使うことで魔法のような粒子を飛ばすことができます。パーティクルシステム
VRChatでParticleで魔法とか銃とか撃つ方法

アバターを使って文字を書く

ワールドにもの置く

上級編ですがアバターからオブジェクトを切り離し、ワールド空間に置くことができます。
アイテムをアバターから切り離しワールド固定にする方法

疑似的なフォース(力)

コライダーとコライダーが重なった時や特殊な衝突をする時など、移動させるフォース(力)が発生する事がある。※VRChatの仕様
足元と腰にコライダーを設置し、かがんだときにお互いのコライダーをぶつけ、空へ飛ぶなど。

その他技術

その他技術に関してはいくつかサイトを紹介します。
yagura Lab