VRChat 向けアバターを Resonite にインポートする方法

※2025/6/16追記
この記事で紹介しているResoniteImportHelperとは別に、Modular Avatar Resonite support (仮名)の開発が進んでいます。MA-Reso(仮)の方が手順は少ないので、説明を読んで分かる人はそちらを試してみるのもオススメです。
dinosaur-fossil.hatenablog.com


Resonite のアバターセットアップのめんどくさいトラブルシューティングをある程度解消してくれるツールが出てきたので、それの使い方と併せてアバターセットアップの一連の流れを解説します。

github.com

この記事の対象読者は次のような人を想定しています。

  • VRChat で Unity 使ってアバターアップロードしたことあるけど、Resonite はわからない人
  • Resonite Package 形式に対応していない VRChat 向けアバターや、Unity で改変したアバターを使いたい人
  • 1人でアバターセットアップをできるようになりたい人

▼ この記事で扱うこと

  • Resonite Import Helper の使い方
  • Resonite 内での最低限の設定
  • Resonite 内での見た目が明らかにおかしい設定の修正方法
  • 各種トラブルシューティング

この記事で扱わないこと

  • Unity の使い方
  • VRChat へのアバターアップロード方法
  • Resonite でのアカウント登録方法
  • Unity を使わずに Resonite へアバターをインポートする方法
  • Resonite Package の作り方、使い方
  • 衣装の着せ替えやアクセサリーの付け外しメニューの作り方
  • XiexeToon のいい感じの設定方法
  • DynamicBone の設定方法
  • ハンドサインやコンテキストメニューなどでの表情変更の設定方法
  • protoflux の書き方、解読方法

そもそも Resonite でできないこと

  • lilToon やカスタムシェーダーをそのまま使う
    • カスタムシェーダーは使えないので、Resonite で使えるマテリアル(シェーダー)を使ってそれっぽく再現するか、諦めてください
    • lilToon の機能で、下記のものはそのままは使えないことが分かっています。再現する人はがんばってください
      • メインカラー 2nd, 3rd
      • MatCap の乗算
      • MatCapMask
      • デカール
  • Unity の animator による表情制御や服の着せ替えなどをそのまま持ち込む
    • 2024/9/9時点ではできないので、Resonite にモデルをインポート後にギミックを再現するか、諦めてください

この記事の「2. Resoniteに3Dモデルをインポートし、アバター化する」以降の操作は、Resonite 上で複数人で行うこともできます。1人だと手に負えないと感じた場合、Resonite 民の知り合いに頼ってみたりするといいでしょう。もし、Resonite に知り合いがいないけど誰かを頼りたい場合、Resonite Japan という日本人 Resonite ユーザーの Discord サーバにて、「アバター設定依頼」というフォーラムがあります。そちらを頼ってみてください。
あるいは有償でも構わないので誰かに依頼したい場合は、ココナラなどで見つかるかもしれません。

Resonite Japan への招待リンク: https://discord.gg/resonite-japan
Resonite アバターセットアップ有償依頼: https://coconala.com/services/3423346

Resonite Japan のアバター設定依頼フォーラム

なお、Resonite の基本的な操作方法などについてたくさん書かれた文章を読みたい場合は Resonite 非公式日本語ガイドブック をご覧ください。
今のところ(※2024年12月時点)最も網羅的に日本語で説明がされているサイトな気がします。

resonite-jp-guide.zozoka.su


1. Unity のプロジェクトから 3D モデルを生成する。

まずは VRChat 向けの Unity プロジェクトを用意します。Unity のバージョンは 2022.3 が推奨みたいです(RIH v0.1.18 時点)。
VRChat Creator Companion (VCC) を使っていること前提です。VCC の導入方法などは各自調べてください。 Modular AvatarAvatar Optimizer などを使って、Unity 上でアバター改変していても構いません。
その他のさまざまな改変方法でも多分大丈夫なはずです。

なんかいろいろ改変してそうなVRCのアバタープロジェクト

まずは必要なツールを導入します。
今回導入するのは Resonite Import Helper というツールです。

まずは VCC で Resonite Import Helper を管理できるようにします。
VCC の [Settings] を選んで、[Packages] のタブから、 [Add Repository] を押して出てくる入力欄に下記の URL を入力します。

https://raw.githubusercontent.com/ksrgtech/vpm-repository/refs/heads/live/index.json

Settings > Packages > Add Repository > URL を入力 > Add

すると、画像のような確認メニューが出てくるので、Resonite Import Helper が含まれてるのを確認して [I Understand, Add Repository] を押してください。

ksrgtech packages に Resonite Import Helper が含まれてるのを確認して追加

次に、各アバターのプロジェクトの [Manage Project] を選択します。

アバターのプロジェクトの [Manage Project] を選択

デフォルトだと表示されてないので [Selected Repos] の箇所から先ほど追加したリポジトリを選択します。

Selected Repos から ksrgtech packages を選択

すると、リストに Resonite Import Helper が増えるので、右端の [Add Package] を押して追加してください。

Resonite Import Helper を Add Package で追加

これで準備完了です。通常通り Project を Unity で開きましょう。
Unity が起動したら、メニューから Tools > Resonite Import Helper を選択してツールを呼び出します。

Tools > Resonite Import Helper

出てきたウィンドウで言語設定ができるので、日本語に切り替えます。

言語が初期だと English になっているので、Japanese に変更

すると UniGLTF がインストールされていない場合は「UniGLTFがプロジェクトにインストールされていません。続行するにはプロジェクトヘインストールして下さい。」と警告が表示されていると思います。
表示されていたら、下の「自動的にUniGLTFをインストールする」のボタンでインストールしてください。

