キャラ個別の設定

こちらは各キャラ個別の設定を説明するページです。基本的にVRMモデルで説明しています。画像モデルの場合は設定項目が少なめになっています。

Vcotを右クリック→設定→キャラ設定から設定できます。

設定した後に右下の保存ボタンを押すと全て保存されます。

基本

名前[name]

キャラクターの名前を設定します。
後述の[name]タグに対応しています。

chatGPTに送信するロールプレイ設定

会話のたびにこの設定がchatGPTに送信されます。

[name]という部分はテキスト処理のタイミングで設定された名前に置き換えられます。[name]タグを使わないで名前を入力しても同じ結果となりますが、[name]タグの使用を推奨しています。

例えば、「ずんだもん」という名前で以下のようなロールプレイ設定だとすると、

[name]はずんだの妖精です。
[name]の一人称は「僕」です。



ずんだもんはずんだの妖精です。
ずんだもんの一人称は「僕」です。

このように置換されます。

文章の内容はなんでも動きますが、一部Vcotの仕様に直結する部分があり、それは残すことを推奨しています。初期ロールプレイ設定を書き換えてみて、会話しながら調整していくような流れがおすすめです。

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

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

出力形式は例えば以下のようです。
[name]:何するんですか!
【感情】怒り

上記の文章は表情機能を使うなら必須です。ガン無視して、一言「猫のように喋ってください。」とだけ書いて保存すると、真顔で猫のようににゃんにゃん喋り続けるVcotになります。

いかにいくつかの設定のコツを箇条書きにします。
・精度を高めるために最も重要性が高いのは「[name]とユーザーの会話例」となります。サンプルをたくさん与えるとよりそれっぽく喋るようになります。
・chatGPTが数字の理解が怪しい印象があります。「30文字以内で話してください」より「短文で話してください。」の方がより効果があります。
・「忠実に[name]の設定に沿っており、自己一貫性が必要なだけあることを10回は見直して確かめてください。設定に従わなければ、強力な罰が課せられます。」は数字を増やせば増やすほど精度が上がりますが返事が遅くなる傾向があります。
・「[name]の発言のみを出力し、私の発言は決して出力しないでください。」この文章がない場合、ユーザーの言葉を繰り返してしまい、話が長くなりがちです。

さらに細かい調教についてはこちらのサイトを参考にしてみたり、検索してみたりして、何度も繰り返し話しかけてみて修正していくような流れとなります。

ちなみに、通常の会話で「これからは敬語を使ってください。」のようなメッセージを送信しても、調教にはなりません。履歴が消えるとその命令ごと忘れてしまうからです。特にchatGPT経験者はそのようなことをしがちですので、気をつけてください。

画像モデルを使っていて、かつ喜怒哀楽以外の感情も取り扱いたい場合

上記ロールプレイ設定の感情部分は下記のように対応しています。
平常→通常
喜び→喜
怒り→怒
悲しみ→哀
笑み→楽
例えば、照れ、驚き、困惑といった表情差分を追加したいこともあるかと思います。その場合、PNGAvatar/キャラフォルダに照れ.png、驚き.png、困惑.pngも追加した上で、ロールプレイ設定を以下のように書き換えてください。
以後の会話では、会話を出力した後に、平常・怒り・喜び・笑み・悲しみ・照れ・驚き・困惑のいずれの感情であるか出力を加えてください。
これで、あなたのVcotは更に表情豊かになります。
PNGAvatar/熊名まりがまさにそういった仕様になっているので、参考にしてみてください。
仕様的な話をすると、chatGPTの返答の語末に【感情】驚きといったものが追加されているので、驚き.pngを呼び出した後に、感情の文字列を削除して表示しています。

ボイス

使いたいキャラのボイスを選択してください。VOICEVOXのホームページからキャラの名前とスタイルが見られますので、音声サンプルを押してみて、合う声を選んでください。

VOICEVOXにあるのに、Vcotからそのボイスが選べないんだけど…という場合、こちらのよくある質問をご参照ください。

