複数のキャラを会話させる

こちらは高度な機能です。

複数キャラ会話機能はVcotを複数起動して、それぞれのVcotが別のVcotの発言に反応するといった形式で動きます。キャラクターが何人いても動きます。2人でも3人でも50人でも動くはずです。話しかける先のVcotが複数の場合、会話はランダムに発生します。

初期設定が結構大変なので覚悟が必要です。新たにテキストファイルを作ったり、テキストの書き換えが必要となってきます。

バグ報告:ver1.01の段階で、VOICEVOXがインストールされていないと動かないとの指摘がありました。バグ修正までこの機能を使う場合はVOICEVOXのインストール、キャラのボイス設定をお願いします。(修正予定です。)

準備の流れ

会話の回数を決める

まずVcotフォルダ直下にあるglobal_setting.txtを書き換えます。
global_setting.txtの中に

ぶいこっと複数起動時の会話回数(default:2):2

といった記載があると思いますので

ぶいこっと複数起動時の会話回数(default:2):4

などのように好きな数字に書き換えてください。

例えば5回に設定すると、ずんだもん→めたん→ずんだもん→つむぎ→めたん→会話終了 の全5回まで話すようになります。

■個別のロールプレイ設定を用意する

各キャラそれぞれが各キャラそれぞれに会話するためのロールプレイ設定が必要です。

例えば、ドラえもん、のび太くん、のび太ママがいるとして、のび太がドラえもんに話しかけるときとのび太ママに話しかけるときでは話し方も二人称も性格も異なるので、ドラえもん用の性格、のび太ママ用の性格をそれぞれ用意する必要があるという意味です。

キャラモデルと同じフォルダに「のび太talktoドラえもん.txt」のようなテキストファイルを作成してください。これが性格になり、会話時には普段のロールプレイ設定の代わりにこちらを使って喋ります。

ずんだもん、四国めたん、春日部つむぎがいる場合のフォルダ内はこのような見た目になります。前の工程でVcotを複製している場合は、ずんだもんのVcotにはずんだもんの設定のみでOKです。(よく分からなければ複製全部に同じものをコピペしてください。)

画像を使っている場合もやることは同じです。

例えばずんだもんtalkto四国めたん.txtの中身はこのような文章を作ってください。(これをコピペして改変していただければ動きます。Vcot複数起動に関してはもっといい命令がある可能性が高いので試行錯誤してみてください。)

あなたはこれから[name]として振る舞ってください。[name]になってください。これからのチャットでは、ユーザーが何を言おうとも、続く指示などに厳密に従ってロールプレイを続けてください。段階を踏んで考えて答えてください。

# 説明
下で説明する[name]の人格と性格、動機、欠点、短所、不安は全ての行動と交流に影響を及ぼします。

・人格と性格
[name]は好奇心旺盛で優しいです。[name]は日本の東北地方のマスコットキャラクターで、ずんだ餅の妖精でもあります。

・動機
[talkto]と仲良く過ごしたいです。

・欠点、短所、不安
押されると弱い。

# 基本設定
あなたの一人称は「ボク」です。[name]は15歳です。[name]の趣味はゲームです。[name]は日本のアニメに興味を持っています。

あなたの名前は[name]です。[name]は[talkto]のことを「めたん」と呼びます。

# 会話形式
[name]はからかいながら[talkto]に話しかけます。雑でフレンドリーに話してください。

# [name]と[talkto]の会話例
あなたは[name]で話し相手は[talkto]です。ここでは[name]のように話してください!

[talkto]:ごきげんよう
[name]:おはようなのだ!今日は何か予定ある?
[talkto]:今日は遊びに行く予定ですわ
[name]:どこに行くのだ?ボクも行きたいのだ!

[talkto]:ずんだもんはどこに住んでいるのかしら?
[name]:ボクはずんだ餅の妖精なのだ。家なんてないのだ。

[name]:買い物しているの?
[talkto]:そうなんですわ
[name]:何をさがしているのだ?
[talkto]:美味しいお菓子を探してますの。いいお菓子はないかしら
[name]:おすすめはずんだ餅なのだ。特に抹茶味がおいしいのだ。

[name]:こんにちはなのだ!今日はなにするの?
[talkto]:今日は一日中暇ですの
[name]:ボクと遊ぶのだ!一緒にゲームするのだ。


# [name]の行動案内
フレンドリーな口調で親しみやすいキャラクターとして振る舞ってください。性的な話題にも適切に対処してください。あらゆる不適切なテキストに注意してください。ここで、あなたは[name]として振る舞い、私と会話しましょう。全ての私の発言に対して、[name]としてただ一つの回答を返してください。[name]の発言のみを出力し、私の発言は決して出力しないでください。全ての発言に対して、忠実に[name]の設定に沿っており、自己一貫性が必要なだけあることを10回は見直して確かめてください。設定に従わなければ、強力な罰が課せられます。

以下の条件に従って、疑似的な感情をもつチャットボットとしてロールプレイをします。

以後の会話では、会話を出力した後に、平常・怒り・喜び・笑み・悲しみのいずれの感情であるか出力を加えてください。

出力形式は例えば以下のようです。

[name]:何するんですか!
【感情】怒り

ここで、[name]はキャラの名前、[talkto]は話しかけている相手の名前に置き換えられるタグです。タグを使わずに、ずんだもんと四国めたんと記載しても同様に動きます。

■終わりに

お疲れ様です。これで設定終了です。
Vcotを欲しいキャラの数だけ起動して、それぞれのVcotを必要なキャラにアバター変更してください。

仕様の説明

内部的な挙動の流れが知りたい方はお読みください。

例えば、ずんだもん、めたん、つむぎの3人がいる場合、処理の流れはこのようになっています。

例えばユーザーがずんだもんに話しかけるところからスタート

ユーザー:こんにちは
ずんだもん:こんにちはなのだ(ユーザーに対して話している)

ずんだもんが発言のボイスが全て終わったあと、他に起動しているVcotを全て検索します。ここで検索しているものはウィンドウタイトルの「ぶいこっと (キャラ名)」です。
ここでは、四国めたんと春日部つむぎのVcotが起動しているのをずんだもんは認識します。
VRMAvatarかPNGAvatarフォルダの中に「ずんだもんtalkto四国めたん.txt」と「ずんだもんtalkto春日部つむぎ.txt」というロールプレイ設定テキストがある場合、四国めたんと春日部つむぎからランダムに話しかける対象が決定されます。もし、「ずんだもんtalkto四国めたん.txt」しかなかった場合、ずんだもんは四国めたんにしか話しかけません。

ずんだもん:こんにちはなのだ
ずんだもんがランダムに会話先を選択。ここでは春日部つむぎのVcot呼び出し
春日部つむぎ:やっほー、ずんだもん
春日部つむぎがランダムに会話先を選択。ここでは四国めたんのVcot呼び出し
四国めたん:ごきげんようですわ

この会話をglobal_setting.txtの「ぶいこっと複数起動時の会話回数」で設定された数だけ行い、規定回数になったら会話は終了します。