この記事はNeos VR (その3) Advent Calendar 2022の12月7日の記事です。
前日の記事はエスニヤさんで「NeosVRゔぁーちゃる航空史(NeosVRで最近作ったもの)」でした。neosでの飛行機やヘリなどを現実の挙動に近い形でいろいろ作っているみたいで、その制作速度が凄まじいですね。neosに来た方はぜひ乗ってみてはいかがでしょうか。neosのアドカレ3枚目は急遽作られたのでまだまだ空いてます。突発でアドカレ記事を書きたい人は参加してみてください。
初めに
去年のアドカレで「NeosVR内でのアバター着せ替え手順」という記事を書きました。この記事を見て着せ替えに挑戦して成功した方がたくさんいるみたいで、書いてみてよかったです。ですが、あれから1年間ぼく自身も着せ替えをたくさん行って、より良いノウハウがわかってきて若干情報が古くなってきてるので、2022最新版として記事を更新するために書いています。また、服の着せ替えを簡単にするためのツールも今年にいくつか作製したので、その紹介も兼ねています。
なお、着せ替えの最も簡単な方法は「わかってる人にやってもらう」です。ぼくことよっしーを呼んでくれれば、簡単なやつだと30分くらい、ややこしいやつでも1~2時間で着せ替えできると思います。お気軽にNeosVR着付けフォースのお手伝い募集チャンネルでご相談ください。
- NeosVR着付けフォースのDiscord招待リンク: https://discord.gg/3dTkSSmSux
以上広告終わり。ここから本文です。
Neos内での着せ替えは、専用服であれば簡単にできます。専用服じゃなくても、頑張ればneos内で行えます(※専用服じゃない場合、Blenderの操作がわかっている方はそちらでやった方がたぶん簡単です。)。
この記事ではその手順を実例を挙げて紹介します。
今回着せ替えするアバターと服
今回は次のアバターと服を例に説明します。なお、作業途中の服やアバターは適宜保存しましょう。
※くりねこちゃんは2022/12/18までvketセール中なのでみんなも買いましょう!
- VRChat向け3Dアバター「くりねこちゃん」: https://noranjp.booth.pm/items/2110871
- サンタ服(くりねこちゃん・しろがねこちゃん・あいねこくんPCVR版・ももねこちゃん用): https://noranjp.booth.pm/items/4364884
服の着せ替え
手作業での服の着せ替えになります。自動でいい感じに着せ替えをできる方法もいくつか存在するんですが、時折うまくいかないことがあるので、手作業での方法を理解してリカバリできるようになってる方がオススメです。(バグらずに自動でできるツールがあればそちらの方がオススメです。誰か作ってください。)
他のVRサービスのためにUnityで着せ替えをやるときと同じように、アバターのボーンに服のボーンを入れ子にしていく作業です。
この方法は手間が多いですが、専用服じゃなくても対応できます。専用服じゃない場合は細かい調整が必要になると思いますが、今回の記事では特に解説しません。(専用服以外を着せる場合、入れ子にした後に服のボーンの位置やサイズをいい感じに調整したり、貫通対策をしたりするだけです。それが面倒ですが。)
人力作業になるので、途中でミスったり作業過程を忘れたときでも復元できるように、途中途中でバックアップを保存するようにしてください。
手順概要
- 服のモデルをインポート
- 服のモデルをアバターの直下に入れる
- ArmatureをアバターのArmatureの子に入れてサイズ・位置合わせ
- 服のボーンを対応するアバターのボーンの子に入れる
服のモデルをインポート
服の3Dモデルをインポートします。fbxファイルなどをNeosVRのゲームウィンドウにドラッグ&ドロップ、またはファイルブラウザから選択します。
インポーターでは、通常のアバターの3Dモデルと同様に3Dモデル→レギュラー/アバター→ヒューマノイドの身長に自動設定→高度な設定を選択します。
高度な設定では、アバターインポート時とは異なり「IKをセットアップ」のチェックを外しましょう。その他の設定はアバターインポート時と同じで構いません。




再配布が禁止されている服の場合、他の人が保存できないようにするために服のルートスロットとメッシュのスロットにSimpleAvatarProtectionに付けましょう。
ひとつずつ設定するのは大変なので、ぼくの作ったSimpleAvataProtection BulkAttacherを使ってください。
JP Publics/個人 Individual/yoshi1123_ public/Tool/の中に入っています。


