![見出し画像](https://assets.st-note.com/production/uploads/images/129298045/rectangle_large_type_2_c1186568670d310912e8bff9e5402b02.png?width=1200)
パルワールド配合検索ツールをGPTsで作ってみた
パルワールド。リリースから5日半で800万本超えと驚異的な売上を叩き出しているだけでなく、Steamの同時接続数も200万人を超えて歴代2位!日本発のゲームでここまで売れているのは久々で、めちゃくちゃ嬉しい限りです!
実際にプレイしてみると、ゲームとしてとても面白く、私もハマりにはまっています!
![](https://assets.st-note.com/img/1706624034602-afvkONbqYy.jpg?width=1200)
パルがひたすら働いているのを眺めているだけでも楽しいパルワールドですが、パルワールドのエンドコンテンツの一つはパルの配合と厳選です。
自分の理想とするスキルを持つパルを捕獲し、それを基に強いスキルを持ったパルを配合していくのは永遠に楽しめます。しかしながら、特定のスキルを持ったパルをどのように最終的に配合したいパルにするかの配合ルートを見つけていくのはなかなか骨が折れる。
ということで、Palworld - パル配合検索ツールをGPTsで作ってみました!
出来ること
検索
あるパルを持っているとき、それを使ってどの新しいパルを配合できるか、またそのために必要な他のパルが何かを教えてくれる機能です。
![](https://assets.st-note.com/img/1706624898458-7JqUJC3zKF.png?width=1200)
逆引き検索
特定のパルを配合したいとき、配合に必要なパルを教えてくれる機能です。
![](https://assets.st-note.com/img/1706624917709-Jbwps8r29L.png?width=1200)
配合ルート検索
指定したパルから目的のパルに至るまでの配合のステップを順番に教えてくれる機能です。
パルワールドでは、パッシブスキルが配合後の子に一定確率で引き継がれます。目的のパルにつけたいスキルを持つパルからどのような配合ルートをたどれば配合出来るかは非常に重要です。
![](https://assets.st-note.com/img/1706625755961-A9z0dWW4ad.png)
配合ルート検索はCode Interpreterでの計算負荷が高いため最初に見つかったルートのみを返す仕様にしています。途中の配合方法もまだ実現できておらず、正直なところまだまだ改善の余地がありまくりです。
日本語と英語の両方での検索
ちなみに日本語だけじゃなく、英語のパル名でも検索できるようにしてます!
![](https://assets.st-note.com/img/1706622415281-sGvKRi6Ghf.png?width=1200)
是非使ってみて、良かったらいいねしてくれると嬉しいです!
GPTsの特徴(少し技術的なお話)
ここからは作成したGPTsの技術的な話です。
今回作成したGPTsは、ChatGPT研究所さんが主催のGPTsコンテストへの投稿作品です。
GPTsの作り方はこちらの記事が網羅的にまとまってます!
コンテストの審査要件の中でもニーズと技術力について自分なりに解釈してみます。
ニーズ
ここが今回の審査要件で最も重要みたいですが、パルワールドの流行りに完全に乗っかってます!強いパルを手にいれるには、パル同士を配合してパッシブスキルを厳選することが必要なので、需要はあるんじゃないかと思っています。
技術力
今回はGPTsのみでどこまでできるのかをテーマにGPTsを作ってみました。まずKnowledgeをデータベースとみなし、Code Interpreterを利用することでパルの検索をできるようにしました。そうすることで、配合の組み合わせミスや実際に存在しないパルを出力することをなくせるようにしています(要するにRAG的な実装)。データベースには2つのテーブルを用いています。
パルのキャラクターデータ:パルを日本語名、英語名の両方の検索に対応させるためにパルにユニークなIDを付与しました。現状パルの作業適正等の情報を入れられていないです。。。
パルの配合の組み合わせデータ:配合の結果として生まれるパル、配合に利用するパルをパルのIDで紐づくように管理しています。これは頑張って用意しました。
InstructionsはReAct的なプロンプトでユーザーの要求に応じて適切なツールを利用して検索できるようにしています!
特に今回実装で難しかったのが配合ルート検索です。あるパルAから特定のパルBを配合するには、パルA→パルC→パルD→パルBのように何段階かのステップを踏む場合があります。Code InterpreterのPython環境では実行時間が長いとTimeoutしてしまうという制約があります。その中で幅優先検索ができる関数をInstruction中に記載することで配合ルート検索をなんとか実現しました。まだ1ルートしか検索できないというお粗末な代物ですが、Code Interpreterの限界が見えてなかなかに興味深かったです。
まだまだ実現したかったことがたくさん残っていますが、今後改善できないか挑戦していきたいと思っています!
Code Interpreterでの検索に時間がかかりすぎて、ユーザー体験があまり良くないことの解消
配合ルート検索で、より簡単なルートを選択する機能、配合ルート検索で複数のルートを同時に検索できるようにする機能、また伝説のパルを除外する機能の実現
おすすめの配合順に出力したり、おすすめの配合パルを提案する機能
パルの画像とパルの名前を紐づけて出力する機能の実装
まとめ
パルワールドをもっとプレイしたいので、このくらいで失礼します!
是非GPTsを使ってみて、フィードバックをいただけると助かります。
記事が良ければ、いいね押してくれる嬉しいです。
GPTsや本業のデータを活用した意思決定に関する記事も今後投稿していきますので、フォローもよろしくお願いします!