シナリオデザイナーの考え方

 シナリオデザイナーは、対話シナリオデータをビジュアル操作で作成・編集するツールです。ここでは、シナリオデザイナーの中で出てくるシナリオの構成要素、機能の概念について紹介していきます。

シナリオデザイナーの構成要素

 シナリオは1つ以上のシーンから成り立ちます。シーンの中には、具体的な処理であるアクション等、色々な情報が入っています。シナリオデザイナーには、ユーザとのやり取り等の情報を保存するための変数という概念も存在します。以下では、シーン、シナリオ、アクション、変数、インテントについての簡単な紹介を行います。

シーン

 コミュクラフトでシナリオを作るときには、シーンを基本にしてコンテンツを作成していきます。シーンとは何らかの目的で行われるコミュニケーションの最小単位であり、シーンの中に、画面上に配置する部品の定義、ユーザとの音声対話やキャラクタの動作等を含む処理、ユーザ意図を検出するための規則等を定義していきます。

シナリオ

 シーンをつなぎ合わせていくことでシナリオを作成します。分岐したつなぎ合わせにより、ユーザの応答にあわせたマルチストーリーな対話を実現していきます。

シーンの中で行う処理(アクション)

 シーンの中ではいろいろな処理を作成できます。この処理のことをアクションといいます。シナリオデザイナーのアクション一覧領域に、そのシーンで実行されるアクションの一覧が表示されます。一覧からアクションを選択すると、右側のアクション編集領域でアクションの内容をビジュアルプログラミングで編集できます。

ビジュアルプログラミング:視覚的にブロックを配置することで、プログラムを作成することです。子供向けプログラミング教室でも使われています。

情報を保存するための箱(変数)

 コミュクラフトのアクションでは、情報を保存するための箱である変数を使えます。変数には、シーン変数、シナリオ変数、データ変数の3種類が存在します。それぞれの変数は、下図のように情報を保持している期間が異なります。

インテント

 シナリオを作ってると、「ユーザーがこんな発話をしたときに、こんなこと(アクション)を実行したいな」と考えると思います。コミュクラフトでは、”こんな発話” のことをインテントと呼びます。シナリオデザイナーでインテントを検出するルールを定義しておくと、ユーザーの発話からインテントを検出することができます。

 シナリオデザイナーでインテントを使う時は、最初に、アクション一覧ペイン上でインテント検出時の処理を作成します。作成したインテント検出時の処理には、名前を付けられます。下図では「乗換案内インテント検出時の処理」という名前を付けました。吹き出しアイコンのボタンを押すと、インテントを検出するためのルールを定義する画面が起動します。

 インテントを検出するためのルールを定義する画面では、下図の 1 ~ 3 の手順でインテントを検出するためにルールを作成します。

 2 の手順は必須ではありません。2 はインテントを検出するためのルールのひな形を作成する操作ですが、ひな形が無い初期の状態から全てのルールを自分で編集しても構いません。(2 のひな形を作成する処理は、随時賢くしていきます。) 3 のルール(条件)の内容を詳しく説明すると、下図のようになります。

 ルール(条件)は、ユーザーの発話にどんな単語が含まれるかという定義になります。単語が必須である場合は「必須」にチェックを入れます。また、単語同士が連続している必要がある場合、「前条件に連続」にチェックを入れます。このような条件を作成することで、ユーザーの発話からインテントを検出できるようになります。

 ユーザーの発話からインテントを検出したときに、発話文中から単語を抜き出して変数に入れることができます。なお、編集中のルール(条件)が自分の想定通りに動くかは、動作シミュレーション機能を使って確認できます。

 インテント検出のためのルールを作成・編集した後は、インテント検出により呼び出される処理(アクション)を作成します。

 以上の要領で、ユーザーの発話からインテントを検出して、それに対応するアクションを実行させるという動作を実現できます。

本ページのコンテンツは、随時更新していきます。また覗いていただけますと嬉しいです。