【爆速】ALCOM、使ってみた

## 変更履歴
* 2025年6月: ALCOM バージョン1.1.0へ追従
* 2024年4月: この記事を公開

## ALCOMとは？
皆さんはALCOMというアプリケーションをご存知だろうか？去年4月、anatawa12氏が「VCC[^1]互換」として0.1.0リリースを発表したアプリケーションである。

https://x.com/anatawa12_vrc/status/1780846892697719228

当時はまだ0.1.0であったことから、万人に向けられたものではなかった[^2]。
しかし、同時にVCCの不具合に比べてにうんざりしているユーザーにとっては試す価値のあるものであった。
0.1.xのリリースを積み重ね、今年1月には晴れて1.0.0がリリースされた。

## はじめに
この記事の初版を書いた頃からバージョンが大きく変わったため、1.1.0を基準とする。

なお、一部の画像では内容が変化する部分がある。そのような部分はオレンジ色のフォント、かつ前後に「※」をつけることによって内容の変化を示すこととした。

## インストール
1. [ALCOMのダウンロードページ](https://vrc-get.anatawa12.com/alcom/)へ行く
1. 「最新版をダウンロード」の右にあるボタンをクリック
1. ダウンロードが終わったら起動。このような画面が出てくる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373406/b2d09256-9c1f-4e79-9796-94c5fa8641c0.png)

## 初回セットアップ
TBD

## プロジェクトの追加
VCCをインストールしているのであれば、VCCで作ったプロジェクトは自動で引き継がれるためおそらくこの操作は必要ない。しかし、時にはALCOMからプロジェクトを追加したくなるかもしれない。

### 新規プロジェクトを作成
ウィンドウ右上の「プロジェクトを作成」を押すと、次の画面が出てくる。

![NewProject.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373406/bd603bda-ce03-4fa4-aee1-276ee7d5260d.png)

#### テンプレートの選択
適切なテンプレートを選択することで、VRChat SDKをセットアップする手間を省略することができる。

* Avatars: VRChatのアバター改変をするためのテンプレート
* Worlds: VRChatのワールド制作をするためのテンプレート
* Blank: 何もないテンプレート

特に理由がなければ、AvatarsかWorldsのどちらかにする。

#### Unity のバージョン

特に理由がなければ最新を選ぶ。1.1.0時点で確認できる最新は `2022.3.22f1` だが、他のバージョンを選ぶこともできる。

* Avatars または Worlds:
    * **2022.3.22f1** (執筆時点の**最新**)
    * 2022.3.6f1
    * 2019.4.31f1
* Blank
    * 任意のUnityのバージョン

#### プロジェクトの名前とパス
プロジェクトの名前、後で見た自分がわかりやすいものにすることが推奨される。また、一部のツールでは正しく動作しないため、半角英数字のみにすることが推奨される。

プロジェクトのパスは既定で入力されているが、気に食わなければ変えることもできる。

### 既存プロジェクトを追加
すでにプロジェクトを作っている場合、ウィンドウ右上の[v]となっているボタンを押して既存のプロジェクトのディレクトリを選択する。

![AddProject.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373406/5685bf31-80c8-4598-a93f-9f5c589acb58.png)

## プロジェクトの管理
プロジェクトが正常に追加できると、次のような画面になるはずだ。
![NewProjectCreated.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373406/d1b1e1da-3bdd-47eb-a45a-260abc5149c3.png)

テーブルの下側にあるスクロールバーを引っ張るか、ウィンドウの縁をドラッグしてウィンドウのサイズを変えると、もう少し出てくる。

![NewProjectCreated2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373406/eb3dbf44-28a4-4837-ba80-020905ed4a92.png)

左から右に、それぞれのカラムやボタンの意味:
* 名前: 自分でつけた名前と、プロジェクトが保存されているパスが表示される
* 種類: ワールドのプロジェクトか、アバターのプロジェクトかが表示される
* Unity: 使用しているUnityのバージョンが表示される
* 最終更新日: 更新された日時を表示する
* \[UNITYを開く]: プロジェクトをUnityエディターで開く
* \[管理]: プロジェクトにインストールされているパッケージを管理する。後述
* \[バックアップ]: プロジェクトが失われても良いように、バックアップを作成する
* \[…]: プロジェクトフォルダを開いたり、プロジェクトを削除したりする

### パッケージの管理
[管理]と書かれたボタンを押すと、パッケージを管理する画面が開く。
この記事の読者であれば、VCCで見慣れた画面であることに気がつくだろう[^3]。

![PackageManagement.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/373406/2a5c1e51-1a6a-4950-96eb-fcb8f8702d7b.png)

説明:
* 左のチェックボックス: 一部のパッケージを選択し、一括で更新・削除できる
* パッケージ: パッケージの名前とパッケージ名
* インストール済み: インストールされているバージョン。インストールされていない場合は「なし」と表示される
* 最新のバージョン: 検知された最新のバージョン
* ソース: どの「リポジトリ」からパッケージを取得してきたか表示している。「Official」や「Curated」と表示されている場合は、[VRChatが管理](https://vcc.docs.vrchat.com/vpm/packages/#official-packages) しているリポジトリから取得している
* \[-]や\[+]: パッケージを単体で削除やインストールできる
* VPMリポジトリを選択: パッケージ管理で表示するパッケージを、ソースのリポジトリで選択できる

## Q&A
### Q. VRChatではないプロジェクトにも使える？
A. **おそらく。**
そのような使い方が意図されているものかどうかはさておき、活用例はある:

https://x.com/vr_hai/status/1780773529501286643

### Q. ALCOMはVCCの上位互換？
A. **いいえ。**
執筆時点では未実装機能があるため厳密には上位互換ではない。

ソース: https://misskey.niri.la/notes/9s9j0jkbkt

### Q. オープンソース？
A. **はい。**
GitHubで管理されている: https://github.com/vrc-get/vrc-get/tree/master/vrc-get-gui

### Q. vrc-getと互換性はある？
A. **はい。**

ソース: https://misskey.niri.la/notes/9s9j7vqm46

## 終わりに
Backup Your Projects!

[^1]: [VRChat Creator Companion](https://vcc.docs.vrchat.com/)のこと。
[^2]: 例えば、セマンティックバージョニング2.0.0においては「0.y.zのような初期の開発フェーズにおけるバージョンは…」としてそのような慣行があることを示唆している ([日本語訳](https://semver.org/lang/ja/#0yz%E3%81%AE%E3%82%88%E3%81%86%E3%81%AA%E5%88%9D%E6%9C%9F%E3%81%AE%E9%96%8B%E7%99%BA%E3%83%95%E3%82%A7%E3%83%BC%E3%82%BA%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE%E5%8F%96%E3%82%8A%E6%89%B1%E3%81%84%E3%81%AF%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%81%B9%E3%81%8D%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B))。
[^3]: 実際の設計思想として、VCCにユーザーインターフェースを寄せてある。