AIキャラクター開発 第三回:仮想環境の実装

AIキャラクター

前回示したように仮想環境の開発を行なった。結論としては仮想環境の構築はしない方向を考える。ただ良い点と悪い点を見つけられたため記載する。

実装内容

目的

キャラクターが経験を積むための外部構造が必要なため、仮想環境を構築し、そこでキャラクターが生活し、経験を積む仕組みを作成した。

実装内容

実装した内容はデータから必要な情報を取得し、キャラクターに時間ごとの行動を割り振る仕組みだ。本ソフトは大部分をデータ依存とすることでプログラムの作成を最小限に抑えた。

データファイル

  • キャラデータ
  • 場所データ
  • 行動データ
  • スケジュールデータ
  • 環境データ

動作内容

  1. キャラクターが実施中の行動がないことを確認する。
  2. キャラクターのスケジュールを確認し、予定されている行動を確認する(例:登校)
  3. キャラクターの場所を確認し、行動データから実施可能な行動を選択する。
  4. 行動完了後、キャラデータのキャラステータスを変化させる(体力や感情)
    • 行動完了は時間経過で行う
    • キャラステータスの増減は実施内容により変化する
    • キャラステータスはキャラデータに直接書き込む
  5. キャラが実施した内容についてLLMを利用して感想を言う
    • キャラのステータス変化を考慮する(例:疲れたよ…)
    • 環境データも考慮する(例:登校中に雨が降ってきちゃった)

これを一連のループとして繰り返す。

動作設定

  • キャラクターは3人実装し、全て生徒として実装を行なった。
  • 起床、投稿、授業、部活、帰宅、睡眠のスケジュールを入れ一連の日常を送らせた
  • キャラごとに体力、眠気の増加値を変更した。
  • 授業内容を3人で統一するため先生botを実装し、同一の授業をする様行動配布を行なった。

実装してみて

良かった点

  • キャラクターは実際に行動を行い、キャラごとの特徴行動が見られた。
  • 小規模な設定、構成ながら日常を再現可能にした。
  • 実装内容の大部分をYAMLデータファイルにすることで、ソフトウェアの開発を抑えられた。

悪かった点

  • キャラクターが行動データに記載した行動しかしないため、「行動の作成」とに時間の大半を費やした
  • 新たな機能やステータスを追加した場合、既存のデータファイルに追記が必要となり、面倒であった。

そしてこれが最も根本的な問題だが、私はAIキャラクターの開発をしたいのであって、SIMの開発をしたいわけではない。しかしながらこちらに開発における時間を割かなければならずAIキャラクターの開発が遅延すると感じた。

AIキャラクターに活かしたいこと

だが、SIMもどきを作成したことで、今後活かせそうなことをいくつか見つけた。今後のAIキャラクター開発では下記のことを活かしたい。

  • キャラクターの行動生成を自身で設定するのは手間が多すぎるため、LLMにある程度任せるべき
  • キャラクター同士の掛け合いの実装を考えると、行動を生成するソフトはキャラクターの外部におくべき
  • 人間は思ったよりスケジュール通り行動しており、スケジュールの実装は今後も使えそう
  • ある程度の制限(体力・睡眠欲)を設定すると、キャラクターらしさが出る
  • 思ったよりもプログラム制御ではなくテキストベースの制御でうまくいく。

最後に

今回は10日程度SIM開発と言うAIキャラクターの開発から脱線した内容を行なってしまった。しかしながらこの経験から多くの改善点やアイデアを得られた上、10日で脱線していることに気づいたのは行幸である

今回のSIMもどきのソフトはせっかくなので少し整備して一ヶ月後くらいにgithubを公開する予定だ。

コメント

タイトルとURLをコピーしました