【AV2】VRoidのモデルをVRChatに導入する

2020年3月30日

いつもの備忘録でーす。はい。

いつにも増して投げやり気味です。情報が間違っていたり、足りなかったりするかもしれませんのであしからず。

Avatars 3.0対応編はこちら。

【Avatars 3.0】VRoidのモデルをVRChatに導入する

VRoidStudioで作ったモデルをVRChatへ持っていく

VRoid Studio、便利ですよね。慣れれば1時間もかからずにモデルが作れちゃいます。

さて、そんなVRoid製モデルをVRChatへ持ち込む方法を書き残しておきます。いくらでも情報転がってるけど、あっちこっち見に行くのもしんどいしね、自分用。

アプリケーションのバージョン

予め準備しておきましょう。プラグインは導入済みという前提で話を進めていきます。新しいバージョンのものが出ていればそれを利用したほうがいいと思います。

※「VRCSDK3-Worlds」ではアバター作成ができません。「VRCSDK3-Avatars」の方ではAvatars 3.0のアバターが作成できますが、本記事はAV2のアバターを作成する内容となっていますので、「VRCSDK2」をダウンロードしてください。

※Unityは特定のバージョンでないと問題が生じます。Unityだけは何も考えず最新版を入れてしまわないように。

現在のUnityバージョンを確認する

Blender 2.8のキーマップを変更する(任意)

Unityとカメラ操作が違って混乱する!という方は、Blender側のキーマップを変更しておきましょう。PolyQuiltプラグインの「ゲームエンジン風キーマップをセットアップ」を利用します。

これで、右ドラッグで回転、中ドラッグで平行移動になります。右クリックメニューはそのまま使えます。

編集モードにするとこのプラグイン本来の機能であるPolyQuiltツールが増えます。使い方については割愛しますが、慣れてくると楽しいツールじゃないかなと思います。

それはそうと、本記事ではキーマップをBlender 2.7のものに設定しております。(Preferences>KeymapよりBlender→Blender 2 7 X)ただし、選択は左クリックにしてあります。

目次

  1. VRoid Studioでモデリングする
    1. VRoid上での注意点
    2. エクスポートする
  2. Blenderに持っていこう
    1. アイトラッキングとリップシンクを設定する
    2. ><の微調整
    3. ウェイトペイントで目の可動範囲を調整
    4. 更に目を調整する
    5. 腕と足の重複している頂点を結合
    6. マテリアル統合・テクスチャのアトラス化
  3. Unityと和解する
    1. テクスチャの設定
    2. ジオメトリ設定
    3. マテリアル割当
    4. Rigの設定
    5. シーンに投げ込む
    6. VRC向けの設定をしていく
    7. 表情をつけよう
    8. まばたきと待機モーションを追加する
    9. アクセサリーを付け足してみる
    10. Dynamic Boneを入れてダイナミックに行こうぜ
  4. 多分動くと思うからリリースしようぜ
    1. エラーに対処する

VRoid Studioでモデリングする

VRoid Studioの使い方については割愛します。

注意点としては、VRoid側で「基本色」や「かげ色」の設定はしないことです。白色にしておきましょう。

というのも、このままだとVRChatへ持ち込むにはマテリアル数がちょっと多いので、統合して減らす必要があるからです。

あー、いや、マテリアルは別に減らさなくてもいいけど他人のためにもマテリアル数は減らします。

マテリアルを統合すると個別に指定した色などは全てすっ飛んでいくので、テクスチャに直描きするわけです。

髪の色はテクスチャで。複数色の髪だとか、アクセサリも髪で作っちゃう場合は仕方ないのでマテリアル分離します。

VRoid上での注意点

太めの房を活用してポリゴン数が多くなりすぎないようにしましょう。最初から細かく作るのは大変というのもありますし。

特に、なめらかさの設定を上げすぎるとポリゴン数が多くなってしまうようなので、15~20付近を目安に作っていきます。とはいえ、目立つところは思い切って30~35ぐらいまで上げてしまっても大丈夫かと思います。

