目次
1. はじめに
NTT XR Space WEB(DOOR)は、2025年3月31日(月)をもって終了となります。代替サービスとして、Hyperfyの活用を提案します。
Hyperfyは、ThreejsとPhysXを活用したオープンソースのブラウザベース3Dエンジンです。専門知識がなくても、誰でも仮想空間を構築・公開できます。
2. インストール手順
前提条件
-
Node.js: バージョン22.11.0以上
-
Git: プロジェクトのクローンに必要
2.1 プロジェクトのクローン
まず、Hyperfyのリポジトリをローカルにクローンします。
# プロジェクトをクローン
git clone https://github.com/hyperfy-xyz/hyperfy.git my-world
# ディレクトリに移動
cd my-world
2.2 環境ファイルの作成
.env.example
をコピーして.env
ファイルを作成します。
cp .env.example .env
2.3 依存パッケージのインストール
依存パッケージをインストールします。
npm install
2.4 開発サーバーの起動
ローカルで動作確認を行います。
npm run dev
ブラウザで http://localhost:3000/ を開き、ワールドが表示されることを確認してください。
WASD or 矢印キーで移動VRMファイルを画面にドラッグ&ドロップ。Equipボタンをクリックでアバターを変更できます。
3DモデルはGLBファイルを画面にドラッグ&ドロップで配置できます。
3. ホスティング
3.1.1 ホスティングプロバイダー
Hyperworlds.host は簡単に始められ、特化したサポートが受けられる一方で、コストが月額 5ドル〜で、カスタマイズに制限があります。
3.2.1 セルフホスティングプロバイダー(Fly.io)
Fly.ioアカウント作成
Fly.io にアクセスし、アカウントを作成します。
fly.tomlファイルの作成
プロジェクトのルート フォルダー ( 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
3.2.2 Fly CLIのインストール
Fly.ioのCLIをインストールします。
curl -L https://fly.io/install.sh | sh
インストール後、PATHに追加されていない場合は以下を実行
( fly.ioをmacのターミナルで使うコマンド ):
export PATH="$HOME/.fly/bin:$PATH"
3.2.3 アプリケーションの初期化
プロジェクトルートで以下を実行します。
touch fly.toml
fly launch
でアプリ名やリージョン(例:nrt=東京)を選択します。
fly launch
-
アプリ名を入力
-
リージョンを選択(nrt推奨)
-
PostgreSQLやRedisは「No」
3.2.4 ボリュームの作成
支払い方法登録後、ボリュームを作成します。
fly volume create data -r nrt
3.2.5 シークレットの設定
セキュリティのため、シークレットを設定します。
fly secrets set JWT_SECRET=(十分にランダムな値を推奨)
fly secrets set ADMIN_CODE=(十分にランダムな値を推奨)
注意: シークレットは漏洩しないよう厳重に管理してください。変更後は再デプロイが必要な場合があります。
3.2.6 アプリケーションのデプロイ
fly deploy
3.2.7 デプロイ状況の確認
fly status
fly logs
3.2.8 アプリケーションへのアクセス
ブラウザで https://[yourappname].fly.dev
にアクセスし、動作を確認します。
4. 独自ドメイン設定
4.1 DNSレコードの追加
-
CNAMEレコード推奨:
-
ホスト名:
@
またはwww
-
値:
[yourappname].fly.dev
-
-
A/AAAAレコードの場合は
fly ips list
でIPを取得
4.2 証明書の発行・検証
fly certs show example.com
表示された指示に従い、DNSに _acme-challenge
のCNAMEを追加します。
4.3 環境変数の更新
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
4.4 証明書関連コマンド
-
証明書一覧:
fly certs list
-
DNS設定確認:
fly certs check example.com
-
削除:
fly certs remove example.com
Cloudflare利用時の注意
-
Universal SSLは干渉する場合があるため無効化を検討
-
SSL/TLSモードは「Full」または「Full (Strict)」推奨
5. 運用・更新・トラブルシューティング
5.1 リポジトリの更新
cd my-world
git fetch origin
git pull origin main
5.2 依存関係の更新
npm install
5.3 ビルド・動作確認
npm run build
npm run dev
5.4 再デプロイ
fly.ioをmacのターミナルで使うコマンドを入力
export PATH="$HOME/.fly/bin:$PATH"
Fly.ioにデプロイ
fly deploy
デプロイ状況を確認
fly status
fly logs
5.5 ロールバック
git reset --hard <commit-hash>
fly deploy
5.6 変更履歴の確認
git log --oneline origin/main..HEAD
5.7 トラブルシューティング
-
デプロイ失敗時:
fly logs
でエラー内容を確認。 -
npm installエラー:Node.jsバージョンや依存パッケージのバージョンを確認
-
シークレット漏洩時:即座に新しい値で上書きし、再デプロイ
-
独自ドメインが反映されない:DNS設定や証明書発行状況を再確認
6. Fly.ioとDigital Oceanの比較
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を詳細に管理したい
-
大規模運用やサーバー管理スキルがある
https://github.com/hyperfy-xyz/hyperfy/wiki/Deploy-a-world-(Digital-Ocean)
まとめると、
-
「すぐに公開したい」「管理を簡単にしたい」場合はFly.io
-
「細かい制御や大規模運用が必要」「サーバー管理に慣れている」場合はDigital Ocean がおすすめです。ご自身の技術レベルや運用規模に合わせて選択してください。
7. Hyperfy用のアセットを作成
Blenderで3Dモデルを作成し、glbファイルを書き出す時にHyperfy用にコライダーなどを設定する場合は、BlenderアドオンのHyperfy Toolsを利用すると便利です。
https://extensions.blender.org/add-ons/hyperfy-tools/
hypファイル
Buildモードで配置したglbファイルの3DモデルをRキーをクリックするとInspectでcodeを追加していろんな機能を付与できます。Downloadすると.hyp形式のファイルになります。
8. FAQ(よくある質問)
Q. メモリはどれくらい必要?
A. 最低2GB以上を推奨。512MBでも動作しますが安定性に欠けます。
Q. 独自ドメインは必須?
A. 必須ではありませんが、ブランディングや信頼性向上のため推奨されます。
Q. シークレット値はどのように管理すべき?
A. ランダムな強力な値を使用し、漏洩時は即座に変更・再デプロイしてください。
Q. ローカルの変更が競合した場合は?
A. 競合解消後、必ず動作確認を行ってからデプロイしてください。
9. 公式リソース・参考リンク
まとめ
Hyperfy V2 Worldは、HyperWorlds.hostやFly.io・Digital Oceanを活用することで、誰でも簡単に仮想空間を公開できます。定期的なアップデートやセキュリティ管理を徹底し、快適な運用を目指しましょう。
评论 (0)