前回示したように仮想環境の開発を行なった。結論としては仮想環境の構築はしない方向を考える。ただ良い点と悪い点を見つけられたため記載する。
実装内容
目的
キャラクターが経験を積むための外部構造が必要なため、仮想環境を構築し、そこでキャラクターが生活し、経験を積む仕組みを作成した。
実装内容
実装した内容はデータから必要な情報を取得し、キャラクターに時間ごとの行動を割り振る仕組みだ。本ソフトは大部分をデータ依存とすることでプログラムの作成を最小限に抑えた。
データファイル
- キャラデータ
- 場所データ
- 行動データ
- スケジュールデータ
- 環境データ
動作内容
- キャラクターが実施中の行動がないことを確認する。
- キャラクターのスケジュールを確認し、予定されている行動を確認する(例:登校)
- キャラクターの場所を確認し、行動データから実施可能な行動を選択する。
- 行動完了後、キャラデータのキャラステータスを変化させる(体力や感情)
- 行動完了は時間経過で行う
- キャラステータスの増減は実施内容により変化する
- キャラステータスはキャラデータに直接書き込む
- キャラが実施した内容についてLLMを利用して感想を言う
- キャラのステータス変化を考慮する(例:疲れたよ…)
- 環境データも考慮する(例:登校中に雨が降ってきちゃった)
これを一連のループとして繰り返す。
動作設定
- キャラクターは3人実装し、全て生徒として実装を行なった。
- 起床、投稿、授業、部活、帰宅、睡眠のスケジュールを入れ一連の日常を送らせた
- キャラごとに体力、眠気の増加値を変更した。
- 授業内容を3人で統一するため先生botを実装し、同一の授業をする様行動配布を行なった。
実装してみて
良かった点
- キャラクターは実際に行動を行い、キャラごとの特徴行動が見られた。
- 小規模な設定、構成ながら日常を再現可能にした。
- 実装内容の大部分をYAMLデータファイルにすることで、ソフトウェアの開発を抑えられた。
悪かった点
- キャラクターが行動データに記載した行動しかしないため、「行動の作成」とに時間の大半を費やした。
- 新たな機能やステータスを追加した場合、既存のデータファイルに追記が必要となり、面倒であった。
そしてこれが最も根本的な問題だが、私はAIキャラクターの開発をしたいのであって、SIMの開発をしたいわけではない。しかしながらこちらに開発における時間を割かなければならずAIキャラクターの開発が遅延すると感じた。
AIキャラクターに活かしたいこと
だが、SIMもどきを作成したことで、今後活かせそうなことをいくつか見つけた。今後のAIキャラクター開発では下記のことを活かしたい。
- キャラクターの行動生成を自身で設定するのは手間が多すぎるため、LLMにある程度任せるべき
- キャラクター同士の掛け合いの実装を考えると、行動を生成するソフトはキャラクターの外部におくべき
- 人間は思ったよりスケジュール通り行動しており、スケジュールの実装は今後も使えそう
- ある程度の制限(体力・睡眠欲)を設定すると、キャラクターらしさが出る。
- 思ったよりもプログラム制御ではなくテキストベースの制御でうまくいく。
最後に
今回は10日程度SIM開発と言うAIキャラクターの開発から脱線した内容を行なってしまった。しかしながらこの経験から多くの改善点やアイデアを得られた上、10日で脱線していることに気づいたのは行幸である。
今回のSIMもどきのソフトはせっかくなので少し整備して一ヶ月後くらいにgithubを公開する予定だ。

コメント