この記事は CyberAgent Developers Advent Calendar 2023 9日目の記事です。
こんにちは、ピグ事業部 Unityエンジニアの荘司です。
GPT-4を使ってアバターを制御するというアイデアは、新たなエンターテイメントの形を生み出す可能性があります。
今回はその一例として、PIGGアバターの制御にGPT-4を用いた手法を紹介します。
今回モックとして実装したものは、単なるNPCアバターではありません。それは、Piggドメインで生成系AIを活用し、ユーザーに優れた体験を提供するものです。
本記事では、2つのモックを踏まえてGPT-4を使ったアバター制御の手法について紹介したいと思います。
- AIによる対話機能と感情表現
- コーディネート審査機能
Piggについて
Piggは、2009年に登場してからすでに10年以上もの間、人々に楽しまれ続けているサービスです。
当初Flashベースで提供されていたPC版のサービスは、Flashが2020年末に終了することを受けてスマートフォン向けのサービスとなりました。
現在、私達はアバターコミュニケーションサービス『ピグパーティ』、農園ゲーム『ピグライフ ふしぎな街の素敵なお庭』、そしてスマートフォン版『アメーバピグ』の3つのタイトルを運営しています。これらのゲームは、ユーザーが自分だけのアバターを作り、仮想世界での生活を楽しむことができるものです。
【PC版アメーバピグ終了のお知らせ】
2019年12月2日(月)15:00をもちまして
PC版アメーバピグおよび関連サービスを終了いたします。経緯やサービス終了までの日程詳細は下記よりご確認ください。https://t.co/mD4ScuU2bk
10年以上のご愛顧にスタッフ一同心から御礼申し上げます。
— 【公式】アメーバピグ@スタッフ (@pigg_staff) March 12, 2019
実装した構成
今回のモック実装では、OpenAI APIのgpt-4とgpt-4-vision-previewを活用しました。
さらに、会話のコンテキストを維持するために、AWS DynamoDBを用いて会話とレスポンスを保存する設計にしました。
全体としてのシステム構成は以下のようになります。
AIによる対話機能と感情表現
単に会話が可能なだけでは、既存のNPCとの大きな差別化はできません。そこで、今回はプロンプトを工夫し、会話から感情を引き出し、それに基づいたモーションを実行できるようにしました。
{
"model": "gpt-4",
"messages": [
{
"role": "system",
"content": "敬語をなるべく使わないで、なるべく気さくな感じに話してください。また、絵文字をいい感じに使って会話してください。24文字以内でなるべく短く返答してください。"
},
{
"role": "system",
"content": "返答する際に必ずその時の気持ちに近いものを、{Happy, Angry, Sad,Normal}の4つの中から選んで返答に含めてください。その時のフォーマットは`EmotionType: Happy`のように、EmotionType:の後に半角スペースを入れて、その後に気持ちを表す単語を入れてください。指定以外の気持ちは含めないでください"
},
{
"role": "user",
"content": "こんにちは、今日は晴れていて良い一日ですね"
}
],
"max_tokens": 1024
}
やってみて
プロンプトに感情を指定しているだけなので、すべてのレスポンスに指定した感情が含まれているわけではありません。
しかし、これによりすべてを厳密に制御することなく、結果としてより人間らしい反応が得られました。
コーディネート審査
Piggでは「コデパ」(コーディネートパーティー)という文化が根付いています。
「コデパ」は「コーディネートパーティー」の略で、Pigg内で行われるイベントの1つです。ユーザーは自分のアバターにさまざまなファッションアイテムを組み合わせてコーディネートを作り、それを他のユーザーと共有します。コーデパでは、自分のコーディネートを他のユーザーに評価してもらったり、他のユーザーのコーディネートを評価したりできます。 また、特定のテーマに沿ったコーディネートを作るイベントが開催されることもあります。これによりユーザーは自分のファッションセンスを試したり、新しいアイデアを得ることができます。
今回はこのコデパで審査員ができるPiggを、GPT-4-vision-previewを用いて実装しました。
具体的な実装方法としては、クライアント側でPiggの画像をBase64でエンコードし、そのままユーザープロンプトに含めるというシンプルな構成を採用しました。
{
"model": "gpt-4-vision-preview",
"messages": [
{
"role": "system",
"content": "これはpiggパーティーの着せ替えでpiggアバターにコーデを設定した様子です。あなたはこのpiggアバターのコーデを100点満点で評価をしてください、厳密に採点する必要はないですがこだわりポイントを探してきちんと評価に反映してください。"
},
{
"role": "system",
"content": "あなたはiggパーティーのコーディネート審査係です、その為ユーザーからaiだとバレないように会話してください、またアバターのことはpiggと呼んでください。"
},
{
"role": "user",
"content": [
{
"type": "text",
"text": "このコーデはどうですか?"
},
{
"type": "image_url",
"image_url": {
"url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA~"
}
}
]
}
],
"max_tokens": 1024
}
やってみて
Piggのドメインを活用し、サービスに寄り添った新たな体験が提供できることを確認しました。
また、プロンプトを工夫することで審査員Piggに性格を設定できるので、さまざまな可能性が広がると感じています。
まとめ
今回は、PiggアバターとGPT-4を組み合わせることで、新たな体験を提供する試みを行いました。
世の中のアバターには各々独自のキャラクター性があり、システムプロンプトの工夫により、それらを活かした多様なサービスが提供可能と考えられます。
ただし、現状ではgpt-4-vision-previewが本番環境での利用を推奨していない、コスト面での課題が存在するなど、本番環境への展開にはいくつかの問題があります。
それでも、現在の技術の発展スピードを考えると、これらの問題も近い将来解消すると期待しています。
最後に
ピグチームでは、新規サービスの開発を進めています。
その一環として、Unityエンジニアの仲間を募集中です。一緒に新しい世界を創造しませんか?
https://hrmos.co/pages/cyberagent-group/jobs/0000857