LoginSignup
15
14

More than 5 years have passed since last update.

UnityとWatsonをつないで、VR空間でAIと会話できるようにしてみた

Last updated at Posted at 2017-12-25

!!!注意!!! この記事は書きかけです。投稿日に間に合わず、申し訳ありません。

本エントリーはIBM Cloud Advent Calendar 2017の25日目です。

対象者

  • Unityの基本操作がなんとなくわかる人
  • IBM Cloudの基本操作がなんとなくわかる人
    ※詳細な操作説明を割愛した箇所もございます。

実施環境

  • Window10 Home 64bit
  • Unity
    • Personal(無償版)
    • バージョン:2017.1.2f1
      ※Unityを導入した2017年10月時点では、推奨バージョンが2017.1.xだったため。現在(2017年12月時点)では2017.2.x推奨だそうです。

準備するもの

  • Unity
  • IBM Cloudライトアカウント 
    • 2017年11月よりライトが登場し、無料で使えるようになりました。それ以前にアカウント作成されていたものの持て余していた方は、新たなメールアドレスで再作成されるのがおすすめです。
  • ネット接続したマイク機能付きのPC
    ※ここではVR Ready(GTX1060以上)のノートPCを使用しましたが、VR用ヘッドセットにつなげずにPCのディスプレイ上で動きをみるだけであれば、通常のPCでも実施できると思われます。ただし、動きは悪い可能性大。

心の準備

  • IBM Cloudは、操作性においてもやっとするところがあります。私の経験上、真面目に構えすぎず、こんなもんだとゆるりと付き合うのがよいです。
    • 同じ画面でも、状況により表示が異なることがある。そのようなときは「戻る」ボタンで戻って再度その画面に入りなおす。(「価格プラン」が現れないなど)
    • 画面遷移が遅い。ときに、砂時計などの「待て」マークが現れたまま一向に進まないことがある。そのようなときは「戻る」ボタンで戻ってあきらめる。([管理]→[アカウント]→[リソースグループ]の部分など)
    • サービスの契約を結んだ後、その場ですぐに使用しておかないと、使用中サービス一覧が表示されるはずのダッシュボードに現れない。その場合、どこからサービスに入って使えばいいのか試行錯誤することも。。
  • Unity
    • 現在のVR ReadyのPCを購入してからは問題ありませんが、やや古いDynabookのWindows8で操作していたときは、立ち上げやスクリプト表示など全般的に激遅でした。

作業全体の流れ

1. Watson SDKをUnityに入れ、UnityがWatsonを使えるようにする @Unity
2. しゃべる人物や動物を仮想空間に置く @Unity
3. チャットボット(会話マシン)に必要なサービスを無料契約する @Watson
4. チャットボットを作る @Watson ←書きかけです。ごめんなさい。

1. Watson SDKをUnityに入れ、UnityがWatsonを使えるようにする @Unity

  1. watson-developer-cloudのunity-sdkをダウンロード。おそらく、その時々の最新版でいいと思います。https://github.com/watson-developer-cloud/unity-sdk/releases

=====編集中につきひとりごと=====
が、
現在(2017年12月)最新版であるv2.0.0で実施したところ、メニューバーに現れるはずのボタン(Configuration Editorなどの便利ボタン)が出ないという現象が起きました。
調べたところ、v1.0.0以降では出なくなってしまったようです。
v1.0.0未満のWatson SDKを使用した記事はいくつかあり、このとおりにやった方が楽そう。。
けど、HoloLensにも対応もしているv2.0.0を使いたい…というわけで、現在対処法を確認中です。
(それもあってこの記事は未完成です。申し訳ありません)
=====================

  1. ダウンロードしたフォルダを[すべて展開]で解凍。フォルダ構造は、[unity-sdk-x.x.x]の下に[unity-sdk-x.x.x]が入れ子になり、その中に[.github]や[Examples]フォルダなどの各部品が入るといった二重になる。入れ子になった[unity-sdk-x.x.x](直接部品が入っている方)を"Watson"にリネーム。
  2. Unityを立ち上げる。新規にプロジェクト作成するため、立ち上がった画面で[Project name]を任意名にし、[Create Project]をクリック。 image.png
  3. Unityが開いたら、"Watson"フォルダを、Unityの[Project]ペインの中にある[Assets]フォルダを目掛けてドラッグ&ドロップ。[Assets]フォルダの下に"Watson"フォルダができる。同時に、上のメニューバーに"Watson"ボタンができる。 image.png

2. しゃべる人物や動物を仮想空間に置く @Unity

しゃべらせたい人物や動物を、UnityのAsset Storeから落としておく。ここでは、フリーのUnity-chanを使用。

