
Vonage AI StudioとNotionを使ったロールプレイングゲームの作り方
所要時間:1 分
RPGの遊び方からヴォナッジ・ゲートの作り方まで
若い頃は、お下がりのビデオゲームで遊ぶこともあった。それ自体が絶対的な逸品だったのだが、ちょっと時間をかけすぎて叱られることもしばしばあった。ソーシャルシミュレーションやプラットフォームゲーム、ファーストパーソン・シューティングゲーム、そして個人的に大好きなロールプレイングゲーム(RPG)まで、さまざまなゲームを楽しんだ。若き日の私は、そうとは知らずにファンタジーの世界で過ごす時間のひとつひとつが、私の問題解決能力と創造性をさりげなく磨いていたのだ。早いもので、そのようなゲームの冒険が、このブログの土台を築いたのである。
昨年、ラリアン・スタジオは バルダーズ・ゲート3を発表した。卓上ゲーム「ダンジョン&ドラゴンズ」をベースにしたRPGだ。RPGとは、ただ物語を読むのではなく、主人公になりきって本の中に飛び込むようなものだと考えてほしい。冒険をナビゲートし、決断を下し、他のキャラクターと交流し、自分の選択に基づいて物語の結末を形作る。あなたが決めたことに世界が反応する、体験型の物語を体験するチャンスなのだ。
私自身、このゲームをプレイして、「自分で冒険を選択する」スタイルに則っているため、各プレイヤーの体験がユニークでありながら魅力的であることに徹底的に感銘を受けた。そして、もっとシンプルなバージョンのRPGを再現したくなりました。 AIスタジオと メッセージAPI- Vonage's Gate!
メッセージでRPGを作る
ここでは、プレイヤーがキャラクターの運命を決めるストーリーテリング体験をどのように作っていくかを紹介します。さあ、主人公のエネルギーを注ぎ込んで、作り上げましょう!
前提条件
データベースとゲームのセットアップ
ベストプラクティスとして、ゲームプレイで使用されるすべての値をデータベースに保存します - このサンプルでは、Notionを使用します!
データベースとしてのNotionの使い方
ユーザーフレンドリーで、高度なデータベースの知識も必要なく、変更が即座に反映されるのでとても便利です。従来のデータベースに比べると拡張性は劣りますが、このアプリに必要なものはすべて処理できます。そして何より、Vonage Integration Studioやその他のローコードプラットフォームと簡単に統合できるため、私たちの生活がより簡単になりました!
スプレッドシートを作成する
こちらへ 概念.(+)ボタンをクリックしてページを追加する。DATABASE」の下にある新しいページで、「Table」をクリックする。以下のカラムを作成する:
ID (タイプ: 数字) - メッセージのIDがMMSで送信されます。
Message (type: title) - 実際に送信されるテキスト。
Option1 (type: number) - 選択肢1を選択したときに、プレーヤーが送信するレスポンス。
Option2 (type: number) - 選手がオプション2を選択したときに送信するレスポンス。
Option3 (type: number) - 選手がオプション3を選択したときに送信するレスポンス。
NextID1 (type: number) - オプション1を選択したプレイヤーが次に受け取るメッセージのID。
NextID2 (type: number) - オプション2を選択したプレイヤーが次に受け取るメッセージのID。
NextID3 (type: number) - オプション3を選択したプレイヤーが次に受け取るメッセージのID。
試合の組み立て方
ストーリーは好きなようにカスタマイズできる。私のストーリーでは、プレイヤーはアーティファクトを手に入れることになる。プレーヤーに送られるテキストは、前のメッセージに対するプレーヤーの反応によってトリガーされます。
キャラクター制作
最初のメッセージ簡単な自己紹介と、キャラクター作成のための簡単な選択肢を送る。
私のデータベースでは、ID1に「ヴォナージの門へようこそ!クラスを選んでください:(1)戦士、(2)魔道士、(3)ローグ。"
キャラクターの確認:相手が選択肢を返信したら、簡単なキャラクター説明を添えて確認メールを送る。
ゲームの進行
キャラクターを確認した直後に、決断を要する簡単なシナリオを最初に提示する。プレイヤーが選択したら、簡単な結果と別の決定ポイントを返す。複雑なインタラクションを必要とせずにストーリーを進められるような、シンプルな決定ポイントを続けてください。このデモでは、プレイヤーに1文字のメッセージで応答してもらいます。数ラウンドの決断の後、シンプルなエンディングでデモを締めくくることができます。
Database Setup
データアクセスとVonage AI Studioとの統合のためのNotion APIの有効化
ここからが楽しいところです!Vonage AI Studioの使いやすいインターフェイスで、チャットボットの会話の流れをデザインできます。ドラッグ&ドロップで設定できるので、コーディングのスキルは必要ありません。さまざまなダイアログノードを追加し、応答を定義することができます。
私たちの流れはこのようになるはずだ:
Conversation Flow
最初に Vonage AI Studioをセットアップする。.
次に、会話の流れのために、互いに接続するノードとプロパティを作成します。また このサンプルのzipファイルをダウンロードしをダウンロードしてVonage AI Studioにエージェントをインポートすることもできます。ゼロから構築する場合は、以下のようにノードを作成し、どのノードとプロパティを接続する必要があるかを説明します:
プロパティ > パラメータ
プロパティ名:開始パラメータの設定
QUERY_PARAMETERというパラメータを作成し、それを1に設定する。
接続:START(左)、$QUERY_PARAMATER = 1でWebhookに接続。
Set Start Parameter
NODES > 統合 > ウェブフック
ノード名:Webhook
メソッドPOST リクエスト URL: https://api.notion.com/v1/databases/<databaseid>/クエリー
データベース ID を見つけるにはNotion ワークスペースのデータベース URL に移動します。ID は、ワークスペース名(該当する場合)に続くスラッシュとクエスチョン マークの間にある URL の文字列です。ID は、32 文字の英数字文字列です。
ヘッダー(HTTPヘッダー : 値)
認可 : ベアラ $NOTION_ACCESS_TOKEN
ノーションバージョン : 2022-06-28
NOTION_ACCESS_TOKENを見つけるにはを見つけるには 内部を実行します。
ボディ
本文に以下のテキストを入れる:
{
"filter": {
"property": "ID",
"unique_id": {
"equals": $QUERY_PARAMETER
}
}
}レスポンス・マッピング
レスポンスタイプJSON オブジェクトパス
webhook ノードに上記の情報を入力した後、右上の 'Test request' ボタンをクリックして webhook が機能していることを確認します。レスポンスの下に、Notionテーブルからすべてのデータが返されることがわかります。レスポンスを使用して、オブジェクトパスを定義し、パラメータにマッピングします。ヘルプが必要な場合は、私のブログの[レスポンスマッピングを深く掘り下げる](LINK TO MY BLOG)をチェックしてください。
接続2xxから入力を収集
Response Mapping
NODES > 会話 > 入力を集める
ノード名: Collect Input
パラメーター入力
テキストプロンプト: $RETURNED_MESSAGE (このテキストをコピー&ペーストする代わりに、これをタイプアウトする必要があります)
期待される入力テキスト
コネクションテキストからコンディションへ
Collect Input
ノード > 会話 > 条件
ノード名: Conditions
コンディション名
オプション1
* Parameter: INPUT * Operation: Is equal to * Value: $RETURNED_OPTION1コピーオプション2
* Parameter: INPUT * Operation: Is equal to * Value: $RETURNED_OPTION2コピーオプション3
* Parameter: INPUT * Operation: Is equal to * Value: $RETURNED_OPTION3コピーノットエンド
* Parameter: RETURNED_ID * Operation: Is equal to * Value: 9 _or_ * Parameter: RETURNED_ID * Operation: Is not equal to * Value: 11 _or_ * Parameter: RETURNED_ID * Operation: Is not equal to * Value: 12 _or_ * Parameter: RETURNED_ID * Operation: Is not equal to * Value: 15 _or_ * Parameter: RETURNED_ID * Operation: Is not equal to * Value: 16 _or_ * Parameter: RETURNED_ID * Operation: Is not equal to * Value: 18 _or_ * Parameter: RETURNED_ID * Operation: Is not equal to * Value: 19コピー
コネクション
- パラメータ1を設定するオプション1
- パラメータ2を設定するオプション2
- パラメータ3を設定するオプション3
Conditions
プロパティ > パラメータ
プロパティ名:セットパラメータ1
パラメータ:クエリパラメータ
値: $RETURNED_NEXT_ID1
接続:QUERY_PARAMETERから終了点まで
プレーヤーがどのオプションを選択するかに応じて、このプロパティは、プレーヤーが「1」をテキスト入力した後に受信すべき次のメッセージのIDを指します。
Set Parameter 1
プロパティ > パラメータ
プロパティ名:セットパラメータ2
パラメータ:クエリパラメータ
値: $RETURNED_NEXT_ID2
接続:QUERY_PARAMTERから終了点まで
プレーヤーがどのオプションを選択するかによって、このプロパティは、プレーヤーが「2」をテキスト入力した後に受信すべき次のメッセージのIDを指すようになります。
プロパティ > パラメータ
プロパティ名:セットパラメータ3
パラメータ:クエリパラメータ
値: $RETURNED_NEXT_ID3
接続:QUERY_PARAMTERから終了点まで
プレーヤーがどのオプションを選択するかによって、このプロパティは、プレーヤーが「3」をテキスト入力した後に受信すべき次のメッセージのIDを指すようになります。
ノード > 会話 > 条件
ノード名:Exit Points
コンディション名
QUERY_ID NOT 0
*Parameter: QUERY_PARAMETER* Operation: Is not equal to *Value: 0* Connection(s): $QUERY_ID NOT 0 to WebhookコピーQUERY_ID = 0
*Parameter: QUERY_PARAMETER* Operation: Is equal to *Value: 0* Connection(s): $QUERY_ID = 0 to End Gameコピー
ノード > 会話 > メッセージの送信
ノード名:エンドゲーム
テキストVonage's Gateをプレイしてくれてありがとう!Twitterで感想を共有し、@dianasoysterと@VonageDevをタグ付けしてください。
コネクション対戦ありがとうございました。
Send Message
このノードはプレイヤーが冒険の終わりに達した後に送られる。つまり、テーブルのすべての値が0になり、プロンプト通りに続けるために "1 "を送信する。
End Game
ノード > アクション > 会話の終了
ノード名:End Conversation
End Conversation
技術的には、このノードは必要ないが、良い習慣のために、このノードを入れておこう。
テスト
Vonage AI Studioの右上に黒いTesterボタンがあります。それをクリックしてゲームをプレイしてください。
Testing the Agent in AI Studio - Part 1
Testing the Agent in AI Studio - Part 2
Testing the Agent in AI Studio - Part 3
Testing the Agent in AI Studio - Part 4
Testing the Agent in AI Studio - Part 5
自分自身の冒険に踏み出す
Baldur's Gate 3から引用したように、"悪と妥協することはできない。このチュートリアルでは、データを保存する際にベストプラクティスを使用する方法を学び、将来テキストを変更する必要が生じた場合に「悪」の技術的負債に対処する必要がないようにしました。また、Vonage AI StudioおよびMessages APIとデータベースを統合する方法も学びました。この例のデータが欲しい方は、以下の開発者の「クラス」にお気軽にご参加ください。 Slackでフォローしてください。 X以前はTwitterとして知られていました。同じようなアプリケーションを作ったら、ぜひシェアしてください。 タグをつけてください。- あなたの冒険を聞かせてください!