サマリ
さまざまな産業用機械を展開するセイコーエプソンが、自社製ロボットの導入からメンテナンスを支援する統合ソフトウェア「Epson RC+(以下、RC+)」をリリースしたのは、20年以上前のことでした。以降バージョンアップを繰り返し、2024年9月には最新バージョンであるRC+8.0をリリース。そして、RC+8.0のシミュレーター(ロボットの動きを確認するためのソフトウェア)の開発には、Unityが採用されました。
前バージョンのシミュレーターが備えていた機能を踏襲しながらも、Unityを導入し「再開発」に踏み切った理由は、8.0の開発を通して大きく構造が変化したRC+本体への適応と開発の「属人化」という課題を解決するためでした。
また、RC+の開発を担当するマニュファクチャリングソリューションズ事業部として初のUnityを活用した開発であったため、有償サポートサービスを活用し、プロダクトの品質と開発のスピード感を担保。同事業部が抱えていた開発の属人化、そして体制拡充に関する問題を解決する道筋を立てることに成功しました。
成果
- 新バージョンを開発するにあたり、Unityを含めモダンな技術スタックを選択することにより、開発体制の拡充を容易にするとともに開発の属人性を改善し、機能追加などのアップデートやメンテナンスをしやすい開発環境になった。
- 3Dレンダリングに長けたUnityを導入したことにより、前バージョンよりもレンダリング速度が速くなり、また開発中の3Dオブジェクトを実際に見ながらデバッグできるなどのメリットを享受できた。
- Unity社が提供する有償サポートサービス「Integrated Success」はUnity社のエンジニアによるプロジェクトレビューやコンサルティングを受けられるサービスであり、このサービスを導入することでソフトウェア品質を大幅に向上させることができた。
20年続くプロダクトの「属人性と複雑性の高さ」を解消する
「Epson RC+」が発売されたのは、約20年前。以降バージョンアップを重ね、多くの顧客からの支持を集めるプロダクトに成長しました。そんなRC+の第7世代である「RC+7.0」が発売されたのは、2012年12月のこと。リリース後、マイナーチェンジを繰り返して機能を拡充していきましたが、時間の経過と共にUI面の劣後が目立つようになり、マイナーチェンジではなく抜本的なモデルチェンジ、すなわち「RC+8.0」を開発する必要が生じました。
しかし、RC+7.0の開発時点で、すでに2つの課題を抱えていました。1つ目は「特定のメンバーに依存した機能開発」。2つ目が「ソフトウェアの複雑性の高さ」です。RC+はセイコーエプソンが提供する様々なロボットの導入からメンテナンスを支援する「統合ソフトウェア」であるために、機能も多岐にわたります。それらが複雑に絡み合ったアーキテクチャとなってしまっていたため、新機能を追加する際も「どこに、どのような影響を及ぼすのか」がわかりにくくなってしまっていました。
そこで、2017年に開発をスタートさせたRC+8.0では、さまざまな機能に共通する部分のプラットフォーム化と、アーキテクチャを整理することで開発スピードや品質の向上を目指しました。
RC+のシミュレーターと、事業部が抱えていた課題
さらに、「RC+」にはロボットの動きを確認するためのシミュレーターが搭載されていますが、これも同様に課題を抱えていました。
「RC+8.0の開発がスタートした当初、シミュレーターについては7.0で用いられていたものを流用しようと考えていた」と語るのは、MS企画設計部でシミュレーターの開発リーダーを務める西谷正信氏です。しかし、問題が生じます。RC+本体は7.0までプログラミングはC++で書かれていたものの、8.0ではC#を採用。また、UIの構築も、従来利用していたWindows FormsからWPFに移行しました。本体の構造が変わったことによって、シミュレーターの一部機能が動作しなくなったのです。
また、シミュレーターはRC+本体の開発を担うチームとは異なるチームを組織して開発が進められてきましたが、開発のプラットフォームがOpenGLだったことから、扱える人材が社内外を問わず不足しており、体制拡充も難しい状況でした。加えて、同事業部ではRC+の他にも3Dでの表現を取り入れた複数のソフトウェアを展開していましたが、従来はすべてのソフトウェアを異なる環境で開発し、個別にメンテナンスをしていため、「車輪の再発明」のような事態も散見されていたといいます。
Unityを導入し、シミュレーターを新規開発する
そこで、C#やWPFによって構築されるモダンな環境にマッチする3Dエンジンを導入し、シミュレーターを開発し直すと共に、事業部横断の3D開発環境を構築する決定が下されます。そうして2021年3月、導入する3Dエンジンの検討が始まりました。
西谷氏ら開発陣は、さまざまなゲームエンジンやオープンソースの3Dエンジンを実際に試しながら検討を重ね、最終的にUnityの導入を決定します。西谷氏は決め手として「従来のシミュレーターが持っていた機能をそのまま実現できること」「モバイル向けの開発に適していること」「日本語の情報が充実していること」「コミュニティが活発であること」を挙げました。
Unity導入によって生じた、前バージョンからの変化
そうして、西谷氏ら開発陣は2021年10月にUnityの導入を決定し、RC+のシミュレーターの新規開発に着手。実際に開発を担当した戸田淳氏は「開発中の3Dオブジェクトを実際に見ながらデバッグできるなど、かなり開発が進めやすくなった」と、Unity導入のメリットを語ります。
また、新規開発とはいえ、機能面についてはRC+7.0のシミュレーターをトレースすることから着手しましたが、「UI面が大きく改善された」と話すのは、前バージョンまでの実装を担当していた西谷氏です。「私がOpenGLを使ってシミュレーターをつくっていたときと比べると、同じ3Dデータを使っているはずなのに、見た目がブラッシュアップされていると感じた」とUnity導入前後の変化を語り、新機能の追加時にも開発がより進む見通しを持っています。
有償サポートを活用し、高品質なプロダクトを生み出す
同事業部ではUnityの導入に併せて、有償サポートプログラムである「Essential Success」を契約。西谷氏は契約の意図を「事業部として初めての利用ということもあり、何か問題が生じた際、私たちだけでは解決に時間が掛かってしまうのではないかと考えた。さまざまな問題を迅速に解決し、スピード感を持って高い品質のプロダクトをつくるには有償サポートが必要だと考えた」と語ります。
さらに、2023年11月にはサポートプランを「Integrated Success」にアップグレード。その狙いは、Unityのシニアエンジニアから直接技術的な指導を受けられるプロジェクトレビューを実施することでした。2024年4月には、Unityのエンジニアが長野県諏訪市のセイコーエプソン本社を訪問しています。
「複雑で大規模なCADを描画する際に時間が非常にかかる問題があったので、そこを重点的に見てもらいました。ボトルネックの判明だけではなく、直接コミュニケーションを取りながら問題解決を進める過程で、デバッグの際のプロファイリングツールの使い方などを教えてもらうなど、今後の開発に向けてとても有意義な時間になった」と戸田氏はプロジェクトレビューを振り返ります。
「問題が生じても、なんとかなる」。開発チームに生じた前向きな変化
現在、RC+8.0の開発にUnityを導入したことは前面に出していないそうですが、「今後はどんどんアピールしていきたい」と西谷氏。営業部門からも、Unityを活用していることを「顧客へ伝えたい」という要望が上がってきていると言い、RC+8.0のさらなる普及に向けて「Unityを使った開発であること」そのものを宣伝材料にしたいと意気込みます。
開発現場にもさまざまな変化が生じました。西谷氏は「OpenGLを使っていた頃は、なかなか新たな機能開発に踏み出せなかった」と話します。その理由は「開発陣でも実現性が疑問視されたり、問題発生時の対処に不安があったりしたから」です。しかし、Unityを導入後はWebで検索をすればナレッジや課題への対応策が見つかりやすいため、「開発の過程で何かあっても、なんとかなる」という雰囲気になっていると、開発チーム内の変化を明かします。
「属人化」という課題を解決するための道筋
また、RC+のシミュレーターは元々4名ほど、多い時期でも6名体制で開発しており、Unityを導入したことによって体制拡充に向けた道筋が見えたと言います。
「シミュレーター開発要員として採用したわけではないものの、入社時点でUnityを扱えるメンバーがおり、Unityの導入以降に学び始めたメンバーも複数人いる。そういったメンバーを巻き込み、開発体制を強化できる可能性が出てきたことは、前バージョンまでの開発と大きく違う点だと感じている」と西谷氏。従来抱えていた「開発の属人化」という課題を解決する目処も立ちました。
Unityの機能を生かし、プロダクトのさらなるアップデートに挑む
現在、西谷氏らシミュレーターの開発陣は、次回のアップデートに向けた企画を進めています。次なるアップデートでの実現を目指すのは「シミュレーション範囲の拡大」です。
現段階のところ、RC+ではロボットの動きをシミュレートすることしかできませんが、「今後は弊社が展開している、さまざまな周辺機器のシミュレートにも活用できるソフトウェアに進化させていきたい」と西谷氏。「その中で、Unityが持つさまざまな機能が活躍してくれることを期待している」と今後の展望と、Unityへの期待を語りました。