【伺か】誰でもうちの子をAI化できるテンプレートを作った【SSP】

ukagaka

概要

伺かというデスクトップマスコットキャラクターをPC上に表示するツールを使い、うちの子を画面に表示&AI化をします。
各種設定方法はgithubのReadMeをご覧ください。
ここでは配布しているものをどう変更すればいいか記載します。
ambergon/ukagakaAiGhost_yukari GitHub

ゴーストって?

伺かでは表示するキャラクターのことをゴーストと呼んでいます。

AIゴーストサンプル動画


動画では同梱しているものに追加で、もっと生々しいプロンプトを使用している。

ゴーストのダウンロード

ambergon/ukagakaAiGhost-yukari Releases

必要なもの

このゴーストを動かすうえで必要なモノ

  • ベースウェア SSP
    デスクトップマスコットキャラクターを動かす「伺か」、それを動かすベースウェア「SSP」上で動作します。
    SSPの配布場所 独立伺か研究施設 ばぐとら研究所
  • ChatGPT API Key
    取得方法は他のサイトに任せます。

ゴーストの導入

下記のようなディレクトリ構成になれば問題ない。

解凍したSSP
└─ghost
    └─解凍したこのゴースト
        │  ghost
        │  shell
        └  install.txt

ChatGPT API/従量制だけどどれぐらい請求くるの?

日中ひたすらAIを口説いてたら三日で5ドルほどかかった。
テキストの生成量などによるので一概には言えない。
soft limitとhard limitがあり、一定の金額で通知・ストップができるので設定すればそれほど怖いものではない。

実際にうちの子を使うにはどうすればいい?

立ち絵を挿げ替える。

画像の管理は下記のようになっている。

解凍したゴースト
└─shell
    └─master
        │  atari_Bust.png
        │   ...
        │  surface0.png
        │  surfaces.txt
        │  にっこり.png
        │  泣き顔.png
        │   ...
        │  笑顔.png
        │  赤面.png
        └  驚き.png

表示する立ち絵の事を伺かではsurfaceという。
surfaceはsurfaces.txtで定義されている。(一部抜粋)

charset,UTF-8
descript 
{
    version,1
}
//当たり判定とかの定義
surface0-18 
{
    collisionex1,Bust,region,atari_Bust.png,255,30,0
}
//\s[普通]を\s[0]に置換する設定
sakura.surface.alias 
{
    普通,[0]
}
//\s[0]を定義する
surface0 { 
    element0,base,普通.png,0,0 
}

仕様はこちらを確認してほしい。
UKADOC Project Shell設定 – surfaces.txt

これらをきちんと定義することによって、ゴーストのトークから立ち絵の指定ができる。
下記のようにすると、最初にsurface0、その後surface1を表示してそのまま残るサクラスクリプトになる。
サクラスクリプトとは伺かにおいて表示するトークやゴーストの表情の変化、アニメーション、通信の指示などができるものである。
UKADOC Project さくらスクリプトリスト

\s[0]おはよう\s[1]いい朝ね。
//普通 を 0 に変更する設定をしているので、下記は同じ意味である。
\s[普通]おはよう\s[1]いい朝ね。

人格を植え付ける

DefaultPrompt.txtを書き換えてうちのこの人格を設定し、
各種触り判定用のプロンプトを書き換えてうちの子がxxされた時の反応を設定する必要があります。

また、サンプル用に同梱しているデフォルトプロンプトには下記のように書かれています。

貴方が標準出力したテキストは、パーサーで処理されて表情に変化します。
文体にあった感情値を下記のように一緒に出力してください。
感情や表情は\\s[感情名or表情名]として表してください。
表情や感情は積極的に使用し、可能な限り人間のふりをしてください。
\\s[]には貴方の表情や感情を指定しますが、動詞を入れてはいけません。
例えばこのよう使用します。\\s[笑顔]おはようございます!マスター。\\s[笑顔]お帰りなさいませマスター。\\s[普通]お仕事お疲れさまでした。\\[笑顔]お荷物をお持ちいたしますね。\\s[普通]マスター、\\s[笑顔]おはようございます。今日も一日頑張りましょう。\\s[泣き顔]ごめんなさいマスター。お皿を割ってしまいました。\\s[怒り]二度寝したらダメって言ったじゃないですかーーー!! \\s[驚き]もー。急に撫でられたらびっくりしますって。・・・・\\s[笑顔]えへへ。\\s[赤面]早く下着を穿いてください!\\s[恐怖]ど、どうして私を殴るんですかマスター・・・?

これらはAIにサクラスクリプト・・の表情の指定方法を教えているもので、例文代わりにもなっています。
ここでサンプルとして提示したものは、実際にAIが使用しやすいのでキャラクターにあったもの(そして表情がsurfaces.txtに定義されている必要がある)にしてください。
また、ここで表示したモノはサンプルの一部ですが、可能な限り生々しい表現を使い、詳細に書くほど、私はAIなのでそれはできない。という返答を減らすことができます。

具体的には、貴方は高性能な体があるロボットであり飲み食いが可能でそれらは人間同様に消化される。と言うプロンプトを書くと、飲食関係の要求を断られにくくなります。

ちょっと聞きたいことが。

うかどん という、伺か系隠れ里で活動している。
安馬 (@ambergon@ukadon.shillest.net) – うかどん

動画中で音声合成ソフトと連携しているけどどうやっているの?

今回はこんなものを作り使用しました。
メインはCeVIOを使用しているので、あんまりメンテする予定はないです。
GitHub – ambergon/ukagakaPlugin_SendTamiyasuTalk

CeVIO専用の奴 -> GitHub – ambergon/ukagakaPlugin_CeVIO-TalkerV2

小話

CeVIOのONEでサンプルゴーストを作るつもりだったが、あんまりにかわいらしい立ち絵だったので急遽連携用プラグイン作った。
全体の体の動きがあるのが、とっても使いやすかった。

次はAI同士で対話するような機能でもつけるか悩んでいる。