「AI恋愛シミュレーション × 愛が深まるほど強くなるTCG」。Cryptoland Bootcamp 2参加プロダクト
「今は放課後。帰りの坂道で主人公はヒロインに話しかけられます」。ゲームが決めているストーリーはたったのこれだけ!
この後、あなたはヒロインをどんなデートにでも誘うことができます。例えば、海水浴。例えば、動物園。 自由入力形式でヒロインと会話できるので、あなたが行きたい場所にヒロインを誘えます。
無事ヒロインをデートに誘えたら、デートの日の光景を写した記念写真を手に入れることができます。 先ほどのヒロインとの会話に基づいて作成したているので、どれ一つとして同じではありません。 世界に一つだけの記念写真です。
あなたとヒロインが繰り広げる会話は世界にただ一つのもの。 デートの記念写真も世界にただ一つ。
まさに、愛の可能性は無限大!!
以下の3指標に基づいて、過去のデート記念写真からTCG NFTカードを生成できます。
- 彼女になれたかどうか
- ヒロインとの親密度
- デートの行き先や会話内容
レアなTCG NFTカードを手に入れることができたら、追加エピソードを閲覧体験できます。カードには、パワーや特殊効果などのパラメーターが記載されており、相手とバトルすることもできます。
- ユーザーからの入力に応じて、OpenAI APIを使用しGPTモデルでヒロインの返答を生成
- ユーザーとヒロインの会話の履歴はUnityアプリのメモリに保持
- 会話の全履歴をGPTに要約させる
- その要約文を基にstable-diffusion向けのpromptをGPTに作成してもらう
- そのpromptを基にStable Diffusion APIを叩いて記念写真を生成する
- 記念写真をToken URIとしたNFTをMintするよう、UnityアプリからMint用サーバーにリクエスト
- Mint用サーバーがNFTをMintする
- Unity : ゲームエンジンとして利用
- GPT-4 : ヒロインの会話文の生成。カップル成立かどうかの判断等
- Stable Diffusion(Model : AnythingElse V4) : 記念写真の生成に用いた
- TCG Verse : NFT Contractなどのdeploy先
- ヒロインの返答がある程度違和感のないものになるようにGPT向けのプロンプトをチューニングすること
- 生成画像に欠陥がないように、画像生成用のプロンプトをチューニングすること
- LLM(大規模言語モデル)と画像生成AIを、恋愛シミュレーションゲームという一つの体験の流れのなかにで違和感なくシームレスに接続したこと。
- 生成された画像のみならず、「彼女になれたかどうか」「ヒロインとの親密度」「会話内容」などの、プレイヤーがAIとやりとりをすることで生まれる「その時限りの」体験価値やパラメータがNFTの価値に直結していること
NFTをMintするためのサーバー
ディレクトリを移動する
cd mint_server
必要なパッケージのインストール
npm install
.env-example
をコピーして環境変数を設定する
cp .env-example .env
node.jsを用いてサーバーを立ち上げる
node app.js
以下のようなPOSTリクエストをローカルサーバーに送る
curl -X POST -H "Content-Type: application/json" -d "{\"to\":\"{YOUR_ADDRESS}\",\"uri\":\"{YOUR_TOKEN_URI}\"}" http://localhost:8080
Smart ContractのSolidityファイルとそれをEVMブロックチェーンにdeployするためのスクリプト等が格納されている
ディレクトリを移動する
cd hardhat
必要なパッケージのインストール
yarn install
.env.example
をコピーして環境変数を設定する
cp .env.example .env
node.jsを用いてサーバーを立ち上げる
node app.js
deployするためのコマンドを叩く
npx hardhat run --network astar scripts/deploy.js
git clone https://github.com/wappaboy/DatingSimAI.git
でレポジトリをローカルに落とす- Unityアセット GPT AI Integration (有料)をインストール
- Google ColaboratoryでStable DiffusionのAPIサーバーを立てる
# 必要なライブラリをインストールする
%pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 torchtext torchaudio torchdata==0.6.0 --index-url https://download.pytorch.org/whl/cu118
# stable-diffusion-webui のソースコードをクローンしてくる
!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
%cd /content/stable-diffusion-webui
# モデルをインストールする
!wget https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors -O /content/stable-diffusion-webui/models/Stable-diffusion/sd_v2.1.safetensors
# 起動
!python launch.py --share --api --xformers --enable-insecure-extension-access
- Mint Serverを上述の方法で立ち上げる
- LoveInfinityTCG_UnityフォルダをUnityEditorで開く
- 各自のローカルで、LoveInfinityTCG_Unity/Assets フォルダにGameDataフォルダを新規作成する
- GameDataフォルダに openai_apikey.txt を作成しOpenAIのAPIkeyを記載(ChatGPTを動作させるために必要)
- GameDataフォルダに url.txt を作成しGoogleCollabで立ち上げたStableDiffusionWebUIのアクセスポイントのURLを記載(画像生成のために必要)
- https://github.com/wappaboy/LoveInfinityTCG/releasesからダウンロード
- Google ColaboratoryでStable DiffusionのAPIサーバーを立てる
# 必要なライブラリをインストールする
%pip install torch==2.0.0+cu118 torchvision==0.15.1+cu118 torchtext torchaudio torchdata==0.6.0 --index-url https://download.pytorch.org/whl/cu118
# stable-diffusion-webui のソースコードをクローンしてくる
!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
%cd /content/stable-diffusion-webui
# モデルをインストールする
!wget https://huggingface.co/stabilityai/stable-diffusion-2-1/resolve/main/v2-1_768-ema-pruned.safetensors -O /content/stable-diffusion-webui/models/Stable-diffusion/sd_v2.1.safetensors
# 起動
!python launch.py --share --api --xformers --enable-insecure-extension-access
- GameDataフォルダ下のopenai_apikey.txtにOpenAIのAPIkeyを記載(ChatGPTを動作させるために必要)
- GameDataフォルダ下のurl.txtにGoogleCollabで立ち上げたStableDiffusionWebUIのアクセスポイントのURLを記載(画像生成のために必要)
- LoveInfinityTCG.exeを実行