Amazon Sumerian Tutorial 34:Using a Host and Speech Components

こんにちは、ナレコム前川です!

ここでは、前回行ったチュートリアルの応用を行っていきます。
今回進めるチュートリアルは、Amazon Sumerian の公式チュートリアルの
Using a Host and Speech Components です。

それでは、早速進めていきましょう。

1. シーンの作成

ダッシュボードから Speech & Gesture シーンをクリックしてください。

シーン名は、「Host Tutorial」にしました。

2. Host コンポーネントについての説明

ここからは、Host コンポーネントの設定について説明していきます。

アバター(Cristine)を選択して、Inspector パネルから Host コンポーネントを展開してください。

展開したら、Point of Interest に注目してください。
ここでは、アバターの視線をエンティティに追従させる設定ができます。

設定を Look At Entity に設定し、
Target Entity に Entities パネルにある Default Camera をドラッグ&ドロップしてください。

その後、シーンの再生ボタンをクリックして、アバターの視線が追従するかどうか確認してみてください。

それでは、次に設定したエンティティをカメラから empty Entity に変更してみます。
empty Entity の作り方は、Create Entity から Entity をクリックしてください。

作成したら、Host コンポーネント の Target Entity の右にある
× ボタンで現在設定している Default Camera を削除します。

その後、Entity をドラッグ&ドロップしてください。

シーンを再生してみると、Entity の位置が (0, 0, 0) にあるため、
アバターが下を向いているのが分かると思います。

Entity の 位置を (0, 10, 0) に設定して再度シーン再生してください。
再生すると以下のようになるのが確認できます。

確認したら、Point of InterestNone に設定します。

設定すると、シーン再生をしてカメラを移動させてもアバターの視線は追従しないのが分かります。

確認できたら、Target EntityDefault Camera に設定し直してください。

以上が Host コンポーネントに関しての説明です。

3. Speech コンポーネントの説明

次は、 Speech コンポーネントについて説明していきます。

それでは、初めに AWS configuration の設定を行ないます。
Entities パネルの Host Tutorial をクリックして、AWS configuration を展開します。
展開したら Pool ID を入力してください。

Pool ID の設定方法については、コチラの記事を参照してください。

次に、アバターをクリックし、Speech コンポーネントを展開してください。

※Speech コンポーネントでの基本設定については、コチラの記事に記載しています。

Voice を確認すると Amy に設定してあり、Volume の設定も行うことができます。

続いて、Speech ファイルについて見ていきましょう。
Speech ファイルは、ファイルをドロップして読み込む方法と新規作成する方法があります。

また、作成したファイルには、再生ボタン・編集ボタン・ジェスチャーマークボタン・削除ボタンがあります。

それでは、ファイルの中身を見ていきましょう。
IntroSpeech ファイルの編集ボタンをクリックしてください。
クリックすると、別タブでテキストエディタが開きます。

左のリストには、全ての Speech ファイルが並んでいます。
そのリストから IntroSpeech を選択してください。

IntroSpeech ファイルには、話す内容の他にジェスチャーを指定するコードが書かれています。

上述のコードでアバターの動きを指定することができます。

また、以下のコードでアバターの動きを止める時間を指定することができます。

時間の書き方は、2種類です。
※ほぼほぼ ○○ms で記されています。

続いて、GestureSpeech ファイルを確認してみましょう。
ここのファイルには、ジェスチャーの種類がまとめてあります。

全部で14種類のジェスチャーがあります。

※テキストエディタは、シーンの再生中に編集することはできないので注意してください。

ここで、少し Host コンポーネントに戻って Speech コンポーネントと関連のある
Animate Using Text To Speech の設定を見ていきましょう。

Lip Sync は、テキストに合わせた口パクの ON/OFF の設定です。
Gesture では、ジェスチャーの ON/OFF を設定できます。
Gesture Hold Time では、1つのジェスチャーを設定した秒数より長く行わないようにすることができます。
Min Gesture Period では、ジェスチャーの最小時間を指定することができます。

デフォルトでおすすめされている時間は、以下のとおりです。

Gesture Hold Time : 10
Minimum Gesture Period : 0.1

4. 自身でジェスチャー付きのスピーチを作成する

ここでは、自分自身でジェスチャー付きの新しいSpeech ファイルを作成していきます。

まず、Speech コンポーネント+ ボタンをクリックします。

そして、以下のコードを Speech ファイルに書き込んでください。

※文章については、自分で自由に書いてかまいません。

書き込んだら、テキストエディタを閉じて Speech コンポーネントに戻ります。
そのあと、Speech ファイルの Auto-generate gesture marks ボタンをクリックしてください。

再度、テキストエディタを見ると、以下のようになると思います。(たまにならないときもある。。)

最後に、Host コンポーネントから

Gesture Hold Time : 10
Minimum Gesture Period : 0.1

に設定します。

5. ステートマシンの設定

テキストエディタで作成したファイルを実行できるようにするためにステートマシンの設定を行っていきます。

初めに、State Machine コンポーネントを開いてください。
次に、SampleSpeechTrigger の編集ボタンをクリックします。

ステートグラフを見てみると、Start Intro から実行し、Start Gesture につながっているのが分かります。
State Intro から実行が始まるのは、Set As Initial State に設定しているからです。

Speech ファイルを実行するためには、Start Speech というアクションを追加して、
追加したアクション内にある Speech で実行させたいファイルを指定します。

それでは、先ほど作成した Speech ファイルを実行するための設定を行っていきましょう。

まず、ステートグラフの左上にある Add State からステートを追加します。

そして、追加したステートの名前を「Custom Speech」に変更してください。
変更したら Add Action から Start Speech を追加します。

追加したら、Speech 項目で Speech ファイルを指定してください。

最後に、Set As Initial State に設定します。

設定が終わったら、シーンを再生してください。

6. ちょこっと補足

今回は、Cristine のアバターを使用しましたが、アバターは他にあと2体あります。
最近、服装が違うバージョンも出たみたいなので色々試してみてください。

アバターを変更する際には、Import Assets からインポートして使用します。

※少々面倒ですが、Host や Speech の設定は初めから行う必要があります。

使うアバターによって Voice も変更してください。

先日AWS Summit 2018 で使用したシーンを公開しますので、ぜひ見てください。

これで、今回のチュートリアルは以上です。
お疲れさまでした。

この記事を書いた人

aws-recipe-user