【ChatGPT】人のように話すNPCが実現可能に！？　ChatGPTの創作への応用方法

# はじめに
[ChatGPT](https://openai.com/blog/chatgpt/)、ご存知ですか？
先月OpenAIから発表された対話型AI。ChatGPTは対話形式で大規模言語モデルに命令をすることで、AIに様々なことをさせることができるようになるAIです。
ChatGPTについては色んな方が説明してくれているので詳しい説明は割愛するとして、今回はそのChatGPTの創作への活用方法についてみていきましょう。

# 活用方法１ 口調の書き分け自動変換
オリジナル主人公を作るゲーム、例えばスカイリムのようなゲームで、キャラクターの設定を老人にしているのに若者口調で話したり、男女の書き分けをされていないせいで女性でも男性口調で話したりされて没入感を削がれた経験ってありませんか？
自分はあります。
なんでああいうゲームが出るかって、口調の書き分けがめんどくさくて手間だからなんですよね。
男女だけで二通り、老人とか若者とかそういうタイプが増えれば４通り、８通り、１６通り……
きりがありません。
口調が同じ場合の１６倍のセリフを書き分けるとかやってられないですよね。
だから多くのゲームでは口調の書き分けがされていないのですが、ChatGPTに任せるとそれが簡単に書き分けられるようになります。
実際の例を見てみましょう。

## 例1.男女の書き分け
![スクリーンショット 2023-01-18 140908.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/315420/9027e175-8824-aa69-11e5-93ab5ec47750.png)

## 例2.若者、老人の書き分け
![スクリーンショット 2023-01-18 141330.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/315420/f9bcf07c-f15d-23a3-08c7-72864bfcf8b7.png)

## 例3.若者、少女の書き分け
![スクリーンショット 2023-01-18 144007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/315420/b5919825-447d-8c17-c23d-2c6ef5df39f6.png)


# 活用方法２ 自分で調整した口調に変換
上記の例1,2はchatGPTが最初から持っている女性口調、老人口調を使用して口調を変換しています。
楽なのですが、人によってはこの口調は変換したいキャラのイメージに合っていない、と思う人もいるでしょう。
実際自分も老人口調を見て、リアルといえばリアルだけど、もう少しゲームとかである老人っぽい口調、語尾に～じゃとかつく口調のほうがいいな、と思いました。
そういう時は、以下のように自分の望む口調について教えてあげることで、口調を調整することができます。
![スクリーンショット 2023-01-18 143807.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/315420/40a06379-ef3d-1d6b-0791-a76e75d66077.png)

どうでしょうか？
だいぶ老人っぽい口調になったんじゃないでしょうか？
また、この設定はAIに今後はこの口調で固定して、とお願いしたら、それ以降はすべて設定した口調で話してくれるようになります。
![スクリーンショット 2023-01-18 144320.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/315420/61026645-69bc-df60-6227-93f3b2a9f501.png)

自分でやってて、ちょっとChatGPT賢すぎない？　という気分になりますが、こんな感じで口調を固定することができます。


# 活用方法3 セリフに感情を付与
この変換は口調の書き分けだけには留まりません。
例えば、セリフに感情を付与することもできます。
具体的には以下のようにです。
![スクリーンショット 2023-01-18 144701.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/315420/ae2fa1d3-1513-ce04-a02d-389736646b79.png)

元のセリフだと怒っている感じですが、悲しそうに言って、とリクエストをしたらだいぶ悲しそうな感じにしてくれましたね。
これは例えば、ゲームである出来事についてどう感じたかを表す選択肢を選んだ場合の口調の書き分けに利用できるでしょう。
もしくは、リアルタイムで生成できることを考えると、プレイヤーとあるキャラクターの関係性によって、言うセリフをリアルタイムで変更する、などに使うこともできると思います。
一定の関係値以上なら悲しく、関係値以下なら怒って、のような。
本来ならフラグ分けとかめんどくさい設定をAI自身に覚えさせることで、開発者が細かいフラグとかをすべてAIに記憶させてゲームを開発させることが可能になるかもしれません。

# 活用方法４ 状況を指定してセリフや行動を生成、変化させる
今度は応用編です。
今まではセリフを望むパターンに変化させていましたが、逆に状況を指定することでセリフを生成できるか試してみましょう。
例えば以下の例です。
![スクリーンショット 2023-01-18 150818.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/315420/cd14993f-6fff-1835-dd9b-050000bf8096.png)

状況にあったセリフが生成されましたね！
幼馴染で仲が良く、同じ学校に通っていることから、通学路で会うという場面を学校へ登校している状況だと判断したのでしょう。
仲がよさそうに幼馴染の彼に声をかけています。

では状況設定を少し変えて、幼馴染だったけど、今は仲良くない場合だとどうなるでしょう？
![スクリーンショット 2023-01-18 151151.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/315420/7ffc5877-1956-fcd3-8629-c547cbc95c8f.png)

哀しいことに、今は仲良くない設定を忠実に再現してしまった結果、挨拶はするけどそれだけでむしろ避ける、のような行動を取ってしまいました。
このように、状況を設定することでそれに相応しい行動を生成することができます。
言い換えると、それまでの状況に見合った行動や台詞をリアルタイム生成ができるようになったということです！

# おわりに
ChatGPTを創作に応用した場合の方法について４種類ほど語りました。
ChatGPTやそれにまつわる技術はゲーム開発において今後とても重要になると思われます。
応用方法1,2,3もそうですが、特に4つ目の利用方法。
これはNPCが自由に話して、その場その場の状況に応じて会話してくれる、実際に生きているようなNPCを作れる夢のようなゲームの作成への第一歩だと思っています。
今はまだモデルの大きさや計算量の問題、AIが記憶できる情報の限界など問題はありますが、10年後ぐらいにはこのような技術を使用して人のように話して一緒に冒険ができるゲームが実現されることを祈っています。