見出し画像

【VRChat】個人的アバター改変管理方法のまとめ(フォルダ管理編)


1. 概要

1.1. この記事について

この記事は個人的に行っているアバター管理方法のまとめです。
「改変したいけど何から手を付ければいいか分からない」とか、「すでに改変には手を付けてるけど、彼方此方にファイルが散らばってて管理が大変…」って人にオススメ(できたらいいなぁ)って記事です。

1.2. 何のために書いたの?

アバター改変教えるときに、まったく改変分からん!やったことない!何から手を付ければいいか分からん!ってときに「とりあえずこの記事読んで」って投げつけるために纏めました。
いっちゃえば自分が楽するためのメモ書き・ナレッジみたいなもんです。
あと「服を着せる方法」とか「表情作成・小物の出し入れ!」とかの記事はよく見るけど、ファイルの管理方法について書いてる記事ってあまりないなと思って書きました(俺の検索力の問題かもしれん)

1.3. 注意事項

仕事でUnity触ってない&PMとかやってるわけではないので、けっこう我流です。一応仕事でインフラエンジニアの端くれやりつつ日銭を稼いでいるので、多少なりともシステマチックにはしてるつもりですが、Unityとかのお行儀的な作法とは異なるかもしれません。参考にするのは自己責任で。

3. 基本的なフォルダ構成

とりあえずスクショ貼ります。

エクスプローラーのスクショ。先頭に"10_"ってついてるのは
並び順制御のためなので気にしなくていいです。

基本的なフォルダ構成をツリーで表すとこんな感じです。
個人的に重要な奴だけ書きますが、これ必要だなって感じたら増やしていっていいです。
フォルダが少ないことより自分で管理できることの方が重要です。
なお、<アバター名>_Customのフォルダはこれより"アバターごとのCustomフォルダ"と記載します。

VRChat_Work
├─10_Project
├─20_必須Package
├─30_UnityPackage
├─40_Avatar
├─<アバター名>_Custom

3.1. それぞれのフォルダの役割

10_Project

10_Projectはその名の通り、Unityのプロジェクト保存先にしているフォルダです。私の場合はアバターごとに1プロジェクト形式にしています。

10_Projectフォルダの中身

プロジェクト名がフォルダ名にそのままなるので、"Test"とかいい加減な名前つけないようにしましょう。
後述しますが、テスト目的ならプロジェクトを別にするよりシーンデータを別にした方が管理しやすいし容量削減や保守性向上につながります。
ひらがな・カタカナ・漢字等の2バイト文字はシステム的に問題ないとも聞きますが、誰も対処法知らない不具合招く可能性があるのでやめた方がいいです(基本的にプログラミングの類で2バイト文字は御法度です)

20_必須Package

必須Packageのフォルダにはプロジェクト作成時に必ず使うであろう物を入れてます。例えばDynamicBoneとか(最近あまり使われないけど)

必須Packageフォルダの中身

01から番号降っておくと入れる順番が分かりやすくてよいと思います。
因みに、DynamicBoneなどアセットストアから入れるものは1度でもダウンロードしていれば下記にUnityPackageがあると思います。
C:\Users\<ユーザー名>\AppData\Roaming\Unity\Asset Store-5.x

ついでなので、画面に映ってるアセットをご紹介。
主にEditor拡張が多いです。

Content Protector from Public

アバターアップロード画面から「Public」のボタンを削除するアセット。誤操作でPrivateアバターをPublic化してしまうのを防げる。

VRCHierarchyHighlighter

ヒエラルキーに背景色やアイコンを追加して見やすくできる。次のHierarchy 2とアイコンが被ってしまうので、背景色変更の機能だけ使ってます。

Hierarchy2(Unity2019のみ)

Boothじゃなくてアセットストアで配布されてるUnity拡張。
⇒Githubに移ったっぽいです。前述のHierarchyHighlighterと同じくヒエラルキーの表示を見やすくするやつ。
オブジェクト間にグリッド線引けるので格段に見やすくなります。
※Unity2022だと動かないので入れないでください

VRCAvatarSecurity

専用のプログラムからOSC経由で秘密のパラメータを送信することで、アバターにプロテクトをかけるシステム。

最新のインポートアイテムに色を付けるやつ

名前が全て。一番最後にインポートor変更を加えたものをハイライトしてくれるUnity拡張。アセットインポートした後に「あれ?今入れた衣装どこに入った?」って現象に遭遇する確率が下がる。

KTMRenamer

ルートを指定すると子オブジェクトの名前を一緒に変えてくれるツール。衣装着せ替えやってると分かるんですが、「Hipsの中にHipsがいっぱい入ってるけど、どの衣装のHipsか分からない!」ってのが防げます。

どれがどれだろう…
先にこうやって名前に衣装名をつけ足しておけば
Good

VRCAvatars3Tools

名前の通りAvatar3(SDK3.0)で役に立つEditor拡張の決定版とも言えるもの。
ExpressionParameterの合体、AnimationControllerの合体などが出来ます。
イメージ的にはModularAvatarが再生ボタン押したときに自動でやっていることを手動でできる。
「自動でできた方が楽じゃね?」ってなると思うのですが、手動の方が応用が利く場面もあるのでそういうことにしておいてください。
ModularAvatarはちょこっと触ったけど、Blenderで衣装弄る関係上あんまり恩恵を感じなかった…使った方が楽なんだろうけどねぇ…

VRCQuestTools

シェーダー変更などのQuest対応をやってくれるツール。
自分はこれで変換した後にPhysBone削減やFXレイヤーの再調整をしてアップロードしてます。

30_UnityPackage

UnityPackageフォルダの中身