UniGLTF が入っていないとき。そのままボタンを押してインストールする

警告が消えたら準備完了です。早速変換してみましょう。
ExporterWindow の「変換するアバター」に、ヒエラルキー上のアバタードラッグ&ドロップしてセットします。

「変換するアバター」にヒエラルキーからアバターをセット

その後、「開始」ボタンを押してしばらく待ちます。
「変換されたアバター」の部分にアバターがセットされていたら成功です。
エクスプローラーで開く」ボタンを押すと、生成された 3D モデルのファイルの場所が開けるので開いておきましょう。

「変換されたアバター」にアバターがセットされていたら成功。「エクスプローラーで開く」をしておくとよい。

これで 3D モデルの生成は終了です。

Tips: Unity 上で変換がうまくいってるか確認する方法

RIH のウィンドウに生成された「変換されたアバター」をクリックすると、Unity 上の 3D モデルアセットに飛べます。

「変換されたアバター」をクリックすると 3D モデルに飛べる

その 3D モデルをシーンに追加して、見た目に破綻が無いか確認できます。
発色が悪いのはシェーダーが変わったからなので正常動作です。Resonite にシェーダーは持ち込めないので気にしないでください。
このとき、非表示にしてたはずのメッシュが表示されていたり、ブレンドシェイプの値が0になっていたりするのは(おそらく)仕様です。
メッシュの表示非表示やブレンドシェイプの値は Resonite 側で別途設定が必要です。手順については後述します。

3D モデルをシーン上に出して確認


トラブルシューティング: 色やアルファが消えた

左が Unity 上で色改変したもので、右が変換後の 3D モデル

これは lilToon でのカラー指定や色調補正で色改変をしている場合やアルファマスクを使用している場合に発生します。
この場合、RIH のウィンドウの [▶ 試験的機能] を開いて、「lilToonの設定を一枚のテクスチャーに焼く」にチェックを入れてから変換すると解決します。
この機能にチェックを入れると変換時間が長くなる&下手すると変換結果がおかしくなるみたいなので、通常はチェックを入れない方がいいみたいです。

なお、メインカラー 2nd に設定されてるやつはどうしようもないです。元テクスチャを編集していい感じにしてください。

試験的機能の「lilToonの設定を一枚のテクスチャーに焼く」で解決


トラブルシューティング: メッシュが壊れた
ドロワーズを履かせたらなんか壊れた

Avatar Optimizer などでベイクされたメッシュがうまく変換できない場合があるみたいです。これは UniGLTF のバグだと思うので、そのうち発生しなくなるかもしれません。(有識者の言)
とりあえずは壊れたメッシュをベイクしてそうな箇所のベイクをやめると壊れなくなると思います。Avatar Optimizer の場合は AAO Trace And Optimize の「スキンメッシュレンダラーを統合する」のチェックを外したり、AAO Merge Skinned Mesh コンポーネントを消したりするといいはず。

AAOの「スキンメッシュレンダラーを統合する」をやめる


トラブルシューティング: 非対応衣装がおかしくなる
わかりづらいけど、Chestボーンの大きさを変えて無理やり着せた部分がおかしくなっている

Modular Avatar を使って、非対応衣装などのスケールを弄って無理やり着せた箇所がおかしくなる場合があるみたいです。これは UniGLTF のバグだと思いますけどよくわかりません。
たぶん Modular Avatar を使うのをやめてキセテネとかに回帰したら回避できると思いますが、今更キセテネを使いたくないですよね……。誰か回避策を思いついたら教えてください。


トラブルシューティング: なんかデカくなった
ちっちゃくしているアバターのモデルが大きくなる

Unity のシーン上で、アバターのルートスケールを変更してると起きるっぽい。
Resonite へのインポート自体には影響は無いですが、RIH の試験的機能を使うと解消することができます。
RIH のウィンドウの「試験的機能」をクリックして内容を開きます。「ルートのスケールをアーマチュアに適用する」にチェックを入れてから実行してください。

試験的機能 > ルートのスケールをアーマチュアに適用する


2. Resoniteに3Dモデルをインポートし、アバター化する

Resonite Import Helper で生成した .gltf ファイルを Resonite にインポートして、アバタークリエイターを使ってアバターにします。

まずは Resonite を起動して、アカウント登録してログインします。
やり方はこちらなどを確認してください。
ログインできていないと問題がある*1ので、以後の手順は必ずログインした状態で行ってください。

note.com

Resonite を起動してログインしたら、ゲーム内でアバターインポート作業を行います。
この作業を行うのはどこでもいいといえばどこでもいいんですが、権限周りをいい感じに設定済みの「アバターインポートするだけのワールド」というワールドを用意しているので、特にこだわりがなければこのワールドで行ってください。

uni-pocket.com

ワールドは次の手順で開きます。
まずダッシュメニューを開きます。Quest を使っている人は A/X ボタンで、デスクトップモードの人は Esc キーで出てくるメニューです。

ダッシュメニューの下部にあるタブのうち、「ワールド」を選択します。
「全てのワールド」を選んでから上部の検索欄に "avatar import" などと入力するとアバターインポートするだけのワールドが表示されるはずです。

ワールド > 全てのワールド > avatar import で検索

アバターインポートするだけのワールドを選択すると、ポップアップメニューが表示されるので、「セッション開始」を選びます。

セッション開始く

しばらく待つと、アバターインポートするだけのワールドが開きます。