また、Dynamic Boneを導入する予定があるのであれば、「髪型編集>揺れもの」でボーンの設定をしておくと良いでしょう。

作業中分かりやすいようにボーン名を付けていますが、最終的に「HairJoint-~……」という長ったらしい名称に変更されてしまいますので、適当でOKです。

VRoid Studioで使用しているのはVRChatでは使えない「SpringBone」なので、揺れもののパラメータ設定はしなくてもOKです。

今回はOculus Questへの対応は行わないのでこのまま行きますが、Quest対応しようとなると目元のテクスチャを統合したり、服装の制限があったりと地獄が待っています。それについてはまた今度。

エクスポートする

出来上がったらVRM形式でエクスポートしましょう。

VRoid Studio v0.9.0からポリゴン数の削減やマテリアルの削減が行なえますが、今回は触りません。

自分はいつも2万ポリゴンぐらいで仕上がるのですが、少なくとも7万は超えないようにしてください。VRCSDKが中指立ててきますので。

Blenderに持っていこう

※CATSがバグるのでUIは英語にしておくこと。(正しく設定してあれば日本語でもOKなはずですが、英語のままで説明します。)

※Blenderくんはカジュアルにスッと落ちやがるので工程ごとに別名保存しておくこと。(重要)

CATSプラグインを使って自動で済ませます。

Nキーを押すと右側にメニューが出てくるので、CATSのタブを選択し、「Import Model」を押します。

VRMファイルを読み込んだら、すぐ下にある「Fix Model」を押します。殆どのことを勝手にやってくれます。えらすぎる……。

もし、モデルを大幅に弄るつもりでいるのなら、Fix Modelボタンの右にある設定ボタンから「Join Meshes」だけ外してFix Modelしておくと、身体や髪などのメッシュが分離されたままになるので弄るのが楽です。もちろん、出力時は統合しますが。

アイトラッキングとリップシンクを設定する

Eye Trackingの欄でアイトラッキングを作成します。

今回は自動まばたきを実装しないので、「Disable Eye Blinking」にチェックを入れました。

というのも、勝手にまばたきしてくれるのは嬉しいのですが、表情を変えたときに止まるように上手いこと制御しないと、閉じ目のときにまばたきが起き、目を更に閉じようとして潰れる事故が起きます。

目を閉じた状態で自動まばたきしてしまうとこうなる。

まばたき干渉の対処法としてNoBlinkSetterというのもありますが、今回はパスで。(当時の自分はうまく扱えなかったのと説明が増えるので。)

どうしてもまばたきしたい場合は、カスタムオーバーライドのIdleモーションだけに、2~3秒間隔ぐらいで手動で仕込んでおくのが手軽です。ただ、VRでのプレイ中はかなりの頻度で表情が変わるので人によってはあまり需要はないかもしれません。

HeadとLeft Eye、Right Eyeを確認し、Range値も問題なさそうであれば、「Create Eye Tracking」を押して作成し、Testingタブで動作確認を行ったら次はリップシンクを設定します。

リップシンクはVisemesの欄で「Create Visemes」を押すだけなのですが、MTH_Uの形状がかなり無理してるので変えたほうが良さそうとのことなので、AUIではなくAOIにしておきます。

Viseme OH:MTH_U MTH_O

VRoid側で口のサイズを変更していると、行き過ぎてしまう。

ここまでエラー無く処理できたのならば、一旦保存しておきましょう。

><の微調整

EyeExtraの位置調整をします。この表情を使わない人はやらなくてもいいです。

Bodyを選択し、シェイプキーの欄で一番下の「EyeExtra 01.M~」をクリックしてください。

そうすると埋もれていた><が目の前に出てきます。

><のメッシュのどこか1点を選択し、Lキーを押すか、Ctrlと+キーを連打して上手いこと全体を選択します。(右と左で分割されてるので両方選びます。)

