メインコンテンツまでスキップ

はじめに

Metatellプラグインは、Module Federationを使用してmetatellのルームに2D UIコンポーネントを動的に挿入する仕組みです。TypeScript + Reactベースで開発し、所定の位置にカスタムUIを配置できます。

📦 GitHubテンプレートリポジトリ: https://github.com/urth-inc/metatell-plugin-template

前提条件

  • Node.js 20以上(推奨: Volta使用)
  • npm または yarn
  • Git
  • TypeScriptReactの基礎知識
  • Metatell管理画面へのアクセス権限

テンプレート概要

テンプレート名用途導入難易度主な実装内容
AdditionalToolbarButtonツールバーにカスタムボタンを追加★☆☆アイコン、クリックアクション
CustomOverlay画面上の任意位置にUI要素を配置★★☆位置、サイズ、コンテンツ
CustomEntryPanelルーム入室時のカスタムパネル★★☆入室フロー、初期設定UI
CustomProfileModalプロフィール表示のカスタマイズ★★☆ユーザー情報表示、編集UI
CustomLeaveButton退出ボタンのカスタマイズ★☆☆退出確認、アクション
CustomChatButtonチャット機能のカスタマイズ★★★メッセージUI、送受信処理
CustomMegaphoneButton拡声器機能のカスタマイズ★★☆音声配信UI、範囲設定
CustomNearestUserProfile最寄りユーザー情報の表示★★★距離計算、リアルタイム更新
CustomTutorialチュートリアルのカスタマイズ★★★ステップ管理、進捗追跡

各テンプレートの詳細な実装例については、テンプレート一覧をご覧ください。

セキュリティに関する注意

⚠️ 重要: プラグインのJavaScriptコードはMetatellのルーム内のユーザー環境でサンドボックス無しで直接実行されます。開発時は以下の点にご注意ください:

  • 依存ライブラリの精査: npmパッケージを追加する際は、脆弱性や悪意のあるコードが含まれていないか確認してください
  • XSSの回避: ReactはデフォルトでXSS対策されていますが、 dangerouslySetInnerHTML を使ってユーザ入力を表示しないでください。
  • 外部通信の最小化: 不要な外部APIへの通信を避け、必要な場合はHTTPS通信を使用してください
  • 機密情報の取り扱い: APIキーやトークンなどの機密情報は環境変数やサーバーサイドで管理し、クライアントコードには含めないでください
  • 実行コードの制御: 外部のコード(CDN配信のJavaScriptやGoogle Tag Manager)を実行するようなコードは極力埋め込まないでください