ゲームの画面を共有/録画するやり方です。
関連
- ◯
- 作ったアプリを携帯端末やHMDで動かす:Android (Quest 2) , adb
検証
- ・
- PC:Windows 10
- ・
- デバイス:HMD:Android (Quest 2)
PC:Unity (UnityRecorder)
ゲームの画面を録画するには、次のパッケージを使います:
- ・
- com.unity.recorder
次から操作します:
- window > general > recorder > recorder window - add new recorders
携帯端末/HMD:adb (shell > screenrecord)
携帯端末(Android )やHMD(Android (Quest) )のシェルから、OSが提供している録画機能(screenrecord)を使い、画面を録画できます:[※1][※2][※3]
CLI(コマンド)での操作になります。たとえば次のように使います:
> adb shell screenrecord --size 3398x1920 /sdcard/a.mp4
録画したファイルは、デバイス側の指定したフォルダに配置されます。これをPC側に取り込むには:
> adb pull /sdcard/a.mp4 a.mp4
- ※1
- HMDでパススルーを使う場合、背景も共有/録画されます。
- ※2
- 録画できる時間には制限があります(現時点で最長180秒)……なお間隔にすこしのタイムラグはありますが、コマンドを続けて書くことで(”; ”でつなげる)、いくらでも長く録画することはできます。
- ※3
- HMDの場合、(このコマンド自体にクロップ機能はないので)左右の視点の画面が記録されます(通常の映像のように見せるには、映像編集アプリで、どちらかの視点の領域をトリムする必要があります)。
携帯端末/HMD:scrcpy
PC側に専用のキャプチャアプリ(scrcpy)を設置することで、携帯端末(Android )やHMD(Android (Quest) )の画面を共有/録画できます:[※1][※2][※3][※4]
- ・
- https://github.com/Genymobile/scrcpy
CLI(コマンド)での操作になります。たとえば次のように使います:
> scrcpy --crop 1600:900:2017:510 --bit-rate 2M --max-size 800 # 共有する > scrcpy --crop 1600:900:2017:510 --bit-rate 2M --max-size 800 --no-control --record a.mp4 # 録画する
- ※1
- HMDでパススルーを使う場合、背景も共有/録画されます。
- ※2
- 事前に、adb コマンドでデバイスに接続している必要があります。
- ※3
- デバイス側からPC側に、リアルタイムに映像を転送するので(圧縮転送)、そのぶん画質は劣化します。
- ※4
- この機能は、SideQuest からも利用できます(こちらはGUIでscrcpyを操作できるので、CLIで操作するより楽かもしれません)。
HMD:Quest 2 (Record Video)
デバイスによっては、専用の共有/録画機能をもつものもあります。
たとえばHMD(Android (Quest) )では、次の操作で画面を共有/録画できます:[※1]
- 左コントローラ > ホームボタン > 録画
共有/録画する画面の大きさを変える場合、次のコマンドが使えます(HMD(Android (Quest) )の場合):
> adb shell setprop debug.oculus.capture.width 1280 > adb shell setprop debug.oculus.capture.height 720 > adb shell getprop debug.oculus.capture.width # 現在のサイズ(はば)を確認する > adb shell getprop debug.oculus.capture.height # 現在のサイズ(高さ)を確認する
録画したファイルは、デバイス側の次のフォルダに配置されます(PC側に取り込むには、デバイス側の同期機能を使うか、コマンド(adb pull)を使います):
- /sdcard/oculus/videoshots/*.mp4
- ※1
- HMDでパススルーを使う場合、背景は共有/録画されません(セキュリティ上の制約です)。