AssetCatalog
- Digital0 JPY









VRChatワールド用アセットリスト作成スクリプトです。 下記のワールドで使用しています。 https://vrchat.com/home/launch?worldId=wrld_645916bb-7b93-4b28-87e6-77ca8c7806bb ◆特徴 - テキストファイルで管理編集できます。 - TSVなため、Google SpreadsheetやExcelで作成してコピペできます。 - VRChat内でURL部分を選択すると、URLをコピー可能です。 ◆注意点 過去バージョン(2025/12/19~2026/03/15)を使用している場合、 Unityプロジェクト内の「Assets/PoppoWorks/AssetCatalog」を削除してから unitypackageを適用してください。 その際、使用しているTSVファイルはそのまま利用できますので、 どこかに退避しておくことをお勧めします。 ◆使用方法 1. 空のGameObjectにAsset Catalog GeneratorをAdd Componentします。 2. TSV Fileの項目に下記で説明しているTSVファイルを設定します。 3. Loadボタンを押します。読み込まれた内容が正しいか確認します。 4. Generateボタンを押します。アセット一覧が生成されます。 Googleスライドで簡易説明書を作成しました。参考にして下さい。 https://docs.google.com/presentation/d/138bEZExBsNBwCpqOztFth9S_WNEtu635zJjoYnZS3Fc/edit?usp=sharing ◆TSVファイルの書式 TSVファイルは、カテゴリ、タイトル、コメント、URLを記述します。 空行を入れるとアセットリスト上でも空行が入ります。 Google Spreadsheetで管理することを想定しています。 サンプルを用意しました。 https://docs.google.com/spreadsheets/d/1EGbwjSrf4VAlpBn0It93L9F2cpp5BkWTdGJehjHGwB4/edit?usp=sharing ◆QRコードについて QRコードは GoQR.me API https://goqr.me/api/ を使用してエディタ上で生成され、テクスチャとして埋め込まれます。 QRコードは株式会社デンソーウェーブの登録商標です。 ◆ライセンス ライセンスはCC-0です。ご自由にご利用ください。許諾なく改変再配布可能です。 ◆お問い合わせ 何かしら問題があれば、Twitter (@hato_poppo_life) などでご連絡ください。 対応できる範囲で対応させていただきます。 下記GitHubのissueでも問題ありませんが、気づくまで時間がかかるかもしれません。 https://github.com/hatolife/AssetCatalog ◆補足 コードはClaude CodeとCodexを用いて作成しました。 寄付などは受け付けておりません。 VRChatやTwitterでお友達になっていただいたほうが嬉しいです。 ◆更新履歴 2025/12/19 初版公開 2026/03/15 第2版公開 一度取得したQRコードをキャッシュするように改良 インスペクタの改良 --- 以下 Codex 作成の README.md の抜粋 --- # AssetCatalog VRChat 向けのアセット一覧 UI 生成ツールです。`tsv` で管理したデータを Unity Editor 上で読み込み、ワールド空間 UI と URL 表示、QR コード画像をまとめて生成します。 ## 構成 - `Editor/`: インスペクタ拡張、TSV 読み込み、QR コード生成 - `Runtime/`: 生成対象コンポーネント本体 - `Runtime/Data/`: カタログ用データ型 - `Runtime/Udon/`: UdonSharp 連携用コンポーネント - サンプル入力: [sample_assets_list.tsv](/home/user/work/AssetCatalog/PoppoWorks/AssetCatalog/sample_assets_list.tsv) ## 主な使い方 1. シーン内の空の GameObject に `Asset Catalog/Asset Catalog Generator` を追加 2. `TSV File` に `.tsv` アセットを割り当てる 3. 必要なら `Open With Default App` で元ファイルを開いて編集する 4. `Load` で TSV を読み込み、インスペクタ上で内容を確認する 5. `Generate` を実行して UI を生成する 生成処理は Editor 実行前提です。ワールド実行中に TSV を読み込む仕組みではありません。 ## 生成されるもの - ルート直下に `CanvasRoot` を作成 - その配下に `ScrollView`、`Viewport`、`Content`、縦スクロールバーを構築 - グループ見出しごとに `■ グループ名` を生成 - 各エントリにタイトル、コメント、URL 表示欄、必要なら QR コードを生成 既存の子オブジェクトは `Generate` 実行時に一度消去されます。Prefab インスタンス上で実行した場合は、必要に応じて自動で unpack されます。 ## TSV 形式 ヘッダーは固定で、以下の 4 列を使います。 ```tsv category title comment url グループ1 タイトル1 コメント1 https://example.com/1 グループ1 タイトル2 コメント2 https://example.com/2 グループ2 タイトル3 コメント3 https://example.com/3 ``` - 1 行目は必ずヘッダー - 空行はスペーサーとして扱われます - `category` は連続している行単位で 1 グループになります - 同じ `category` が離れた位置に再登場した場合は別グループとして扱われます - `\t`, `\n`, `\r` はエスケープ文字として保存できます - `url` が空なら URL 表示欄と QR コードは生成されません









