ロールプレイ
Elftia には SillyTavern と互換性のあるロールプレイ(RP)システムが組み込まれており、キャラクターカードの作成やインポート、世界観設定の構築、AI との没入感のあるロールプレイ会話を行えます。TavernCard V2/V3 フォーマット、World Info 知識ベース、複数キャラクターのグループチャット、正規表現によるテキスト置換、感情スプライトシートに対応しています。
ユースケース
- 仮想キャラクターを作成し、没入感のある会話を行う
- SillyTavern やキャラクターカード共有サイトからキャラクターカードをインポートする(メタデータが埋め込まれた PNG)
- 世界観設定(World Info)を構築し、会話コンテキストに基づいて AI が関連知識を自動的に参照できるようにする
- キャラクター同士がやり取りする複数キャラクターのグループチャットシナリオを設定する
- 正規表現スクリプトを使用して、出力テキストを自動的に置換または変更する
- キャラクターの感情スプライトシートを設定し、感情に基づいて表情を動的に切り替える
キャラクターカード
キャラクターカードはロールプレイの基盤であり、AI キャラクターの性格、背景、行動パターンを定義します。
カードフォーマット
Elftia は複数のキャラクターカードフォーマットに対応しています。
| フォーマット | 識別子 | 説明 |
|---|---|---|
| TavernCard V2 | v2 | PNG 画像に Base64 エンコードされた JSON メタデータを埋め込む SillyTavern 標準フォーマット |
| TavernCard V3 | v3 | Assets や作成日などの追加フィールドを含む V2 の拡張版 |
| CharX | charx | 拡張キャラクターカードフォーマット |
| BYAF | byaf | Build Your AI Friend フォーマット |
| JSON | json | 純粋な JSON キャラクターデータフォーマット |
| 手動作成 | manual | Elftia で手動作成されたキャラクター |
カードフィールド
各キャラクターカードには次のフィールドが含まれます。
| フィールド | 説明 | 必須 |
|---|---|---|
| 名前 (name) | キャラクター名 | はい |
| 説明 (description) | 外見、身元、背景を含むキャラクターの詳細な説明 | はい |
| 性格 (personality) | キャラクターの性格特性 | いいえ |
| シナリオ (scenario) | 会話の場面設定 | いいえ |
| 最初のメッセージ (first_mes) | キャラクターの冒頭の発話 | いいえ |
| 会話例 (mes_example) | キャラクターの会話スタイルの例 | いいえ |
| システムプロンプト (system_prompt) | キャラクター固有のシステムプロンプト | いいえ |
| 履歴後指示 (post_history_instructions) | メッセージ履歴の後に挿入される指示 | いいえ |
| 代替挨拶 (alternate_greetings) | 任意の複数の冒頭発話 | いいえ |
| 作成者ノート (creator_notes) | キャラクターカード作成に関するメモ | いいえ |
| タグ (tags) | 分類タグ | いいえ |
| キャラクターアバター (avatar) | キャラクターのアバター画像 | いいえ |
キャラクターカードの作成
手順
- キャラクターカード管理ページを開く
- キャラクターを作成 ボタンをクリックする
- キャラクター情報(名前、説明、性格など)を入力する
- (任意)キャラクターアバターをアップロードする
- (任意)会話例を書く
- (任意)システムプロンプトを設定する
- キャラクターカードを保存する
キャラクターカードのインポート
Elftia は PNG ファイルからキャラクターカードをインポートできます。多くのキャラクターカード共有サイトでは、キャラクターデータが埋め込まれた PNG 画像が提供されています。
PNG からのインポート
- キャラクターカード管理で インポート をクリックする
- キャラクターデータを含む PNG ファイルを選択する
- システムが PNG に埋め込まれた JSON メタデータを自動的に解析する
- キャラクター情報をプレビューする
- インポートを確認する
:::info PNG メタデータフォーマット
- V2 フォーマット: データは PNG の
tEXtチャンクにキーワードcharaで保存され、内容は Base64 エンコードされた JSON - V3 フォーマット: キーワードは
ccv3で、より豊富なメタデータを含む :::
JSON からのインポート
JSON フォーマットのキャラクターデータファイルを直接インポートすることもできます。
キャラクターカードのエクスポート
キャラクターカードは PNG ファイル(メタデータ埋め込み)または JSON ファイルとしてエクスポートでき、共有やバックアップに利用できます。
PNG としてエクスポート
- エクスポートするキャラクターカードを選択する
- エクスポート ボタンをクリックする
- PNG フォーマット を選択する
- システムがキャラクターデータをアバター PNG に埋め込む
- エクスポートされた PNG ファイルを保存する
エクスポートされた PNG ファイルは、SillyTavern やその他の互換アプリケーションに直接インポートできます。
会話でキャラクターを使用する
手順
- チャットセッションの設定パネルを開く
- ロールプレイ 設定エリアを展開する
- キャラクターセレクター からキャラクターカードを選択する
- RP 関連パラメーターを設定する(下の設定表を参照)
- チャットを開始する
RP 設定パラメーター
| パラメーター | 説明 | デフォルト値 |
|---|---|---|
| キャラクターカード (characterCardId) | 使用するキャラクターを選択 | なし |
| ユーザー名 (userName) | RP でのあなたの名前 | User |
| ユーザーペルソナ (userPersona) | あなたのキャラクター背景 | なし |
| 作者ノート (authorsNote) | 会話コンテキストに挿入される非表示の指示 | なし |
| 作者ノート深度 (authorsNoteDepth) | ノートが挿入される位置(最新メッセージからの距離) | 4 |
| 返信プレフィックス (replyPrefix) | AI の返信前に自動追加されるプレフィックス | なし |
| クイック返信 (quickReplies) | プリセットのクイック返信ボタン | なし |
| コンテキストテンプレート (contextTemplateId) | カスタムプロンプトの組み立て順序 | なし |
| 要約 (summarizationEnabled) | 会話の要約を有効にする(長い会話を圧縮する) | いいえ |
World Info
World Info は、世界観に関する知識エントリーを保存するロールプレイ用の知識ベースシステムです。会話に一致するキーワードが見つかると、関連する World Info エントリーが AI のコンテキストに自動的に注入されます。
中核概念
| 概念 | 説明 |
|---|---|
| ブック | World Info のコンテナ。複数のエントリーを含められる |
| エントリー | トリガーキーワードと内容を持つ単一の知識項目 |
| キー | エントリーをトリガーするキーワードのリスト |
| スキャン深度 | キーワード一致を調べる直近メッセージ数 |
| トークン予算 | World Info が消費できる最大トークン数 |
| 再帰スキャン | トリガーされたエントリー内容の中でキーワードのスキャンを継続するかどうか |
World Info の作成
- World Info 管理ページを開く
- ブック を作成する
- ブックに エントリー を追加する
- 各エントリーにトリガーキーワードと内容を設定する
エントリー設定
| フィールド | 説明 |
|---|---|
| キーワード (keys) | このエントリーをトリガーするキーワードのリスト |
| 内容 (content) | エントリーの知識内容 |
| 有効 (enabled) | このエントリーを有効にするかどうか |
| 挿入順序 (insertion_order) | 複数のエントリーがトリガーされたときの優先順位ソート |
| 大文字小文字を区別 (case_sensitive) | キーワード一致で大文字小文字を区別するかどうか |
| 選択的マッチング (selective) | 主キーワードと副キーワードの両方が一致する必要があるかどうか |
| 副キー (secondary_keys) | 選択的マッチング用の副キーワード |
| 常時挿入 (constant) | 常にコンテキストに含めるかどうか |
| 位置 (position) | コンテキスト内の挿入位置 |
| 深度 (depth) | カスタム挿入深度 |
| 確率 (probability) | トリガー確率(0-100%) |
| 完全単語一致 (match_whole_words) | 完全な単語のみに一致させるかどうか |
World Info スキャン設定
| 設定 | 説明 | デフォルト |
|---|---|---|
| スキャン深度 | スキャンする直近メッセージ数 | 10 |
| トークン予算 | 消費できる最大トークン数 | 2048 |
| 再帰スキャン | トリガーされた内容内で一致判定を継続する | いいえ |
World Info の使用
- RP 設定パネルで 1 つ以上のブックを選択する
- スキャンパラメーターを設定する
- システムが会話中に自動的にスキャンし、一致したエントリーを注入する
キャラクター埋め込み知識ブック
キャラクターカードには埋め込みの Character Book を含めることができ、インポート時に対応する World Info 知識ベースが自動的に作成されます。
グループチャット
グループチャットモードでは、複数のキャラクターが同時に会話へ参加でき、複数人のやり取りをシミュレートできます。
手順
- グループチャット設定を作成する
- 参加するキャラクター(キャラクターカード)を追加する
- RP 設定でグループチャット設定を選択する
- グループチャット会話を開始する
動作
- 各会話ラウンドで、システムは設定に基づいてどのキャラクターが返信するかを決定する
- 各キャラクターの性格と設定は独立したまま保持される
- 次に返信するキャラクターを手動で指定できる
正規表現スクリプト
正規表現スクリプトを使用すると、正規表現で AI の入力または出力を自動的に置換、変更できます。
ユースケース
- AI の出力を自動的に整形する
- 特定のテキストパターンを置換する
- 特定のタグを追加または削除する
設定
RP 設定パネルの 正規表現スクリプト エリアで次の操作を行います。
- 新しい正規表現ルールを追加する
- 一致させる正規表現を入力する
- 置換テキストを入力する
- 適用先を選択する(入力 / 出力)
- ルールを有効にする
感情スプライトシート
感情スプライトシート機能を使用すると、会話で表現された感情に基づいて、キャラクターが表示する表情を動的に切り替えられます。
セットアップ
- キャラクター用の表情画像セットを用意する(例: 嬉しい、悲しい、怒っている、など)
- キャラクター設定で表情画像セットをアップロードする
- 各画像に対応する感情タグを付ける
- AI が返信の感情的なトーンを自動的に検出し、表情を切り替える
SillyTavern 互換性
Elftia のロールプレイシステムは SillyTavern と高い互換性があります。
| 機能 | 互換性 |
|---|---|
| TavernCard V2 インポート/エクスポート | 完全互換 |
| TavernCard V3 インポート/エクスポート | 完全互換 |
| Character Book | 完全互換 |
| World Info フォーマット | 完全互換 |
| PNG 埋め込みメタデータ | 完全互換 |
| 正規表現スクリプト | 互換 |
| 感情スプライトシート | 互換 |
SillyTavern からエクスポートされたキャラクターカードと World Info は、フォーマット変換なしで直接使用できます。
FAQ
| 質問 | 解決策 |
|---|---|
| PNG のインポートに失敗する | PNG ファイルに有効なキャラクターデータが含まれていることを確認する(tEXt チャンクに chara または ccv3 キーワードがあること) |
| キャラクターが設計どおりに返信しない | キャラクター説明とシステムプロンプトが十分に詳細か確認し、会話例を増やす |
| World Info エントリーがトリガーされない | キーワードのスペルが正しいことを確認し、スキャン深度が十分か確認する |
| World Info がトークン予算を超える | 常時挿入エントリーの数を減らすか、トークン予算を増やす |
| グループチャットのキャラクターが混乱する | 各キャラクターの説明が十分に固有であることを確認し、性格の重複を避ける |
| 表情が切り替わらない | 表情画像が正しくアップロードされ、感情タグが付けられていることを確認する |
| エクスポート後に他のアプリで認識されない | エクスポートフォーマットが対象アプリと互換性があることを確認する(V2 が最も広く互換性があります) |
| 作者ノートが機能しない | 作者ノート深度設定を確認し、深度が現在のメッセージ数を超えていないことを確認する |
関連リンク
- チャット — チャットでロールプレイを使用する
- LLM プロバイダー — RP 用の AI モデルを設定する
- プロンプト — プロンプトテンプレートをカスタマイズする