LoginSignup
20
11

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-11-09

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を活用したつくりになっています。

ソースコード

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

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

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)での動作は未確認です。 

20
11
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
20
11