アバターインポートするだけのワールド。デカいミラーとかアバター設定時に使えるツールとかが置いてある。

Tips: プライベートセッションで作業をしたい

そのままワールドを開くと、だいたいの人がパブリックでワールドを開くことになります*2。 プライベートで作業をしたい場合は、ワールドを開いた後にアクセスレベルをプライベートにしましょう。

ダッシュメニューを開いて、下部の「セッション」タブを選択し、上部のタブから「設定」を選んで、アクセスレベルの「プライベート(招待のみ)」の右にあるチェックを入れます。
これでプライベートワールドになりました。招待のみとあるように、フレンドへ招待を送るとそのフレンドは入ってこれます。

セッション > 設定 > プライベート(招待のみ)


それではアバターをインポートしていきますが、Resonite がデスクトップ側で全画面モードで表示されているとこの後の作業がめんどくさいので、全画面モードをやめましょう。

ダッシュメニューを開き、下部の「設定」タブを選択し、左の「グラフィック」カテゴリを選びます。「解像度」の箇所に「フルスクリーン」の設定があるので、緑色になっていたら選択して白にしておきましょう。

設定 > グラフィック > 解像度 > フルスクリーン をオフ

それではアバターファイルを Resonite に読み込ませます。Resonite Import Helper で生成した gltf ファイルのフォルダと、Resonite のゲーム画面を並べて表示します。
gltf ファイルを Resonite のゲーム画面に向けてドラッグ&ドロップします。

gltf ファイルをエクスプローラーから Resonite へドラッグ&ドロップ

VRの場合は、ダッシュメニューの下部の「デスクトップ」を選ぶと、Resonite を起動してる PC のデスクトップ画面が映って操作できます。トリガー(Quest だと人差し指のボタン)を1回押すとクリック、長押しで動かすとドラッグできるので、VR を外さずに操作もできます。

VR モードで「デスクトップ」タブから操作している様子

Tips: VR モードからデスクトップモードに切り替える

VR モードで起動した人は、HMD を外すとデスクトップモードにシームレスに切り替えできます。
自動切替ではなく手動で切り替えたい場合は、ダッシュメニューの「設定」から、「デバイス」の「VR」の「VRホットスイッチ」をオフにして、キーボードで F8 キーを押すと明示的に切り替えることができます。

設定 > デバイス > VR > VRホットスイッチ をオフにすると自動切替じゃなくなる


さて、モデルインポーターが出てきたら、「高度な設定」を選びます。
するといろいろ出てくるので、下記の内容を変更します。
高度な設定では内容が多いためスクロールできます。VR モードの場合はトリガー(Questの場合は人差し指のボタン)を押しながら上下に動かすとスクロールできます。

  • マテリアル: 左に3回操作して XiexeToon にする。
  • 「法線(ノーマル)を計算」と「接線(タンジェント)を計算」のチェックを外す。
  • 「アセットをオブジェクト内に入れる」のチェックを入れる。

高度な設定を選んで、変更する箇所。スクロールできる。

これらの設定をした後、インポート実行を押してください。しばらく待つとアバターのモデルが出現します。出現したアバターはまだ触らないでください

3D モデルをインポートした直後。まだ触ってはいけない。

トラブルシューティング: 間違えてアバターを触ってしまった
アバターインポート直後にアバターを動かしてしまった様子。ぐちゃっとなる。

インポート直後にアバターを動かしてしまうと、アバターの形が変な形になってしまい、正常にアバター化できなくなってしまいます。

もし誤って動かしてしまった場合は、操作を戻しましょう。
コンテキストメニューを開きます。Quest の場合は B/Y ボタンを押して、デスクトップモードの人は T キーで出てくるメニューです。

コンテキストメニューの「戻す」を押すと直前の操作が戻せる*3ので、インポート直後の T ポーズや A ポーズの状態になるまで戻してください。
戻りきらなかったらインポートしなおしてください。

コンテキストメニューの「戻す」


トラブルシューティング: なんかデカくなった

インポートしたアバターがクソデカだった場合、インポート時のスケールを変更することで対応できます。(なお、筆者は手元で遭遇したことはないので、だれか遭遇したら発生例を教えてください。)

クソデカアバターは取り敢えず消します。消し方は後述の「Tips: インポートしたアバターを消したい」で説明してます。

再度 3D モデルをインポートします。モデルインポーターの一番上のスケールが初期状態だと 1m なので、モデルに合わせて適当に縮小してあげます。おそらく大抵の場合は 0.01 でいいはずです。

スケールを 0.01 にする


Tips: インポートしたアバターを消したい

インポート設定を間違えたり、インポート作業をやめたかったりでアバターを消したい場合は、グラブして破棄しましょう。

アバターの頭あたりにレーザーを当ててグラブし(Quest の場合は中指で握るボタン、デスクトップの場合は右クリック長押し)、コンテキストメニューを開きます(Quest の場合は B/Y ボタン、デスクトップの場合は T キー)。
コンテキストメニュー内の「破棄」を押すとワールド内から削除できます。

アバターをグラブ > コンテキストメニュー > 破棄


この時点で判明する下記のような問題のトラブルシューティングは、「3. Resonite 側でのトラブルシューティング」の章で詳しく解説しています。いったんは無視して先に進んでください。

  • 影がなんか変
  • 非表示にしてたはずのものが表示されてる
  • シェイプキーが戻ってる
  • 画像の透過が消えてる
  • 服の裏地が消えてる

それではアバター化をしていきます。