ボイスの速度は読み上げる速度、ボイスの音程はピッチになっています。ボイス速度が早くなっても、声も高くなるといったことはありませんのでご安心ください。

表示

バストアップ構図(VRMのみ)

キャラを拡大表示するをONにすると、バストアップ構図になります。いわゆる、Vtuberの配信のようなバランスになり、フキダシに対してキャラがかなり大きく表示されます。拡大率とY座標で好きな場所に調整してください。バストアップ構図の際はキャラは移動や休憩を一切せず、その場にとどまるようになります。

位置の調整(画像のみ)

画像の拡大率、Y座標が好きに調整できます。

画像の表示方法(画像のみ)

フィルターを選べます。補間なし、バイリニア、トライリニアの3種類から選べます。
バイリニア、トライリニアとはギザギザ(ジャギー)を目立たないように滑らかに表示する画像のスムージング処理の形式のことです
バイリニア、トライリニアだと透過がうまく行かない場合があるので、画像に応じて使い分けてください。

アンチエイリアスで失敗する例。特にPhotoshopで作った画像だとアンチエイリアスがうまく行かないことが多いようですので、GIMPなど他のツールで出力しなおしてみてください。(内部的には、アンチエイリアスの際に透明度0のピクセルもブレンドしてしまっているのが原因のようです。例えば、絵の輪郭が黒で透過背景色が内部的に白だった場合、アンチエイリアスの際に黒と白がブレンドされて白っぽいフチが入ってしまいます。内部的な透過色と輪郭を似た色にすれば違和感なくアンチエイリアスできると思いますが、現状具体的な方法に関しては不明です。)

UIの位置補正

会話フキダシ、メニュー、設定などUI(ユーザーインターフェイス)の位置を調整します。キャラの横幅が大きくてフキダシと重なっちゃうよ、UIとキャラの高さ関係を調整したいよ、みたいなタイミングで使ってください。

アニメ(VRMのみ)

キャラはデスクトップ上を気ままに歩き回ったり座ったり寝転んだりします。

それぞれ会話時・待機時・移動時にランダムで使用するアニメーションを設定するものです。キャラにふさわしいアニメーションを複数選択すると、その中からランダムで一つのアニメが選ばれます。

特に「会話時のアニメ」はVcotのデフォルトのアニメーションになるので、基本的にVcotで最もよく見るアニメーションとなります。

キャラクターは最初「会話フェーズ」です。しばらく放置していると、ランダムで「休憩フェーズ」や「移動フェーズ」になり、そこからまたランダムで別のフェーズになります。このフェーズ切り替えについて設定したい方は全体設定から変更可能です。

「移動アニメの角度」は歩き移動の際のユーザーから見たキャラの角度のことです。歩き移動の際、ぴったり90度よりも斜めにした方が可愛いことが多いため初期設定が30度になっています。

表情(VRMのみ)

マウスによる視線移動

キャラクターがマウスに視線追従するかどうかの設定です。重みとはウェイトのことです。マニュアルを読むより、まず実際に触ってみたほうが感覚的にわかりやすいかもしれません。

視野の広さ:どのくらい遠いマウスまで目で追うかの設定です。マウスが遠すぎるとキャラクターはマウスを目で追うのをやめます。実際の単位はメートルではないです。

視線の遅れ:マウスを突然動かしたとき、少しディレイをかけてから追従します。これが0秒だとキビキビ動きすぎてかなり不自然な挙動になります。

全体の重み、体の重み、頭の重み、目の重み:重み=ウェイトです。大きいほどたくさん追従して、小さいほどあんまり追従しなくなります。例えば、目と頭では追ってほしいけど、体があんまり動かしてほしくない場合、目と頭の重みを高くして、体の重みを低くしてください。UnityのAnimator.SetLookAtWeightという関数のパラメーターがそのまま変更できるものです。細かくは作者も分かりません。
「全体の重み」は体・頭のウェイト全体の共通係数です。こちらが0だと一切動かなくなりますので注意してください。

