🤖

[VRChat] ぽた式 アバターセットアップの流れ

2023/11/10に公開

このページについて

  • ぽたぽよがいつもしているアバターセットアップの手順を記載しています。ざっくり1年やってみて、これで安定しているなという感じです。
  • 「あ~ こんな方法あるんですね。」とか、「こんな方法あるよ。」など、気づきがあって、助言もらえたらいいな~みたいな気持ちです。

前提

  • 1衣装・1アップロード・1シーン

    • Expression Parameters の上限があるし、FX Menu をすっきりさせたい。
    • 壊滅的変更があった場合でも影響を最小限に押さえたい。
      • もちろん弊害としてアバターを衣装ごとにガンガンアップすることになります。
        • アバターのお気に入りリストの上限はありますが、アップできるアバターの上限…はないらしい。マジ…?
      • ぽたは最近100体を超えたところです。
  • git でバージョン管理をする。

    • 壊滅的変更を行っても戻せるようにしたい。
      • VRCLens とか リアル影システム とかは FX やらマテリアルが変わってしまうので…
      • なんか失敗してもコミットしたタイミングに戻すのが安易になります。
    • お作法……みたいなところに関して、複数人で作業する場合はいろいろルールが発生すると思うのですが、どうせ自分しか使わないので適当にやる。
      • ベースを upstream で管理するとかも自分に自信が無いのでやりません。
  • git のサーバは立てない。

    • バージョン管理がしたいのであって、サーバ管理はしたくないし、うっかりアバターのデータを公開してしまうような状況から離れておきたい。
    • これに関しては、OneDrive にベアリポジトリを置くので十分だと考えています。
    • git だとプッシュのたびにファイルが増えていくだけですむから、複数PCで作業しても OneDrive の競合はしないはず…

事前準備

流れ

git のリポジトリを作る

  • git のサーバは立てたくない・GitHubのようなサービスは使わないようにしたい。
  • そのため、OneDrive にフォルダを作って、その中に git のベアリポジトリを作成。
  • ローカルPCの、クラウドに同期しないフォルダで、そのノンベアリポジトリをチェックアウト。作業コピーにする。

VCCにて空 Unity プロジェクトを作成

この段階でVCCから ModulerAvatar や GestureManager などを入れておく。

.gitignore を Unity プロジェクト直下に配置

一度Unityを起動し、import が終わったら、空プロジェクトを Git で、main リポジトリにコミット&プッシュしておく。

  • /Library とか、 /Packages が .gitignore で除外されてコミットされないことを確認しておく。

ベースとなる状態を作成する。

  • シェーダ導入→アバター配置の流れはもちろんのこと、そこから髪留め、めがねなど、衣装が替わっても共通で利用するアイテムを配置していく。

  • このタイミングで ExpressionMenu からオンオフする Animation も作成

    • 昔は自分でparameterいれて、FXに追加して、Animation作って、FXに追加して…なんてやっていましたが、今は AvatarMenuCreater for Modular Avatar でぽちぽち作ることが多くなりました。圧倒的に楽~~~ ありがたいです。
  • 基本の衣装で、デフォルトのFXにない衣装までオフにできる様にしておく(下着とか。今後の衣装着せ替えの事を考えて全裸になれるようにする。)

  • 一通り満足したら master(main) リポジトリにコミット&プッシュ

    • デフォルト状態のアバターとしてはこれをアップロード

衣装改変

  • まず、衣装改変だけをするブランチを切る→衣装を着せる
  • もともとの衣装も使うので、削除はしない。(オーバーサイズの上着の下がタイツのみ。など最高ですよね?)
    • この衣装にこのアイテムを追加したい。などもこのタイミングで行います。
  • 衣装改変が済み次第、ブランチにコミット&プッシュ
    • まだ後工程がある。完成形ではないのでアップロードはしない。

しゃがみ置き換えやVRCLensなど、FXを大きく変更するようなアイテムを導入

  • この時、壊滅的な変更があっても戻しやすかったりテストしやすいのでブランチを切ります。

  • 満足したらアバターアップロード

    • リアル影システムなどの導入の場合、さらにこのブランチからリアル影システム用にブランチを切ったりします。

以後、着せたい衣裳が出る度にベースからブランチを切って、衣裳を着せて…という流れを繰り返します。

  • Git Extensions のツリーを見ると、このようにベース→衣装改変→FXをいじるアイテムの追加 という流れがわかります。

とまあ、こんな流れに落ち着きました。

git を使用することでVRCLensなどのFXをガッツリ触る壊滅的変更があっても元に戻せます。

皆さんもレッツgit
(とか言ってますが、私も git の使い方に自信が無くて。git のつかいかたがない、ざっくり流れだけのメモとなりました。)

補足

liltoon などVPMで導入しない方が良い物もある

リアル影システムで使用するliltoonバージョンが固定されているので、空 Unity Projects を作ってから入れるようになりました。

アバターのバージョンが上がったときは?

程度問題だとは思うのですが、だいたいはベースごと作り直しています。わかりやすいので。
(更新したい衣裳の分作り直さないといけない…など発生はしますが………)

ワールド制作では

ワールド制作も

PC版作る→コミット&プッシュ&アップ→ブランチ作る→Quest版作る→コミット&プッシュ&アップ

で、だいたい同じ流れなんですが、Target Platform とかも管理したくて、一時期は .gitignore で /Library の一部も git に入れていました。
が、 Windows / Android の切り替えの度にコンパイルするようになってしまったので、やめました。

悩み

VCCが管理するVPMを git で管理できない

/Packages フォルダにはVCCが導入する .gitignore によって、 /Packages の com.vrchat.core.vpm-resolver フォルダと manifest.json packages-lock.json vpm-manifest.json 以外はgit で管理がされない。

/Packages/.gitignore を消してもVCCでVPM操作を行う度に .gitignore が生成される上に、編集していても元の記述に戻る。逃げられない。
(VPMのサイトにもこの事が書いてあります。)

導入されたSDKやツールが最新になっている状況から、それらが古くなっているブランチに移動した場合、上記のファイルが巻き戻るため、/Packages/各フォルダの内容と各.jsonのバージョンで齟齬が発生する事になる。

しょうがないので、毎度 main ブランチに戻って、 /Packages を別の場所に退避しておき、ブランチを切り替えたら、退避して置いた /Packages で上書きしようかな…なんて考えています。脳筋。

なんかもっと楽にならないものか………
.gitignore が関係ない VCS …
Unity Version Control (Plastic SCM)とか使ってみたらいいのか…?

GitHubで編集を提案

Discussion