アバターの正面に回り込んでから、アバタークリエイターを取り出します。
ダッシュメニューの「ホーム」の左にある「アバタークリエイター」を押して、ダッシュメニューを閉じます。

ホーム > アバタークリエイター

トラブルシューティング: アバタークリエイターが出てこない

アバタークリエイターを取り出そうとしたら、「ここで物をスポーンスポーンすることはできません」と表示される

アバタークリエイターを使うには、Builder 権限が許可されている必要があります。これはワールドやセッションごとに違います。

もし自分がワールドを立てていて Bulider 権限が無い場合、今作業しているワールドでは Bulider 権限は禁止されています。別のワールドで作業してください。今の作業途中のアバターを破棄して、今いるワールドは閉じてしまいましょう。
ダッシュメニュー下部の「ワールド」タブから、作業ワールドの右上の赤い×ボタンを押します。その後、「閉じる」ボタンを押してワールドを閉じます。

ワールド > ×ボタンで閉じる

誰が立てているワールドへ参加した場合、そのセッションのホストの人に権限を貰ってください。

セッションホストの人に、次の操作をしてもらってください。
ダッシュメニュー下部の「セッション」タブを開きます。上部の「権限」タブを選んで、自分のユーザー名の横の権限を Builder にしてもらってください。

セッション > 権限 > Builder

Builder 権限を貰えなかったら、別のワールドを自分で立てて作業しましょう。


ワールド内に出現したアバタークリエイターを、アバターの 3D モデルに合わせていきます。

アバタークリエイター

アバタークリエイター: VR モードの場合
アバタークリエイターを VR モードで合わせている様子

VR モードの場合は、アバタークリエイターを直接掴んでアバターに合わせてあげるのがたぶん早いです。

まずは頭を掴んでアバターの頭の近くに運びます。このときの位置はだいたいでいいです。
次に、アバタークリエイターのパネルにある「〇〇を揃える」ボタンをぜんぶ押します。
その後、アバタークリエイターの頭部分の前後上下の位置を調整したければ再度動かして、揃えるボタンを押します。
手の回転だけはどうやっても揃わないので、アバタークリエイターの手の部分だけ直接グラブして(Quest なら中指のボタンで握る)、手首の位置をなるべく変えずに回転を合わせます。
最後に「作成」ボタンを押して完了です。

アバターが宙に浮いてて途中の操作がやりづらい場合は、コンテキストメニュー(Quest の場合は B/Y ボタン)を開いて「移動方法」を「フライ」にすると空を飛べるようになって多少やりやすくなると思います。


アバタークリエイター: デスクトップモードの場合

デスクトップモードの場合は、途中の回転操作がやりづらいので、アバタークリエイターをギズモから操作する方がやりやすいと思います。

最初に、Dev Tool を装備します。デスクトップモードでは数字の2キーを押すと装備できます。テンキーの方だと反応しないので、通常のキーで操作してください。

Dev Tool を装備してる様子。ツールを装備していると手を前に出す姿勢になる。

その後、アバタークリエイターに向けてレーザーを当てた状態で R キーを押して選択状態にします。選択状態中はギズモ(3軸の矢印)とバウンディングボックス(水色の点線のボックス)が表示されます。
選択状態で、コンテキストメニューを T キーで開き、「インスペクターを開く」を選ぶと、選択したスロット*4のインスペクターが開きます。

選択中に「インスペクターを開く」

インスペクター上の左上の2つ並んでる謎のアイコンのボタンの左側を1回押して、表示している階層に Avatar Creator が表示されるようにします。
その後、Avatar Creator の名前をダブルクリックしてインスペクターに詳細を表示し、「回転」のリセットボタンを押します。Rotation が x:0, y:0, z:0 になってたらよいです。
アバタークリエイターのインスペクターはまだ使うので、閉じずに脇に置いてください。

Avatar Creator を選択 > 回転のリセット

アバタークリエイターの回転をリセット

その後、アバタークリエイターの頭部分を右クリック長押しで掴んでアバターの頭の近くに運びます。このときの位置はだいたいでいいです。
アバタークリエイターのパネルにある「〇〇を揃える」ボタンをぜんぶ押します。

アバタークリエイターの「〇〇を揃える」ボタン

インスペクターに戻って、位置の微調整をします。
頭の位置の調整をする場合は、インスペクター上で Headset をダブルクリックして選択します。出てきたギズモをクリック長押しで移動させて位置調整をしてください。

Headset を選択して、ギズモを操作して位置合わせ

続いて、インスペクターで RightHand を選択して回転のリセットをした後、 Rotation の y に 90 か -90 を入力します。T ポーズのアバターならだいたい揃います。

RightHand を選択 > 回転のリセット > Rotation の y に 90 を入力

A ポーズアバターの場合や回転を微調整したい場合は、RightHand の回転をギズモから操作します。
RightHand が選択された状態で、コンテキストメニューの「ギズモオプション」の「回転」を選ぶと回転用のギズモが表示されます。右クリック長押しで操作して調整してください。

RightHand を選択 > ギズモオプション > 回転 > ギズモを操作

最後にアバタークリエイターの「作成」ボタンを押して完了です。

アバタークリエイターの「作成」ボタン


Tips: 空を飛ぶ

アバターが宙に浮いてて途中の操作がやりづらいときが何度かあると思います。その場合は空を飛びましょう。

コンテキストメニュー(Quest の場合は B/Y ボタン、デスクトップの場合は T キー)を開いて「移動方法」を「フライ」にします。この状態で上を向いて前進、あるいは下を向いて後退すると空を飛べるようになって多少やりやすくなると思います。また、デスクトップモードの場合は Space キーで上昇、C キーで下降できます。

