黒鳥3D研究所

3DCGでケモノを作る上で使えそうな技術をまとめていくブログ。主にソフトやプラグインの使い方をまとめます。その他雑記なども

BeatSaberにVRChatのアバターを持って行ったメモ

VRChatの自作アバターをBeatSaberに持って行ったので入れ方をメモ程度に残します。

前提

Unityの基本操作ができること(VRChatにアバターをアップロードできるくらいの知識があれば大丈夫です) BeatSaberにModを導入できるようにしていること。 Modの導入に関してはこちらの記事で解説されています。 またアバターの確認のためにCameraPlusというカメラの位置を自由に配置できるModがあるのでそちらも導入しておきましょう。
このModの導入方法も下記の記事で解説されています。

note.mu

CustomAvaterPlugin の導入

まず、Beat Saber Mod GroupというDiscordのグループから必要となるプラグインをダウンロード。
「finished-plugins」チャンネルにikeiwaという方がCustomAvaterを配布しているのでDLしましょう。

ダウンロードしたら、「CustomAvater」→「Extract_Content_In_BeatSaber_Folder」の中身を、「BeatSaber」のインストール場所にコピーします。(Steamなら Steamダウンロードフォルダ\steamapps\common\Beat Saber)

ここでBeat Saberを起動しアバターが表示されているかどうか確認してみてください。

アバターの作成

プロジェクトを開く

ここから実際にVRChat用のアバターをBeatSaberに持ち込んでみます。 そのためにはUnityを使う必要があります。Unityのバージョンは「Unity 2017.3.1f1」です。それ以外のバージョンではうまく動作しない可能性があるので必ず「Unity 2017.3.1f1」をインストールしてください。
Unityを起動したら右上の「Open」を選択し、先ほどDLした「CustomAvater」内の「TemplateUnityProject」を開きます。
開いたら、ProjectウィンドウのAssets→TemplateFullBody→TemplateFullシーンを開きます。 f:id:kurotori4423:20180603162513p:plain
すると現在このような画面になっていると思われます。

アバターの読み込み

アバターに使用したい3DモデルをUnityにインポートします。インポート方法はVRChatと基本同じなのでここでは簡潔に説明します。

  1. 3Dモデルファイルをインポート
  2. 3DモデルのAnimation TypeをHumanoidに変更
  3. Cnfigure... でボーンの修正
  4. マテリアルの設定

マテリアルはBeatSaberのシェーダーを使用したほうがいいかもしれないです。マテリアルのシェーダメニューからBeatSaber以下のものを設定しましょう。 マテリアルはある程度陰影の出る「Lit Glow」、VRChatで言うところのUnlitシェーダーになる「Unlit Glow」あたりが使いやすいです。

f:id:kurotori4423:20180603163630p:plain

BeatSaber向けの設定をする。

モデルのインポートが終わったら、そのモデルをHierarchyからTemplateFullにドラッグアンドドロップして、TemplateFull以下にモデルを追加します。
f:id:kurotori4423:20180603164151p:plain
図では「VRC_Kamikaze_dasaT」が自分の導入したいモデルの名前になっていればOKです。 次に使用したいモデルの大きさをテンプレートアバターと同じくらいの大きさにします。 特に手の位置が同じくらいになるとよいと思います。 f:id:kurotori4423:20180603165202p:plain
なぜこうするのかというと、プレイヤーの大きさがアバターによって調整されないので、あるプレイヤーの大きさに合わせる必要があるからだと思います。
大きさが異なる状態で設定をすすめたところ、水平時の腕の位置がおかしくなるなどして調整が困難でした。

次に必要なコンポーネントを追加します。
1からすべて設定するのは大変なのでテンプレートからコピーしてきます。
まず、full body templateから「IK Manager」をコピーします。 f:id:kurotori4423:20180603164515p:plain
コンポーネントの右上の歯車アイコンをクリックし「Copy Component」をクリック

次に導入したいモデルを選択した状態で、適当なコンポーネントの歯車アイコンをクリックして「Paste Component As New」を選択すればコンポーネントが追加されます。
f:id:kurotori4423:20180603164740p:plain
同じ方法で「VRIK」もコピーしてきます。 コピーできたら「VRIK」のReferencesを導入したいモデルのものに設定し直します。 f:id:kurotori4423:20180603165623p:plain

Solverの項目も黄色蛍光ペンで塗ったところを自身のモデルのものに差し替えましょう
f:id:kurotori4423:20180603165747p:plain

次にRightHandとLeftHandを自身のモデルの位置に合わせます。
f:id:kurotori4423:20180603170026p:plain
f:id:kurotori4423:20180603170054p:plain

最後に不要なfull body templateを削除します。
ここまで完了したらAvaterとしてファイルを書き出します。
ツールバーから「Window」→「Avater Exporte」を選択。 f:id:kurotori4423:20180603170318p:plain
作者名とモデル名を入力し「Export モデル名」をクリックして.avaterファイルを出力します。

アバターのチェック

作ったアバターのチェックを行います。「Steamダウンロードフォルダ\steamapps\common\Beat Saber\CustomAvaters」に作ったアバターファイルを入れます。
BeatSaberを起動して「PageUp」「PageDown」キーを押すとアバターを切り替えられます。
めでたくアバターの導入が完了ですが、おそらくセイバーの位置や手の角度がおかしくなっていると思われます。

IKターゲットの位置調整

Unityに戻り、LeftHandTarget、RightHandTargetの位置を調整します。この位置と角度はモデルによってまちまちなので、とにかくひたすらBeatSaberとUnityを往復してHandTargetの位置をずらしたり回転させたりしてちょうどよい場所を探しましょう。 f:id:kurotori4423:20180603171208p:plain

ちょうどよい場所に調整出来たら完成です!