読者です 読者をやめる 読者になる 読者になる

ナノカ技術メモ

ただのエンジニア。何でも屋みたいな扱い受けてます。

KudanARのUnity用SDKのサンプルを検証

KudanARとは

日本人起業家がイギリスで創業した株式会社Kudanが作ったARエンジンのこと。
投資家から2億近く集めたとしてニュースにもなったりした。
もともとKudanはARアプリを開発しており、ARのSDK,Vuforiaを作っていたが大手企業の修正に対応するにあたり限界が出たため自社開発された。

KudanARの特徴は今までの空間認識などのARにGPS、コンパス、時刻、天気情報などから太陽の位置、光源を特定し3Dオブジェクトへ環境光を反映させることができるらしい...
また、単眼レンズで読み取った映像から対象物の距離や大きさを推定できると書いてある。このような機能をSLAMというそうだがその機能はVuforiaにはないものだ。

対応開発環境はNativeSDKとしてiOS, Android、Cross-platformとしてUnityが用意されている。

  • ライセンスに関して
    • Development SDK:サンプル動作,検証用
    • Production License:£1000/1アプリ年間(約140,264円-2016/11/24現在)
      • £(ポンド)での支払いのみ。日本円は現在対応中だとのこと。
      • 一応日本に会社がありメールフォームがあるので問い合わせ次第では...
    • Volume License:複数アプリの場合は問い合わせにて割引できるそう?

SDKのダウンロード

今回はサンプルを動かすだけなのでKudanのライセンスの支払いはいりません。
公式ページより、PRICING / DOWNLOADのページへ遷移しましょう。
Free Downloadを押して、Unityを選択。
支払いページに飛びますが、£0.00なのでそのまま名前などを入力しちゃいましょう...

  • Email*:メールアドレス(必須)
  • First name*:名前(必須)
  • Last name*:苗字(必須)
  • Address*:URL?(必須)
  • Country *:国(必須)
  • VAT:EUの付加価値税らしい..とりあえず未記入
  • User profile*:あなたのプロフィール(必須)
    • Student:学生
    • Independent Developer:独立開発者
    • Company:企業
    • Others:その他
  • Number of employees:従業員数、企業の時に選択するものだと思われ
    • 0~10,10~50,50~100,100以上から選ぶ
  • Reason for download*:ダウンロードの理由(必須)
    • Evaluation:評価、うわさとかそういう意味でしょうか?
    • App Development:アプリ開発
    • Research:検証,研究
    • Others:その他
  • App category*:アプリのカテゴリ
  • How did you hear about us?*:どこで知りましたか?
    • 技術者ブログとでも書いておけばok?

上記の入力とともにUsername,Passwordをしましょう。(このUsernameとPasswordはのちほど使うので覚えておこう)
Show Termsが利用規約です。英語だから少しつらい。
Terms and Conditions(利用規約に同意)にチェックするのを忘れずに、入力内容が消えます。
画面下のDownloadよりアカウントの作成とダウンロード画面への遷移のようです。

「Kudan AR Unity Package – Special Note for Windows Users: Please download the Kudan AR Toolkit from our」と出たのをクリックしたらダウンロードが始まります。

SDK同包のパッケージ、KudanARUnity.unitypackageをダウンロードできました。
しかし、パッケージの中やこれと同包の説明PDFなどは見つからないのであった...(公式サイトのDEMOの方に動画のサンプルや解説はあります。)
f:id:nanokanato:20170417111155p:plain:w50

パッケージの追加

パッケージを追加するために新規でプロジェクトを作成しましょう。
プロジェクトを作成したら先ほどダウンロードしたKudanARUnity.unitypackageをダブルクリックします。
Import用のウィンドウが出てくるのでとりあえず全て選択してImportします。
f:id:nanokanato:20170417111220p:plain:w300

サンプルの再生

サンプル読み込み