ここには必須って程でもないけどちょこちょこ使うアセットを保存しておきます。主にアクセサリやアニメーションなど、"どのアバターでも使う可能性がある"って感じのアセットかつ、"必須って程ではない"って感じのアセットを保存してます。
とりあえずここにブチ込んでおいた方がダウンロードフォルダに転がしておくよりは分かりやすいです。

40_Avatar

名前の通りアバターのUnityPackageを格納してます。
後述のアバターごとのCustomフォルダを作った=改変し始めた時はそっちにPackageを移動させます。

アバターごとのCustomフォルダ

ここがぶっちゃけこの記事の本題です。9割くらいここの解説したいがために作った。
まず今メインで使ってるセレスティアちゃんのCustomフォルダは以下のようになってます。

モザイクまみれじゃねぇかお前ん家ぃ!

モザイクまみれですが基本的には以下の三つが置いてます
・アバターの衣装
・Blenderのデータ(体系改変や衣装合わせ用)
・テクスチャ改変用のpsd(ダウンロードしたZipに入っているもの)
・テクスチャのpng(重要)
・プロジェクトのテクスチャフォルダへのショートカット(重要)

プロジェクト内フォルダへのショートカットの作り方

上の重要と付けてる"テクスチャのpngと"プロジェクトのテクスチャフォルダへのショートカット"が個人的にキモだったりします。

30_Hair_2048~のショートカットのリンク先はUnityプロジェクトの
テクスチャが格納されているフォルダにつながっています。

このショートカットの作り方ですが、結構簡単です。まずUnity上のProject画面上でテクスチャが格納されているフォルダを開きます。

ウチのプロジェクトだとここ(フォルダ名は変えてます)

Project画面の背景を右クリックして「エクスプローラーで表示」をクリックすると、テクスチャが格納されているフォルダが表示されます。

テクスチャが格納されているフォルダが選択されている状態で
エクスプローラーが表示される

フォルダを右クリックして[コピー]を押します。
その後、アバターごとのCustomフォルダに移動します
(今回はF:\10_VRChat_Work\SELESTIA_Customです)

フォルダを移動したら右クリックして、[ショートカットの貼り付け]をクリックします。これでプロジェクト内にあるテクスチャが格納されているフォルダへのショートカットが出来ます。

貼り付け(P)ではなくショートカットの貼り付け(S)なので気を付けて

ここまでで下準備は完了です。
続いて今作ったショートカットの使い道について説明します。

ショートカットを活用した髪色変更手順

ちょっとうまく説明できるか自信がないんですが、今まで元々髪色を水色にしていたけど、黄色にしたいなと思い立ったとしましょう。

元々の状態。髪色は水色です。

まずpsdファイルを開いて変えたい髪色のpngファイルを出力します。
今回は金色にしてみました。

ファイル名はHair.pngにしておきます。

ファイルが出来たらあらかじめ作ったショートカットフォルダにCtrlキーを押しながらドラッグアンドドロップして、ファイルを上書きします。

置き換えダイアログが出たら置き換えを押してください

これでUnityに戻るとテクスチャが反映されています。
※容量デカいと読み込みで待たされることがあります。見守りましょう。

ね?簡単でしょ?

上記の手法を使えばテクスチャ改変が簡単にできますし、Projectフォルダと別の場所にpngとpsdが残っているので、万が一プロジェクトが壊れたりして削除する必要が出来てもバックアップの手間が省けます。
今Unityプロジェクトに入っている物と同じテクスチャはアバターごとのCustomフォルダにありますからね。元々アバターのUnityPackageに入っている物は元に戻せますが、自分で作った物や色を変えたテクスチャは一点物です。消えたら元に戻せませんし、どこにあるのかを知っているのも貴方一人です。忘れないようにしましょう。
本来であればProjectのフォルダは別ドライブにした方が冗長性としていいのかもしれませんが、そこはアレンジしてください。

もう一つのメリットとしては、複数アバターに一度の操作で適用できるという点です。
例えば下記の画像を見てください。
縦セタとビキニパーカーを着たセレスティアちゃんが横に並んでいます。

セレスティアちゃんがいっぱい

こういう感じで複数アバターを1つのプロジェクトで管理しているときは、全部同じテクスチャを見ているので、1つファイルを置き換えると全てのアバターに反映されます。

緑の髪色テクスチャを出力して…
ファイルを置き換えると…
全部に反映されます

フローで示すとこんな感じ。
全部のアバターが同じ髪色のマテリアルを使っているので、髪色のマテリアルが読み込んでいる髪のテクスチャが変更されるとデフォ衣装、縦セタ、ビキニパーカーのアバターの髪色も変わります。

全部緑色にしたいとき

「全部緑色だけど、ビキニパーカーだけ水色の髪にしたい…」って時はマテリアルを別にしてあげれば髪色が変えられます。

ビキニパーカーだけ水色にしたいとき

基本的にアバター改変については、"アバターごとに違うもの"より"全部のアバターで同じもの"の方が多いです。
■アバターごとに違うもの
・FXレイヤー
・ExpressionMenu
・ExpressionParameter(これは使いまわしても問題ないかもしれない)
■全部のアバターで同じもの
・表情のアニメーション
・共通のアクセサリのアニメーション
・テクスチャ/マテリアルなど

4.まとめ

際限なく書いちゃいそうなのでこの辺でまとめておきます。
・フォルダはちゃんと整理しよう!
 ダウンロードフォルダにファイル転がして置くとか論外!
・Editor拡張入れて作業しやすくしよう!
・アバターごとに作業用のフォルダを作ろう!

今回はこの辺で。気が向いたらUnityのレイアウトとかについても書くかも。

2023/5/2追記 レイアウト編書きました


この記事が気に入ったらサポートをしてみませんか?