※この記事では、にじさんじライバーの配信やイベント演出にまつわる技術的な話題が多数含まれます。
3D配信を陰で支える開発チームの仕事
――今回はテクニカルクリエイティブ部(以下、TC部)・テクニカルチームで3Dスタジオやイベントで使用するソフトウェアを開発されているUnityエンジニアの皆さんへお話を伺います。始めに、テクニカルチームの主なお仕事内容について教えてください。
エンジニア H:ライバーさんの動きを3D世界で再現するソフトウェアやそれを補助するアプリの開発・改修をしています。イベントの際に動作の確認やトラブル対応をするのも我々の仕事ですね。
リードエンジニア K:我々のチームが開発した3D配信ソフトは、モーションキャプチャーで取得したライバーさんの動きを3D映像として出力するもので、3Dスタジオやイベントで使用されています。3D配信ソフトの操作は基本的にスタジオチームやイベントチームに任せているのですが、新しい試みをするときはうちのチームのエンジニアが実際にスタジオやイベントに赴いて、対応することもありますね。また、基本的には開発がメインですが、イベント向けに開発した新機能に関わるアセットデータ(※1)やイベント現場で照明会社さんや映像会社さんとの連携に必要なアセットデータ作りなども手伝っています。
※1→背景や小道具など、3Dシーンを構成する素材データの総称。
――3Dでの配信やイベントの基盤となるソフトウェア開発全般を担当されつつ、必要に応じて現場対応もされるんですね。では、皆さんがそれぞれご担当されている業務内容と入社の経緯も教えてください。
エンジニア N:僕は入社からまだ半年ほどなのですが、主に3D配信ソフトの改修を担当しています。スタジオチームからのフィードバックをもとに、ライバーさんの動きをより滑らかに見せるための改善や、映像が配信されるまでの品質の改善などをしていますね。
僕は大学卒業後、新卒でVTuber関連の他企業に入社し、ANYCOLORは2社目になります。1社目では3年ほど働いていたのですが、スタジオの運営や管理業務など開発以外の仕事が多かったので、「まだ3年目だし、技術者としてもっと開発の経験を積みたい」と思い、転職活動を始めました。同じ業界のエンジニア職を探している中でANYCOLORの求人を知り、今に至ります。
エンジニア H:私は2021年に入社し、しばらくは3D配信ソフトの改修を主に担当していました。今はその業務と並行して、ライバーさんの表情をより魅力的に見せるアプリの開発・改修を行っています。最近はR&D(※2)や必要に応じて行われる新規機能の開発も任せてもらっていますね。
※2→Research & Development(リサーチ・アンド・デベロップメント)の略。研究開発のこと。
ANYCOLORが3社目になるのですが、新卒で入社した会社と前職、ともにVTuber関連の企業でエンジニアをしていました。前職のVTuber事業撤退に伴い転職することになり、「せっかくならANYCOLORを受けてみよう」と応募して入社に至りましたね。
リードエンジニア K:僕は2020年に入社し、UnityエンジニアチームがHさんを含め3名ほどのときから3D配信ソフト開発の責任者をしていました。今はNさんに引き継ぎをしつつ、3D配信ソフトの機能をライバー向けの配信アプリ「にじ3D(※3)」でも使えるようにするための開発を担当しています。
※3→にじ3D:ライバー専用アプリケーション。3Dの姿で配信するために使用される。読み方は「にじさんでぃー」。
僕はもともとゲーム業界でUnityを使ったゲームを制作していたんですが、その後あるVTuberプロジェクトの開発に携わることになったんです。そういった経験からご縁があって、当時のCTOに「うちに来てくれないか?」と声を掛けていただき、ANYCOLORにジョインしました。
3Dの再現と多彩な演出を可能にする自社ソフト
――自社で開発された3D配信ソフトの仕組みを教えていただけますか?
リードエンジニア K:先ほど簡単にお伝えしましたが、モーションキャプチャーやライバーさんの表情をデータとして受け取って、3Dで再現するというのが、簡単な仕組みですね。3D空間内のステージや照明、カメラなどさまざまな情報を受け取って、最後に皆さんの目に見える形で出力するためのソフトウェアになります。
エンジニア H:3D配信ソフト上でスタジオのカメラ担当が3D空間内のカメラワークを組むことも可能ですし、現実のカメラから情報を受け取り、3D空間と現実空間をリンクさせる機能も存在します。リアルイベントのAR演出においてよく使われる機能ですね。
――ライバーさんが3Dの姿で配信をするために必要で、多彩な演出もできるソフトウェアなんですね。他社のソフトウェアを使わず、自社で開発をしたのはなぜでしょうか?
リードエンジニア K:自分は立ち上げに関わっていないのですが、他社のシステムだと自分たちがやりたいことを100%叶えるのは難しい部分があり、加えてスタッフが取り扱いしやすいように柔軟性の高いシステムにしたかったため、自社での3D配信ソフト開発をスタートしたそうです。
僕が3D配信ソフトに関わり始めたのは、開発がスタートしてから実際に配信で使われるまでの期間で、社内で作った3D配信ソフトで配信をすることを目標に開発を進めていた段階でした。
――最初は自社の3D配信ソフトの土台を作ることに専念されていたんですね。
リードエンジニア K:そうですね。ソフトウェアの土台を整えた後に機能を拡張していきました。カメラワークを改良したり、ライティングを調整できるようにしたり、バンド演奏が必要なライブの際にドラムセットが動くようにするなど、1つずつ改良を積み重ねていったんです。
ライバーさんやスタッフからの要望に応えられる機能も実装していますし、それをどこでも使えるようにする開発も続けてきましたね。そうやってできることが増えるたびにライバーさんやスタジオチーム、ファンの皆さんから喜びの声をいただけたのは我々にとってとても励みになりました。
現状のソフトウェアでだいたいの配信やイベントができるようになりましたが、システムの安定を目指すならやるべきことはまだまだたくさんあると感じています。また、3D配信ソフトはライバーさんの姿を3Dの世界で表現することだけではなくて、“3D空間でやりたい表現”をひと通りできるようにすることも目的の1つなので、そのための開発を進めていこうと思っています。
配慮が生み出す新しい表現、チームが目指す未来の形
――皆さんそれぞれ、ご自身の業務の中で特にこだわっていることや、意識していることを教えてください。
エンジニア N:3D配信ソフトはチームで開発をしており、なおかつ長く使用するものなので、保守しやすいコードを書くようにしています。また、実際にソフトウェアを使うのはエンジニアではない他部署の方たちなので、誰でも使いやすいUI(※4)を作ることも意識して開発をしていますね。
※4→User Interface(ユーザーインターフェース)の略。ボタンやレイアウトなど、ユーザーとサービスの接点となる要素。
そういう意味では、実際にソフトウェアを使用するスタッフが身近にいるのはすごくありがたいと思っています。フィードバックを受けやすいですし、実際に使っているところを見せてもらえるので、開発をする際に「こういう使い方をするかもしれないな」と容易に想像ができるんです。
例えばマクロ機能(※5)において、スピーディーかつ正確さが重要な本番では設定したものをワンボタンで即座に実行できるシンプルなUIにする一方で、試行錯誤するリハーサルや仕込みの段階では複雑な処理も自由に組める柔軟な編集画面を提供するなど、使用シーンごとの性質の違いを踏まえてUIを設計しています。
※5→一連の複雑な操作をあらかじめ登録し、自動的に実行可能にする仕組みのこと。
エンジニア H:私もNさんと同じく、機能実装の際は使う人にとってわかりやすいことを心がけています。例えば、プロップ(※6)などを制作するクリエイティブチームのために、Unityの「エディター拡張」という機能を使って、作業効率を上げるためのUIをカスタマイズさせていただいたのですが、そのときにエンジニアだけがわかる書き方はしないように気を付けましたね。わかりやすい単語で構成したり、注釈を入れたりするなど、使いやすさを重視して開発をしています。
※6→3D空間に存在する小道具のこと。
リードエンジニア K:ANYCOLORのUnityエンジニアチームでは、UIや基本的な機能についてエンジニア自身が考えているのですが、「今だけではなく、今後もずっとよくなるソフトウェアにしていきたい」ということを前提に話し合いをしています。
コーディング(※7)をする際はすでにある機能の改変を進めながら、改変後のほうがわかりやすくなるようにチーム全体で意識していますし、機能面では使う人にとってわかりやすい機能になるように心がけているんです。
※7→ソフトウェアの動作に必要な処理をコードで記述する作業。
3D配信ソフトでできる機能を増やしていけば、我々が新しくコードを書かなくても、スタジオチームやライバーさんの発想による機能の組み合わせで、新しい表現ができるかもしれないと思っているんです。「これをこうしたい」という要望や課題も、我々の預かり知らぬところで解決している、というような形を目指しています。
――機能の組み合わせ方次第で、新しい表現が生まれるんですね。
リードエンジニア K:そうですね。パーツを1つひとつ作って、組み合わせ次第でいろいろなことができるようにコーディングしています。それによって、エンジニア側では想像していなかった使い方が生まれることがあるんです。
例えば以前スタジオチームから、手持ちカメラの位置をデータとして保存して、カメラの画角や視野をコントローラーで操作したい、というリクエストがありました。その機能を実装した際に、カメラの位置をモーションデータの1つとして受け取るだけでなく、OSC(※8)という通信規格を採用し、異なるソフトウェアやデバイスからのデータも受信してカメラを操作できるようにしておいたんです。
※8→Open Sound Controlの略称。機器間でデータをやり取りするための通信規格で、リアルタイム通信に適している。
そしたら、知らないうちにスタジオチームはその機能を応用して、ドローンカメラとして使っていたんですよ。3D空間のカメラをドローンのように飛ばし、コントローラーで操作しながら撮影をしていて驚きました。
エンジニア N:パーツを作ること自体はそんなに難しいことではないので、自分たちで組み合わせて、僕たちが想像していなかった使い方をしているスタジオチームはすごいなと思います。モジュール(※9)のように作っておけばいい感じに使ってくれる、という印象がありますね。
※9→特定の機能をまとめた部品。組み合わせることで、用途に応じた使い方ができる。
リードエンジニア K:スタジオチームはもちろん、クリエイティブチームや3Dモデラーの方々も「今ある機能を使って、当初想定されていたパフォーマンス以上のものを作ろう」というモチベーションが高いですよね。
――エンジニアの皆さんも、それを使用する皆さんもモチベーション高くお仕事されているのですね。続いて、業務の中で苦労したこともお聞きしたいです。
エンジニア N:トラブルが起きた際の対応には苦労することがありますね。例えば「映像にがたつきがある」というバグの報告があった場合、その一言だけではどういう挙動なのかを正確に把握することが難しいんです。映像が一瞬止まってしまうのか、映像のフレームレート(※10)が落ちているのか、など具体的な挙動がわかれば原因の特定がしやすいのですが、そうでない場合は解決までに時間がかかってしまいます。
※10→1秒間の動画を構成するフレーム(静止画)の描画頻度。映像の流動性を決定づける指標となる。
エンジニア H:以前クラッシュの対応をしたときにも、クラッシュの前に表示されていたエラーログや挙動の動画などがなく、自分の手元でも再現できないため困ったことがありました。結果としてはPC側のハードの不具合によるものだったんですが、状況が把握できない状態での調査は難しいものがあります。
リードエンジニア K:「がたつきがある」だけでは原因の幅がかなり広いんですよね。クラッシュについても、問題が起こっているのは3D配信ソフトなのか、それともPCなのかといろんな要因を考えて、調べて……と調査が膨大になるんです。
現在はトラブルの数がだいぶ減りましたし、チームとしても起きないように注意していますが、ゼロにすることはなかなか難しいんですよね。3D配信ソフトに新しい機能を追加したり、今ある機能のクオリティを上げるために改変をしたり、スタジオの環境が変わったり、と日々アップデートが行われているので、トラブルが起きたときには適宜対応しています。
ANYCOLORならモーションキャプチャーの最前線で開発に集中できる
――ANYCOLORでソフトウェアの開発に携わる中で、魅力や面白さを感じるのはどんな瞬間ですか?
エンジニア H:リアルタイムモーションキャプチャーの最前線に関われることが一番の魅力だと思います。モーションキャプチャーという技術自体はゲーム業界をはじめさまざまな分野で使用されていますが、VTuberの特性であるリアルタイムのモーションキャプチャーに携われることは楽しいと感じていますね。問題が起きた際などは、瞬時に対処する必要がありますが、配信やイベントを成立させるためにどうするかを考えるのは面白いですし、やりがいを感じます。
リードエンジニア K:ファンの方にすぐに観ていただけて、そのリアクションがもらえるのも魅力だと思います。また、リアルタイムでの3D配信で、表現したいことを実現させるための方法やそのために何をするべきかを考えるのも面白いなと感じていますね。
――リアルタイムならではの醍醐味がある一方で、緊張感も大きいのではないかと思いました。
リードエンジニア K:イベントは特に緊張します。本番での操作などはスタジオチームに任せていて、僕はトラブルが発生した際の対応をしているのですが、イベント中にスマートウォッチが反応して、「心拍数が上がっています! 大丈夫ですか?」と通知がくるんです(笑)。本番中はとにかくトラブルが起きないように祈りながら、各セクションで問題が起きていないか、見て回っています。
――心拍数のアラートが出るほどとは……! 現場の緊張感が伝わってくるお話を聞かせていただきました。続いてNさんはいかがでしょうか?
エンジニア N:ANYCOLORに限った話ではないかもしれないのですが、ソフトウェアの開発に集中できる環境があるところが魅力だと思います。始めにお話ししたように、前職でUnityエンジニアをしていたときは開発以外の仕事が膨大にあったんです。時には生配信のオペレーションやモーションキャプチャーのオペレーター、スタジオの機材を選ぶこともありました。ANYCOLORに入った今はそれぞれにプロフェッショナルがいて、開発チームとしてエンジニアの業務に専念できています。そういったチーム作りができていることも、この会社のいいところだなと感じています。
エンジニア H:確かにそうですね。私も開発に集中できることはANYCOLORの魅力だと思います。
――Nさんたちのように、開発に集中したい方にとって魅力的な環境なんですね。
エンジニア N:そうですね。中には、自分でソフトウェアの開発をして、本番のオペレーションまで対応する会社もありますからね。でも今の環境では、そのような開発外のことにはそれぞれにチームがあって担当してくれるんです。
リードエンジニア K:プロップやアセットの制作を完全に分業していますね。
エンジニア H:弊社ではプロップやアセットはクリエイティブチームやスタジオチームが作ってくれていて、テクニカルチームはそれらを作るためのシステムを開発しているんです。
――やりたいことに専念できて、なおかつ経験値をしっかり積める環境なんですね。それでは、皆さんが3D配信ソフト開発に携わるUnityエンジニアとして業務に当たるうえで、印象に残っているエピソードがあれば教えてください。
リードエンジニア K:2021年7月に開催された「にじさんじ “LIGHT UP TONES”」での出来事が印象に残っています。このイベントではにじさんじのライブで初めてAR(※11)カメラを使用したほか、ライバーさんを照らす照明を工夫したり、複数の映像を一度で映し出せるようにしたりなど、新しい試みがたくさんありました。
※11→Augmented Reality(オーグメンテッド リアリティ)の略。現実世界に3Dモデルや画像、文字などを重ねて表示する技術。
外部企業の方々とも連携を取りながら準備を進めて、現地のリハーサルの際に初めてライバーさんたちにシステム全体を見てもらったのですが、加賀美(ハヤト)さんが「これすごくないですか!?」と言ってくださったんです! 新たな表現ができるようになったことはもちろん、システムとしても新しいことをやっていたので、両方の意味で喜んでくれたのがめちゃくちゃうれしくて、「これからも開発をがんばっていこう」と思いました。ライブがすごくいいものになったことも含めて印象に残っていますね。
【AR生バンドライブ】「にじさんじ AR STAGE “LIGHT UP TONES”」 開催情報!
エンジニア H:私は自分が実装した機能を社内の皆さんが喜んでくれたことが印象に残っています。イベントチームからの要望を受けて、3D配信ソフトにすべてのアセットをまとめる共有フォルダを作り、それを見ればすべてのPCで同じアセットが読み込める、という機能をつくったんです。
リードエンジニア K:補足すると、イベントの現場では7〜8台のPCを並べて対応しているのですが、すべてのPCに同じアセットを読み込ませるのが大変だったんです。その機能ができたことで手間が減り、イベントチームはかなり楽になったんですよ。
エンジニア H:今でも社内の方から定期的に感謝されるので、ありがたいですね。皆さんから想像以上の反応をいただけて、「役に立っているんだな」と実感できました。
「どんなスキルも武器になる」ANYCOLORで働くUnityエンジニア
――Unityエンジニアチームは新メンバーを積極的に募集していますが、皆さんは一緒に働く仲間として、どのような方にジョインしてほしいでしょうか?
リードエンジニア K:うちのチームは1人ひとりの裁量が大きいので、自分で考えることを楽しめる方にはマッチすると思います。ここまでの話にも出てきたように、UIの開発も機能単位でメンバーに任せていますし、実際に使う人のことまで考えながら、自走できる方だといいなと思いますね。
そのうえで3D自体はもちろん、レンダリング(※12)などにも興味があったり、配信を観ながら気になる部分を見つけて、「なんでこれがないんだろう」「自分だったらこうするな」という観点があるといいですね。
※12→3Dデータを画面に表示できる画像や映像に変換する処理のこと。
エンジニア H:私はコミュニケーションがスムーズに取れる方だとうれしいです。業務上でわからないことがあった際に、気軽に聞いてくれると助かりますね。
エンジニア N:僕は度胸と気合いがあったほうがいいんじゃないかなと思います(笑)。先ほどKさんが話していたように、イベントの現場に立ち会うときって本当に緊張するんですよ。
リードエンジニア K:イベントへの立ち会いは必須ではないのですが、この仕事ならではの特権ですし、関われたら面白いですよね。
エンジニア N:自分が開発したシステムが実際にどう使われてるかを見ることができるので、勉強にもなります。
――求めるスキルに「度胸」という言葉が出てくるのは珍しいですが、リアルタイムの現場だからこそなのではないかと思いました。では、歓迎されるスキルや経歴があれば教えてください。
リードエンジニア K:3Dモデルの表現やシェーダー(※13)など、アニメーションの仕組みを理解していることですね。ただ、今はできることを広げていくフェーズで、XR(※14)での表現などにも着手しているんです。それを踏まえると、「ANYCOLORでやりそうなことであれば、どんなスキルでも役に立つかもしれない」という考え方もあるんですよね。
※13→3Dモデルの質感や色、光の反射や陰影などの見た目を設定する処理。
※14→Extended Reality(エクステンデッド リアリティ)の略。現実世界と仮想世界をつなげる技術の総称。 VR(仮想現実)、AR(拡張現実)、MR(複合現実)などを含む枠組み。
エンジニア H:XRではなくても、AR単体の知識や経験が活きることもありますし、「その経験があるならこれをやってみようか」と新たな試みにつながることもあると思います。
リードエンジニア K:社内にテクニカルアーティストチームがいるのですが、そのチームではライバーさんの汗の表現に取り組んでいるんです。それはもともと課題としてあったわけではなく、経験がある方がいたから制作することになったんですよね。
ANYCOLORは新しいことを提案できる環境なので、いろいろな経験をお持ちの方ややりたいことがある方は活躍できると思います。とはいえ、チームとしてのタスクもたくさんあるので、そちらを進めながらにはなりますが……(笑)。意欲のある方だとうれしいですね。
エンジニア H:ちなみに、VTuber業界での経験がなくても大丈夫なので、興味がある方は是非チャレンジしてほしいです。
「いろんな人に楽しんでもらえる映像を」広がり続ける3D配信ソフトの可能性
――最後に、チームとして今後挑戦したい技術領域やシステム改善の方向性があれば教えてください。
リードエンジニア K:まず、3D配信ソフトの機能を「にじ3D」のアプリでも使えるようにすることですね。できることを増やしてコンテンツの幅を広げられたら、いろいろな方に楽しんでもらえる映像が作れるんじゃないかと思っています。
――3D配信ソフトの機能を「にじ3D」でも使えるようにする、というのは具体的にどんなことでしょうか?
リードエンジニア K:「にじ3D」はライバーさんが自身の配信環境で使える3D配信アプリなのですが、スタジオの3D配信ソフトとは完全に異なるコードベースで成り立っています。3D配信ソフトの整理もできる体制になったので、コア部分を分離して「にじ3D」と共有させることが現実味を帯びてきました。
スタジオで今まで使えていた機能をライバーさんに使いやすくカスタムして提供できれば、「にじ3D」での配信をよりリッチに見せられるようになると思います。そのために着手できていない部分をどんどん進めていきたいです。
また、別軸で「3D表現のクオリティを高める」という課題もあります。3DCG表現のクオリティは常に業界内で一歩先を目指していたいと思っているので、チームの課題として取り組んでいこうと思っています。
エンジニア H:3D表現のクオリティ改善と3D配信の機能拡張という2軸で進めている状況ですよね。
――その2つを進めている中での課題やすでに実施されたことはありますか?
リードエンジニア K:過去には衣装モデルに金属表現を追加し、衣装にキラキラとしたパーツを表現できるようにしたほか、体の輪郭が強調されるリムライトやシルエットを際立たせるライトの追加など、ライティング表現の拡張に取り組んできました。
現在はスタジオのスイッチング・カメラチームと連携しながら機能向上を段階的に進めるとともに、描画の基盤となるレンダリングパイプラインの更新を含めた新しい描画手法の研究開発を行っています。
エンジニア H:今年の5月から開催されている「にじさんじ WORLD TOUR 2025 Singin' in the Rainbow!」では、基本的に同じ3Dステージを使用しているのですが、実は公演が進むにつれて少しずつ装飾を変えているんです。クオリティが高いものを作ることはもちろん、そこからさらにクオリティを上げることも意識して、小さなアップデートを続けています。