導入
VRChat向けアバターを作ったはいいけど、販売や配布にあたってどんなデータを作ればいいの?という方向けに記事を書きます。
Unity得意ではないですし、間違ったところやもっとこうしたらいいというのがあったらコメントに書いて頂けると幸いです。
unitypackageファイルの作り方
まずVRChat向けアバター購入したらほぼ必ずついているこの「unitypackage」ファイルの作り方です。
工程的には最後の方なのですが、どうやって作るのかをまず知ってください。
そうすることによってどんなデータを作ったらいいのか、整理したらいいのかなんとなくわかるかと思います。
Unity上部のメニューから「Assets」→「Export Package...」を選択します。
そうするとこんなウィンドウが出てきます。
現在Unityに読み込まれているデータがすべて一覧として出てきます。
この中からチェックが付いているものをunitypackageデータとして書き出します。
データ量によって膨大になるので、ウィンドウ下部にあるAllボタン(全選択)・None
ボタン(全選択解除)をうまく使ってください。
必要なデータにチェックが入ったら「Export...」ボタンを押します。
そして保存先を指定し、ファイル名を指定して保存。
これだけです。
ほんとに…。
ただエクスポート時に、有料アセットファイルや配布・販売許可のない他人の著作物も含めてエクスポートが出来てしまうので、チェックを必ず外しましょう。
シェーダーに関しては権利的に許可されていても同梱することはおススメしません。
例えばユーザーさんがすでに新しいバージョンのシェーダーをUnityに読み込んでいる場合。
○○シェーダーv2.00をインポートしている
→○○シェーダーv1.90が同梱されているunitypackageを読み込む
→○○シェーダーv1.90に上書きされてしまう。
といった事態が起こってしまうのです。
まあインポートするときに不必要なものを入れないようにチェックを外せばいいのですが、面倒ですし間違えることが多いのでシェーダーを同梱することはおススメしません。
ファイルの整理
それでは実際にファイルの中身について整理していきましょう。
まず「Assets」直下に必要なものをバラバラに置いてある場合、フォルダを作ってそこに入れましょう!!!!
「Assets」直下のままunitypackageでエクスポートすると、ユーザーさんも「Assets」直下にいろんなデータがたくさんインポートされちゃいます。
複数のアバターを読み込んでいるとAssets内の項目が多くなりがちなので、ひとつフォルダを作ってその中にすべてのデータを入れてあげると親切です。
またこれはあくまで自分の考えなのですが、フォルダ名はデータの名前としてわかりやすいものをつけてください。
ブランド名、BOOTHのショップ名を付ける方がいらっしゃいますが、ユーザー側はインポートしたときにどのフォルダが今読み込んだものかわからなくなることが多いです。
ただ、同ブランド・ショップ名でまとめたい!という考えもわかりますので、あくまで自分の考えです。
必要なデータ
さてさてフォルダの中身ですが、アバターやアクセサリーなどそのデータを構成する必要なデータすべてを入れます。
・FBX
・マテリアル
・テクスチャ
・VRChatの設定済みprefab
(・配布物が置いてあるUnityのシーン)
・その他必要なもの
Unityのシーンはあってもなくても構いませんが、あると親切ですね。
FBXのデータ注意点
それではひとつずつデータを注意してみてみましょう。
まずFBXのファイルを選択します。
Inspector画面内のRigタブを選択し、自分が設定したタイプになってるか確認します。
人型であればHumanoidですね。
「Configure...」を押して詳細画面を開きましょう。
こんな風に正しくTポーズではありませんよとエラーが出ていた場合
「Pose」メニューから一度「Reset」
そして「Enforce-T-Pose」を押してください。
そうするとエラーが消えるはずです。
最後に「Apply」を押して確定し、「Done」ボタンを押して詳細画面を閉じます。
もしエラーが出ていたまま突き進んでいた場合、ここで一度VRChat上などで関節が正しく動くか確認しましょう。
テクスチャに関しての注意点
画像データはすべて「Streaming Mipmaps」にチェックが入っていないといけません。
テクスチャデータを選択し、Inspectorタブで画像のようにチェックを入れて「Apply」でもいいですが
VRChatSDKのアバターアップロード直前の画面で
This avatar has mipmapped textures without 'Streaming Mip Maps' enabled.
のエラーが出ていた場合、「Auto Fix」を押せば上記の作業をすべて自動でやってくれます。
ここにエラーが出ていなければStreaming Mip Mapsの設定は完了しています。
VRChatの設定済みprefab
VRChat用の設定が済んでいるPrefabを選択し、Inspectorタブ内のPipeline Managerという項目を見つけます。
画像ではAnimatorの下に来てますが、順番が入れ替わりがちなのでスクロールしながらよく見てください。
Blueprind IDという項目に文字列が入っていなければOKです。
もしここに文字列が入っている場合は「Attach」ボタンを押して消してください。
Blueprind IDとはVRChatにアバターをアップロードすると付与される固有のIDです。
同じIDでアップロードすると、すでにアップロード済みのアバターに上書きできます。
ユーザーさんに配るデータにBlueprind IDが入っていると自分のアバターとしてアップロードできないため、困ったりひと手間かけさせたりさせるので必ず空欄にしておきましょう。
unitypackageエクスポート後の確認
ここまでデータの整理や確認を終えてunitypackageをエクスポートすることができた!とします。
最後に新しくUnityプロジェクトを作り、作ったunitypackageをインポートしてみましょう。
なにかしらのエラーを出さずにVRChatへアップロードをすることができ、またVRChatで動作確認ができたらunitypackage編ゴールです!!
zipファイルの中身編
unitypackage編!?!?まだあるの!?!?って感じですがまだあります。
次はBOOTHにアップロードするzipの中身編です。
・完成したunitypackage
・FBX
・テクスチャデータ
・改変用psd(UVガイド付き)
・UVのガイド画像
・利用規約・ライセンスファイル、もしくはリンク
・販売・配布ページへのリンク
これらすべてを入れる必要はありませんが、あると便利だなというものを書き出してみました。
これらをひとつのフォルダに入れてzipに変換!
そうしてできたzipファイルがようやくBOOTHにアップロードできるわけです。
最後に
Unityでの軽量化や小さなテクニックなどなど、たくさんあるとは思いますが、ひとまずVRChat向けアバター・アクセサリーデータをBOOTHで販売・配布向けデータにするところまで書きました。
軽量化や小テクについて、これいいよっていうのがあったらコメントで教えてください。