NTT XR Space WEB(DOOR)は、2025年3月31日(月)をもって終了となります。代替サービスとして、Hyperfyの活用を提案します。
Hyperfyは、ThreejsとPhysXを活用したオープンソースのブラウザベース3Dエンジンです。専門知識がなくても、誰でも仮想空間を構築・公開できます。
Node.js: バージョン22.11.0以上
Git: プロジェクトのクローンに必要
まず、Hyperfyのリポジトリをローカルにクローンします。
# プロジェクトをクローン
git clone https://github.com/hyperfy-xyz/hyperfy.git my-world
# ディレクトリに移動
cd my-world
.env.example
をコピーして.env
ファイルを作成します。
cp .env.example .env
依存パッケージをインストールします。
npm install
ローカルで動作確認を行います。
npm run dev
ブラウザで http://localhost:3000/ を開き、ワールドが表示されることを確認してください。
WASD or 矢印キーで移動VRMファイルを画面にドラッグ&ドロップ。Equipボタンをクリックでアバターを変更できます。
3DモデルはGLBファイルを画面にドラッグ&ドロップで配置できます。
Hyperworlds.host は簡単に始められ、特化したサポートが受けられる一方で、コストが月額 5ドル〜で、カスタマイズに制限があります。
Fly.io にアクセスし、アカウントを作成します。
プロジェクトのルート フォルダー ( my-world) にて、
touch fly.toml
これで、空のfly.tomlファイルが作成されます[yourappname] をプロジェクト名 (my-world) に変更して保存します。
app = '[yourappname]'
primary_region = 'nrt'
[env]
NODE_ENV = 'production'
WORLD = 'world'
PORT = '3000'
SAVE_INTERVAL = '60'
PUBLIC_MAX_UPLOAD_SIZE = '12'
PUBLIC_WS_URL = 'https://[yourappname].fly.dev/ws'
PUBLIC_API_URL = 'https://[yourappname].fly.dev/api'
PUBLIC_ASSETS_URL = 'https://[yourappname].fly.dev/assets'
[mounts]
source = 'data'
destination = '/app/world'
auto_extend_size_threshold = 75
auto_extend_size_increment = '1GB'
auto_extend_size_limit = '5GB'
[build]
[http_service]
internal_port = 3000
force_https = true
auto_stop_machines = 'stop'
auto_start_machines = true
min_machines_running = 0
processes = ['app']
[vm]
memory = '2gb'
cpu_kind = 'shared'
cpus = 1
Fly.ioのCLIをインストールします。
curl -L https://fly.io/install.sh | sh
インストール後、PATHに追加されていない場合は以下を実行
( fly.ioをmacのターミナルで使うコマンド ):
export PATH="$HOME/.fly/bin:$PATH"
プロジェクトルートで以下を実行します。
touch fly.toml
fly launch
でアプリ名やリージョン(例:nrt=東京)を選択します。
fly launch
アプリ名を入力
リージョンを選択(nrt推奨)
PostgreSQLやRedisは「No」
支払い方法登録後、ボリュームを作成します。
fly volume create data -r nrt
セキュリティのため、シークレットを設定します。
fly secrets set JWT_SECRET=(十分にランダムな値を推奨)
fly secrets set ADMIN_CODE=(十分にランダムな値を推奨)
注意: シークレットは漏洩しないよう厳重に管理してください。変更後は再デプロイが必要な場合があります。
fly deploy
fly status
fly logs
ブラウザで https://[yourappname].fly.dev
にアクセスし、動作を確認します。
CNAMEレコード推奨:
ホスト名: @
または www
値: [yourappname].fly.dev
A/AAAAレコードの場合は fly ips list
でIPを取得
fly certs show example.com
表示された指示に従い、DNSに _acme-challenge
のCNAMEを追加します。
fly secrets set PUBLIC_WS_URL=https://example.com/ws
fly secrets set PUBLIC_API_URL=https://example.com/api
fly secrets set PUBLIC_ASSETS_URL=https://example.com/assets
再デプロイ:
fly deploy
証明書一覧: fly certs list
DNS設定確認: fly certs check example.com
削除: fly certs remove example.com
Cloudflare利用時の注意
Universal SSLは干渉する場合があるため無効化を検討
SSL/TLSモードは「Full」または「Full (Strict)」推奨
cd my-world
git fetch origin
git pull origin main
npm install
npm run build
npm run dev
fly.ioをmacのターミナルで使うコマンドを入力
export PATH="$HOME/.fly/bin:$PATH"
Fly.ioにデプロイ
fly deploy
デプロイ状況を確認
fly status
fly logs
git reset --hard <commit-hash>
fly deploy
git log --oneline origin/main..HEAD
デプロイ失敗時:fly logs
でエラー内容を確認。
npm installエラー:Node.jsバージョンや依存パッケージのバージョンを確認
シークレット漏洩時:即座に新しい値で上書きし、再デプロイ
独自ドメインが反映されない:DNS設定や証明書発行状況を再確認
Fly.ioとDigital Oceanは、どちらも仮想空間のホスティングに利用できる人気のクラウドサービスですが、それぞれ特徴が異なります。
Fly.ioは、フルマネージド型のサービスで、初期設定が非常に簡単です。コマンドラインから「fly launch」と「fly deploy」の2つのコマンドで素早くデプロイでき、メモリ拡張やHTTPS設定も自動化されています。小~中規模のワールドをすぐに公開したい場合や、サーバー管理の経験が少ない方に特におすすめです。料金も月5ドル程度から利用でき、コストを抑えたい場合にも向いています。
一方、Digital Oceanはセルフマネージド型で、OSレベルから自由にカスタマイズできるのが大きな特徴です。初期設定や運用にはある程度のサーバー管理スキルが必要ですが、SSH接続による完全なサーバー管理や、CDN・DDoS保護などの高度な設定も可能です。大規模なワールドや、細かいカスタマイズが必要な場合、また長期運用を考えている場合に適しています。料金は1GB RAMの最小構成で月6ドル程度から利用できます。
Fly.ioが向く場合
すぐに公開したい
サーバー管理経験が少ない
小~中規模運用
Digital Oceanが向く場合
カスタム設定やCDNを詳細に管理したい
大規模運用やサーバー管理スキルがある
まとめると、
「すぐに公開したい」「管理を簡単にしたい」場合はFly.io
「細かい制御や大規模運用が必要」「サーバー管理に慣れている」場合はDigital Ocean がおすすめです。ご自身の技術レベルや運用規模に合わせて選択してください。
Blenderで3Dモデルを作成し、glbファイルを書き出す時にHyperfy用にコライダーなどを設定する場合は、BlenderアドオンのHyperfy Toolsを利用すると便利です。
Buildモードで配置したglbファイルの3DモデルをRキーをクリックするとInspectでcodeを追加していろんな機能を付与できます。Downloadすると.hyp形式のファイルになります。
Q. メモリはどれくらい必要?
A. 最低2GB以上を推奨。512MBでも動作しますが安定性に欠けます。
Q. 独自ドメインは必須?
A. 必須ではありませんが、ブランディングや信頼性向上のため推奨されます。
Q. シークレット値はどのように管理すべき?
A. ランダムな強力な値を使用し、漏洩時は即座に変更・再デプロイしてください。
Q. ローカルの変更が競合した場合は?
A. 競合解消後、必ず動作確認を行ってからデプロイしてください。
Hyperfy V2 Worldは、HyperWorlds.hostやFly.io・Digital Oceanを活用することで、誰でも簡単に仮想空間を公開できます。定期的なアップデートやセキュリティ管理を徹底し、快適な運用を目指しましょう。
masia