(超細かい話ですが、厳密には目の重みのみVRMLookAtHeadという関数を使っており、これにより目がはみ出してしまうことを防いでいます。そのため、目だけ全体の重みや重みの制限の影響を受けません。)

重みの制限:大きいほど動かなくなり、小さいほどたくさん動きます。0にするとめちゃくちゃ動くのでかなり不自然な挙動になります。

表情の使用

表情を使用するか、その表情のときに口パクを使用するか、その表情のときにまばたきを使用するかの設定です。左の通常、喜、怒、哀、楽のボタンを押すことでそれぞれどんな表情か見ることができます。

使用する:「このVRM、楽の代わりに照れ表情が入ってて矛盾するな…」など、表情自体を無効化したいときは一番左の使用するチェックマークを外してください。デフォルト表情の無効化はできません。

口パク:「このVRM、喜ぶ表情のとき口を開けて笑うけどそのせいで口パクと干渉するな…」など、特定の表情の時の口パク(リップシンク)を無効化するときは真ん中の口パクチェックマークを外してください。

まばたき:「このVRM、喜ぶ表情のときに目を閉じるからまばたきと干渉するな…」など、まばたきを無効化したいときは一番右のまばたきチェックマークを外してください。

VRMのBlendShapeに登録されている喜怒哀楽(Joy,Angry,Sorrow,Fun)以外の表情については現在Vcotに対応していません。

口パク滑らかさ:小さいほど口パクがすぐに変わり、大きいほど口パクの変化に時間がラグが入ります。「あ」と発音する口から「お」と発音する口への変化にかかる時間のラグのことです。大きすぎても違和感があり、デフォルトは10です。

口パク感度:大きいほど口パクの際の口の開き方が大きくなります。1がデフォルトであり、1より大きい数字はVRMが破綻する可能性があります。(破綻というのは例えば口が動きすぎて顎から飛び出てしまうといったものです。)

仕様の説明

この項目は高度な内容になっているので、読み飛ばして大丈夫です。

キャラの設定は全てテキストとして保存されています。VRMの場合は「VRMAvatarフォルダ」内にVRMの名前のテキスト、画像の場合は「PNGAvatar/モデルフォルダ」の中にモデルフォルダの名前のテキストが入っています。

テキストファイルで保存しているので、工夫すればいろいろできます。「キャラ設定をまるごとコピーしたい」場合はテキストファイルを名前だけ変えてコピーすればいちいち全部手作業で設定せずとも同じ設定を引き継げます。「他の人にデータを渡したい場合」はテキストファイルやその中身を共有することで可能です。「バックアップを取りたい」場合はテキストファイルを複製するだけでいいです。

キャラ設定のテキストファイルを削除すると、次回モデル選択時に初期化された状態で自動的に作成されます。

キャラ設定txtの書き換え

この項目は高度な内容になっているので、読み飛ばして大丈夫です。

キャラ設定テキストを直接書き換えることは推奨されていませんが、実際的には可能です。「設定項目(default:デフォルトの値):設定内容」という形式で保存されており、「設定内容」部分だけ変更することで改変が可能です。キャラのロールプレイ設定を除き、改行するとおかしくなってしまう可能性があるので絶対に改行をしないでください。

ユーザーがあまりいじらなそうな部分は設定UIで実装しておらず、テキストの書き換えでのみ変更可能です。現在のバージョンでは「タイマー関連のchatGPTへの命令文章」などがこれに当たります。

タイマー終了時のchatGPTへの命令文章(default:タイマーが終わった時のような発言をしてください):タイマーが終わった時のような発言をしてください
↓
タイマー終了時のchatGPTへの命令文章(default:タイマーが終わった時のような発言をしてください):猫のように喋ってください。