null
と表示されてる箇所に服のルートスロットを設定して[Protect Self]をクリックして服のルートスロットにSimpleAvatarProtectionを設定できます。その後、服のメッシュが入ってるRootNodeに[↴]ボタンで移動して[Protect Children]をクリックでRootNodeの子スロットすべてにSimpleAvatarProtectionを設定できます。最下部のページが1/2など、複数ページ存在する場合は全ページで[Protect Children]を押すようにしてください。
以後の手順が失敗しても大丈夫なように、この段階でアバターや服をインベントリに保存しておきましょう。
服のモデルをアバターの直下に入れる
セットアップ済みのアバターを用意します。デフォルトの状態だとアバターがゆらゆら動いてて着せ替え作業の邪魔になるので、TポーズやAポーズで固定させます。
DevToolTipでアバターのインスペクターを開いて、アバターのルートスロットを選択します。VRIKコンポーネントを探して、IKPositionWeightが1になってるはずなので0にしましょう。これでTポーズまたはAポーズで固定されます。
※注意:この状態でアバターを着てしまうと、手が全く動かせなくなってリスポーンするしかなくなります(ダッシュメニューの操作は可能です)。誤って着てしまった場合、他の人に解除してもらうか、ぼくが作ったEmergencyAvatarDe-equipというアイテムを取り出しましょう。作業途中のアバターを着た状態でリスポーンをしてしまうと、アバター自体が失われるので、間違って着てしまったときのために作業途中のアバターはこまめに保存しましょう。
アバターを着る際にはIKPositionWeightを1に戻しましょう。


次に、服のモデルをアバター直下に入れて、サイズ調整をします。
このときに、服のモデル由来のスロットだとわかりやすくするために、服のスロット名に色を付けておきましょう。AvatarSetupHelperを使うと簡単に色付けできます。
JP Publics/個人 Individual/yoshi1123_ public/Tool/の中に入っています。
服のインスペクターを開いて服のルートスロットをグラブし、null
と書かれた枠にセットします。その後、色を選んで[Recolor]を押すとセットしたスロット以下の全スロットに色が付きます。
ついでに、[Remove Colliders]も押しましょう。服のコライダーと名の付いたスロットをすべて削除できます。Neosでは邪魔なスロットなので消してしまいましょう。


その後、アバターのルートのインスペクターと服のインスペクターを開いて、服のスロットをグラブしてアバターのスロットの直下に移動し、位置・回転・拡大/縮小のリセットボタンを押して調整します。
この時点で服がアバターに合っていなくても、後の手順で調整するので気にせず次に進みます。
また、この時点でGrabbableコンポーネントは邪魔になるので削除しておきましょう。


サイズ・位置合わせ
服のArmatureをアバターのArmatureの子に入れて、服のArmatureの位置と拡大/縮小をリセットします。服によってはスケールが100倍や0.01倍になっていたりするので、大きすぎたり小さすぎたりしたら0.01や100を入れて適宜調整してください。
また、複数アバター対応のために個別で指定されているものもあります。その場合は適宜調整してください。
もし服の位置がズレてたり、サイズや回転がおかしいと感じたら、DevToolTipを装備してギズモを動かして調整しましょう。
このときに着せ替え前の服が邪魔で細かいところが見えなくなると思うので、邪魔な服はActiveをオフにしておきましょう。新しくスロットを作ってActiveをオフにして、その子に不要な服のメッシュを入れると簡単です。


服のボーンの移植
あとは作業です。服のArmatureの各ボーンを、対応するアバターのArmatureのボーンの子に一つずつ入れていきます。
服のHipsをアバターのHipsの子に、服のSpineをアバターのSpineの子に……といった手順で入れ子にするだけです。


完成
以上の手順で着せ替えは終わりです。最後に、VRIKのIKPositionWeightを1に戻してからアバターを着たりしてみて確認します。IKPositionWeightを戻さないと身動きがとれなくなりますよ!
もし服の一部が変な場所に吹っ飛んでしまってる場合は、ボーンの移植が上手くできていません。再びIKPositionWeightを0にしてから問題のボーンを移植してください。
お疲れ様でした!


宣伝
アバターセットアップ関連のお手伝いをする活動をNeosVR着付けフォースとしてやっています。
今回の記事の内容やアバター関連の質問などでも何かしらお手伝いをしますので、お気軽にお声がけください。