見出し画像

ゲーム開発との違いは?ソフトとハード両方の知見が深められるUnityでのVR開発

今回のインタビューでは、人事チームのヨシダが、Unityエンジニアである斎藤にお話をうかがいます。医療教育に活用されるジョリーグッドのVR開発は、Unityを用いています。一般的にはゲーム開発をイメージさせるUnityですが、VR開発に用いることの差異やこだわり、ジョリーグッドだからこそ得られる成長機会をお伝えします。


ー簡単に自己紹介をお願いいたします。

前職では、スマートフォンアプリのゲーム開発をしていました。主にアクションRPGに参画しており、戦闘アクションUIなどの開発に携わりました。そこに3年ほど在籍してゲーム開発を進めていくうちに、新技術にも興味が出てきたため転職を考えたという経緯があります。

その後求人情報を見る中で、ジョリーグッドのVRを体験する機会がありました。ジョリーグッドで使われているUnityは既存の技術ですがその活かし方に新しさを感じ、また体験で驚きと魅力を感じたことが入社の理由です。

Unityを用いて医療教育用VRアプリケーションを開発

ー現在、Unityでどのようなプロダクトの開発をしていますか?

現在は、JOLLYGOOD+(ジョリーグッドプラス)やVRハンズオンというプロダクトの開発をしており、具体的には、VRゴーグルやタブレットにインストールするアプリケーションを開発しています。
図に示した「ゴーグル・タブレット」についてはすべてUnityで開発しており、「Webサイト・アプリケーション」については、別チームがRubyで開発しています。

JOLLYGOOD+は、医療に特化したVR動画のサブスクリプションプラットフォームで、利用ターゲットは、大学、専門学校、病院、医学会、医療機器メーカーなど多岐に渡ります。具体的には、医学生や研修医に対する授業やセミナーに活用いただき、学生にVRゴーグルをかけてもらい、先生がタブレットを用いてVRの映像をコントロールして医療教育を行っています。

もう一方のプロダクトのVRハンズオンは、病院の手術室の手技をゴーグルをかけて擬似的に体験するようなプロダクトです。VR内に自分の手が投影され、実際の手術の映像と重ね合わせるようにして手技を体験することができるコンテンツです。

ーUnityを採用した経緯を教えてください。

Unityはマルチプラットフォームで、AndroidスマートフォンやVRゴーグルなど他のプラットフォームに落とし込めるエンジンであり、いろいろなデバイスに連携しているためジョリーグッドのアプリ開発とマッチしていました。加えて、現在、弊社プロダクトでVRヘッドセットとして利用している「PICO VR」や、VRヘッドセットで著名なMeta QuestといったハードメーカーのSDKがUnityで提供されることが多いため、開発の効率化を考えてUnityを選んだという背景もあります。

VR・ハードウェアならではの知見を深められる

ーUnityを用いたゲーム開発とジョリーグッドのプロダクト開発の違いを教えてください。

動画の制作方法が異なることでエンジニアの担当領域が違います。ゲームの場合はデザイナーが作成した画像、キャラクター、動作、効果音などをエンジニアが作り込んでアプリに落とし込みます。
これに対してジョリーグッドでは、映像制作チームが動画の撮影や編集を行い、それをアプリに落とし込むことになるため、ゲームと比較すると何か複雑な動作を実装するような負荷はありません。一部ではエンジニアが作るインタラクティブな機能もありますが、基本的には動画の投影がメインです。

もう1つの大きな違いとしては、ゴーグルとタブレットへのマルチ接続に関する開発です。ゲーム開発ではマルチ接続といっても2~3台ぐらいが一般的です。しかし、JOLLYGOOD+は100台の同時接続をどうやったら実現できるかを考える必要があります。

例えば100台同時接続の場合だと、操作時に一時停止などのメッセージが出るタイミングがまちまちになってしまいます。そのため、体験に0.5秒から0.1秒程度の差が生じます。このような間隔の調整、100台規模でメッセージの同時性を持たせる難しさがありますね。

ーゲーム開発からの転職で苦労したことや、それをどのように克服されたか教えてください。

私がジョリーグッドにジョインした当時は、アプリ開発の担当は私1人でした。最初はハコスコというスマートフォンに装着して見るタイプのVRデバイスでしたが、その後何度か変わり、今はPICO VRが主なデバイスです。デバイスが新しくなったときに、コードやデバイスのキッティングが生じ、その度にシステムを適合させるのに苦労しました。

ハードの入れ替えが激しい環境では、ハードのスペックをしっかり把握して、どのような問題がハード依存で起きやすいかを知っておくことでスムーズに対応できることを学びました。

また、ハード依存の問題とソフトウェア依存の問題をうまく切り分けることも重要です。例えば描画がガクガクした表示になるという問題はハードの性能に関わるため、ハードに依存する部分のコードを見るようにします。反対に、文字がきちんと表示されていない場合はサーバーとの通信やローカルでの保存データの過失を疑って、ハード以外の部分を読み込むという具合です。