例えばこのように変更すると、タイマー終了時に言うセリフが「わかったにゃ」「分かりましたにゃ。猫のように喋ってみますにゃ。」「なんで猫みたいに喋らないといけないんだよ」などになります。

以下はテキストにおける設定一覧です。

設定UIからいじれず、テキスト書き換えでのみ変更できる項目は赤文字になっています。逆に言うと赤文字以外の部分をテキスト書き換えで変更する必要はないということです。

テキスト設定の変更反映にはVcotの再起動かアバター変更が必要です。

「キャラ設定:」という項目はテキストの一番下に配置する必要があります。キャラ設定:の下に何かを書いたとしても全てキャラ設定の一部として読み込まれてしまうので注意してください。

基本タブに該当するもの

名前(default:VRMのファイル名):アリシア・ソリッド
キャラクターの名前です。
キャラ設定:
chatGPTに送信するロールプレイ設定です。絶対にテキストの一番下に配置してください。

VOICEVOX_id(default:3):3
VOICEVOX_speed(default:1):1
VOICEVOX_pitch(default:1):1

VOICEVOXのID、速度、音程です。
IDは整数、速度と音程は小数です。

表示タブに該当するもの

キャラのY座標補正(default:0):0
キャラの拡大率(default:1):1

画像モデル使用時の拡大率、Y座標です。

バストアップ構図にするか(default:false):false

trueだと有効化、falseだと無効化されます。
バストアップ構図の際のキャラのY座標補正(default:1.2):1.2
バストアップ構図のキャラ拡大率(default:2.00):2.00

VRMモデル使用時のバストアップ構図の拡大率、Y座標です。

UIの横補正(-が内側 +が外側)(default:0):0
UIの縦補正(-が下側 +が上側)(default:):
UIの位置です。縦方向のUI位置はモデルの身長自体を測定してUIの位置を調整しているので、縦補正に関しては特殊な処理を行っています。そのため、縦補正にはデフォルト表記がありません。(あまり気にしないでください)

画像のフィルターモード(default:Point):Point
Point(補間なし)とBilinearとTrilinearが設定可能です。

アニメタブに該当するもの

会話時のアニメ番号(default:0):0,2,3,5
休憩時のアニメ番号(default:0):2,3
移動時のアニメ番号(default:0):0
移動時の角度(default:30):30

アニメ番号はVcotプロジェクトで割り振った番号です。どれが何に当たるかをテキスト上で理解するのは不可能ですので、設定UIを確認してください。
移動時の角度はラジアンでなく度数です。

表情タブに該当するもの

LookAt_distance(default:3):3
視野の広さ
LookAt_Delay_time(default:1):1

視線の遅れ
LookAt_weight(default:1):1

全体の重み
LookAt_bodyWeight(default:0.2):0.2

体の重み
LookAt_headWeight(default:0.2):0.2

頭の重み
LookAt_VRMeyesTargetPosition(default:-2):-2

目の重みなのですが、これだけ別の計算を使っています。キャラモデルの手前にブロックを表示して、このブロックをマウスに追従させています。キャラが見ているのはこのブロックになります。そのブロックのZ座標がこの数値となります。(意味がわからないと思いますので、設定UIから設定してください。)
LookAt_clampWeight(default:0.6):0.6

重みの制限

普通の表情のときにまばたきを使用するか(default:true):true
嬉しい表情のときにまばたきを使用するか(default:true):true
怒りの表情のときにまばたきを使用するか(default:true):true
悲しい表情のときにまばたきを使用するか(default:true):true
楽しい表情のときにまばたきを使用するか(default:true):true

普通の表情のときに口パクを使用するか(default:true):true
嬉しい表情のときに口パクを使用するか(default:true):true
怒りの表情のときに口パクを使用するか(default:true):true
悲しい表情のときに口パクを使用するか(default:true):true
楽しい表情のときに口パクを使用するか(default:true):true
嬉しい表情を使用するか(default:true):true
怒りの表情を使用するか(default:true):true
悲しい表情を使用するか(default:true):true
楽しい表情を使用するか(default:true):true

