この記事は CyberAgent Developers Advent Calendar 2023 9日目の記事です。

こんにちは、ピグ事業部 Unityエンジニアの荘司です。

GPT-4を使ってアバターを制御するというアイデアは、新たなエンターテイメントの形を生み出す可能性があります。

今回はその一例として、PIGGアバターの制御にGPT-4を用いた手法を紹介します。

piggの画像1

今回モックとして実装したものは、単なるNPCアバターではありません。それは、Piggドメインで生成系AIを活用し、ユーザーに優れた体験を提供するものです。

本記事では、2つのモックを踏まえてGPT-4を使ったアバター制御の手法について紹介したいと思います。

  1. AIによる対話機能と感情表現
  2. コーディネート審査機能

piggの画像2

Piggについて

Piggは、2009年に登場してからすでに10年以上もの間、人々に楽しまれ続けているサービスです。

当初Flashベースで提供されていたPC版のサービスは、Flashが2020年末に終了することを受けてスマートフォン向けのサービスとなりました。

現在、私達はアバターコミュニケーションサービス『ピグパーティ』、農園ゲーム『ピグライフ ふしぎな街の素敵なお庭』、そしてスマートフォン版『アメーバピグ』の3つのタイトルを運営しています。これらのゲームは、ユーザーが自分だけのアバターを作り、仮想世界での生活を楽しむことができるものです。

 

実装した構成

今回のモック実装では、OpenAI APIのgpt-4とgpt-4-vision-previewを活用しました。

さらに、会話のコンテキストを維持するために、AWS DynamoDBを用いて会話とレスポンスを保存する設計にしました。

全体としてのシステム構成は以下のようになります。

アークテクチャの構成図

piggの画像3

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
}

AIによる対話機能と感情表現のデモ

 

やってみて

プロンプトに感情を指定しているだけなので、すべてのレスポンスに指定した感情が含まれているわけではありません。

しかし、これによりすべてを厳密に制御することなく、結果としてより人間らしい反応が得られました。

 

コーディネート審査

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の画像4

まとめ

今回は、PiggアバターとGPT-4を組み合わせることで、新たな体験を提供する試みを行いました。

世の中のアバターには各々独自のキャラクター性があり、システムプロンプトの工夫により、それらを活かした多様なサービスが提供可能と考えられます。

ただし、現状ではgpt-4-vision-previewが本番環境での利用を推奨していない、コスト面での課題が存在するなど、本番環境への展開にはいくつかの問題があります。

それでも、現在の技術の発展スピードを考えると、これらの問題も近い将来解消すると期待しています。

 

最後に

ピグチームでは、新規サービスの開発を進めています。

その一環として、Unityエンジニアの仲間を募集中です。一緒に新しい世界を創造しませんか?

unityエンジニア募集のバナー画像

https://hrmos.co/pages/cyberagent-group/jobs/0000857

 

 

2022年中途入社。 ピグ事業部にて、クライアントエンジニアをしています。 ビールとジンが好き。