はじめに
こんにちは。
STYLYのafjkです。
本記事では、スマホ一台でLBEに必要なネットワーク環境および同期サーバーを動作させる方法を紹介します。
STYLY NetSyncとは
LBEコンテンツを制作するうえで必要な基本機能を提供するオープンソースモジュールとサーバーです。
詳しくはこちらの記事をご参照ください。
STYLY NetSyncの特徴の一つは軽量でセットアップが容易な同期サーバーです。
Pythonで実装されており、ReadmeのInstallationにはMacとWindows PCへのインストール方法が記載されていますが、Linuxでも動作します。
そこで、Androidスマホ上で動作するLinuxでSTYLY NetSyncサーバーを動かし、テザリングでHMDを複数台接続することでスマホ1台で持ち運べるLBE環境を構築してしまおうというのがこの記事の主旨です。
環境
- Xperia 5ii (サーバー)
- Quest3 (クライアント)
- Unity6000.0.59f2
AndroidでLinux(Ubuntu)を立ち上げる
AndroidでLinuxを立ち上げるには、まずF-Droid をインストールします。
F-Droidとは?
F-Droidは、Android向けのFOSS(自由でオープンソースのソフトウェア)をインストールできるカタログです。お使いの端末で簡単に閲覧、インストール、更新の確認ができます。次に、F-DroidからTermuxとTermux APIをインストールします。
https://f-droid.org/ja/packages/com.termux/
https://f-droid.org/ja/packages/com.termux.api/
TermuxでUbuntuをインストールし、実行する
以下のコマンドを実行してください。
pkg update && pkg upgrade
pkg install proot-distro
proot-distro install ubuntu
proot-distro login ubuntu
これでAndroid上にLinux(Ubuntu)が起動します。

UbuntuでSTYLY NetSync Servderを起動する
必要なソフトウェアをインストールし、STYLY NetSync Serverを起動しましょう。
apt update
apt install -y python3 python3-venv python3-pip curl
curl -LsSf https://astral.sh/uv/install.sh | sh
uvx styly-netsync-server@0.7.0
これで、スマホ1台で同期サーバーが動くネットワーク環境を構築できました!
クライアントをテザリングで接続すれば、マルチプレイヤー環境をどこへでも持ち出すことが可能になります。

MacでのUnityEditorとQuest3でマルチプレイしている様子
注意:この方法では自動サーバー検出が機能せず、サーバーのIPアドレスを指定する必要があります。
NetSyncManagerのServer AddressにAndroidスマホのIPアドレスを設定してください。

Tips
AndroidでTermuxを操作するには、PCを接続してscrcpyでミラーリングすればPCからキー入力できて便利です。
おわりに
持ち歩くLBE環境という、LBE(=Location Based)の概念と真っ向から対立するような話をしてしまいましたが、場所に縛られずスマホ一台で気軽にどこでもマルチプレイヤー環境を持ち歩けると、いろいろ出来ることも増えるような気がします。
STYLY NetSyncはオープンソースですので自由な発想で使ってみてください。
おわり。



