雑な仕事でBeat Saberを配信っぽくする

YouTubeでよくみるアレをやりたかったけど、Custom Avatarを用意するのはめんどくさいと噂にきいていて、中々手を付けていなかった。

※多分めんどくさい? : Custom Avatars Guide | BSMG WikiのようにAvatarをUnityからExportして、ModelSabarに上げるか、直接ModelSabarから購入が必要そう。

が、しかし、VRChat等で廃人プレイをしていてVRMを所持しているなら、VirtualMotionCapture(以下VMC)とOBSで雑に合成できる。

手順

  1. ModAssistantでModを導入する
  2. VMCをセットアップする
  3. OBSで合成する

ModAssitantでModを導入する

ModAssistant自体はReleaseに入ってるexeをそのままスタンドアロンで使える。

IntroペインでMod導入のお約束(本体更新でぶっ壊れるとか)に同意して、OptionsペインでBeat Sabar本体のインストール場所が正しく検出されてるかチェックすると、あとはModペインで好き放題入れたり消したりできる。

今回必要なのはCameraPlusだけだけど、前提Modの都合でいろいろはいった。

こんな感じ

Modを導入したら一度Beat Saberを起動して後に必要な設定ファイルcameraplus.cfgを作らせる。場所は%(Beatsaberのインストール場所)%\UserData\CameraPlus以下。

合成時にも調整するのだけど、F1を押すとTPSになるので、ゲーム内の白い箱っぽいオブジェクトを掴んで操作する(スティック上下で奥行きは変えられるが、回転はよくわからなかった...)か、設定ファイル内の数値をいじってカメラの場所を調整する。また、デスクトップ上のゲーム画面内で右クリックすると↓みたいなUnity UIが出てくるのでAdd New Cameraで別の視点を追加できる(参考 : Multiple camera perspectives in BeatSaber (for recording and streaming) : beatsaber)。

いかにもなUI

値はこんな感じになった。

cameraplus.cfg(TPSカメラ)

LockScreen=False
fov=50
antiAliasing=2
renderScale=1
positionSmooth=10
rotationSmooth=5
cam360Smoothness=2
cam360RotateControlNew=True
thirdPerson=True
showThirdPersonCamera=True
use360Camera=False
posx=1.928272
posy=1.586363
posz=2.396503
angx=3.61219
angy=233.4375
angz=358.3356
firstPersonPosOffsetX=0
firstPersonPosOffsetY=0
firstPersonPosOffsetZ=0
firstPersonRotOffsetX=0
firstPersonRotOffsetY=0
firstPersonRotOffsetZ=0
cam360ForwardOffset=-2
cam360XTilt=10
cam360ZTilt=0
cam360YTilt=0
cam360UpOffset=2.2
cam360RightOffset=0
NoodleTrack=False
screenWidth=1920
screenHeight=1080
screenPosX=0
screenPosY=0
MultiPlayerNumber=0
DisplayMultiPlayerNameInfo=False
layer=-1000
fitToCanvas=True
transparentWalls=False
forceFirstPersonUpRight=False
avatar=True
debri="link"
HideUI=False
movementScriptPath=""
movementAudioSync=True

customcamera1.cfg(FPSカメラ)

LockScreen=False
fov=50
antiAliasing=2
renderScale=1.200001
positionSmooth=10
rotationSmooth=5
cam360Smoothness=2
cam360RotateControlNew=True
thirdPerson=False
showThirdPersonCamera=True
use360Camera=False
posx=0
posy=2
posz=-1.2
angx=15
angy=0
angz=0
firstPersonPosOffsetX=0
firstPersonPosOffsetY=0
firstPersonPosOffsetZ=0
firstPersonRotOffsetX=0
firstPersonRotOffsetY=0
firstPersonRotOffsetZ=0
cam360ForwardOffset=-2
cam360XTilt=10
cam360ZTilt=0
cam360YTilt=0
cam360UpOffset=2.2
cam360RightOffset=0
NoodleTrack=False
screenWidth=480
screenHeight=270
screenPosX=0
screenPosY=0
MultiPlayerNumber=0
DisplayMultiPlayerNameInfo=False
layer=-999
fitToCanvas=False
transparentWalls=False
forceFirstPersonUpRight=False
avatar=True
debri="link"
HideUI=False
movementScriptPath=""
movementAudioSync=True

CameraPlusは以下参考。

VMCをセットアップする

参考 : Beat Saberとアバター合成 | バーチャルモーションキャプチャー

というかまんま上記の通り。なんなら合成も載ってる。

解像度だけBeatSaber本体と合わせておく。

解像度調整

VRM読み込みをして、キャリブレーションを実行したら背景を透過にする。

前述のcameraplus.cfgをImportしたらセットアップ終わり。

OBSで合成する

BeatSaberとVMCのソースをOBS上で並べて終わり。なお、CameraPlus側でカメラを動かすたびにcameraplus.cfgをImportし直さないと合成がおかしくなる。リロード付いてたらなあ。

合成レイヤ

実際の動画

配信 を見て。

やってみた感じとしては、↓みたいにSaberと手があんまり合致してないのが悲しい。この辺はCustom Avatarの方が強いんだろうか。あとはやくフルトラになりたい。

手