目次

  1. はじめに

  2. インストール手順

  3. ホスティング

  4. 独自ドメイン設定

  5. 運用・更新・トラブルシューティング

  6. Fly.ioとDigital Oceanの比較

  7. Hyperfy用のアセットを作成)

  8. FAQ(よくある質問)

  9. 公式リソース・参考リンク


1. はじめに

NTT XR Space WEB(DOOR)は、2025年3月31日(月)をもって終了となります。代替サービスとして、Hyperfyの活用を提案します。

Hyperfyは、ThreejsとPhysXを活用したオープンソースのブラウザベース3Dエンジンです。専門知識がなくても、誰でも仮想空間を構築・公開できます。

https://docs.hyperfy.xyz/


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/ を開き、ワールドが表示されることを確認してください。

Start

WASD or 矢印キーで移動VRMファイルを画面にドラッグ&ドロップ。Equipボタンをクリックでアバターを変更できます。

VRM

3DモデルはGLBファイルを画面にドラッグ&ドロップで配置できます。


3. ホスティング

3.1.1 ホスティングプロバイダー

Hyperworlds.host は簡単に始められ、特化したサポートが受けられる一方で、コストが月額 5ドル〜で、カスタマイズに制限があります。

https://hyperworld.host/

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. 公式リソース・参考リンク

https://play.dwebxr.xyz/


まとめ

Hyperfy V2 Worldは、HyperWorlds.hostやFly.io・Digital Oceanを活用することで、誰でも簡単に仮想空間を公開できます。定期的なアップデートやセキュリティ管理を徹底し、快適な運用を目指しましょう。

Mirror文章信息

Mirror原文:查看原文

作者地址:0x1138cDC8E85330C428562AA7849e252De63c089F

内容类型:application/json

应用名称:MirrorXYZ

内容摘要:gBqn5oIta9qc1y9VBewslY2ynQsKFqIoha6HSyuYj6Q

原始内容摘要:PQpd7cC8eR3JWqOKg9mdjpLDeKTWa09WUSPJiyfTyo4

区块高度:1674340

发布时间:2025-05-20 22:30:09