見出し画像

同じワールドやアバターを、別のデータとしてアップロードする方法 ~VRChatのBlueprint IDについて~

はじめに

この記事ではVRChatがアバターやワールドを管理するために使っている”Blueprint ID”について説明して、同じアバターやワールドを別のデータとしてアップロードする方法について、あっさり目に解説したいと思います。

Blueprint IDについて

Blueprint IDはVRChat側がワールドやアバターを管理するためにつけているIDです。

これは私たちがUnityを使って、VRChat上にデータをアップロードするときに自動的に割り当てられるものです。このIDはユニークなものであり、他の人と被らないようになっています。

ここまでの内容だと『勝手に付くものだし、ユーザーには関係ないんじゃないの?』と思うかもしれませんが、このBlueprint IDの仕様を上手く使うことで、同じアバターやワールドを別データとしてあげたり、アップロード済みの既存のデータに上書きしたりすることが可能です。

ではどうやってやるのかについて説明したいと思います。

Blueprint IDの新規生成・切り替えなどについて

このBlueprint IDを管理するためのPipeline Managerという名前のコンポーネントがあります。

アバターであればアバター本体のゲームオブジェクトについてる、VRC Avatar Descriptorコンポーネントの下にあります。


ワールドであればVRCWorldという名前のゲームオブジェクトに付いてる、VRC Scene Descriptorコンポーネントの下にあります。

一度でもアップロードしたデータであれば、以下のようにアップロード時のBlueprint IDが記載されています。

(ちなみに既に破棄済みのIDなので晒しても無問題)

一方で一度もアップロードしたことが無い場合は以下のように空欄になっています。

この空欄の状態でアップロードをすると、自動的に新しいBlueprint IDが割り振られて、Blueprint IDが表示されるようになります。

別データとしてのアップロード方法

以前にアップロードしたアバターやワールドを、別データとしてアップロードしたい場合、先ほど説明したPipeline ManagerのDetachボタンを押します。

そうすると紐づけられていたBlueprint IDが解除され、真っ新な状態になるので、この状態でアップロードすると新規IDが割り振られて、別データとしてアップロードすることが出来ます。

既存データへの切り替え・上書き・削除など

アップロード時に開くVRChat SDKのタブにはContent Managerというタブがあります。

このタブを開くと今までアップロードしてきたアバターやワールドのデータが出てきます(表示されない時はFetchボタンを押してみましょう)

現在紐づけられているBlueprint IDがある時は、そのデータ名の横に(Current)という表記が付きます。

この状態から別のデータに切り替えを行いたい時は、切り替えを行いたいデータのところにあるSet Currentボタンを押します。これだけでデータを切り替えることが可能です(勿論ですがScene上にPipeline Managerが存在しない場合は押しても反応しないです)

試しにBuildタブに行くと、切り替えたデータの情報になっています。この状態でアップロードすることで、以前アップロードしたデータの更新が可能になります。

削除したい場合はDeleteボタンを押すことで削除ができます。

最新のSDKであれば2019でも2022でも、Set Currentボタンはありますが、古いSDKのままだとないかもしれません。
その時はCopy IDボタンを押して、Pipeline Managerの空欄に貼り付けをしまして、Attachボタンを押すことで切り替えられます。

既に入ってる場合はDettachボタンを押すとこの状態になります。

Blueprint IDで注意したいこと

ワールドやアバターの販売・配布時にBlueprint IDが残ったデータを配布してしまうと、アップロードしようとしたときにエラーが発生してしまいます。

ですので、他人にデータを販売・配布するときはBlueprint IDを空欄にしておきましょう。

また、アバターでは一つのシーン上に複数Pipeline Managerがあっても、ビルドするところでアップロードする対象を選べるのですが、ワールドは間違ってしまう可能性があるので、Pipeline Managerは一つにしてねという注意書きが、公式リファレンス内でなされています。

私は複数個置いたことはないので、どうなるのかは知りませんがやめておいたほうが良さそうです。


PC・Quest両対応したいときについて

例えば、PC版を既にアップロード済みだとします。この時Android向けに切り替えたプロジェクトで、“PC版と同じBlueprint ID”に対してアップロードを行うことでQuest版を追加することが出来ます。

逆も同じです。

仮にこのBlueprint IDが違ってしまうと、別データとしてアップロードしてしまうので、キチンとBlueprint IDは一致させましょう。

(余談:アバターだとPC版は桔梗ちゃんだけど、Quest版は薄荷ちゃんみたいなのも可能です。ワールドでもできますが、サムネイルは共通なのであまりに違うと見た目詐欺になってしまいます。ただし注意点として、同期がズレることはあります。詳しくはNetwork IDとかで調べるといいかもしれません)

おわりに

今まで記載してきた記事内ではおまけのように解説していましたが、初心者の方にとっては大事なことだな~と最近思ったので、単体の記事として書き出してみました。

自分は既にPublish済みのワールドとかで新しい要素を追加したい時とかに、IDを分けてPrivateワールドとしてアップロードしてテストしてから、IDを戻してPublish済みのワールドを更新したりします。

このように、アバターやワールドを別データとしてアップロードしたいことは時折あると思うので、その時は是非思い出してあげてください。


おまけ

BlueprintIDを盗難されたら、データを盗まれてしまうのでは?と不安になってしまう人が居るかもしれません。手に入れた人が悪意のある人で、違法ツールとかを所持していれば、盗まれてしまう可能性はあります。
(なので、SNS等にうっかり晒しちゃ駄目ですよって警告する意味で、あえて書いています)

そもそも、セキュリティに絶対はないので、割り切って気楽に生きましょう。

不安な方は、過敏になりすぎないように、とりあえず以下の記事に目を通しておくといいんじゃないかなと思います。そこらへんを丁寧に説明してくれています。
(今はEasy Anti-cheat(EAC)が導入されているので、記事内で言うところのスクリプトキディの数は導入前と比較するとマシになったのではないかと思います……が私はVRChat世事に疎いので実際のところは分かりません)


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