VCCで使えるパッケージ(VPMパッケージ)を作ってみよう!

詳細情報

日時 2023年07月06日 22:30 - 23:00
テーマ VCCからいれるパッケージ(VPMパッケージ)を作る話
発表者 anatawa12
集会名 個人開発集会
発表資料 リンク ファイル

発表内容のハイライト

  • VRChatのパッケージマネージャーVPMについて解説
  • VPMパッケージを作成する手順を解説
  • VPMレポジトリを作成する手順を解説
  • 作成時に詰まりやすいポイントを紹介

VCCでツールをもっと便利に!VPMパッケージとは?

VRChatで利用されているVCC(VRCSDKのツール群)ですが、皆さんは使っていますか?VCCは、VRCSDKの配布や、VRCSDKに依存するツールの配布に使われています。

Unityでは、UPM(Unity Package Manager)パッケージを導入することで、様々な機能を追加できますが、VRCSDKにはライセンス的な問題からUPMが使えないため、VCC独自の「VPMパッケージ」という仕組みが使われています。

VPMパッケージとは、VRChatが開発したパッケージマネージャーを使って管理されるパッケージの形式です。VRCSDKやAvatarOptimizerなどのツールが、このVPMパッケージとして配布されています。

VPMパッケージを使うことで、ユーザーは

  • 大量のUnityPackageから最新版を探さなくて済む
  • バージョン間の非互換性によるエラーを避けやすくなる
  • VRCSDKと一緒に管理できる

といったメリットがあります。開発者にとっても

  • ファイルの削除ができる
  • 任意の依存関係を持たせられる

といったメリットがあり、より柔軟で効率的な開発が可能になります。

VPMパッケージの作成方法

VPMパッケージを作成するには、いくつかの手順が必要です。

1. package.jsonを書く

package.jsonは、VPMパッケージのマニフェストファイルです。UPMパッケージのマニフェストと似ており、npmのフォーマットをベースにしています。

パッケージ名、バージョン、説明、依存関係など、パッケージに関する情報を記述します。ドキュメントを読んだり、他のパッケージのpackage.jsonを参考にすれば、それほど難しくありません。

2. Assembly Definitionを作成する

Assembly Definitionは、Unityでコードを整理するための仕組みです。VPMパッケージでは必須で、Assets以下のフォルダに直接コードを配置すると、Assembly-CSharpに全て含められてしまい、整理が難しくなります。

Assembly Definitionを使用することで、コードを複数のファイルに分割し、コンパイルを並列化したり、外部からアクセスできないようにしたりできます。

3. エディター拡張を作成する

エディター拡張は、Unityのエディターに機能を追加するためのコードです。VPMパッケージで使用するエディター拡張も、通常のUnityプロジェクトと同様に作成できます。

リソースへのアクセスには、GUIDかPackagesフォルダ以下のパスを使用します。

4. パッケージをリリースする

最後に、作成したパッケージをzipファイルに圧縮し、公開する必要があります。VPMレポジトリにアップロードするか、zipファイルを配布してユーザーに手動でインストールしてもらうことができます。

anatawa12さんは、GitHub Actionsを使って、マニフェストのバージョン更新からVPMレポジトリへの公開までを自動化しているそうです。

VPMレポジトリの作成

VPMレポジトリは、VCCにパッケージを認知させるために必要なものです。

  • package.jsonを連結したjsonファイル
  • zipファイルのリンク集

を静的ホスティングサービスに配置して作成します。anatawa12さんは、Cloudflare Pagesを使ってドキュメントとまとめて管理しているそうです。

VPMパッケージ作成時の注意点

VPMパッケージを作成する際には、いくつか注意しておきたい点があります。

  • ドキュメントが不足しているため、既存のパッケージを参考にしながら進める必要がある
  • VCCのバグに悩まされる可能性がある

まとめ

VCCで使えるパッケージ(VPMパッケージ)を作成することで、VRCSDKや自作ツールをより簡単に管理し、開発効率を上げることができます。VPMパッケージの作成は、最初は少しハードルが高く感じるかもしれませんが、手順を踏んで一つずつ進めていけば、きっとあなたもVPMパッケージを作成できるはずです!

VPMパッケージを使って、あなただけのオリジナルツールをVCCで配布してみてくださいね!

スライド資料はこちら

個人開発集会の他の発表もチェック!

【実践解説】ChatGPTとCursorで作るTwitterブロック拡張機能の開発手順 - 4〜5時間でリリースした話

Denoでnpmフレームワークを含むモノレポ開発の課題と解決策|個人開発集会レポート2025

VRChatのポスター管理をブラウザから!「SyncFrame」でイベント運営がもっと楽になる!

AIソフトウェアエンジニア「Devin」をのりちゃんが実際に使ってみた体験談

VRChat個人開発集会レポート!HIDEさんの「uvでPython開発環境構築」が超役立つ!

VRの新しいテキスト入力手法を考えてみた話 - VRChatでのタイピングに革命を!

個人開発集会の開催情報・参加方法

個人開発集会のポスター

個人開発集会

開催日: 2023年07月06日

開催時間: 21:00 - 22:00

開催曜日: 木曜日

開催周期: 隔週(グループA)

個人開発にまつわる話でワイワイする集会です。 個人開発をやっている方も初めてみたい方も大歓迎! 企画・技術・マーケティング・保守・運用など 技術的なことに限らない幅広い分野を想定しています。 個人開発に興味がある方はぜひ遊びに来てください!

個人開発にまつわる話でワイワイする集会です。 個人開発をやっている方も初めてみたい方も大歓迎! 企画・技術・マーケティング・保守・運用など 技術的なことに限らない幅広い分野を想定しています。 個人開発に興味がある方はぜひ遊びに来てください!