恐らく微妙に肌に埋もれていると思うので、ほんの少しだけ前に移動させておきます。

よーし出来たぞ、出力だ!……といきたいところですが、まだまだやることがあります。

ウェイトペイントで目の可動範囲を調整

このままVRChatへ持っていくと、瞳がまぶたを貫通するので、ウェイトペイントで調整しておきます。

bodyを選択しておき、Object ModeからWeight Paintに切り替えます。

その際にVertex Selectionにモード切替をしておきましょう。

CATSからToolにタブを切り替えておき、ブラシのWeightを0.5ぐらいに設定。(ここはお好みで、貫通防止で少しキツめにしてます。)そのあとVertex GroupsでRightEyeを選択してSelectをクリックします。

すると、右目だけが選択されるので、ブラシで塗っていきます。

同じことを左目(LeftEye)でもやります。

次に、ブラシのWeightを1.0に戻してHeadに切り替えます。Aキーで全選択をして両目を塗っておきます。

尚、選択したところを一括で塗りたいときは、「Shift + K」で塗りつぶせます。

参考:Eye trackingの実装【VRChat技術情報】 – VRChatパブリックログ

更に目を調整する

目を閉じた状態で顔を下に向けると、やっぱり瞳がはみ出すので、閉じた目のシェイプキーだけ瞳の位置を後ろへ下げておきます。

全シェイプキーを変更するのは地獄なので、閉じ目だけです。弄るキーは次の通り。

  • EYE Close
  • EYE Close R
  • EYE Close L
  • EYE Joy
  • EYE Joy R
  • EYE Joy L
  • ALL Joy

まずは瞳の部分だけを選択します。ウェイトペイントをしたときと同様に、頂点グループから簡単に選択できるので、両目を選択しておきます。

前準備として、シェイプキーはBasisを選んだ状態で、白目に接触しないギリギリの位置まで瞳を後ろへ移動し、そのときのY座標をメモしておきます。

Basisの瞳の位置は下げておく必要はないので、座標をメモしたらCtrl + Zで元の位置に戻しておきましょう。(もし、Basisの状態で少し下げておきたいのであれば、そのあと全シェイプキーにブレンドを掛けておく必要があります。)

あとは、目を閉じているシェイプキーを選択して、Y座標に先程の座標を入れていきます。片目だけのシェイプキーは片目だけを選んだ状態で位置を下げましょう。

ここで大雑把に後ろに下げると、半目開けた状態などで瞳が白目の後ろに行ったりして行方不明になるので注意しましょう。

保存したか?油断すると落ちるぞ。

腕と足の重複している頂点を結合(任意)

これはやらなくても致命的ではないのですが一応。

頂点が結合されていないため、影が落ちたときに脇や足の内側に継ぎ目が入ってしまうことがあります。

腕と足だけを選択して、Alt + Mを押し、「By Distance(距離で)」を選んで重複している頂点を結合します。

面倒くさがってAキーで全選択して結合をすると、目や口で結合が起きてシェイプキーが大爆発すると思うので、顔は触らないように。多分大丈夫なはずですが、この工程を行う前に別名保存しておきましょう。

マテリアル統合・テクスチャのアトラス化

最後に、マテリアルとテクスチャをひとまとめにします。

統合前に一旦別ファイルとして作業状態を保存しておくと、後で変更したくなったときに融通が利きます。統合するのはワンクリックですが、統合してしまったものを分離するのは骨が折れますので……。

「Update Material List」を押してまとめたいマテリアルを選び、「Save Atlas to..」を押して保存します。

保存先はVRMファイルのあるフォルダ内です。

今回はひとつにまとめましたが、一部分だけ違うマテリアルを使いたいなど、そういった場合は分割しても良いでしょう。

もっと詳細にアトラス化したい場合は、「MatCombiner」を利用します。

CATSのすぐ下にMatCombinerがあると思いますので、先ほどと同様に「Update Material List」を押してまとめたいマテリアルを選び、「Save Atlas to..」を押して保存しましょう。

