LoginSignup
11
12

More than 3 years have passed since last update.

[Unity+Live2D]ドコモAIエージェントを使ってLive2Dモデルと会話してみた

Last updated at Posted at 2020-01-26

はじめに

2020/8/12よりにトライアル環境のAPIが変更されており、記事の手順ではうまく動きません。
下記URLに更新という形で新たに記事を書きましたので、ご参照ください。

https://qiita.com/nori0__/items/0834be8c63d32928c747

Unite Tokyo 2019で講演された【Unite Tokyo 2019】中の人がいない!? 音声対話型AIサービスを使ったバーチャルキャラクターの作り方を見ていて、ドコモAIエージェントを使えばLive2Dモデルと簡単に会話できるのでは?と思ったので、やってみました。

手順

ドコモAIエージェントAPIとUnityを連携

公式HPの手順( https://docs.sebastien.ai/step4/ )からUnity用のSDKをダウンロードしてください。
image.png

zipには以下のファイルが入っています。

image.png

今回は、プラットフォームはWindowsで作るため「sebastien_1.21.1.unitypackage」のみインポートします。

テンプレート2DでUnityプロジェクトを作って、「sebastien_1.21.1.unitypackage」をインポートします。
image.png
image.png

Build SettingでSceneでlogin、mainの順で追加します。
image.png

ドコモAIエージェントAPIのセットアップ

先ほどのダウンロードしたzipにある「sdk_for_unity_supported_agentcraft.pdf」の◆AIエージェントの準備を参考にデバイスIDを登録します。

Agentcraft( https://agentcraft.sebastien.ai/ )にログインして、アカウントを作成します。
今回はすでに作成されているサンプルを使いましょう。
image.png

設定からデバイスID一覧にある「デバイスIDの追加」をクリックして、デバイスIDを生成します。

このデバイスIDをSEBASTIENのUser Dashboard(UDS) ( https://users-v2.sebastien.ai )に登録します。
ログインしアカウントを作成して「新規デバイス登録」をクリックして登録してください。

因みに「sdk_for_unity_supported_agentcraft.pdf」には、ドコモAIエージェントAPIを使ったUnityのサンプルプロジェクトを作る手順が丁寧に書いてあります。困った時はこちらも参考にしてみてください。

Live2DモデルをUnityに追加

先ほどドコモAIエージェントAPIを入れた環境でLive2DモデルをUnityで動かせるようにします。
以下を参考に環境構築をしてください。
Unity初心者がUnityでLive2Dモデルを動かすため環境構築をした

桃瀬ひよりのFree版モデルを使います。
mainのSceneにプレハブファイルに追加します。
image.png

Transformは以下のように設定すればGameビューで見えるようになります。
image.png

また、Main Cameraを以下のように設定します。
image.png

これで環境が整いました。
image.png

ただこれだとLive2Dのモデルが動かず会話している感がでないので、リップシンクするよう設定します。

[Unity+Live2D]再生する音に合わせてリップシンクするにある「起動時に音声を再生しリップシンクする」のAudio Sourceを作る手前まで手順に従って設定してください。

その後、Audio InputにSpeakを追加します。
image.png
SpeakはドコモAIエージェントAPIに登録した会話の音を再生されるため、このSpeakにあるAudioClipの音量を使ってリップシンクします。
image.png

これで環境は整いました。
Playボタンを押下して、動かしてみましょう。
起動したときには以下の画面になるので、入力箇所に先ほど登録したデバイスIDを入れて、「DeviceToken取得」を押下してください。
image.png

正しく登録できていればmainに移動できます。
「マイク」を押下している間、マイク入力が可能になるので話しかけてみてください。
「送信」の左にあるブロックに入力して「送信」を押下しても会話ができます。

上記はNO MATCHのメッセージを変えたりモデルの位置を変えたりしていますが、同じようにモデルがリップシンクして音声が流れてくれると思います。

私の滑舌が残念で、上手く答えてくれないときもありますが、ノンプログラミングで音声入出力をしてくれるのはかなり楽でいいなと思います。フローチャートで作るので、会話の抜け漏れなく整理して使えそうなのも良さそうです。
ただ、ドコモAIエージェントAPIは非商用利用のみ無料で使えるとのことです。詳しくは 公式HP( https://docs.sebastien.ai/ )でご確認ください。

感想

UnityEngine.Windows.Speechに定義されている音声認識で同じことをしようとするとコードごりごり書いても実現は難しそうですよね。そう考えるとすごく楽ですね。
フローチャートで会話を作ること自体はAlexaスキルのノンプログラミングサービスに近いものを感じました。
ドコモAIエージェントAPIは、コマンドをJson形式でUnityへ送れるので音声認識と繋げて何かするのにも使えて活用の幅が広がりそうですね。
UnityとAlexa繋がらないかなと思っていたので、それに近しいことができそうな気がしてワクワクしました。

参考

ドコモAIエージェントAPIを使ってキャラクターと会話する

11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12