> For the complete documentation index, see [llms.txt](https://docs.digitalhumans.jp/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digitalhumans.jp/dev/miniprem/remote-debugging.md).

# リモートデバッグ

本ガイドでは、本番環境やミニプレム（MiniPrem）環境での問題診断のために Renny（レンダラー、開発コード：Renny）で利用できるリモートデバッグコマンドを説明します。

{% hint style="info" %}
本ページの内容はデジタルヒューマン株式会社の正式サポート対象外です。参考情報としてご利用ください。
{% endhint %}

{% hint style="warning" %}
**セキュリティに関する注意**: 特権デバッグコマンド（`log` など）には昇格された権限が必要です。アクセスを申請するには 弊社テクニカルコンタクトまでご連絡ください。必要な権限を持たない状態で特権コマンドを使用しようとすると、**セッションが終了します**。
{% endhint %}

## 利用可能なコマンド

| コマンド                  | UE Console コマンド       | 区分         | 説明                                     |
| --------------------- | --------------------- | ---------- | -------------------------------------- |
| `stat_pixelstreaming` | `stat PixelStreaming` | Public     | ピクセルストリーミングのパフォーマンス指標を表示               |
| `stat_unit`           | `stat Unit`           | Public     | Unreal Engine の unit / actor パフォーマンス統計 |
| `log`                 | *(動的)*                | Privileged | 特定カテゴリのログ出力レベルを設定                      |

### Public コマンド

Public コマンド（`stat_pixelstreaming`、`stat_unit`）は、特別な権限なしで接続中のすべてのクライアントから利用できます。これらのコマンドは、Unreal Engine 組み込みの統計オーバーレイをトグルします。

### Privileged コマンド

`log` コマンドを使用すると、実行時に特定カテゴリのログ出力レベルを変更できます。利用には昇格された権限が必要です。アクセスを申請するにはテクニカルコンタクトまでご連絡ください。

{% hint style="warning" %}
**重要**: 必要な権限を持たないクライアントが特権コマンドを送信した場合、セッションは即座に終了します。
{% endhint %}

## ログカテゴリ

`log` コマンドで利用可能なログカテゴリは以下のとおりです。

| カテゴリ                                     | 説明                        |
| ---------------------------------------- | ------------------------- |
| `LogDHOP`                                | 低レベルの DHOP ログ             |
| `LogRennyExperience`                     | セッションログ                   |
| `LogWebRTCMessageHandler`                | WebRTC データチャネルのメッセージハンドラー |
| `LogUneeQDigitalHuman`                   | デジタルヒューマンのログ              |
| `LogUneeQTTS`                            | TTS（音声合成）                 |
| `LogUneeQNLP`                            | NLP                       |
| `LogPixelstreaming`                      | ピクセルストリーミング               |
| `LogRennyExperienceCoordinatorSubsystem` | セッションコーディネーターを管理するサブシステム  |
| `LogRennyExperienceCoordinatorV2`        | V2 セッションコーディネーター          |
| `LogRennyGameSubsystem`                  | V1 セッション / DHOP コーディネーター  |
| `LogRennyDhopHandlerV2`                  | DHOP / ピクセルストリーミング接続 v2   |
| `LogRennyDhopHandler`                    | DHOP / セッション接続 V1         |
| `EevaAnimationLogClass`                  | デジタルヒューマン内部処理             |

## ログ出力レベル

| レベル           | 説明          |
| ------------- | ----------- |
| `Error`       | エラーメッセージのみ  |
| `Warning`     | エラーと警告      |
| `Log`         | 標準ログ（デフォルト） |
| `Verbose`     | 詳細ログ        |
| `VeryVerbose` | 最大粒度のログ     |

## アクセス方法

### 1. Hosted Experience デバッグパネル

Hosted Experience の try ページには、組み込みのデバッグパネルが用意されています。

1. ブラウザーで try ページを開きます
2. **Ctrl+Shift+D** を押してデバッグパネルを表示します。このキーボードショートカットにより、通常はエンドユーザーから見えない隠しデバッグパネルが表示されます
3. パネルのコントロールを使ってコマンドを送信します

{% hint style="info" %}
デバッグパネルでは、生のメッセージを組み立てることなく、コマンド・ログカテゴリ・出力レベルを選択できる使いやすいインターフェースを提供します。
{% endhint %}

### 2. デプロイスクリプト API

デプロイスクリプトは、デバッグコマンドを送信するための JavaScript API を公開しています。

```javascript
executeCommand(command, enabled, category, verbosity)
```

**パラメータ**:

* `command` — コマンド名（例: `stat_pixelstreaming`、`log`）
* `enabled` — コマンドを有効化／無効化するブール値
* `category` — ログカテゴリ（`log` コマンドのみ）
* `verbosity` — ログ出力レベル（`log` コマンドのみ）

**例**:

```javascript
// Enable pixel streaming stats
executeCommand('stat_pixelstreaming', true)

// Set LogDHOP to Verbose
executeCommand('log', true, 'LogDHOP', 'Verbose')

// Reset LogDHOP to default
executeCommand('log', false, 'LogDHOP', 'Log')
```

## セッションのライフサイクル

* すべてのデバッグコマンドは、**セッション終了時に自動でリセット**されます
* 統計オーバーレイはセッションごとにトグルされます
* ログ出力レベルの変更は、セッション終了時にデフォルトへ戻ります
* レンダラーに対する永続的な設定変更は行われません

## ソース参照

実装内容を把握したい開発者向けの参照先です。

| コンポーネント        | ファイル                                                                 |
| -------------- | -------------------------------------------------------------------- |
| デバッグパネル UI     | `dhop/apps/hosted-experience/src/try/index.html`                     |
| デプロイスクリプト API  | `dhop/apps/hosted-experience/src/deploy/index.js`                    |
| WebRTC データチャネル | `dhop/libs/uneeq-js/src/uneeq.ts`                                    |
| コマンド定義         | `renny/App/Source/Renny/Private/Experience/ExperienceGameMode.cpp`   |
| メッセージルーティング    | `renny/App/Source/Renny/Private/Experience/WebRTCMessageHandler.cpp` |