今後もハードはどんどんアップデートされていくので、私のこれまでの経験をチームメンバーにシェアしながら開発を進めていきたいです。

新技術へのアンテナ高く、相互にリスペクトし合うカルチャー

ーどのようなプロセスで開発を進めていますか?

主にアジャイルで開発を行っており、JOLLYGOOD+に関しては3ヶ月に1回定期的にリリースするサイクルを取っています。そこでは保守運用のバグ修正だけではなく、新しい機能も展開しています。

開発のプロセスは、欲しい機能、提供価値、かかるコストなどをビジネスサイドと話し合い開発方針を決めます。その後、一旦動くものを実装し、ビジネスサイドとあらためてレビューして本当にお客様に価値を提供できるかを検討します。作っていく中で既存のシステムとの矛盾やこうした方がいいのではないかという意見が出た場合は、適宜ビジネスサイドに向けてフィードバックを行います。そのような場合は、問題点とそれについての対応策も開発サイドが提案しています。
それらを経て、問題がなければより内部の改善を実施した上で、外部のQAの専門会社などにテストしてもらい、リリースするという流れです。

ーアプリチームのカルチャーを教えてください。

アプリチームは和気あいあいとした雰囲気で、Slackでも絵文字やスタンプが飛び交っています。真面目な話だけでなく他愛もない話もよく盛り上がりますね。

また、新技術の発信チャンネルでも日々多くの話題が上がります。例えば最近だとChatGPTがHOTなキーワードですが、積極的にどういう使い方ができるのか、とりあえず使ってみてどう思うか等、Slackでも活発に意見交換がされています。ジョリーグッド全体としてそういった新技術に対してアンテナを高く張っている人が多く、特に開発部は新技術の話題に敏感です。最新の情報をしっかりキャッチアップして対話する中で、仕事に活かせるアイデアが生まれることも多くあります。

新しい提案や問題の指摘に対しても、メンバー同士で双方向にコミュニケーションをとれる関係性です。立場にかかわらず、お互いにリスペクトし合う文化があると思います。

ー開発プロセスや品質をよくするために工夫されていることを教えてください。

開発プロセスは定期的に改善しており、直近ではコードの品質をより上げるためにマージリクエストでのレビューのステップを加えました。
具体的なレビュー方法についても、最初に決めた方法から徐々に改善していっています。例えば、コードレビューを始めた当初は指標になるものをコメントで書くだけでしたが、コメントにタグを入れることでそれがマストなのか提案なのかといった重要度がわかるようにしました。

また会社としては、日々業務をしていく中で開発体制とセキュリティチームを改善しつつ、自動化を進めていきたいと思っています。すでに開発プロセスの部分でテストの一部自動化を進めていますが、まだ割合としては多くないため、今後もこうした自動テストや自動ビルドを進めていきたいです。

そのほかでは、週1回行われる輪読会で設計の技術書を一緒に読み、技術的負債をどのように解決していくかを話し合っています。

ーUnityエンジニアのポジションにおいて、どのような成長機会があると思いますか?

Unityの技術を高めていけることはもちろんですが、開発プロセス全体に関して学べると思います。会社の人数がまだ少ないので、エンジニアとして入ってきたとしても、ビジネスサイドとコミュニケーションをとって新しい機能や設計に関する提案をする機会があります。そのため、エンジニアの仕事は開発プロセスの一部分だけにとどまりません。そのような広い視点でコミュニケーションをとる中で、エンジニアはコードを書くだけでなくビジネスの価値をどのようにソフトウェアで提供できるかも学ぶことができると思います。また、仕様レビュー会でいろいろな方が意見を出し合い議論するので、他人と折衝する力も身に付きます。

チャレンジ精神とアウトプットが成長に繋がる

ージョリーグッドでは一人ひとりのエンジニアにフォーカスし、各々が自ら社内外に情報発信して能動的にプロダクトやチームに向き合うような仕組みがあります。ご自身の成長に繋がったと感じることを教えてください。

私自身、ジョリーグッドにジョインしたときはかなり受け身の気質で、振られたタスクだけをしていました。けれども、6年間やってきて発信したい気持ちが強くなり、今ではプレゼンなどでも自身で発表することも増えました。振り返ってみると、けっこう他の人に触発されてチャレンジしていたと感じます。その甲斐あって仕事の幅が広がりました。

ーどのような価値観を持った方と一緒に働きたいですか?

チャレンジ精神がある方と働きたいですね。何事にも「これやってみませんか」と言ったら「やりましょう」となるような人がいいですね。また、使いたい新技術の提案や、作ったものについての発信を積極的にできる人が望ましいです。
ジョリーグッドはチャレンジを推奨する会社ですが、逆に何もしなければ自分を成長させる機会は減ります。意欲を持って能動的に動ける人と一緒に仕事をしたいですね。