Unity
AR
KudanAR
Unityちゃん

ARを使ってUnityちゃんと(拡張)現実で会話してみた&ソースコード公開

Unityちゃんとお話できるアプリ作ってみた
これを完成させた僕は、ある日ふと思いつきました。

「ARを使えば、2次元の女の子と(拡張)現実で会話できるのでは!?」

と思い、上記のアプリをARに対応しようとしました。
そして完成したのがこちら。

残念ながらあまり評価されませんでしたが、このまま闇に葬ってしまうのはもったいないので、このアプリの仕組みやソースコードを公開します。

開発環境

  • MacBook Air
  • Unity5.6.3p2
  • Xcode8.3.3
  • iPhone5S(iOS10.3.3)
  • KudanAR

動作確認済み環境

  • iPhone5S(iOS10.3.3、iOS11.2.2)

アプリの仕組み

sikumi.001.jpeg  

1. KudanARでUnityちゃんを拡張現実に出す
2. iPhoneのマイクで音声を受け取る
3. その音声データをdocomo音声認識APIに渡す
4. 結果を雑談対話APIに渡す
5. 結果をdocomo音声合成APIに渡す
6. Unityちゃんの返答として音声を流す

基本的にdocomoのAPIを活用したつくりになっています。

ソースコード

https://github.com/kanatanomirai/UniFrie

アプリを使えるようにするために

以下の手順通りに進めて行けば、アプリを使えます。

1. Unityをダウンロード・インストールする

Unity公式からUnity2017.2.0p3エディターをダウンロードし、インストールします。1

2. Xcodeをダウンロード・インストールする

App StoreからXcodeをダウンロードし、インストールします。

3. unitypackageファイルをダウンロードする

こちらからunitypackageファイルをダウンロードします。

4. APIキーを取得する

docomo Developer supportのサイトから、音声認識API、雑談対話API、音声合成API、3つのAPIキーを取得します。

docomo Developer supportのアカウントを登録後、マイページから新規API利用申請をしてください。
スクリーンショット 2017-11-08 10.33.29.png

次にアプリケーション登録を行います。入力項目に関しては、適当に入れても問題ないです。

次に使用するAPI機能を選択します。雑談対話、音声認識、音声合成にチェックを入れるのですが、音声認識APIはアドバンスト・メディア、音声合成APIはエーアイを選択してください。
スクリーンショット 2017-11-08 10.38.27.png

最後に入力内容を確認し、利用申請をします。
成功すると、マイページにAPIキーが表示されています。
スクリーンショット 2017-11-08 11.03.25.png

ちなみに雑談対話APIについては、リクルートのTalkAPIも使えます。
TalkAPIを使う場合は、APIKEY発行ボタンを押してメールアドレスを入力すればAPIキーが送られてきます。

注意!

アドバンスト・メディアの音声認識APIは、約3ヶ月でAPIの使用期限が切れてしまいます。そのため、期限が切れるとUnity内でエラーが出ます。
使用期限が切れたら、再度APIを取得し直してください。

5. Unityの設定をする

Unityを起動して、Unityの設定を行います。

5.1 パッケージインポート

Unityの新規プロジェクトを作成したら、UnityメニューバーのAssets→Import Package→Custom Packageを選択し、ダウンロードしたunitypackageファイルを選択し、パッケージをインポートします。

次に、Assetsフォルダの中にある「UniFrie」をダブルクリックしてシーンを開きます。

5.2 APIキーの追加

Assetsフォルダからscript→Parameterをダブルクリックし、プログラム中のAPIキー変数にAPIキーを追加します。
また、TalkAPIを使う場合はtypeInputText.TextTypes.TalkAPIを、docomoAPIを使う場合はtypeInputText.TextTypes.DocomoAPIを設定します。

Parameter.cs
// 音声認識APIのAPIキー
public static readonly string recognizeAPIkey = "ここにAPIキーを追加";
// 雑談対話APIのAPIキー
public static readonly string talkAPIkey = "ここにAPIキーを追加";
// 音声合成APIのAPIキー
public static readonly string compositionAPIkey = "ここにAPIキーを追加";
// API種類(TalkAPI、DocomoAPI)
public static readonly InputText.TextTypes type = InputText.TextTypes.DocomoAPI;

5.3 kudanのAPIキー設定

