ミーシェちゃんをMacでVRChatにアップロードする

追記 (2021/09/27)

Unityのバージョンが変わって陳腐化した面はありますが、基本的な部分は変わってないので残しておきます。

概要

ミーシェちゃんかわいいですよねかわいい。うんかわいい。

まあアップロードの際のメモみたいなものです。 環境依存部分も大きいでしょうし参考になるかわかりません。とりあえず書いときます。 あと我流です。加えてわたしは現状MacしかもってないのでQuest向けにどう上げるかの試行錯誤もかきます。 今回はアップロード(するだけ)まで〜。*1

実行環境

TL;DR;

MacでVRChatにアップロードするにあたって……。

  • UnityでWindows Build supportAndroid Build Supportをインストールする
  • VRChat SDKのimport時にow.oggをimport しない (2018ではImportしても問題なくなりました)
  • 確認中: Arktoon ShaderはMacOSとの相性が悪いのか2018では動作しないので別のShaderに切り替える。

Quest向けにアップロードするにあたって……。

  • Quest向けプロジェクトを立ててDynamic BoneをImport しない
  • Quest向けプロジェクトでMaterialsのShaderをVRChat/Mobile/ToonLitにする

メイン

1. 準備

まずUnity環境をひっぱってきます。なんか最近だとUnity Hubをつかうといい感じらしい。 簡単のためbrew caskをつかって……

$ brew cask install unity-hub

あーその前に、Unity IDを取得したりしました。 インストールした後開くとだいたい用意しろって言われるので仕方なくアカウントを取得しました。

次いで、VRChatのSDK公式サイトのDownloadからSDK2 *2 をひっぱってきます。(要ログイン)

そんで公式ドキュメント

Once Unity Hub is installed, *click this link to install the correct version of Unity. *

のリンクからUnityのバージョン2018.4.20fをインストールするリンクをクリックしてインストールを開始します。*3

f:id:outoz9:20200329215311p:plain
Unityのインストール
こんな画面がでてくる筈なので、ここで Windows Build SupportAndroid Build Supportにチェックを入れてインストールします。

あとはひたすら待てばUnityがインストールされましてえらい!!

2. 読み込みからアップロードまで

上述のようにQuest対応をさせる必要があるのですが、Swich Platformに無限時間かかるのでメモリの余裕をつかってProjectを二つつくってます。 一つはPC向け、もう一つはQuest向けにたてました。

2.1 PC/Quest向け共通

まず、Asset > Import Package > custom package... を選択して、VRChatのSDK2をImportして……なんか色々Importするファイルが出てくるので……、

ここでImportする際に ow.oggチェックボックスを外しますMacでow.oggを読みこもうとすると何故か無限時間かかるのでとりあえずチェックを外します。謎い。 2018で改善、チェック外す必要はありません。

f:id:outoz9:20200331200509p:plain
SDKのimportについて
読みこみおわったら、PC向けのプロジェクトではDynamic BoneとかをAssetsからImportしてミーシェちゃんをインポートする準備をします。*4 加えてVRChat SDK > Show Control Panel を開いて、Authenticationタブからログインします。 加えてSettingsタブのFuture Proof Publishチェックボックスのチェックを外します*5

そして、同じく Custom PackageからMishe.unitypackageを読み込ませます。わたしの環境だけかもしれませんがArktoon Shaderとの相性がMacと悪いのか読み込みに無限時間かかるのでコーヒーでも飲んでまってます。はい。

f:id:outoz9:20200329220414p:plain おわったら下にこんなかんじに表示されるとおもうのでMishe_lightってかかれてる青い箱 *6 をHierarchyってかいてるところに投げこみます 。

ここまではPC/Questで共通の作業になります。

2.2 PC向けへの作業

PC向けへの作業は非常に簡単で、VRChat SDK > Show Control Panelを開いて、BuilderからBuild & Publishをクリック。あとはこんな画面がでるとおもうので、 f:id:outoz9:20200329220940p:plain Private側にチェックがついてる事を確認して、一番下のThe Above information is...って書かれたとこにチェックをいれてアップロードします。

これでPCからは見られるようになりました。

2.3 Quest用の作業

この状態だとQuestでは「着る」ことができないので、Questに対応させた上でアップロードをします。 Quest向けのプロジェクトを開いて、File > Build Setting を開きます。 f:id:outoz9:20200329221249p:plain