移動方法 > フライ

VR モードの人で、移動方法を設定から変えることもできます。

ダッシュメニュー(Quest の場合は A/X ボタン)を開いて、下部の「設定」タブから「操作」カテゴリを選びます。
下の方にある「移動」の中の「頭の向きに移動する」をオフにすると、コントローラーの向きに移動できるようになります。

設定 > 操作 > 移動 > 頭の向きに移動する をオフ


トラブルシューティング: 作成ボタンが押せない
作成ボタンが押せない。破線部分にメッセージが出ている

作成ボタンが押せず、メッセージが表示されているときは、ログインできていないか、ローカルホームという特殊なワールドで作業しているときだと思われます。ログインしてからワールドを開き直すと作成できるようになります。(表示されてるメッセージは未ログイン状態が想定されていないみたいです。)
現在の作業を保存することはできないので、ログイン後にワールドを開き直してから再度行ってください。

ダッシュメニュー(Quest だと A/X ボタン、デスクトップだと Esc キー)の下部の「ホーム」タブを選んで、左上の「ログイン / 登録」ボタンからログインしてください。

ホーム > ログイン / 登録

その後、一度さっきまで作業していたワールドを閉じましょう。閉じる前に作業途中のアバターを破棄しておきましょう。
ダッシュメニュー下部の「ワールド」タブから、作業ワールドの右上の赤い×ボタンを押します。その後、「閉じる」ボタンを押してワールドを閉じます。

ワールド > ×ボタンで閉じる

ワールドを閉じた後は、再度ワールドを開き直してください。これでログイン状態でワールドに接続できるので、作成ボタンが押せるようになります。


アバタークリエイターでアバター化が完了したら、以後はアバターを掴んで動かしても大丈夫です。アバター化が完了したら、何はともあれひとまずアバターを保存しましょう。
保存せずにワールドを閉じたり、Resonite が終了したりすると今までの Resonite の作業が消えてしまうので、こまめに保存してください。

アバターをグラブして(Quest なら中指で握るボタン、デスクトップなら右クリック長押し)、ダッシュメニューを開きます(Quest なら A/X ボタン、デスクトップは Esc キー)。 下部の「インベントリ」を選択し、上部の「掴んでいるものを保存」ボタンをクリックします。
インベントリの一番右下にアバターのサムネイルが追加されれば成功です。また、画面上部にサーバへのアップロードの進行状況が表示されます。

アバターをグラブする > インベントリ > 掴んでいるものを保存

Tips: インベントリのデータを削除する

間違って保存したデータや、もう不要なデータをインベントリから削除したいときは、削除したいものをクリックで選択して「選択アイテムを削除」ボタンをダブルクリックしてください。

インベントリ > 削除するアイテムを選択 > 選択アイテムを削除(ダブルクリック)


Tips: インベントリにフォルダを作りたい

何も掴んでいない状態だと、フォルダ作成ボタンができます。

ダッシュメニューを開いて、下部の「インベントリ」タブを開きます。
上部の「フォルダ作成」ボタンを押すと、フォルダ名を入力するポップアップが出るので、好きな名前を入力して作成を押します。(ポップアップに外部リンクって出てるのは Resonite のバグです。気にしないでください。)

インベントリ > フォルダを作成 > フォルダ名を入力 > 作成

保存したいものを新規に作成したフォルダに保存するには、そのフォルダをダブルクリックで開いた状態で保存する必要があります。

作成したフォルダを開いている様子。左上に開いている階層が表示されている。

なお、フォルダ間移動やフォルダ名の変更などの機能は 2024/9/15 時点で存在しません。すでに保存したもののフォルダを移動させたい場合は、移動元に保存してあるアバターをダブルクリックで取り出して、移動先のフォルダを開いて保存して、移動元のデータを削除しましょう。


トラブルシューティング: 保存ボタンが押せない
保存ボタンが押せない状態。Resonite Essentials を開いている。

他人のパブリックフォルダなど、自分が保存できる場所を開いていないと保存ボタンが押せないようになります。自分が保存できる場所へ移動すると保存できるようになります。

インベントリのメニューの上部にある「インベントリ一覧」ボタンを押して、「Personal」を選ぶと自分の保存できる領域に戻れます。

インベントリ一覧 > Personal

「インベントリ一覧」のボタンも押せない状態になっている場合、ログインができていません。

インベントリ一覧が押せない

その場合は、ダッシュメニューの「ホーム」タブの左上の「ログイン / 登録」ボタンからログインしてください。

ホーム > ログイン / 登録


トラブルシューティング: 同期エラーと表示される

同期エラーと出た場合、原因がいろいろ考えられるので、この記事では取り上げません。以下に考えられそうな原因の例を上げます。

たぶん対処がわからないと思うので、Resonite Japan の Discord などで質問してみてください。

discord.gg


3. Resonite 側でのトラブルシューティング

さて、アバター化が終わってインベントリに保存できたら、Resonite 側で修正できる調整をします。Resonite で設定変更するためには Dev Tool というアイテムを使って操作する必要があります。

ダッシュメニューを Quest なら A/X ボタン、デスクトップモードなら Esc キーで開いて、下部のインベントリを開きます。 一番上の階層に誰でも Resonite Essentials というフォルダがあるので、そこから Resonite Essentials > Tools とダブルクリックで開きます。
そこの一番左上の Dev Tool をダブルクリックで取り出します。

インベントリ > Resonite Essentials > Tools > Dev Tool