Development License Keysから、KudanAR用のKeyをコピーします。

そして、HierarchyでKudan Cameraを選択し、Inspectorタブ中にあるAPI Keyに先程コピーしたKeyを貼り付けます。
スクリーンショット 2018-02-06 9.11.42.png

5.4 ビルド設定

メニューバーのFile→Build Settingを選択し、出てきたウィンドウにあるPlatformをiOSにしてSwitch Platformを選択します。

次にPlayer Settingを選択し、Inspectorタブ中にあるIdentification→Bundle Identifierに「eu.kudan.ar」と入力します。

次にConfiguration→Camera Usage DescriptionにiPhoneのカメラを使う際に出るメッセージを入力します。これは適当で良いのですが、特に思いつかない場合は「Use Camera」としておきます。

以上全てを設定したら、Build SettingsウィンドウにあるBuildを選択してビルドを開始しましょう。

6. Xcodeの設定をする

ビルドで出来たフォルダ中の.xcodeprojファイルを開いてXcodeを起動します。

メニューバーのXcode→PreferencesからAccountsタブを開き、左下の+を押してAppleIDをXcodeに登録します。

登録したら、Xcode内のGeneralタブ→Signing→Teamに自分のAppleIDを設定します。

次に、BuildSettingタブ→Build Opsions→Enable BitcodeをNoにします。
探すのが面倒なので、検索窓に「bitcode」と入れたほうが良いです。
スクリーンショット 2017-11-06 16.57.14.png

7. 動作確認

MacとiPhoneをケーブルで繋いで、Xcodeでビルドします。左上にある▶を押すとビルドできます。
Build Successと表示されたら成功ですが、その後このようなメッセージが出ます。
スクリーンショット 2017-11-04 15.02.32.png

これが出たら、iPhone側で設定→一般→プロファイルとデバイス管理と行くと、デベロッパAPPにAppleIDのメールアドレスがあるので、これをタップして信頼します。
その後、生成されたアプリを実行すると、iPhoneカメラの映像が出てきます。

左下のボタンを押すと、UnityちゃんがARとして出てきます。
s_IMG_0786.PNG.PNG

右下のボタンを押しながらiPhoneのマイクに話すとUnityちゃんから返答がきます。
s_IMG_0787.PNG.PNG

それと、docomo雑談対話APIの仕様ですが「ニュース」と話すと最近のニュースを返答してくれます。
s_IMG_0789.PNG.PNG

また、「しりとり」と話すとしりとりで遊べます。
s_IMG_0790.PNG.PNG

ハッキリ話さないとうまく単語を認識してくれません……。
s_IMG_0791.PNG.PNG

s_IMG_0792.PNG.PNG

この画像でも出ましたが、Unityちゃんは話しかけるとランダムでポーズをとったり表情が変わったりします。

上手く動かない場合

エラーが出てビルドできない

スクリーンショット 2017-11-06 17.03.54.png

このようなエラーが出る場合は、Generalタブ→Identity内のBundle Identifierに他人と被らない独自の名前を入力します。
参考リンク
バンドルID(Bundle identifier)とは
初心者のためのbundle identifier(独自ドメイン)の設定とUnity上でのトラブル

ビルド後Xcodeを終了し、もう一度Unity側でビルドをします。

その後、XcodeのGeneralタブ→Identity内のBundle Identifierを見ると、eu.kudan.arが入っているかつエラーが消えていることが確認できます。
この状態でもう一度Xcodeでビルドをしてください。
そうするとアプリが2つになってしまうので、古い方は消してください。

アプリを編集したい場合

このアプリの編集は自由にしてもらってかまいません。新機能などを追加しちゃってもOKです。
ですが、このアプリをUnity上で編集するには、KudanのUnity Editor Keyを取得しなければなりません。

以下のサイトからKudanのアカウントを作成します。
https://www.kudan.eu/login/

アカウントにログインして「Request Unity Editor Key」を選択すると、Editor Keyが出てきます。
スクリーンショット 2017-11-07 15.24.26.png

このEditor Keyを、Kudan Camera内にあるEditor API Keyに入力します。
スクリーンショット 2017-11-07 16.10.40.png

これで、アプリの編集ができるようになります。

ご質問などがあれば、お気軽にコメントしてください。


  1. 2018年2月時点最新版(2017.3)での動作は未確認です。