0.以降の説明でのUnityのレイアウト(見え方)は"Default"です。Unityに慣れていない方は、右上にあるボタンをクリックし、"Default"を選択しておいてください。
image.png

  1. アセットストアでUnity-chanをダウンロード
    上部にあるメニューバーから[Window]→[Asset Store]でアセットストアを開き、検索窓に"unity chan"を検索。その後、[FREE ONLY]ボタンをクリックしておくと、無料の素材しか現れないので安心。
    image.png

  2. 下にスクロールするといくつかUnity-chanが出てきているが、ここでは以下をクリック。ダウンロードページに遷移するので、[Import]をクリック。
    image.png

  3. しばらくすると以下の画面が出るので、デフォルトのまま[Import]をクリック。
    image.png

  4. [Assets]フォルダの下に、"Watson"フォルダと並んで"UnityChan"フォルダが入りました。
    image.png

  5. 仮想空間での見え方(メインカメラの位置・向き)を調整する。左側の[Hierarchy]ペインの[Untitled]の下にある[Main Camera]をクリックすると、右側にある[Inspector]ペインにカメラの設定情報が現れるので、その中の上の方にある[Transform]項目内の右上にある歯車マークをクリックし、[Reset]を選択。
    image.png

  6. [Project]ペインにて、[UnityChan]フォルダの中の[Models]フォルダを選択。右側に[Models]フォルダの中身が現れる。
    image.png

  7. フォルダの中身のうち"unitychan"という人型の絵を選択し、上にある[Scene]ペインにドラッグ&ドロップ。これで、仮想空間のシーンの中に会話をしてくれる人が登場するようになる。シーンに置かれたものは全て[Hierarchy]ペインに表示されるため、[Hierarchy]ペインにも"unitychan"が追加されている。
    image.png

  8. "unitychan"が選択されたままの状態で、[Inspector]ペインにて、"unitychan"がカメラにうまく映り込むよう位置を修正する。
    [Transform]項目

    • [Position]:Y=-1, Z=1に変更
    • [Rotation]:Y=180に変更
  9. [Game]ペインを開き、映り方を確認する。以下のようになっています。image.png

  10. これでUnityちゃんのいるシーンができたので、[ctrl]+[S]キーを押して任意の名前を付けてシーンを保存する。

3. チャットボット(会話マシン)に必要なサービスを作成(無料契約)する @Watson

0.IBM Cloudのライトアカウントを取得されていない場合は、アカウントを新規作成してください。
ライトアカウント作成のわかりやすい記事を見つけました↓
https://qiita.com/KenichiSekine/items/249d2ff691b6565fb127


1. IBM cloudにログイン
https://console.bluemix.net

  1. 初めてログインすると、以下の画面になります。(これからサービスを使用すると、この画面に作成済みのサービスが表示されるが、今は空っぽの状態。)右上の[カタログ]をクリック。
    image.png

  2. 左端のウィンドウを下にスクロールし、[Watson]をクリック。(左側のリスト周辺にマウスをもってくるとスクロールバーが現れるという、わかりづらい仕様。。)
    image.png

  3. IBMの提供する機械学習(Watson)の一覧が表示される。ここでは以下3つのサービスを使用する。
    ・ Conversation:会話マシン(チャットボット)
    ・ Speech to Text:PCにしゃべりかけた音声を、テキストデータに変換(マシンに理解できる形にする)
    ・ Text to Speech:テキストデータを音声マイクより発声(マシンが出した返答を音にする)
    image.png
    それぞれのサービスのアイコンをクリックし、入った画面でサービス作成(無料の利用契約)をする。いずれのサービス契約も同じ手順だが、以降ではConversationサービスに入った画面で説明。
    image.png

5.以下のような画面が開く。各項目の設定はデフォルトのままでOK。
※ライトプランでは[デプロイする地域/ロケーション]は米国南部のみとなるようなため、気にしなくて結構です。
image.png

6.下の方にスクロールすると「価格プラン」が現れる。タイミングにより「価格プラン」が現れないことがあるが、その場合は前の画面に戻りもう一度この画面に遷移すると、たいてい現れる様子。(ここがIBM Cloudのもやっとするところ。。)

「価格プラン」で"Lite"(無料)が選択されていることを確認し、[作成]ボタンをクリック。
image.png

7.以下のような画面が開けば、無事に作成完了。
- [Conversation]の場合
image.png

  • [Speect to Text]および[Text to Speech]の場合は以下のイメージ image.png

※[作成]ボタンを押すと以下のポップアップが現れる場合は、すでにサービス作成済のようです。
image.png

4. チャットボットを作る @Watson

ごめんなさい、まだ書けていません。

※すでにサービスを作成

15
14
6

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
15
14