「オルタ3」とは、人間とのコミュニケーションの可能性を探るために開発された、人工生命を宿したアンドロイドのこと。
このオルタ3は、世界的なアンドロイド研究者である石黒浩氏、小川浩平氏(共に大阪大学)、「ALIFE Engine™」(人工生命)の研究者である池上高志氏と土井樹氏(共に東京大学)、ミクシィ、ワーナーミュージック・ジャパンの4社共同研究プロジェクトにより開発されました。<※プロジェクト詳細はこちらをご覧ください>
4社共同研究プロジェクトでミクシィが担ったのは、仮想環境で動作シミュレーションを行うソフトウェア「Alter3 Simulator 」(以下「オルタ3シミュレーター」)の開発。SNSやアプリ開発など、これまでの事業活動で培ってきたITの技術を活かし、アンドロイドの動きをコンピュータ上で再現するというミッションを果たしました。
「コミュニケーションを通じて世界を鮮やかに変えていく。」新たな領域への挑戦となった「オルタ3シミュレーター」開発の裏にあったのは、プロジェクトメンバーの妥協を許さない「職人魂」でした。
CTO村瀬が語る、「オルタ3シミュレーター」開発プロジェクト始動の背景
━━━━まず「オルタ3シミュレーター」開発プロジェクトの話を聞いた時、どのように感じましたか?
“未来のコミュニケーション、見たことのないエンターテインメントの創出に携わり、貢献できる嬉しさとワクワク感”まずはそういう気持ちがありました。エンジニアやデザイナーなどの制作者も、それを見る方々も、全員がワクワクするようなプロジェクトだなと。
━━━━シミュレーター開発が必要になった背景を教えてください。
展示期間中など、長期間オルタ3の実機を占有できない状況でも、ロボットの動作を仮想空間上で再現する必要性が前提としてありました。SNSやスマホアプリの制作で培ってきた知見を活かせるのではないかという想いもあり、協力させていただくことにしました。
━━━━プロジェクトメンバーへのアサインの背景を教えてください。
シミュレーター開発に必要な3Dモデルが構築できることと、それを動かす知識と技術を持っていること、そして短期間で開発する必要があったので「厳しい状況でも迷わず完成させることができる人達」にアサインしました。
作るために必要なことを分解するのが上手い人でなければ完成できない。加えて“プラスの価値を作り出すこと”が不可欠でしたので、「このメンバーなら完遂できる」という確信がありました。
━━━━シミュレーターはどのように活用されたのでしょうか。
初期段階では、衝突検知などの動きの確認や、手の高さの情報を利用して照明がどう当たるか、などを検証するために活用されていました。記者会見後に展示用に準備をする段階になってからは、効果的な展示演出の検証など、かなり有益に使えていたようです。
「オルタ3」プロジェクトメンバーの紹介
メンバー名 | プロフィール | プロジェクトでの役割 |
---|---|---|
長舩(右上) | テクニカルアーティスト。ゲームソフト開発企業、図面作成 (CAD) ソフトウェア開発企業のコンサルティングを経験。ミクシィではファイトリーグなど数多くの案件に携わっている。 | 社内メンバーの統括、社外との折衝やUnity上での3Dモデル再現を担当。 |
牧瀬(左下) | テクニカルアーティスト。コンシューマーゲーム開発の3Dモデルの制作を担当。ミクシィで「モンストーク」のセットアップ、マテリアル、物理シミュレーションなどを担当。 | シミュレーションの3Dモデルの制作と、ジョイントなどのビジュアルの制作を担当。 |
信夫(左上) | エンジニア。新卒入社で5年目。サーバー、クライアントいずれの知見もあり、ゲーム開発以外にもカードリーダー制作など、数多くの案件に携わっている。 | 主にコマンドの通信周りや自動化システムなどを担当。 |
吉田(右下) | エンジニア。元コンシューマーゲームプログラマーとして多くのゲーム制作に携わる。ミクシィ入社後もゲーム制作に携わっている。 |
3Dモデルの制御。テクニカルアーティストと共にシミュレーターの動作確認と調整を担当。 |
それは「手探りの挑戦」の始まりだった
(画像:オルタ3実機)
━━━━「オルタ3シミュレーター」プロジェクトに招集された時の状況を教えてくだい。
長舩:2018年11月末にプロジェクトの概要を聞きましたが、その時には我々が担うべき詳細について、分かりませんでした。
プロジェクトが始動してから、「オルタ3」を開発している株式会社オルタナティヴ・マシンの方や、東京大学の方々とのコミュニケーションを取り、「開発途中に、部位と部位がぶつかって高価なロボットが破損してしまうというリスクを回避するために、コンピュータ上で事前にシミュレーションしたい」という明確な要件が分かりました。
また、観客の視線をシミュレートできるように高さ情報を入れるなど、現実に限りなく近い状況を再現することで、演出にもシミュレーターを活用できるという可能性も見えてきました。
━━━━メンバーとして参加することになり、どのような気持ちでしたか。
吉田:当時、別のプロジェクトにも関わっていたこともあり、実際の工数まで想定できていませんでしたが、以前からロボット開発にも興味があったので、単純に「楽しそうだな」と感じましたし、前向きに考えていました。
信夫:僕もポジティブに考えていました。「何だろう、面白そうだな」と(笑)。一方で指名されたということは、それなりの対応力が求められるのだろうなとも感じていました。
長舩:AIのR&D(※)もしていたので興味はありました。同時に、重要な案件というのも肌で感じ、興味本位だけでは乗り切れないのではとも感じていました。当初は何をどこまでやるのか、など詳細も不明で不安な部分もありましたが「それでもやらなければ」という使命感が勝っていました。
※研究開発
牧瀬:私もロボットなどには興味がありました。アサインされた時点ではシミュレーターを作るということしか聞いていませんでしたので、皆さんと同じで「楽しそうだな」と思っていました。
━━━━手探りのような状態からのスタートでしたが、タスクはどのように進行していったのでしょうか。
信夫:本格的に開発し始めたのは年末でしたから、開発期間は実質2ヶ月ちょっとくらいでした。非常にタイトなスケジュールでしたので、システム関連は断片的に共有されていた情報から予測可能な範囲から進めていきました。コマンドを入力するところから始め、ベースとなるシステムから徐々に作っていきました。
長舩:3Dモデル制作としては、オルタ3の資料がCADの1枚のスクリーンショットのみという状態からのスタートでした。ですから、オルタ3の実機をミクシィに持ってきていただいた時は必死に写真を撮り、メジャーで測ってCGで再現するというアナログな工程も必要になりました。
牧瀬:その後、オルタ2のデータの一部を共有していただけたことで、骨構成が参考になりました。ゲームとの仕組みの違いに気付けたことは、以降の開発にとっての重要な契機となりました。
最低ラインは「求められている以上」のクオリティ
━━━━シミュレーター開発において、どのような価値が求められていたのでしょうか。
牧瀬:私の場合は、いかにオルタ3の実機とシミュレーターのモデルを似させることができるか、でした。当初は限られた情報しかない中で着手しましたが、終盤CADデータなどの情報が揃ってから細かな修正を繰り返して、クオリティを上げていきました。
信夫:ミクシィ、XFLAGのエンジニアとして、クオリティの高いものを作りたいと思っていました。シミュレーターとしては「動きを再現する」だけでも良いのかもしれませんが、それだけでは足りないだろうと。自分が使うとしたらどのような機能があれば良いか、ということを考えながら試行錯誤しました。
吉田:ゲーム制作では仕様の変更が多いので、予め仕様変更に強いプログラムを意識して制作します。ですから機能の追加や変更の予測、そして素早く柔軟な対応力が、我々に求められる価値ではないかと思っていました。
━━━━アプリ開発とは異なる工程もあったのではと思います。どのような部分に違いがあったのか教えてください。
長舩:アプリ開発では生じない工程として、実機とシミュレーターの動きを比較し、同じコマンドでも違う動きになっている部分を一つひとつ修正していくことが必要になりました。そのため開発終盤になってから、吉田さんと牧瀬さんがシミュレーターに細かい修正を加えていきました。
吉田:制御の範囲に関するデータが新国立劇場での公開直前まで分からなかったので、当初腕の可動域を最大で動くように設定していました。そうすると当然、動きが全く違ってくるので、実機とシミュレーターを同じ動きにするために、直前で細かな調整をする必要がありました。
牧瀬:一つ違うと腕の振りなど全てが違って来てしまうので、どこが原因なのかを探すのが大変でした。
吉田:最初は実機とシミュレーターの動きは、ほとんど一致していませんでした。動きの滑らかさにも違いがあって。実機を見ると「反動」の動きがあり、それを再現するのが難しかったです。ゲームと違い、ロボットでは物理的な実機の重みなどが加わるので、挙動が違ってくるんですね。最初は上手く一致させられなかったんですが、ゲームでよく使われるプログラムをシミュレーターにも導入し、直前で調整しました。
━━━━アプリ開発のノウハウが活かされているとはいえ、やはり気を遣う部分に違いがありますね。
長舩:ロボットが腕を動かした時の揺れを「ゆらぎ」というそうなのですが、そういう微妙な動きまでUnityで再現するのは、まさに「物理の世界」でした。
吉田:パラメーターに部品の重さなどの情報を入れていくので、トルクや空気圧アクチュエータの仕組みなども勉強しました。
信夫:今回のプロジェクトはロボットの動きを再現するシミュレーターという新たな領域でもあったので、さまざまな知識を得ながら進めていきました。
長舩:どこまでシミュレートさせるのか、「さじ加減」がありますよね。ゲームではかっこよく動いたら成立する面が強いですが、シミュレーターは現実のものに限りなく近付けなければならないので、突き詰めていくと難易度も上がるし、負荷もかかって来ます。納期もありますから、見極めが必要でした。
プロジェクトの終わりは、新たな挑戦への始まり
(オルタ3 パフォーマンス)
━━━━2019年2月28日、新国立劇場でオペラの指揮と歌のパフォーマンスをオルタ3が披露した時の気持ちはどのようなものでしたか。
牧瀬:お披露目までに何度か近くで見ていたため愛着が湧いていました。お披露目の時、広い壇上で美しい照明を浴びて輝いて見えて。本当に感動しました。
吉田:お披露目直前にライティングのエンジニアとも話す機会があり、照明を誰が手掛けたか分かっていたので、尚更感慨深いものがありました。そういった演出なども含め、沢山の人によって作り上げられているのだと改めて感じました。
信夫:開発段階でオルタ3の実機を近くで見た時、結構手などがぶつかっていました。「ぶつかりをシミュレーターで検知して欲しい」という要件もいただく程、ぶつかりやすいので、お披露目当日も内心、心配していました。ぶつかりを回避する事が一つのKPIだと思っていたので、我々のシミュレーターはどれだけ役に立ったのだろうという想いもありました。
長舩:オルタ2のシミュレーターはかなりシンプルでしたが、オルタ3のシミュレーターは挙動の再現性が高いということで、満足していただけたと聞いています。
━━━━「オルタ3シミュレーター」開発プロジェクトでの経験を、今後どのように活かしていきたいですか?
長舩:AI を使った画像の認識やOpenPoseを使った動きの制御などは、他でも活かせそうだという気付きになりました。大学や企業など社外の方々との案件も増えると思いますので、効率良く進めるためのデータ共有など、業務フローの課題も分かりました。
牧瀬:物を見る観察力に加え、想像力や予測する力は鍛えられたと思います。短期間で効率よく周囲の方々とコミュニケーションを取ることも必要でしたので、貴重な経験になりました。2Dから3Dを再現するような局面にも今回の経験が活かせると思います。
信夫:要件の追加や変更の予測、それからデバッグ機能などもアプリ開発の業務に活かせますね。このような経験を通してさまざまな技術を持つことで、より多くのサービスの開発に対応できるようになると思っています。
吉田:普段一緒に仕事をする機会がないメンバーと、限られた時間の中で一緒に仕事を進めていきました。そのためエンジニア間では当たり前のことも、他のポジションでは伝わらないこともあり、伝え方の工夫も学びました。
「新たなコミュニケーション創出への挑戦は、世界を鮮やかに変えていくことに繋がる」そんな確信を胸に、挑戦する日々はこれからも続いていきます。
– – – – – – – – – ※※※ - – – – – – – – –
■ pick up! ■
【「エンジニア」と「エンジニア総会」と「Developer Relationsチーム」】
【経験よりも情熱。挑戦し続けてきた自分を支えてくれたもの 〜新卒入社のキャリア〜#4】