あれこれ試してみたところ、PropertiesでArtas sizeを「Quadratic」にしておくと正方形で出てくれます。

はい、出来ましたね。それではCATSタブに戻ってExportを押してFBXファイルとして書き出しましょう。Exportする際にマテリアルが多すぎる!と言われても「Continue to Export」 を選ぶことで書き出しが可能です。

※CATSのDecimationでポリゴン削減とかがやれますが、適当にやるとシェイプキーがすっ飛んでいったりするので、今回は触りません。服の貫通とかが気になる場合は、Hキー(メッシュ非表示)を駆使して素体部分をいくらか手動で削除すると良いでしょう。

Unityと和解する

ここからはUnityでの作業です。でもその前にテクスチャを修正しておきましょう。主にベースヘアの調整です。

クリッピングマスクと乗算レイヤーを使ってベースヘアに当たる部分を白から変更しておきます。「><(はぅ)」の表情もそのまま使うとおかしいと思うので、縦幅を少し潰して、目の間隔を広げておくといいかもしれません。

では、Unityと和解していきましょう。スクリーンショットはまだ2017だったときのものですが、2018もほぼ変わらないので大丈夫です。

新規プロジェクトを立ち上げたら、VRCSDKやVRCAvatarEditorなどをインポートします。

インポートが終わったら、FBXファイルとアトラス化したPNGファイルをAssetsに投げ込みます。

テクスチャの設定(Unity 2018から)

Assetsにあるテクスチャを選択し、右側のInspectorで「Streaming Mip Maps」にチェックを入れます。

これを忘れるとアップロード時にエラーが表示されてアップロード出来ません。但し、その際に「AutoFix」を選択することも可能です。

ジオメトリ設定

AssetsでFBXファイルを選択し、画面右上のInspectorタブに切り替え、Modelタブを選びます。

「Blend Shape Normals」を「Import」に切り替えておきます。これをやっておかないと、表情を変えるたびに髪の影とかがチラチラとして変な感じになります。

マテリアル割当

一番右のMaterialタブを選びます。

「Use External Materials (Legacy)」を選んでApplyを押します。(※自分はLegacyじゃないと上手く行かなかった)

Rigの設定

Rigタブに移動し、Animation Typeを「Humanoid」に変更します。

次に「Configre…」を押して設定していきます。

Headでエラーが出ているはずなので、Head内のJawに割り当てられているLeftEyeをNoneにします。ここはHairJointになっている場合もありますが、何が割り当てられていようとJawをNoneにすればOKです。

赤色のエラーが無くなったらOKです。

VRoid Studioでの調整具合によっては物凄くなで肩になるらしいので、必要に応じて肩の位置を調整します。VRChat上で動かしてみたときになんとも思わなければそのままで大丈夫です。

「Left shoulder/Left arm/Right shoulder/Right arm」の4つをちょっとだけ上に上げます。過剰に動かしたりして間違えると「Character is not in T pose」って怒られますので、怒られない範囲でお好みの感じに調整するといいかと思います。

左右で座標が違うとあまり宜しくないので、片方だけ調整してから、もう片方はX座標の正負を反転してコピペすると綺麗に左右対称になります。

X軸のRotationだけ弄ればいい感じ。変えるなら右のような感じ……?(なんともいえない)shoulderを動かした分だけarmを反対方向に回すとこうなります。

終わったら「Apply」を押します。

シーンに投げ込む

下準備の終わったFBXファイルをHierarchyにドラッグアンドドロップしましょう。

多分そのままでは灰色のモデルだったり、目元がパンダになっていたりするはずですが、落ち着いてBodyを選択します。

Inspector欄の下の方にシェーダーが選べるようになっているので、お好みのシェーダーを選択します。

何にするか困ったらUnlit/Transparent Cutoutとか選んでおきましょう。(ライティングの影響がないので、暗いところとかで目立ちますが……。)

