hero-image

Unity meets Pepper

エヴァンジェリスト 伊藤周さんにきいてみた

Developer

スマートフォンアプリの開発ツールとして世界的に活用されている Unity。
活用事例が多いだけに、多くのデバイスや API との連携もスムーズにできます。また、ちょっとしたプロトタイプアプリを手軽に作ることもできます。

今回はPepperでのロボアプリ開発に役立つ手法の一つとして Unity を使ったプロトタイプ開発についてご紹介してみたいと思います。

注意: <本制作プロセスは Choregraphe を使った正式なアプリ開発とは異なる部分が多く、個人デベロッパーの方が開発したラッパーを基盤として用いています。この記事で紹介する技術の利用は自己責任でお願いいたします。>

■Unityとは
Unityとは主にゲーム開発に使われる統合開発環境です。Unity を用いて開発されたアプリはスマートフォン、PC、ブラウザ、PlayStation や DS などのコンシューマー機など幅広いプラットホームで動作すること特徴です。 2016 年の第 3 四半期に Unity で作られたゲームは総計で50億ダウンロードを突破し、24 億個のモバイル機器の中で稼働しています。 昨年話題となった Pokemon Go も Unity で開発されいたことは有名ですね。 

高機能で扱いやすく、パーソナルライセンスは無料。動作する機器や連携できるデバイスが多いことから開発者数が多く、その数はおよそ450万人と言われています。この理由から、ゲーム以外の分野でも多く使われているのも特徴の一つです。
参考:Unity 開発事例 

■CEDEC で発表したデモ制作について
さてこのような特徴をもつ Unity で Pepper を動かして大きな反響となった方が、ユニティ・テクノロジーズ・ジャパン合同会社合同会社のエバンジェリスト 伊藤周様です。

今回は、CEDEC(Conputer Enteretainment Developers Conference)で展示したデモとその反応、制作過程などについてお聞きしました。

伊藤 周 様
株式会社セガでアーケードゲーム「頭文字D」「ガンダムカードビルダー」やモバイルゲーム「三国志コンクエスト」を開発。その後Unity Technologies Japan合同会社に転職し、Unityエバンジェリストとして今に至る。
実写インタラクティブVRコンテンツ「Hiyoshi Jump」(iOSアプリ名:VR Jump Tour)や、ドローン操縦シミュレーター「Drone VR」、自律型のおしゃべりするぬいぐるみ「真・ヒミツのクマちゃん」等を開発。現在は空中を飛んで進んでいくVRゲーム「Spider Racer」開発中
伊藤 周

インタビュアー(以下、イ): 最初にどのようなデモを行ったのですか?

伊藤周様(以下 伊藤):

  1. Kinect でユーザーの動作を取得し、Pepper を動かす
  2. マイクで取得した音声を Watson を通してテキスト化、Pepper から話させる
  3. Pepperの胸に貼り付けたThetaから全天球動画をストリーミングで取得、リアルタイムでOculusで体験する。

といった内容です。

イ:すごく盛り込みましたね。これ全部を同時に行うと Pepper に乗り移ったような体験ができそうです。CEDEC のブース出展に向けていろいろとお忙しい中でこれだけの作業をするのは大変だったのではないでしょうか? 制作時間はどの程度かかりましたか?

伊藤:大体 3-4 日といったところでしょうか。 Unity と Pepper の連携における導入部分、発話させるなどは baku さんの作ったサンプルがあったので助かりましたね。 ThetaS や Oculus、Watson などを Unity を通してデモのシステムとつなぐのは Qiita などによいサンプルがありましたしね。Kinectなどのデバイスと Pepper とをつなぐ部分は少し手間がかかりましたが、ほとんどコードは書かないでで済んだと思います。

参考リンク:
Unity公式アセット「Speech-to-Text」の概要と基本的な使い方をまとめました
IBMの「Watson」をUnityで使ってみた

イ:これだけの機能が Web 上にある技術資料で何とかできるというは凄いですね。 

伊藤:Unity はそもそも様々なプラットホームで動かせる開発環境ですし、外部機器との連携をしやすいこともあって、デベロッパーの興味が機器や API などの外部との連携にも向いているんですよ。 そして、ゲーム系だけにかぎらず、様々な分野で様々チャレンジをしているデベロッパーがたくさんいる、というのがUnityの最大の武器です。 桁違いの人数のデベロッパーがそれぞれアセットや技術記事という形で知識とノウハウを公開している。それを流用できるのがデベロッパーにとって最大のメリットになると思います。

イ:そのようにして開発した Pepper のデモですが開発中や展示の際の周囲の反応はどうでしたか?

伊藤:開発の初期は自由に言葉を喋らせるところから入ったのですが周囲の方は意外に思っているようでした。店舗で使われている定型的な会話のイメージがあったからでしょうね。

また、移動させることが意外と大きなインパクトだったようです。ほとんど移動させているところ見ないでしょう。Pepper が実は結構なスピードで移動できるということに驚いていました。 展示したときには、やはり Kinect と連動して動いているのを見て驚いている方がいました。目の前にいる人の動きをトレースしているから「なにをやっているのか」が分かりやすいですしね。