取り出した Dev Tool に向かってトリガー(Quest なら人差し指のボタン、デスクトップならクリック)をすると、装備メニューが出るので装備しましょう。

Dev Tool をトリガー > Development Toolを装備する

Dev Tool を装備できたら、手にツールがくっつきます。

Dev Tool を取り出してから装備するまで。装備すると手にくっつく。

トラブルシューティング: Dev Tool が装備できない
Dev Tool を装備しようとしたら赤いメッセージが出る場合

Dev Tool を使うには、Builder 権限が許可されている必要があります。これはワールドやセッションごとに違います。Builder 権限が与えられてない場合は、Dev Tool を装備しようとすると、画像のように "You don't have permission to equip this." と赤文字で表示されます。

もし自分がワールドを立てていて Bulider 権限が無い場合、今作業しているワールドでは Bulider 権限は禁止されています。別のワールドで作業してください。今の作業途中のアバターを破棄して、今いるワールドは閉じてしまいましょう。
ダッシュメニュー下部の「ワールド」タブから、作業ワールドの右上の赤い×ボタンを押します。その後、「閉じる」ボタンを押してワールドを閉じます。

ワールド > ×ボタンで閉じる

誰が立てているワールドへ参加した場合、そのセッションのホストの人に権限を貰ってください。

セッションホストの人に、次の操作をしてもらってください。
ダッシュメニュー下部の「セッション」タブを開きます。上部の「権限」タブを選んで、自分のユーザー名の横の権限を Builder にしてもらってください。

セッション > 権限 > Builder

Builder 権限を貰えなかったら、別のワールドを自分で立てて作業しましょう。


トラブルシューティング: 装備すると移動方法が変わる (VR モードの Index 以外)

VR モードの Index ユーザー以外がなるっぽいです。
Dev Tool などの特定のツールを装備していると移動方法が制限されてしまいます。Resonite の仕様です。
装備を外すと元の移動方法に戻ります。

ツールが手についてると移動方法が変わることがあるので、「装備を外す」でツールを外すとよいです

また、ツールを外してしまうと、もう一度使いたいときにワールドのどこにツールがあるか見失ってしまうことがよくあります。
Resonite にはツールシェルフというツールを一時的に保持しておける機能があるので、それを使ってツールの付け外しをするとよいです。

ツールシェルフは腕に付いている半透明の板のことです。

腕の上にある謎の半透明の板がツールシェルフ

ツールを外したくなったときに、このツールシェルフに向かってトリガー(Quest なら人差し指のボタン)を押すと、ツールが外れてツールシェルフの上に乗っかります。
再度ツールを装備したい場合は、ツールシェルフの上に乗っているツールに向かって再度トリガーをします。
この機能でツールの付け外しが簡単にできます。

ツールシェルフを使って装備の取り外し


Dev Tool を装備した状態で、編集したいものを選択して、インスペクターというものを開きます。

Dev Tool を装備した手で、編集したいものに向けてレーザーを当てます。その状態でセカンダリー(Quest だとスティック押し込み、デスクトップだと R キー)を押すと、ギズモ(3軸の矢印)とバウンディングボックス(水色の点線のボックス)が表示されます。
この状態で、Dev Tool を装備した手でコンテキストメニュー(Quest だと B/Y ボタン、デスクトップだと T キー)を開いて「インスペクターを開く」を選ぶとインスペクターを取り出せます。このとき、レーザーが選択したオブジェクトを向いていないほうが操作がしやすいです。

セカンダリーで頭を選択し、コンテキストメニューのインスペクターを開く

出てきた黒い板がインスペクターです。これを使ってアバターの内部設定を編集します。

黒い板ことインスペクター。左側に階層構造、右側に選択したスロットの詳細が表示される。

インスペクター内の階層の移動方法に絞って説明します。

① インスペクターで選択中のスロット*5は名前が黄色く表示されます。選択中のスロットの詳細は右側に表示されています。別のスロットを選択したい場合、選択したいスロットの名前部分をダブルクリックします。
② 左上に2つ並んでいるボタンはインスペクター左側の階層構造を上に移動できます。右側のボタンを押すと1階層上を表示し、左側のボタンを押すとオブジェクトルートを表示します。
③ 右上のボタンは、選択中のスロットを階層構造の一番上として表示します。②のボタンで上に戻りすぎたときなどに使ってください。
④ 階層構造の名前の先頭にある▶をクリックすると、その子階層が表示されます。選択したいスロットの階層まで子階層を開いていって、名前をダブルクリックして選択してください。文字が小さすぎて見えなくなった場合は適当な孫階層を選択して、③のボタンを押すとよいです。

Dev Tool の使い方はこちらの記事でも解説されてます。理解しやすいもので使い方を把握してください。

note.com

note.com

それでは、アバターの各種トラブルシューティングです。

トラブルシューティング: 目がギョロギョロする

目の動きが大きすぎ

割と多くのアバターで発生します。
Head の下にある Eye Manager というスロットを開きます。DevTool を装備して、頭にレーザーを当ててセカンダリー(Quest ならスティック押し込み、デスクトップなら R キー)をして選択してからインスペクターを開くと探しやすいです。
Eye Manager に付いている EyeRotationDriver の MaxSwing が初期値だと 30 になっているのを 5 に下げましょう。

Eye Manager > EyeRotationDriver の MaxSwing を 5 などに下げる


トラブルシューティング: 影がなんか変

影が2箇所に出てる? 左から光が当たってるはずなので右側にのみ影が出てほしい。