「Opaque」が透過無しの通常のシェーダー、「Cutout」が透過部分を切り抜くシェーダー、「Transparent」が半透明を表現するシェーダーとなります。

VRoidモデルにおいては、基本は「Opaque」で、眉やアイラインなどの目元周りや服は「Cutout」を選んでおけば大体OKです。最低限覚えておくことは、「VRoidはCutoutが無いと死ぬ!」です。

VRM用の「MToon」だとか、その他人気のシェーダーをインポートしておいて使うのもありです。開発が終了していますが、VRChatでは「Arktoon-Shaders」がメジャーなようです。個人的なおすすめは「まんまるシェーダー3」です。まんまるシェーダーは比較的設定が難しくないことに加え、たとえ初期設定であってもほぼ事故らない感じでした。「Sunao Shader」とかもいいですね。

VRChat向けにしっかり作り込んでいくのなら、「Arktoon-Shafers」か「ユニティちゃんトゥーンシェーダー」ですかね。

VRC向けの設定をしていく

HierarchyでBodyが選択されている状態だと思うので、モデル名を選択します。

右側のInspectorで「Add Component」を選び、VRCと入力すると「VRC_Avatar Descriptor」が見つかると思うので選択します。

ここでは目線の高さやリップシンクの割当などを行います。

目と目の間に灰色の球体がめり込むように位置を調整します。このモデルでは、「X=0 Y=1.32 Z=0.085」で丁度いい感じでした。

設定を終えたら、その少し下にある「Lip Sync」をクリックして「Viseme Blend Shape」を選びます。

「Face Mesh」にBodyを割り当てたら、silからouまでチマチマと割り当てていきましょう。一括でやってくれるプラグインがあるって?せやね。

2020/04/02更新:Unity2018ではBodyを入れた時点で自動で割り当てられるようになりました。

表情をつけよう

はい、このままでは無表情なので、表情を付けていきましょう。上のメニューから「VRCAvatarEditor」を起動します。

Avatarを読み込むと、上のような感じになると思います。右上の「Auto Setting」をクリックします。

すると、VRCSDK内の「CustomOverrideEmpty」を元に「CO_モデル名」というファイルが作成され、表情の割り当てができるようになります。

アニメーションの保存先がAssets/モデル名/になってるのを、分かりやすいようAssets/Animation/にしといたほうがいいかもとかあるとは思いますが、とりあえずこのまま作ります。

各種スライダーで表情を作ったら、アニメーションクリップ名を決めて、「HandPose」欄でどのハンドサインに割り当てるか設定し、「Create AnimFile」を押して表情用のアニメーションファイルを作っていきます。

いつもの。

デスクトップモードの場合は、Shift + F1~F8で切替可能です。

「><(はぅ)」の表情は、真ん中あたりにある「EYE Extra」と一番下にある「EyeExtra 01……」を100に設定すると作れます。

それと、そのままだと口が半開きなので、「MTH Neutral」に100を設定しておきましょう。

えぇ?Animatorの欄がすっぽ抜けてるって?はは、知らんな……。

まばたきと待機モーションを追加する

先程「CO_モデル名」という名称のオーバーライドコントローラーを作成してハンドサイン別に表情を割り当てました。

そこに「IDLE」に待機モーションを入れてみましょう。

えー、アニメーションファイルは作るのめんどくさいので借ります。

VRChat向けIDLEアニメーション(BOOTH)

で、これをそのまま使うとちょっと動きが過剰な感じだと思ったので、控えめなバージョンを作りました。まばたきも入ってます。

改変版CQ_IDLE.anim

これも元データと同じくCC0とします。このデータをIDLEの場所に入れればOKです。

座ってるときの待機モーションは、このオーバーライドコントローラーをCtrl + Dで複製して、複製したほうのコントローラーをSitting Animationsの方に割り当ててからCQ_SittingIDLEをIDLE(※BOOTHにある元データでの名称)のところに入れます。

アクセサリーを付け足してみる

