VRChatアバター制作者向けのUnity Editor拡張です。
アバターごとのシーン管理と、素材の整理をまとめて楽にします。
Unity初心者でも使えるよう、基本用語から説明します。
シーン(Scene) — 作業単位。アバター1体ごとなどに分けて保存する
Hierarchy — 今のシーンの中身を一覧表示するウィンドウ
GameObject — シーンに置く「もの」の単位。アバターや衣装もこれ
Project ウィンドウ — パソコン上のファイルをUnity内から見るウィンドウ
アセット — Projectウィンドウに並んでいるファイルのこと
プレハブ(Prefab) — GameObjectを1つのファイルにしたもの。衣装や小物は大抵これで配布される
Inspector — 選んでいるものの詳細・設定を表示するウィンドウ
コンポーネント — GameObjectに追加する機能の部品
ALCOM(またはVCC)の「リポジトリを追加」に、次のURLを登録してください。
https://yato96fox.github.io/UnityExpansion-Release/index.json
登録すると、パッケージ一覧に「Avatar Scene Manager (Core)」が表示されます。追加してUnityプロジェクトへインストールしてください。
それまでは上記のgit URLでのインストールを使ってください。
メニューバーの Tools → YatoCore を選ぶ。
これで専用ウィンドウが開きます。
以降の機能はすべてこの1つのウィンドウから使えます。
Inspectorの隣にドッキングして、常に開いておくのがおすすめです。
見出しの下には、常に使える操作帯があります。
選択履歴の戻る/進む
素材一覧・素材インスペクターを開く(別ウィンドウの素材ブラウザへの入口)
お気に入り
設定
ログ
「設定」「ログ」は同じウィンドウを開きます。開くタブが違うだけです。
メインの表示は「シーン管理」です。拡張機能をインストールしている場合だけ、上部に「拡張機能」タブが追加で出ます(何も入っていない環境ではタブ自体が出ません)。
「アバター名」「テーマ名」を入力。
「新規作成」を押す。
{アバター名}_{テーマ名} という名前でシーンが作られます。
アバターを選択した状態で作成すると、自動でそのアバターが配置されます。
一覧はアバター名ごとにグループ表示されます。
検索欄で名前を絞り込めます。
各シーンの行でできること。
開く
複製(衣装違いのシーンを、大本のプレハブから作り直さず作れる)
リネーム
削除
サムネイル再取得
「現在のシーンを保存」でいつでも手動保存できます。
「登録アバター」という項目もあります。
素材ブラウザでアニメーションをプレビューする時に使う、このシーンの担当アバターです。
アバターを選択して「選択中を登録」。
「解除」でいつでも取り消せます。
登録はシーンごとに別々に記憶されます。
裏側で一定間隔でシーンを複製保存します。
保存先は Assets/AvatarScenes_AutoSave/ です。
手動保存のシーン本体は上書きしません。
間隔・世代数の上限・有効無効は「設定」ウィンドウで変更できます。
過去の自動保存は「開く」で復元できます。
操作帯の「素材一覧」を押す。
Unity標準のProjectウィンドウの代わりに使える、専用ブラウザが開きます。
「フォルダ」と「シーン階層」が常に上下に並んで表示されます。
素材を探しながら、同時にシーン内の使用箇所も見られます。
「インポート履歴」は右上のボタンで切り替え表示です。
左にフォルダツリー、右にファイルのグリッド。
複数選択
ドラッグ&ドロップでのフォルダ移動
右クリックメニュー(新規フォルダ作成など)
名前をその場で書き換えられるリネーム
ダブルクリックで開く
パンくず(今いる場所のリンク)で移動
フォルダへの色付け
素材(主にプレハブ)にはタグを付けられます。
カテゴリ(ギミック/衣装/アクセサリ/アバター)
ショップ名
バリエーション名
自由なタグ
上部の絞り込みで、カテゴリやショップ名、お気に入りだけを表示できます。
検索欄は少し止まってから反映されます。タイプ中に何度も再描画は走りません。
フォルダを選ぶ。
中のUnityパッケージ(.unitypackage)をまとめてインポートします。
.zipに入っていても自動で展開します。
同じ名前のパッケージを再インポートする時、差分を確認ダイアログで表示
ファイル名の衝突を事前に警告
インポート内容は履歴に記録(「インポート履歴」タブで確認)
未タグ付けの新着素材に「NEW」バッジ
ショップ名は過去の登録から自動サジェスト
BoothManagerを使っている場合、保存先フォルダを自動検出できます。
ワンクリックでそこから直接インポートするボタンも出ます。
自動検出はベストエフォートです。
見つからない場合は「設定」ウィンドウから手動登録してください。
今開いている全シーンのGameObjectを、フォルダタブと同じ操作感のツリーで表示します。
複数選択
お気に入り登録
プレハブとして保存
右クリック「フォルダタブでこのオブジェクトの素材を表示」
フォルダタブ側からも、右クリック「シーン階層タブでこの素材の使用箇所を探す」で辿り着けます。
リネーム・削除・親子関係の変更はここではできません。
それらはUnity標準のHierarchyを使ってください。
操作帯の「素材インスペクター」から開きます。
選んだものについて、次を表示します。
プレビュー・パス・ファイルサイズ・最終更新日時
マテリアルならlilToonの簡易サマリー(色・テクスチャ・レンダーモード・発光・輪郭線)
プレハブならタグ編集フォーム・ポリゴン数・マテリアル数
Prefab Variantなら元プレハブへのジャンプボタン
関連ファイルのツリー(開いた時だけ計算するので、依存が深くても重くなりにくい)
複数選択すると、比較表が出ます。値が食い違う行はハイライトされます。
AnimationClip・AnimatorControllerを選んだ時。
シーン管理タブで登録したアバターがあれば、そのアバターでモーションを再生してプレビューします。
再生/一時停止・シークバー付きです。
未登録の場合はUnity標準のプレビューになります。
シーン階層タブ・お気に入りウィンドウで、GameObjectを右クリック。
「プレハブとして保存」を選ぶ。
Assets/OriginalProjectGeneratedPrefabs/ へ保存され、お気に入りにも追加されます。
操作帯の「★お気に入り」から開きます。
ページ分けされた一覧
矢印キー・数字キーですばやく移動
アセットだけでなくシーン上のGameObjectも登録可能
対象シーンが未オープンだと選択不可(削除はされず一覧に残る)
「設定」ウィンドウから変更できます。
階層の深さごとの色分け(編集・追加・削除・リセット可能)
各行にコンポーネントのアイコン・有効無効トグル(Alt+クリックでハイライト)
「設定」ボタン。
自動保存の間隔・世代数、Hierarchyの配色、BoothManagerの保存先などをまとめて変更できます。
「ログ」ボタン。
各機能が行った操作の履歴を確認できます。
BoothManagerの自動検出は簡易な仕組み。見つからなければ手動登録
シーン階層タブはリネーム・削除・親子関係の変更に非対応(意図的にUnity標準Hierarchyへ委任)
[YatoCoreButton]属性は全MonoBehaviourのInspectorに影響。他のInspector拡張との競合に注意
チームでプロジェクトを共有している場合の注意点。
タグ・お気に入り・インポート履歴・登録アバターは、ProjectSettings/やAssets/にファイルとして保存されます。
共有したいかどうかで、gitにコミットするか.gitignoreするか選んでください。
自動保存の複製シーンやログは、.gitignoreしておくのが無難です。
コードは機能ごとに2文字のコードで命名しています。
SM = SceneManager
AS = AutoSave
HV = HierarchyVisualizer
OP = OriginalProject
共通基盤はYatoCoreというブランド名でEditor/Extensibility/に置いています。
ユーザースクリプトから参照する型([YatoCoreButton]属性など)だけはRuntime/です。
バージョンは"{major}.{minor:D5}"形式のコード定数です。
機能追加や破壊的変更ではmajorを、軽微な修正ではminorだけを上げます。
licenseは独自ライセンス(LICENSEファイル参照)です。個人・商用利用は可、複製・再配布・再公開は禁止しています。
name・version・unity・vpmDependenciesはALCOM(VPM)に必要な構造です。変更しないでください。
OP_Window/OP_InspectorWindowの.uxml/.ussに.metaは同梱していません。初回インポート時にUnity側で自動生成されます。
このリポジトリ(UnityExpansion)はPrivateの開発用で、実際のリリース・VPMリスティングは配布専用のPublicリポジトリUnityExpansion-Release側で公開しています。
UnityExpansion(ここ): .github/workflows/release.ymlがパッケージをzip化し、UnityExpansion-ReleaseへGitHub Releaseを作成するUnityExpansion-Release: source.json・Website/・build-listing.ymlを持ち、リリースが作られるたびに自動でVPMリスティング(index.json)をGitHub Pagesへ公開する初期設定(完了済み)。
UnityExpansion側: リポジトリ変数PACKAGE_NAME = jp.yato.avatarscenemanager、Secrets PUBLIC_REPO_TOKEN(UnityExpansion-ReleaseへのContents書き込み権限を持つFine-grained PAT)UnityExpansion-Release側: PagesのソースをGitHub Actionsに設定済みpackage.jsonのversion(semver)の上げ方。
major(例: 1.0.0)minor(例: 0.1.0)patch(例: 0.0.1)リリースのたびに、次の手順を行います。
package.jsonのversionを上げてUnityExpansionのmasterへpush
UnityExpansionのActionsタブ → Build Release → Run workflow
UnityExpansion-Release側にリリースが作られると、そちらのBuild Repo Listingが自動で走りGitHub Pagesへリスティングが公開される
公開されたリスティングのURLはhttps://yato96fox.github.io/UnityExpansion-Release/index.jsonです。
jp.yato.avatarscenemanager
未設定
0.4.0
2022.3 以降
なし
なし
なし
SEE LICENSE IN LICENSE
yato