---
title: 2023-05-25-AIでゲームを作るハンズオン
tags:  #openai #chatgpt #ゲーム  
author: [Maiko Ando](https://convert.docswell.com/user/maiko-ando)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/9J2GNK55JR.jpg?width=480
description: 2023/05/25 株式会社アルゴリズムにて行われたハンズオン勉強会の資料です。 AI(ChatGPT)を使ってゲームを作るに当たっての事前知識の共有としての内容となっています。 https://connpass.com/event/282985/
published: May 26, 23
canonical: https://convert.docswell.com/s/maiko-ando/5GXLR8-2023-05-26-112328
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/9J2GNK55JR.jpg)

2023/05/25 19:30 ~ 株式会社アルゴリズム


# Page. 2

![Page Image](https://bcdn.docswell.com/page/DEYVPNK6EM.jpg)

ハンズオンの事前準備
• npm、gitのコマンドが動作する環
境をご用意ください
この内容がわからない方についてはこれからの事前説明の時間の間にスタッフがサポート
します


# Page. 3

![Page Image](https://bcdn.docswell.com/page/VJNM5XZ178.jpg)

AIが使用されているゲームの事例


# Page. 4

![Page Image](https://bcdn.docswell.com/page/YE9NY8ZYE3.jpg)

いままでのゲームにも&quot;AI&quot;は搭載されている
例① 計算アルゴリズムに基づくもの
往年のオセロゲームのAIや戦略シミュレーションゲームなどはおおよそこれに該当するはず。
打った手について得点を付けて評価して行動判断している
例② 深層学習を使って行動学習をさせたもの
プレイヤーの行動から学習して、NPCとしての行動を決定するもの。
古くはプレイステーションゲーム「がんばれ森川君2号」(1997年5月23日発売)の頃から
存在していた。
近年は格ゲーのNPCにプレイしているプレイヤーの癖を学ばせて動くものもあるとか。
https://automaton-media.com/devlog/report/20190511-91689/
他にも色々...


# Page. 5

![Page Image](https://bcdn.docswell.com/page/GE8K681K7D.jpg)

いままでのゲームにも&quot;AI&quot;は搭載されている
例① 計算アルゴリズムに基づくもの
往年のオセロゲームのAIや戦略シミュレーションゲームなどはおおよそこれに該当するはず。
打った手について得点を付けて評価して行動判断している
これは今回範囲外…
例② 深層学習を使って行動学習をさせたもの
プレイヤーの行動から学習して、NPCとしての行動を決定するもの。
古くはプレイステーションゲーム「がんばれ森川君2号」(1997年5月23日発売)の頃から
存在していた。
近年は格ゲーのNPCにプレイしているプレイヤーの癖を学ばせた動きをするものもあると
か。https://automaton-media.com/devlog/report/20190511-91689/
他にも色々...


# Page. 6

![Page Image](https://bcdn.docswell.com/page/LELZ9RQPJR.jpg)

NLPやLLMが搭載されている
ゲームの事例
多分無いとは思いますが、前提の誤解があった場合は申し訳ありません🙏


# Page. 7

![Page Image](https://bcdn.docswell.com/page/4JMVZR12JW.jpg)

ポートピア連続殺人事件
SQUARE ENIX 2023
https://www.jp.square-enix.com/ai-tech-preview/portopia/jp/


# Page. 8

![Page Image](https://bcdn.docswell.com/page/PJR26RL5E9.jpg)

AIバトラー
@dala氏による個人開発 2023
https://ai-battle.alphabrend.com/


# Page. 9

![Page Image](https://bcdn.docswell.com/page/PEXDMRWX7X.jpg)

ドキドキAI尋問ゲーム(公開停止中)
https://automaton-media.com/articles/newsjp/20230329-242319/


# Page. 10

![Page Image](https://bcdn.docswell.com/page/3EKXGRV97D.jpg)

(番外編)AIのべりすとプロンプト共有
https://ai-novelist-share.geo.jp/


# Page. 11

![Page Image](https://bcdn.docswell.com/page/L735N8M9E5.jpg)

ゲームに自然言語による入力が
使えるようになり、ファジーさという
新しいゲーム体験を生み出すことが可能
になった


# Page. 12

![Page Image](https://bcdn.docswell.com/page/87DDWM687G.jpg)

ゲームとは？


# Page. 13

![Page Image](https://bcdn.docswell.com/page/VJPX9RYW78.jpg)



# Page. 14

![Page Image](https://bcdn.docswell.com/page/2EVLMRG9JQ.jpg)

今回はここを目指す


# Page. 15

![Page Image](https://bcdn.docswell.com/page/57GXGM84EL.jpg)

あえて図で表すとこう


# Page. 16

![Page Image](https://bcdn.docswell.com/page/4EQ8XR9RJP.jpg)

あえて図で表すとこう
AIに指示を出す = プロンプティング


# Page. 17

![Page Image](https://bcdn.docswell.com/page/KJ4268XQE1.jpg)

プロンプトエンジニアリングと
LLMについて


# Page. 18

![Page Image](https://bcdn.docswell.com/page/LE1MV2NL7G.jpg)

定義についての引用 @ITより : https://atmarkit.itmedia.co.jp/ait/articles/2303/13/news013.html
LLM(Large Language Models)とは何か
大量のテキストデータを使ってトレーニングされた
自然言語処理のモデル
📝
📝
📝
📝
数千億・数兆語にも及ぶテキスト
\ｳｱｱｱｰｯ/
トレーニング
🧠
LLM


# Page. 19

![Page Image](https://bcdn.docswell.com/page/GEW3LR4QE2.jpg)

LLMは擬人化すると取っつきやすいかもしれない
\33億語でトレーニングしました/
📝 🧠
BERT
\約5千億トークンでトレーニングしました/
📝
📝
📝 🧠
GPT-3.5
🧠
\GPT-3.5さんよりもっと勉強しました/
GPT-4


# Page. 20

![Page Image](https://bcdn.docswell.com/page/47ZVMR23E3.jpg)

定義についての引用 book.st-hakky.comより : https://book.st-hakky.com/docs/what-is-prompt-engineering/
プロンプトエンジニアリングとは何か
AI に対して適切な質問や指示を与えることで、より
望ましい結果を引き出す技術


# Page. 21

![Page Image](https://bcdn.docswell.com/page/YJ65NRVZ7V.jpg)

定義についての引用 book.st-hakky.comより : https://book.st-hakky.com/docs/what-is-prompt-engineering/
プロンプトエンジニアリングとは何か
AI に対して適切な質問や指示を与えることで、より
望ましい結果を引き出す技術
この方法やテクニックに
手法名がついて呼ばれている


# Page. 22

![Page Image](https://bcdn.docswell.com/page/GJ5Y58D9J4.jpg)

引用: https://www.promptingguide.ai/jp/techniques/zeroshot
代表的なプロンプティング手法 ①
Zero-Shot
モデルに任意の例を提供しないプロンプト
入力サンプル
テキストを中立、否定的、または肯定的に分類してください。
テキスト: 休暇はまずまずでした。
所感:


# Page. 23

![Page Image](https://bcdn.docswell.com/page/9E2GNK85ER.jpg)

ChatGPTのモデルごとの出力結果の比較
GPT-3.5-turbo
GPT-4


# Page. 24

![Page Image](https://bcdn.docswell.com/page/D7YVPN667M.jpg)

注目すべき点
• Zero-shotでは同じプロンプトでもModel・パラ
メータによって得られる出力が異なる
✴ 同じにしても毎回同じ出力になるとは限らない
比較する対象がないからよくわかんないけど
休日なんだから肯定的じゃないんですか？ &gt;
GPT-3.5
🧠
🧠
まずまずって言ってるし、良くも悪くもなかったみたい
&lt; これは中立ってところかしら
GPT-4


# Page. 25

![Page Image](https://bcdn.docswell.com/page/VENM5V11J8.jpg)

注目すべき点
Zero-shotでは同じプロンプトでもModel・パラ
•毎回同じ答えになる保証が無いなら
ゲームの処理としては
メータによって得られる出力が異なる
✴ 同じにしても毎回同じ出力になるとは限らない
使えないじゃん？！
比較する対象がないからよくわかんないけど
休日なんだから肯定的じゃないんですか？ &gt;
🧠
🧠
まずまずって言ってるし、良くも悪くもなかったみたい
&lt; これは中立ってところかしら
GPT-3.5
プロンプトを調整して対応する
GPT-4


# Page. 26

![Page Image](https://bcdn.docswell.com/page/Y79NY65Y73.jpg)

引用: https://www.promptingguide.ai/jp/techniques/fewshot
代表的なプロンプティング手法 ②
Few-Shot
モデルに任意の例を提供するプロンプト
入力サンプル
これは素晴らしい! // ポジティブ
これは酷い! // ネガティブ
あの映画は最高だった! // ポジティブ
なんてひどい番組なんだ! //


# Page. 27

![Page Image](https://bcdn.docswell.com/page/G78K6ZYKJD.jpg)

ChatGPTのモデルごとの出力結果の比較
GPT-3.5-turbo
GPT-4


# Page. 28

![Page Image](https://bcdn.docswell.com/page/L7LZ9D4PER.jpg)

注目すべき点
• Model・パラメータを変更しても、期待した定型
文が返ってきやすくなった
✴ 100%毎回同じ形で定型文が返ってくるとは限らない
文脈とか例があったのでそれに倣いました &gt;
GPT-3.5
🧠
🧠
&lt; 文脈に沿って回答しました
GPT-4


# Page. 29

![Page Image](https://bcdn.docswell.com/page/4EMVZPK2EW.jpg)

注目すべき点
• Model・パラメータを変更しても、期待した定型
100%定形のレスポンスである
文が返ってきやすくなった
保証がないの！？
✴ 100%毎回同じ形で定型文が返ってくるとは限らない
文脈とか例があったのでそれに倣いました &gt;
🧠
GPT-3.5
この話は後ほど
🧠
&lt; 文脈に沿って回答しました
GPT-4


# Page. 30

![Page Image](https://bcdn.docswell.com/page/PER261X579.jpg)

引用: https://www.promptingguide.ai/jp/techniques/cot
代表的なプロンプティング手法 ③
Chain-of-Thought
例示と具体的な思考の過程をサンプルとして与えるプロンプト
入力サンプル
このグループの奇数を合計すると偶数になります。: 4、8、9、15、12、2、1。
A: 奇数を全て加えると(9, 15, 1)25になります。答えはFalseです。
このグループの奇数を合計すると偶数になります。: 17、10、19、4、8、12、24。
A: 奇数を全て加えると(17, 19)36になります。答えはTrueです。
このグループの奇数を合計すると偶数になります。: 16、11、14、4、8、13、24。
A: 奇数を全て加えると(11, 13)24になります。答えはTrueです。
このグループの奇数を合計すると偶数になります。: 17、9、10、12、13、4、2。
A: 奇数を全て加えると(17, 9, 13)39になります。答えはFalseです。
このグループの奇数を合計すると偶数になります。: 15、32、5、13、82、7、1。
A:


# Page. 31

![Page Image](https://bcdn.docswell.com/page/P7XDMY6XJX.jpg)

ChatGPTのモデルごとの出力結果の比較
GPT-3.5-turbo
GPT-4


# Page. 32

![Page Image](https://bcdn.docswell.com/page/37KXG319JD.jpg)

ChatGPTのモデルごとの出力結果の比較
GPT-3.5-turbo
GPT-4


# Page. 33

![Page Image](https://bcdn.docswell.com/page/LJ35NGQ975.jpg)

ChatGPTのモデルごとの出力結果の比較
GPT-3.5-turbo
GPT-3.5-Turboの答えが違うが！？
(今回は何回やってもだめだったがパラメータ次第で期待した答えになることはあり得る)
GPT-4
違うがそこは本質ではない


# Page. 34

![Page Image](https://bcdn.docswell.com/page/8JDDW198JG.jpg)

注目すべき点
• GPT-3.5の回答は期待した答えとは違ったが、過
•
程は倣わせる事ができている
複雑な内容も「やり方」を例示してあげることで
AIにある程度以上対応させることができる
わかるところとわからないところがあった &gt;
GPT-3.5
🧠
🧠
&lt; 私は出来てましたけどね
GPT-4


# Page. 35

![Page Image](https://bcdn.docswell.com/page/VEPX9QZWJ8.jpg)

引用: https://www.promptingguide.ai/jp/techniques/cot
代表的なプロンプティングの工夫例
Zero-shot CoT
AIに良い動きをさせるための魔法の一言：ステップバイステップで考えてみましょう。
入力サンプル
私は市場に行って10個のリンゴを買いました。隣人に2つ、修理工に2つ渡し
ました。それから5つのリンゴを買って1つ食べました。残りは何個ですか？
ステップバイステップで考えてみましょう。


# Page. 36

![Page Image](https://bcdn.docswell.com/page/27VLM5W9EQ.jpg)

ステップバイステップで〜の文言がないときのGPT-3.5-turbo
GPT-3.5-turbo
出てきた数字を並べてそれらしく回答しているだけ


# Page. 37

![Page Image](https://bcdn.docswell.com/page/5JGXG6D47L.jpg)

ステップバイステップで〜の文言があるときのGPT-3.5-turbo
GPT-3.5-turbo
えらい！！！！！！かしこいねぇ〜〜！！！！！！


# Page. 38

![Page Image](https://bcdn.docswell.com/page/47Q8X41REP.jpg)

その他の入力プロンプティング例は
Prompt Engineering Guideを
ごらんください
https://www.promptingguide.ai/jp


# Page. 39

![Page Image](https://bcdn.docswell.com/page/KE426QRQ71.jpg)

ゲームを作るための
プロンプティングと実装


# Page. 40

![Page Image](https://bcdn.docswell.com/page/L71MVPQLJG.jpg)

前提として、回答の定型句を与えれば
基本的には期待した定形のレスポンスがされる


# Page. 41

![Page Image](https://bcdn.docswell.com/page/G7W3L2MQ72.jpg)

与えた定形の語句で答えられない
質問を与えたケースを与えた場合は
簡単に破綻してしまう


# Page. 42

![Page Image](https://bcdn.docswell.com/page/4JZVMDQ373.jpg)

※期待通りに定形の回答を
してくれる場合もある


# Page. 43

![Page Image](https://bcdn.docswell.com/page/YE65N16ZJV.jpg)

注目すべき点
• Model・パラメータを変更しても、期待した定型
100%定形のレスポンスである
文が返ってきやすくなった
保証がないの！？
✴ 100%毎回同じ形で定型文が返ってくるとは限らない
文脈とか例があったのでそれに倣いました &gt;
🧠
GPT-3.5
この話
🧠
&lt; 文脈に沿って回答しました
GPT-4


# Page. 44

![Page Image](https://bcdn.docswell.com/page/GE5Y5469E4.jpg)

ChatGPTのレスポンスを
100%の定型文に近づける方法の案


# Page. 45

![Page Image](https://bcdn.docswell.com/page/972GNVM57R.jpg)

回答させる値を
テンプレートを与えて予め絞り込む


# Page. 46

![Page Image](https://bcdn.docswell.com/page/DJYVP3X6JM.jpg)

しかし入力値によっては
質問に勝手に回答しちゃったりする


# Page. 47

![Page Image](https://bcdn.docswell.com/page/V7NM5V51E8.jpg)

現状のChatGPTにおいてプロンプトのみで
絶対確実100%の定形レスポンスを保証をする方
法はおそらく無い（自分が浅学なだけだったら申し訳ありません）


# Page. 48

![Page Image](https://bcdn.docswell.com/page/YJ9NY6YYJ3.jpg)

現状のChatGPTにおいてプロンプトのみで
絶対確実100%の定形レスポンスを保証をする方
法はおそらく無い（自分が浅学なだけだったら申し訳ありません）
→ AIを使った何らかの処理を実現する場合に、期待する
答えではないレスポンスだった場合、規定回数のリトライ
や、入力のやり直しを要求するなど、実装によるカバーが
必要になる


# Page. 49

![Page Image](https://bcdn.docswell.com/page/GJ8K6Z6KED.jpg)

その他の意識すべき部分のダイジェスト
・どのLLMを使う？
・性能? 早さ? 専門性?
・プロンプトインジェクションへの対抗
・AIの応答待ち時間をどうする問題
・streamingを使う ・ 演出でカバー etc...
・その他の例外対応…


# Page. 50

![Page Image](https://bcdn.docswell.com/page/LJLZ9D9P7R.jpg)

ハンズオンでやってみよう


# Page. 51

![Page Image](https://bcdn.docswell.com/page/47MVZPZ27W.jpg)

資料URL
https://algorithms1.notion.site/
2023-05-25AI-07d2e2a380724b61a23547e8725f4
4cf


