Skip to content

制限モード

概要

制限モード(Restricted Mode)は、サーバーレス環境(Cloudflare等)へのデプロイや、デモ端末での利用を想定したモードです。ファイルシステムへの書き込みができない環境でも安全に動作するよう、書き込み系の操作を無効化し、読み取り系の操作は静的マニフェストデータで代替します。

環境変数:

bash
# 制限モードの有効/無効(true/false)
NEXT_PUBLIC_RESTRICTED_MODE="false"

TIP

Cloudflareデプロイ時は、ビルドスクリプトにより自動的に true に設定されます。

使える機能

制限モードでも以下の機能は通常どおり利用できます。

  • AIチャット: すべてのAIプロバイダーとの会話(OpenAI、Anthropic、Google等)
  • 音声合成(TTS): すべての音声合成エンジン(VOICEVOX、ElevenLabs、Google TTS等)
  • 音声入力(STT): ブラウザ音声認識、Whisper
  • キャラクター表示: VRM、Live2D、PNGTuberの表示・アニメーション
  • キャラクター選択: プリセットからのVRM/Live2D/PNGTuberモデル選択
  • 背景選択: プリセットからの背景画像選択
  • スライド再生: プリセットスライドの閲覧・再生
  • YouTube連携: YouTubeコメント取得・配信
  • リアルタイムAPI: OpenAI Realtime APIによるリアルタイム会話
  • 設定の保存: ブラウザのローカルストレージへの設定保存
  • テーマ変更: カラーテーマの切り替え

制限される機能一覧

基本設定

機能制限内容
背景画像アップロードアップロードボタンが無効化
背景画像選択プリセット画像のみ選択可能(アップロード不可)

キャラクター設定

機能制限内容
VRMファイルのアップロード「VRMを開く」ボタンが無効化

INFO

VRM、Live2D、PNGTuberのモデル選択は可能です。プリセットとして登録されているモデルの中から選択できます。

合成音声設定

機能制限内容
VOICEVOXスピーカーリスト更新更新ボタンが無効化
AivisSpeechスピーカーリスト更新更新ボタンが無効化

スライド設定

機能制限内容
スライド変換(PDF→スライド)変換UIが非表示
スライドエディタテキストエリア・保存・元に戻すボタンが無効化

INFO

スライドの選択・閲覧・再生は可能です。プリセットとして登録されているスライドフォルダから選択できます。

画像設定

機能制限内容
画像アップロードアップロードボタンが無効化
画像削除削除ボタンが無効化

記憶設定

機能制限内容
記憶データのバックアップファイル選択ファイル選択ボタンが無効化
記憶データの復元復元ボタンが無効化

その他の設定

機能制限内容
外部からの指示を受け付ける(Message Receiver)トグルが無効化、APIとポーリングも停止
外部連携モード(WebSocket)トグルが無効化、WebSocket接続も停止

ポーズ機能

機能制限内容
ポーズのY軸回転調整・保存調整パネルが非表示

技術的な詳細

読み取り系API

制限モードでは、ファイルシステムにアクセスできないため、以下のAPIは静的マニフェストデータ(assetManifest.json)から応答を返します。正常にデータを返すため、モデルやスライドの選択は問題なく動作します。

API返却データ
/api/get-vrm-listVRMモデル一覧
/api/get-background-list背景画像一覧
/api/get-live2d-listLive2Dモデル一覧
/api/get-pngtuber-listPNGTuberモデル一覧
/api/get-pose-listポーズ一覧
/api/getSlideFoldersスライドフォルダ一覧
/api/getSupplementスライド補足情報
/api/convertMarkdownスライドHTML/CSS
/api/get-image-list画像一覧

書き込み系API

以下のAPIは制限モードでは403エラーを返します。対応するUI側のボタン・トグルも無効化されているため、通常の操作でこのエラーに遭遇することはありません。

API操作内容
/api/upload-vrm-listVRMファイルアップロード
/api/upload-background背景画像アップロード
/api/upload-image画像アップロード
/api/delete-image画像削除
/api/convertSlidePDF→スライド変換
/api/updateSlideDataスライドデータ更新
/api/update-pose-rotationポーズ回転保存
/api/update-aivis-speakersAivisSpeechスピーカー更新
/api/update-voicevox-speakersVOICEVOXスピーカー更新
/api/save-chat-logチャットログ保存
/api/messagesメッセージ送受信(Message Receiver)

プリセットデータのカスタマイズ

制限モードで利用可能なプリセットデータは src/constants/assetManifest.json で管理されています。デプロイ前にこのファイルを編集することで、制限モードで選択可能なモデルや背景画像をカスタマイズできます。

json
{
  "vrm": ["model1.vrm", "model2.vrm"],
  "backgrounds": ["bg-1.png"],
  "live2d": [{ "path": "/live2d/model/model.model3.json", "name": "model", ... }],
  "pngtuber": [{ "path": "/pngtuber/model", "name": "model", ... }],
  "poses": [{ "name": "wave", "path": "/poses/wave.json" }],
  "slides": { "folders": ["demo"], ... }
}

TIP

public/ 配下に対応するアセットファイルも一緒に配置する必要があります。

本ドキュメントはv2.42.0に対応しています