Assets/Samples/にサンプルのsceneがいくつかありますので再生してみたいと思います。
Samplesの中にAngelScene.unityというのがあるのでダブルクリック。
HierarchyにGameObjectが読み込まれて、
f:id:nanokanato:20170417111250p:plain:w300
なんかボタンと天使らしきものが出てきます。
f:id:nanokanato:20170417111308p:plain:w300

サンプルの再生時のエラー

ボタンを押すとどうなるのか、天使はなんなのか期待しながら再生!
「!!」エラーです!
Editor Play Mode Keyが有効ではありません。
バンドルのライセンスキーは無効です。
f:id:nanokanato:20170417111339p:plain:w300

怪しいのはあきらかにこれだ...
KudanCameraのKudanTracker.csにEditor API Keyがある。
f:id:nanokanato:20170417111359p:plain:w300

Get Editor API Keyとあるので押してみると外部サイトに飛ばされました。
英語のKudanのページにてログインを求められるのでログインする。(SDKダウンロード時に入力したUsernameとPassword)
ログイン後、Request Unity Editor Keyを押すとKeyを受け取ることができました。
受け取ったKeyはInspectorのEditor API Keyに入力します。
これで「[KudanAR] Editor Play Mode Key is NOT Valid」は解決します。

次はInspectorのSet App/Bundle IDを押下します。
※UnityのツールバーのFile>Build SettingsからPlayer Settingsでも同じ
f:id:nanokanato:20170417111507p:plain:w300
ここの青字のBundle Identifierを変えればいいと思うのだが、何をいれればいいかわからない。(なんでもいいなら今のでエラーが出ないはず)

再度Get Editor API Keyのボタンを押してみるとページに「For development license keys please click here」というリンクがあったので押すとDevelopment License Keysというページへ遷移する。
f:id:nanokanato:20170417111528p:plain:w300
Bundle IDとLicense Keyのリストがあるのでこれを使用する。
※念のためモザイクをかけております

このBundle IDでいける!と入力するとまた「[KudanAR] License Key is INVALID for Bundle」のエラーが出ました。
試行錯誤すること10分ほど...
上のページで取得したBundle IDはBundle Identifierに入力したまま。
その対にページで書かれているLicense KeyをKudanTracker.csのAPI Keyに入力することで解決です!
これで「[KudanAR] License Key is INVALID for Bundle: com.Company.ProductName」も解決しました。

サンプルを再生する

ではやっとAngelSceneを再生です!
f:id:nanokanato:20170417111633p:plain:w300
WebカメラがPC本体のものじゃなくてUSBのWebカメラなど別のものに変えたい方はKudanTracker.csのPlay Mode Web Cam IDを変更してみてください。0がデフォルトのカメラです。

カメラが映ったのと、エラーが出ないので再生はしているがボタンを押したりしても大きな変化はない。ARの画像を写していないからだ。
「Assets/KudanAR/Samples/Texture/」にlego.jpgとBatmanLegoMovie.pngがある。

lego.jpgをiPhoneで表示してそれを撮影してみたらこんな感じ。
iPhoneに写しているためたまに画面反射で認識しなくなるが端末を回転させると天使の像も回転したり、遠近で大きさも変わるようになっている。
f:id:nanokanato:20170417111705p:plain:w300

他のサンプルも基本的に同様に再生が可能なはずです。
Bundle IDはプロジェクト単位なので保存されますが、API KeyはSceneごとなので設定して保存しましょう。一回設定すればその後は不要です。(公式にて変更がない限り...)

サンプル説明

AngelScene.unity

今回の解説で使った天使の像。
lego.jpgをカメラで撮ると天使の像が現れる。
f:id:nanokanato:20170417111736p:plain:w300

KudanSample.unity

lego.jpgをカメラで撮ると球体が現れる。
f:id:nanokanato:20170417111751p:plain:w300

全体的にARに言えることは感動を伝えたくてプレイ中のスクショを見せても相手には伝わらず楽しくはない。
次からはUnityのプレイ画面を動画撮影してそれのGIFなどにしてみたいと思う...