この現象はメッシュの法線がひっくり返ってると発生します。なぜひっくり返ってしまうかは原因不明です。Resonite 内で法線の反転をして対応します。

まずは法線がひっくり返っているメッシュを探します。
Dev Tool を装備してアバターを選択してからインスペクターを開き、アバターのルートを開きます。たいていのアバターであれば、CenteredRoot の下の ROOT の子に SkinnedMeshRenderer のスロットがあるので、問題のスロットを選択します。
右側に表示された SkinnedMeshReneder の Mesh にある ↑ ボタンを押しましょう。

顔のメッシュの Body を選択 > SkinnedMeshReneder の Mesh の横の ↑ ボタンを押す

するとメッシュ情報のパネルが出てくるので、下部にある「法線を反転」ボタンを押してください。しばらく待つと法線が反転して表示されます。これで修正完了です。

法線を反転

そもそも影なんて邪魔だぜ! という方は、マテリアルを修正しましょう。

先程の SkinnedMeshRenderer の表示されたインスペクターの Materials (list) の下に表示されたリストの ↑ ボタンをおしてください。

SkinnedMeshRenderer の Materials (list) の ↑ ボタン。複数ある場合はマテリアルが複数使われている。

出てきたパネルを下にスクロールして、ShadowRamp に設定されている影テクスチャを Clear で消すとアバター側の影が消えます。※ワールドライトによる影は消えないので、全部の影は消えないです。

この操作を影を消したいメッシュのマテリアル全てに行ってください。

ShadowRamp の影テクスチャを Clear して消すと影が一部消える


トラブルシューティング: 非表示にしてたはずのものが表示されてる

Unity 上で表示されてない耳やジャケットが表示されてる

RIH で出力したモデルは全てのメッシュが表示されています。これは仕様なので、Resonite 側で非表示にしてあげる必要があります。

まずは非表示にしたいメッシュを探します。
Dev Tool を装備してアバターを選択してからインスペクターを開き、アバターのルートを開きます。たいていのアバターであれば、CenteredRoot の下の ROOT の子に SkinnedMeshRenderer のスロットがあるので、非表示にしたいスロットを選択します。
非表示にしたいスロットを選択した後、右側に表示されてる Active のチェックを外してオフにします。するとメッシュが非表示になります。
非表示のスロットはインスペクター上で名前が灰色になってます。

非表示にしたい SkinnedMeshRenederer のスロットを選択して Active をオフ


トラブルシューティング: 服が一部脱げてたり腕や脚がぐにゃぐにゃしてたり。

リスティちゃんっ……! 腕がッ!!

コンストレイントが使われてるアバターだけどこうなってしまいます。ところでコンストレイントって何ですか?
コンストレイントについてよく知らないですが、見た目をそれっぽく修正する方法はわかります。

アバター化した後のアバターのインスペクターを開きます。アバターのルートの VRIK にある IKPositionWeight を 0 にします。

アバター > VRIK > IKPositionWeight を 0 にして T ポーズ or A ポーズにする

その後、コンストレイントが使われてそうなボーンを、追従して動いてほしいヒューマノイドボーンの下に移動させます。今回のリスティちゃんのパターンでは、Shoulder の下にある腕のコンストレイントボーン?を Upper_Arm の下に移動させます。他にもぜんぶやります。

AimTwiUpper Arm.L を Upper_Arm.L の下に移動させる

すべてのコンストレイントボーンを移動させたら、アバターのルートのインスペクターを再度開き、 VRIK の IKPositionWeight を 1 にして元に戻します。
以上で見た目はマシになります。

左腕のボーンの位置を変えて、IKPositionWeight を 1 に戻した後の様子


トラブルシューティング: シェイプキーが戻ってる
設定していたはずの顔のシェイプキーが消えてる?

Resonite にインポートしたモデルは、全てのブレンドシェイプが0にリセットされています。これはおそらく仕様なので、Resonite 側で再度設定してあげる必要があります。
また、もし Resonite 側で動かす想定が無いブレンドシェイプなら、Avatar Optimizer の Freeze BrendShape コンポーネント等で固定化してしまうのも手です。

まずはブレンドシェイプを調整したいメッシュを探します。
Dev Tool を装備してアバターを選択してからインスペクターを開き、アバターのルートを開きます。たいていのアバターであれば、CenteredRoot の下の ROOT の子に SkinnedMeshRenderer のスロットがあるので、非表示にしたいスロットを選択します。

下の方にスクロールしていくと、BlendShapeWeights (list) というのがあります。ここがブレンドシェイプのリストなので、Unity 上で設定していた値を再度設定してあげます。
ここで注意ですが、Unity では 0~100 の範囲で値を設定しますが、Resonite では 0~1 の範囲で値を設定します。Unity 上で 30 の設定をしていた場合、Resonite では 0.3 で設定しましょう。

BlendShapeWeights のブレンドシェイプを設定する

また、紫色になっている箇所は、Resonite のコンポーネントから値を常に上書きされている状態のため、そのままでは編集できません。
初期状態だとおそらくリップシンク用のコンポーネントによって動かされている状態ですが、その上書きをやめたい場合、紫色になっているブレンドシェイプの名前の隣りにある謎のボタンを押して、「リンク/ドライブの切断」を選ぶと上書きをやめることができます。

リンク/ドライブの切断

リンク/ドライブの切断をするとブレンドシェイプが編集できるようになる


トラブルシューティング: 画像の透過が消えてる
顔の頬染め部分がベタ塗りになってしまう

