Unity開発者インタビュー:Atlas化ツールの開発物語 - 三田村綯夜氏に聞く (インタビュアー:ラカイ)
VRChatのワールド制作からUnity Editor拡張やVket Cloud SDKの開発者として活躍する三田村綯夜氏。多くのクリエイターに愛用されているAtlas化ツールの開発者として知られる彼に、開発の経緯から技術的な詳細、そして今後の展望まで詳しくお話を伺いました。
開発のきっかけ - VRChatでの必要性から
──まず、ツール開発を始めたきっかけについて教えていただけますか?
三田村:最初はVRChatのワールドに自分の小説をアップロードしたいという動機から始まりました。当時のVRChat SDK 2ではスクリプト(Udon含め)が書けなかったので、自動で設定を行う拡張エディターを作ることになったんです。
──Unity Editor拡張との出会いについても教えていただけますか?
三田村:Unityスクリプトがゲームで動かせるんだから、Unityエディター上でもスクリプトを動かせるんじゃないか?という発想で調べてみたんです。そこでUnity拡張エディターの存在を知って。C#は学校でちょっと勉強していたので、これならいけるかなと。
最初は本をアップロードするためのツールだったんですが、プレゼンテーション用によく使われるようになりました。基本的には画像の表示とページ送りの機能だけのシンプルなものでしたけどね。
Atlas化ツールの誕生 - Vketがもたらしたターニングポイントへ
──では、現在のAtlas化ツールはどのように生まれたのでしょうか?
三田村:きっかけはVketへの出展でした。
Vketに出展する際、マテリアル数が10個までという制限があって、その際にアトラス化という手法を使ってテクスチャを減らす必要があることを知ったんです。当時は情報交換用のVketのDiscordサーバーで、アトラス化や軽量化の知見がまだ全然広がっていなかったんですよ。
その際に自分のブースを軽量化するために作ったツールが今の Atlas化ツールの原型になりました。
エディター拡張開発での苦労と工夫
──エディター拡張を開発する上で、特に苦労した点はありますか?
三田村:拡張エディターの情報が本当に少なくて。特にエディターウィンドウのレイアウトに関する情報が限られていました。インスペクターについての記事は結構あるんですが、エディターウィンドウでやりたいことがあっても、なかなか方法が見つからない。
それと、UnityのGUI要素の種類が多くて。エディターGUIなのかGUILayoutなのか、どれを使えばいいのか迷うことが多かったですね。今でもまだ完璧には把握できていない部分もあります。
──パフォーマンス面での工夫はありましたか?
三田村:実は高速化はあまり意識してないんです。かなり愚直にUVリストを見て、1個ずつ何分の1してどんだけずらしての計算を行って、UV座標のリストを更新しているような感じですね。
ユーザーフィードバックと継続的な改善
──ユーザーからのフィードバックはどのように活かしていますか?
三田村:ユーザーからのメッセージは大切にしています。問題があれば確認して修正するのはもちろん、使い方がわからないという問い合わせにも丁寧に対応するようにしています。
最近では、社内での直接のフィードバックも増えてきました。例えば3D班の人から「このような機能は実装できないですか?」という具体的な要望をいただいて、それを次の開発に活かすこともあります。
Unity新バージョンへの対応と今後の展望
──今後の展望について教えてください。
三田村:現在、いくつかの新機能を開発中です。まず、アルベドテクスチャ以外のテクスチャにも対応できるようにする機能を開発しています。また、マテリアルカラーとテクスチャを合成する機能も考えています。
それと面白い機能として、例えばメタリックマップの自動生成も検討中です。スタンダードシェーダーの場合、スムースネスやメタリックの値が設定されているので、それを自動でテクスチャに変換して組み込めたら便利だと思うんです。
開発環境と技術的な詳細
──開発環境や技術的な部分について、もう少し詳しく教えていただけますか?
三田村:基本的には一つのツールにつき一つのスクリプトファイルという形で作っています。ただアトラス化する部分とUVを編集する部分は別々のファイルにしていて、他に作っているツールと共通の関数はモジュール化して別のファイルにしています。
バージョン管理については、メジャーアップデートの時は一番上の数字、機能追加時は2番目の数字、不具合修正時は3番目の数字を変更する形で管理しています。例えば、プレビューモードを追加した時にはバージョン2.0になりました。
──最後に、これから拡張エディターの開発を始める人へアドバイスをお願いします。
三田村:まずは公式ドキュメントをしっかり読むことをお勧めします。特にエディターGUIについては、実際に試しながら理解を深めていくのが良いと思います。
そして、ユーザーの声に耳を傾けることは本当に大切です。どんなに技術的に優れていても、使いづらければ意味がありません。自分が作ったツールを実際に使ってもらい、フィードバックを得て改善していく。この繰り返しが、より良いツールを作ることにつながると思います。
おわりに
VRChatの小説表示という個人的な目的から始まり、今では多くのクリエイターに使われているAtlas化ツール。三田村氏の開発への情熱と、ユーザーの声に真摯に向き合う姿勢が、ツールの進化を支え続けています。
今後も新機能の追加や改善を続け、さらに使いやすいツールを目指していくという三田村氏。VRChat SDKのアップデートやUnityの新バージョンへの対応など、課題は尽きませんが、ユーザーのために進化を続けるツール開発の今後が楽しみです。
アトラス化ツール:https://asobiy3.booth.pm/items/1430024
このインタビュー記事は実際に行ったインタビューを元にAI(Tactiq.io)を用いて生成されたものをベースに改稿して作成された記事です。(半分ぐらい手動で情報が間違っている部分を修正することになりました)