こんな画面がでるとおもうので、Androidを選んでSwitch Platformします。 これでAndroid向けにアップロードができるようになりました。

Quest向けにアバターをアップロードするにはだいたい以下の条件があるみたいです。

  • Dynamic Bone, clothなどをつかっていない
  • シェーダーをVRChat/Mobile以下のものにしている

逆に、 ポリゴン数などに制限は無いです*7

なので対応としては、 Assets > Mishe > Materialsに入ってるファイルを全部選んで右上のInspector から Shaderを画像みたいに選ぶだけ!! ((VRChat/Mobile/ToonLitを選択)) f:id:outoz9:20200329221829p:plain (Toon Litがめっちゃ眩しくはなるけどおすすめです)

加えて、Dynamic BoneなどのScript(の残骸)がPrefab内に残っているとアップロードできないので、すべて選んでちまちま消していきます。 *8

f:id:outoz9:20200403191431p:plain
5つをそれぞれ歯車マークを選んで消していきます。
おそらくミーシェちゃんは Mishe.prefab/ArmatureMishe.prefab/Armature/Spine;/Chest/Neck/Headとかに差さっているはずなのでちまちま消しましょう。 *9

そしたらPCと同じようにアップロードします。 アップロードの前に、 VRChat SDK > Show Control Panelを開いて、Content Managerのタブを選びます。 f:id:outoz9:20200330201511p:plain いまアップロードしたアバターの[Copy ID]をクリックしてBluePrint IDをコピーします。 それで、HierarchyのMisheをクリックして左側のInspectorの一番下に出ている、 f:id:outoz9:20200330200422p:plain Pipeline Manager (Script)のBlueprint ID(Optional)の欄にコピーしたIDをペーストしてAttachをクリックします。 これでQuest向けのアップロードの準備ができました。 PCと同じようにBuilderのタブからBuild & Publishでアップロードします。 *10

おつかれさまでした。 できます。はい。 f:id:outoz9:20200329221949j:plain

(これはQuestからの画像)

2.4. 蛇足

Blueprint IDを同じにすればPCからはArktoon ShaderかつDynamic Bone入りのミーシェちゃんが、QuestからはMobile/ToonLitでDynamic Bone無しのミーシェちゃんが見えるという状態が構築できます。 ただあんまりこの手法とってるとQuest勢だと思われることが全くないので *11 その点は注意かも……?

あまりやらないほうがいいですが、Blueprint IDが同じであれば同一のアバター扱いされるので、Questでは幽狐さん、PCからはミーシェちゃんが見えるみたいなことも可能です。おそらくアバターまわりの会話が成立しないのでやめたほうが良いとはおもいますが……。また、Questでよく見るあのロボットくんは、逆にQuestのみの方でアップロード(AndroidSwitchした方のみ)するとPCからロボットに見えるという形になってます。関係ないけどぶっちゃけあのロボットこわいんだよね……。

次の記事にかくこととまとめ

雑多に書きましたけど、アップロードだけならシェーダーを変更するだけでぶっちゃけアップロードできます。

ただし、VRChat/Mobile/ToonLitは透過に対応してないので、頬染めをすると以下のようになります。 f:id:outoz9:20200329222342p:plain

この解決方*12はあるんですが、この記事に書くと無駄に長くなるので次の記事にでも書こうとおもいます。はい。

参考文献

だいたいこのあたり……。

docs.google.com

qiita.com

*1:間違えてる点とかありましたらご指摘頂けるとうれしいです、もっと釈明させてもらうとこれUnity触るのはじめてだったのであーあーあーあー。

*2:アバター向けはSDK2をDownloadしましょう

*3:ここのリンクも同じ参照をしてます

*4:Quest向けでは使えないのでImportしない

*5:なんか未来バージョン向けの対応らしいけどもMacだとそもそも外さないと上がらないことも多いとかなんとか?

*6:prefabっていうらしい。

*7:超ハイポリだとそりゃ重くなるだろうけど、それよりシェーダーの方が計算重いんでしょうね……

*8:スクリプトでなんとかできる気もしますがここでは書きません

*9:加筆 2020.04.03

*10:なんか色々出てくるとおもいますがだいたいAutofixで大丈夫だとおもいます、大丈夫かは分かりませんが……加筆修正: 2020.04.03 / 加筆修正: 2020.03.30

*11:『Questからでーす』「え、Linkだよね……えっ?」 ってなりがち

*12:力技的なのでアレ