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で配布してみてくださいね!

スライド資料はこちら

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

いいプロンプトの極意はチーム開発スキルにアリ!~LLMとの対話で広がる個人開発の可能性~

P2Pで作る異世界:fogさんのVRChat個人開発集会発表内容を徹底解説!

UnityプロジェクトをGitで管理して開発効率を爆上げ!バージョン管理で開発の悩みを解決

パチンコで稼ぐってホント?パチプロのひねりさんが語る、稼ぎ方と収支の秘密!

VRChat個人開発集会で聞いた!認証機能を分離してアプリ開発を効率化する方法

最強のWeb開発環境を求めて:GPT Engineerの活用と課題