それBlender内でやれよって感じですが、ちょっとしたアクセサリーであればUnity内で取り付けられます。

sakuraの髪飾りを付け足してみたので、最初にArmature/Spine/Neck/Head内にドラッグアンドドロップしておきます。

後はいい感じの場所に適当に移動しておけばいいと思います。(投げやり)

ちなみにこれのせいでマテリアルが2個になってしまっていますが、まぁ。うん。

Dynamic Boneを入れてダイナミックに行こうぜ

Dynamic Boneは髪や服、しっぽなどを物理演算で揺らすことができるコンポーネントです。

お値段はUnity AssetStoreで17.87ユーロ。

Hierarchy欄でDynamic Boneを入れたいボーンを選択してから、Inspector側でAdd Componentを押してDynamic Boneを追加します。

次に上から2番目のRootの欄に、Dynamic Boneを入れたボーンをドラッグ・アンド・ドロップして入れておきます。

Dynamic Boneを入れたボーンの小階層は勝手に追従しますので、基本的にはこれでOKです。

もし、下の階層に揺れてほしくないボーンがある場合は、ExclusionsのSizeにその個数を入力して、その下のElementの中に揺れてほしくないボーンをひとつずつドラッグ・アンド・ドロップして入れておけば、そのボーンは揺れなくなります。

主に触る設定項目は4つ。それぞれふんわりと説明をすると、

Damping(減衰)

減速具合。いや、戻る速度って言うとそれはなんか違うんですが、抵抗感というか……。

ここの値が大きいと、揺れた後はゆっくりと元に戻り、小さいとすぐに戻ろうとします。

Elasticity(弾性)

弾力です。元の状態に戻ろうとする力ってところでしょうか。

大きい値を入れるとほぼ動かなくなり、小さい値を入れると揺れっぱなしになってなかなか収まらなくなります。

Stiffness(剛性)

ボーンの変形しやすさ、要するに物の硬さのようなイメージ。

値が大きいとあまり動かなくなり、値が小さいと大きく形を変えて揺れます。髪などの形が変わりやすいものを揺らすのであれば0に近い値を入れ、少ししなる程度の硬いものは大きめの値を入れます。

Inert(不活性)

アバターの位置変化に対してどの程度無視をするか……逆の言い方をすると動きに対する反応具合かな。

大きい値であるほど大きな動きをしなければ揺れないようになります。小さい値では、少しの動きでも揺れるようになります。

自分なりの解釈ですが、だいたいこんな感じかと。訳として正しくはないよなって思いつつも……。

Frictionは摩擦、Radiusは当たり判定です。(弄ったこと無い)

Gravityは重力設定で、Y方向に僅かにマイナス値を入れれば下方向の重力となるようなんですが、どうやらそんなに単純な話でもないらしく、考えなしに使うとコレジャナイ感が出てきたりします。Forceも力が掛かるという点は似たような感じなんですがよく分からず。フォースとともにあらんことを。

Freeze Axisで揺れる方向を一定方向(X,Y,Zの何れか)のみにできます。

Distant Disableは離れた相手にはDynamicBoneが反映されなくなるものですが、VRC内では勝手に有効になるそうです。

動作確認は再生ボタンを押してからSceneタブに戻ることで行えます。アバターを適当に動かしながら揺れ具合を確認してみましょう。再生中に変更した内容は保存されないので、終了前にパラメータをメモしておくように。