イ:驚いていただいた分「どうやってるのか」とか「そんなことできるんだ」というところに注目してもらえそうですね。

伊藤:展示の途中で Kinect で Pepper を人間として認識させることをやってみたんですが、それをやると、合わせ鏡のように、自分の動きを認識して自分のモーションを生成させることができるんですよね。 それを見た来場者の方が「アートだなー」って言ってたりと非常に評判が良かったですね。

参考記事:Pepper君を操るのは……Pepper君!? Unityブースの展示に未来が見えた【CEDEC】

※この画像は上記の記事からの転載です。

イ:私も展示を見に行きましたが、懇親会での複数台同時デモなどでも非常に多くの方が撮影されてましたね。ゲーム開発者に限らず多くの方の間で話題になったと思います。

■Unity meets Pepperで生まれるものとは

イ:先ほど方の中でPepper開発に向いていると思うような方はどのようなタイプの人だと思われますか?

伊藤:どのようなタイプ、と言われると難しいですね。
これは個人的な感覚なのですが、ゲーム系のエンジニアは Unity 以前と以後で求められる職能が変わってきているように思います。

以前は「背景」を作るためのエンジニア、「キャラクター」を作るエンジニア、描画エンジンを、と非常に細分化されていたのですが、Unityはプラットホーム側でそういった部分を処理したり、アセットストアのような形でツールや素材を流通できるシステムを作ることで、細分化されていた仕事を融合していったんですね。

そのため「『ゲーム』を作るため能力」という「ジェネラリスト」的な職能に立ち戻るような流れになっていると感じています。 そのような意味では、「新しいデバイスに興味がある人」や「新しいシステムやルールを作ることに興味がある人」が一番向いていると思いますね。

逆に言うと、今まではプログラムをゲームという形に落とし込むために必要なスキルは非常に多かったため、敷居が高かったのですが、そこがぐっと下がりました。 企画やデザイナーの人でも「Unityなら使える」という人もいますからね。そういった人も含めることができると思います。

イ:なるほどUnity(統合)というネーミング、コンセプトが分かったような気がします。 では、そういった方々も含めてPepperのアプリやサービスは今後どのような方向に広がっていくと思いますか。

伊藤:自分が触ってみて思ったのはやはり、エンターテイメントが向いているとは思いました。現状よしもとの方々などが開発している方向性は正しいと思いますね。 無理をして Pepper を役に立てようとするよりも、サービスや API などが内包する「楽しさ」を増幅して伝えることのほうが向いているデバイスだと思います。

イ:では、今後Pepperの開発に新しく興味を持たれた方などに向けてPepperのアプリを作る楽しさについてなにか伝えていただけますか?

伊藤:そうですね。「大きなロボットを動かす」というのは純粋に楽しいです。 それだけでもいいですが、ラジコン的に動かすだけでなく「自分の作ったロジックで動かす」ということにカタルシスがありますね。「論理が物理に落ちる」という感じでしょうか。

また、ゲームエンジンの中でのシミュレーション機能などが高性能になっていっている中、バーチャルの世界がロボットを通してリアルの世界に干渉できたりするようになると、さらに違った面白さが出てくるのではないかと思いますね。

イ:たしかに、Pepperを運用しているスペースを3Dデータ化して物理演算、群衆シミュレーションなどの計算結果をフィードバックしたり、Unityに対応した様々なセンサー(CEDECでは視線トラッキングなど、ゲーム用途以外にも利用可能なセンサーなども展示されていた)の情報を統合するなど、様々なことがUnityを使うことで簡単にできそうですね。

いろいろなアイデアの掛け算ができそうでワクワクします。

CEDEC で展示されていた視線トラッキングのソリューションなど、様々なセンサーデバイスが Unity に対応しているようです。これらのセンサーの情報を統合したり、シミュレーションすることを Unity にやらせ、 Pepper やその他のデバイスを通して現実にフィードバックするというアイデアもワクワクします。

イ:いろいろと面白いお話しを聞かせていただきありがとうございました。 Unity と Pepper が連携することで、より一層広いデベロッパーが Pepper に挑戦できるようになり、これまでとは一味違ったアプリ開発が期待できそうですね。 また、これほど低い開発コストであれば、アイデアからプロトタイピングしブラッシュアップするサイクルもうまく回せそうです。アプリの高品質化や、思いついた多様なアイデアから多くのプロトタイプを作り、評価する、といったこともできそうです。

Pepperの未来の広がりに大きく寄与することができそうなのでとても楽しみです。

Unity との連携に必須な基盤であった Libqi の C# ラッパーは開発当時大学生だった獏さんが Aldebaran の Github などの公開情報をもとに個人で開発されたものです。
このラッパーは MIT ライセンスの下で無償で配布されています。 個人での活動でここまでの成果物を作り、公開されたことに敬意と感謝を捧げます。

本記事でご紹介している技術や Pepper の利用方法はソフトバンクロボティクスが公式に推奨やサポートするものではありません。
本記事で紹介された技術は自身の責任においてご利用ください。