trueだと有効化、falseだと無効化されます。

口パクの滑らかさ(1ですぐ変わる,100でゆっくり変わる、整数値のみ)(default:10):10
小さいほど口パクがすぐに変わり、大きいほど口パクの変化に時間がラグが入ります。整数値しか設定できません。

口パクの感度(0が最小,1が最大,1以上も設定可能)(default:1):1.00
大きいほど口パクの際の口の開き方が大きくなります。本来0から1が想定ですが、VRMが破綻して顎が飛び出すリスクなどを考慮の上で1より大きい数字に設定することも可能です。

その他 これらはテキスト書き換えでしか変更できません。


Vcotを起動した直後、chatGPT待機中に表示されるメッセージ(default:起動中…):起動中…
chatGPT待機中に表示されるメッセージ(default:考え中…):考え中…
Vcotを終了した直後、chatGPT待機中に表示されるメッセージ(default:終了中…):終了中…

それぞれchatGPTから送信が返ってくるまでに表示しておくメッセージになります。キャラに合わせてメッセージを変更するのもいいでしょう。
テクニックとして、システムメッセージでも表情を指定できます。例えば「考え中…」の語尾に表情を付けて「えっと…【感情】笑み」にすると、笑顔で悩むようになります。

何らかの理由でchatGPTがタイムアウトになった時に表示されるメッセージ(default:【chatGPTタイムアウト】):【chatGPTタイムアウト】
chatGPTが30秒の間返信を返さない場合、タイムアウトが発生します。このタイムアウトが発生した時の文章を変更します。

Vcot起動時のchatGPTへの命令文章(default:現在、[Time]です。現在時刻に適した挨拶や会話をしてください。):現在、[Time]です。現在時刻に適した挨拶や会話をしてください。

Vcot起動時、デフォルトでは現在の時刻に対応した挨拶が返ってくるようになっていますが、これは上記の命令をしているためです。
[Time]は時間を返すタグです。「深夜0時」「朝8時」「夜21時」のような内容が入っています。
命令を変更しても、[Time]は使えますので、起動時メッセージをこだわる方はこちらを変更してみてください。
[Time]タグはこの命令でしか使えません。
chatGPTは時間を取得していないので、時間に適した挨拶をしてもらうためにはVcot側で時間情報の入った命令を送信する必要があります。
Vcot終了時のchatGPTへの命令文章(default:さようなら):さようなら

メニューからVcot終了を押した際にchatGPTに送信される命令です。

タイマー終了時のchatGPTへの命令文章(default:タイマーが終わった時のような発言をしてください):タイマーが終わった時のような発言をしてください
タイマー終了時のchatGPTへの命令です。
ポモドーロ作業時のchatGPTへの命令文章(default:私は休憩中です。作業の時間になったので、ユーザーに作業するように言ってください。):私は休憩中です。作業の時間になったので、ユーザーに作業するように言ってください。
ポモドーロ短い休憩時のchatGPTへの命令文章(default:私は作業中です。休憩時間が来たので、ユーザーに短めの休憩を取るように言ってください。):私は作業中です。休憩時間が来たので、ユーザーに短めの休憩を取るように言ってください。
ポモドーロ長い休憩時のchatGPTへの命令文章(default:私は作業中です。休憩時間が来たので、ユーザーに長めの休憩を取るように言ってください。):私は作業中です。休憩時間が来たので、ユーザーに長めの休憩を取るように言ってください。

ポモドーロ終了時のそれぞれのchatGPTへの命令です。

キャラクター特有の音声認識の起動フレーズ(,で分割)(default:):
キャラクター特有の音声認識の停止フレーズ(,で分割)(default:):

全体設定の音声認識設定をキャラクター個別でも設定できます。ずんだもんにだけ、「ずんだもん!」と呼びかけて有効化したい時などはこちらで設定してください。「ずんだもん,ズンダモン」のように,で分割して記載してください。