コライダーとかもあるけど、詳しくはググってくれよな!(投げた

多分動くと思うからリリースしようぜ

はい、あと一息です。上のメニューから「VRChat SDK」を選び、「Show Control Panel」を押します。

「Authentication」でログインしたら、「Settings」に移動して「Future Proof Publish」のチェックを外します。

チェックを外したら「Builder」に移動します。

あらやだExcellentね、素晴らしいわ。(※但しPCに限る)

DynamicにBoneを入れてなければExcellentかGoodになっているはずです。

何やら注意が出てますが、無視します。多分動くと思うからね。(ぐるぐる目)

はい、何も問題なさそうであれば、「Build & Publish」を押しましょう。

しばらくすると、Gameタブ内でAvatarの名前や説明などを設定する画面が起動しますので、入力していきます。右のイメージがおかしい場合は、SceneタブでCameraを移動すると調整できます。

エラーに対処する

  • LowerLeg is not first child of UpperLeg or Foot is not first child of LowerLeg:you may have problems with Shin rotations.

VRoidモデルお馴染みのエラーです。ボーンの階層構造に問題があるのですが、これについては下手に対処せず放置しておくのがベターなように思います。

  • Humanoid avatar must have head, hands and feet bones mapped.
  • Your avatar is humanoid, but its feet aren’t specified!
  • Your avatar is humanoid, but its upper arms aren’t specified!

Rig設定をHumanoidにしているにも関わらず、必要なボーンが存在しないと出てきます。Hierarchyでアバターを開くとArmatureとBodyが入っているはずですが、Bodyしかないときなど。一度Genericに切り替えてから再度Humanoidとして設定し、Sceneに投げ直してみましょう。

  • This avatar does not contain an Animator, and will not animate in VRChat.

Animatorがセットされていません。アップロードしたらTポーズのまま動かないとかはこれが原因です。勝手に入るはずですが、抜けていた場合はアバター直下にAdd Componentで追加しましょう。

  • This avatar has mipmapped textures without ‘Streaming Mip Maps’ enabled.

使用しているテクスチャに「Streaming Mip Map」のチェックが入っていません。これはAuto FixでOKです。

  • A Material on this avatar has custom shader keywords. Please consider optimizing it using the Shader Keywords Utililty.

多くの場合、触らなくても大丈夫です。MaterialのCustom Shader keywordsの警告については迂闊に触るとおかしくなります。Auto Fixで出てくるツールは本来不要なキーワードを削除するものですが、シェーダーのビルドで使用するものなど、必要なものも削除できてしまいます。「ユニティちゃんトゥーンシェーダー」や「MToonシェーダー」あたりが引っかかったりするようです。「Arktoonシェーダー」も古いバージョンではキーワードの過剰使用でパフォーマンスに影響が出るとのこと。

  • error updating content. Asset bundle upload failed. Failed to create file record.

VRCSDKの「Settings」に移動して「Future Proof Publish」のチェックを外しましょう。

  • アップロード時にUnityが凄く重いし、アップロードも時間がかかる。

「Future Proof Publish」はちゃんと外したかな?どうやらこれは万が一Unityのプロジェクトを消失させてしまったときに、VRChat側からプロジェクトをダウンロードできるようにするものらしい(?)のですが、第三者が不正にアバターを入手する入り口を用意してしまうようなものなのでチェックを外しておく方が良いのではないかと思います。多分関連するAssetsもアップロードしているのでその分重たく、遅くなってるのかと……。

Uploadを押す

押した。終わるまで待つ。

おめでとう!

鏡の前へレッツゴー

あー、うん。大丈夫そうですね。しゃがんだり、表情変えたり、動き回ってみましょう。

やったね、次はQuest版ですね!(やだー)

2020/04/02:Unity 2018向けの内容と手直し

2020/04/06:material-combiner-addonのこと忘れてたので追記

2020/04/24:閉じ目での瞳貫通対策を追加。FBXインポート時の設定を追記。

2020/04/25:Dynamic Boneやエラー内容について追記。

2020/04/29:リップシンクと重複している頂点の結合について追記。IDLEアニメーションの追加とRigの修正についても追記。その他微修正。

2020/05/06:Rig参考画像を追加。

2020/05/12:目次を追加。シェーダーについて少し追記。

2020/05/22:Blenderの下準備と使用するSDKのバージョンを更新。

2020/08/12:ブログの移行にあたってIDLEアニメのファイルがリンク切れになっていたのを修正。Avatars 3.0について言及。とんでもない誤字を修正。