画像に透過が使われている場合、RIH v0.1.11 時点では透過情報がテクスチャから失われてしまいます。透過情報が消える前のテクスチャを別途インポートし、設定してあげる必要があります。

Unity のプロジェクトや、配布の zip ファイルの中から、透過情報が失われていないテクスチャを探します。もし lilToon のアルファマスク機能を使っていた場合、透過情報を合成してひとつのテクスチャにしてください。lilToon 「アルファマスクを焼き込み」機能を使うと簡単に合成できます。

lilToon の「アルファマスクを焼き込み」

透過情報入りのテクスチャファイルを Resonite の画面へドラッグ&ドロップすると、画像インポーターが出現します。「画像/テクスチャ」を選んでインポートしてください。

画像インポーターの「画像/テクスチャ」

続いて持ち込んだテクスチャを設定したいメッシュを探します。
Dev Tool を装備してアバターを選択してからインスペクターを開き、アバターのルートを開きます。たいていのアバターであれば、CenteredRoot の下の ROOT の子に SkinnedMeshRenderer のスロットがあるので、テクスチャを設定したいスロットを選択します。
SkinnedMeshRenderer の Materials (list) から、透過テクスチャであるべきマテリアルを探して ↑ ボタンを開いてマテリアルの設定パネルを出します。

SkinnedMeshRenderer の Materials (list) からそれっぽいのを探して ↑ ボタン

マテリアルのパネルの MainTexture の箇所に、先程インポートした画像を設定します。画像をグラブ(Quest だと中指で握るボタン、デスクトップだと右クリック長押し)して、MainTexture の箇所にレーザーを当ててトリガー(Quest だと人差し指のボタン、デスクトップだとクリック)すると、画像を設定できます。
その後、BlendMode を Alpha に変えます。するといい感じになります。

MainTexture に透過ありの画像を設定し、BlendMode を Alpha にする
画像を設定して、BlendMode を変える様子

ただし、BlendMode が Alpha のマテリアルは、他の半透明のものが重なったときに消えてしまう事故が起きてしまうことがあります。その対策もしておきましょう。

半透明テクスチャを使っている SkinnedMeshRenderer に戻って、SortingOrder の値を -32678 にするとたぶん消えなくなります。
これでも消えてしまう場合は、他の設定を頑張るか、Alpha を使うのを諦めてください。

SkinnedMeshRenderer の SortingOrder


トラブルシューティング: 服の裏地が消えてる
スカートの裏面などが消えがち

服の裏地などが消えてる場合は、マテリアルの裏面描画を有効にするといいです。
アバターのインスペクターを開いて、SkinnedMeshRenderer のスロットを開きます。SkinnedMeshRenderer の Materials に設定されているマテリアルの、[↑]のボタンを押して設定パネルを取り出します。

SkinnedMeshRenderer > Materials からマテリアルの設定パネルを開く

マテリアルのインスペクターを1番下までスクロールして、Culling の初期値が Back になっているので Off に変更します。

Culling を Off にする


トラブルシューティング: 髪などが視界に映る

視界があまりにも邪魔

Resonite ではデフォルトでは頭が視界に映ります。頭に付けたパーツを視界から消したい場合は設定が必要です。
一時的に別のアバターに着替えておくといいです。
Head ボーンのインスペクターを開きます。DevTool を装備して、頭にレーザーを当ててセカンダリー(Quest ならスティック押し込み、デスクトップなら R キー)をして選択してからインスペクターを開くと探しやすいです。
Head に付いている RenderTransformOverride の ScaleOverride のチェックを入れます。
これで Head 内のものが視界に映らなくなります。

Head の RenderTransformOverride の ScaleOverride のチェックを入れると視界には映らなくなる。写真には映る。


トラブルシューティング: 喋ると変なところが動く

喋ると耳がピコピコする。これはそれ用のギミックを入れてるわけではない。

声に合わせて右耳や体のシュリンクシェイプキーが動いてしまうことがあります。
シェイプキーがリップシンクに合わせて動いてしまう設定が付いてしまっているので、そのコンポーネントを破壊しましょう。
動いてしまうシェイプキーが付いているメッシュのインスペクターを開きます。
DirectVisemeDriver コンポーネントを探して、赤いゴミ箱を押して消してください。

シェイプキーが動いてる SkinnedMeshRenderer の DirectVisemeDriver を消します


もろもろの修正をしたアバターは再度インベントリに保存しましょう(途中途中でこまめに保存するのがいいです)。
修正がすべて終わったら、最後に保存したアバターを既定のアバターに設定しましょう。
インベントリを開いて、最後に保存したアバターを選択します。上部のメニューから「既定のアバターに設定」を押すと、アバターが紫色になります。
これで設定完了です。

インベントリ > アバターを選択 > 既定のアバターに設定


他の設定も頑張りたい人へ

必要最低限のことだけ書いたら記事を書く体力がお亡くなりになったので、もっと設定を頑張りたい人は次の記事などを参考にして頑張ってください。
もしくは、Resonite 内でぼくに質問してください。知ってることは喋ります。

また、この記事の手順通りにしたのにうまくいかなかったケースなどあれば、フィードバックして欲しいです。知見を蓄積したいです。よろしくおねがいします。

note.com

nanasai.hatenablog.jp

zenn.dev

*1:ログイン状態じゃないと、アバター保護の設定ができないため、パブリックアバターしか作れない。

*2:オンラインステータスを非表示にしていると、プライベートで開きます。

*3:戻せない操作もあったりする

*4:Unity で言うところの GameObject

*5:Unity で言うところの GameObject