概要
Unity のアバターや 3D モデルを、CatsUdon のワールドで表示できるモデル形式 (.cudm) に変換する機能です。
Unity で着せ替えたりポーズを付けたりしたアバターを、そのままの見た目で CatsUdon のワールドに置けます。小物や飾りのモデルにも使えます。アニメーションを付けることもできます。
利用条件
- CatsUdon サポーター向けの機能です。 VazaR アカウントでログインし、サポーター登録と VRChat 連携を済ませてください。
- Unity 2022.3 (VRChat で使うバージョン) が必要です。アバターの改変に使っている Unity のプロジェクトに、そのまま入れて使えます。
- 変換したモデルを 3D モデルリストに登録するには、CatsUdon Image Server への接続が必要です。
できること
Unity で決めたポーズ・衣装・位置をそのまま変換します。lilToon のマテリアル設定も引き継ぎます。
テンプレートを使えば、ボーンの動き・表情 (BlendShape)・オブジェクトの表示切り替えを含められます。
モデルは URL から読み込むので、ワールドを作り直さなくても追加・差し替えができます。
テクスチャを圧縮し、同じメッシュを使う部分はデータをまとめるので、ファイルが小さくなります。
ワールドで使えないシェーダーは自動で lilToon に置き換えるので、変換が止まりません。
アップロードした unitypackage は変換の開始時に、変換結果は受け取った時点でサーバーから削除されます。受け取らなくても 7 日で自動で消えます。
このページの用語
- unitypackage (ユニティパッケージ)
- Unity のファイルを 1 つにまとめて受け渡すためのファイルです (拡張子
.unitypackage)。入稿ツールの配布と、変換に出すアバターの書き出しの両方に使います。 - .cudm
- CatsUdon のワールドで表示するためのモデルのファイルです。この機能で作ります。
- Hierarchy (ヒエラルキー)
- Unity の画面の左側にある、シーンに置いた物の一覧です。
- Project (プロジェクト) ウィンドウ
- Unity の画面の下側にある、プロジェクトに入っているファイルの一覧です。
- 子にする
- Hierarchy で、ある物を別の物の上にドラッグ&ドロップすると、その中に入ります (名前が一段右に下がって表示されます)。中に入った物を「子」と呼びます。
- CatsUdonExporter
- 入稿ツールが作る「書き出し用の入れ物」です。この中に入れた物だけが変換されます。
- CatsUdon Image Server
- CatsUdon Studio のファイル置き場です。変換したモデルをここに置き、ワールドから読み込みます。
準備: 入稿ツールを Unity に入れる
入稿ツール (CatsUdonTools) は、アバターとその素材を、変換用の unitypackage にまとめる Unity 用のツールです。最初に 1 回入れれば、あとはずっと使えます。
CatsUdonTools.unitypackage を保存するCatsUdonTools フォルダができていれば完了です
Assets の中に CatsUdonTools フォルダができます.cs / .dll など) は書き出しに含まれません。手順 1: 書き出し用のテンプレートを作る
シーンに CatsUdonExporter (書き出し用の入れ物) と、床の形をしたガイドが作られます。ガイドは展示範囲 (4 m 四方) の目安で、書き出しには含まれません。
CatsUdonExporter ができます 2 シーンに床のガイドが表示されますCatsUdonExporter があるときは、新しく作らずにそれが選ばれます。手順 2: アバターを置く
CatsUdonExporter の上にドラッグ&ドロップして「子」にする。アバターの名前が一段右に下がれば OK です
MyAvatar) が CatsUdonExporter の中に入っている 2 床のガイドの上に立っている。例の人形は説明用に図形で作ったものですCatsUdonExporterの中にある物だけが書き出されます。外に置いた物は書き出されません。_IgnoreCatsUdonGuidesという名前の物 (床のガイド) と、EditorOnlyタグを付けた物は、子ごと書き出しから外れます。Unity 上だけで使う参考用の物に使えます。- チェックを外した (非アクティブな) 物は、ワールドでは表示されません (アニメーションで表示するものを除く)。
手順 3: unitypackage に書き出す
CatsUdonExporter が入っていることを確かめる。空のときは、Hierarchy から CatsUdonExporter をドラッグして入れます- _ だけが使えます (例: MyAvatar)
書き出しが終わると Status に Completed と表示され、unitypackage の入ったフォルダが開きます。ファイル名は「Package Name_日付_時刻.unitypackage」です。このファイルを、次の手順で CatsUdon Studio に渡します。
Library → RemoteModelPublisher にあります。- マテリアルとテクスチャを入稿用のフォルダ (
Assets/CatsUdon_Submission/<Package Name>/) に複製し、テクスチャに圧縮 (Crunch) を設定します。元のマテリアル・テクスチャは変更しません。 - スクリプトと、VRChat SDK・lilToon などのパッケージ本体は含めません。
CatsUdonExporterの直下にライト (Directional Light) が無ければ、展示用のライト (白・影なし・正面から 50° 下向き) を足します。直下にライトを置いておけば、それが展示用のライトになります。
手順 4: CatsUdon Studio で変換する
.unitypackage を、点線の枠にドラッグ&ドロップする (枠をクリックして選んでも OK)。ファイル名が表示されたら 変換を開始 を押す
手順 5: ワールドで使う
.cudm を点線の枠にドロップする。CatsUdon Image Server に保存され、URL が登録されます
.cudm をドロップしますアニメーション
動きを 1 種類付けたいときは、入稿ツールに入っている 3 つのテンプレート (Animator Controller) のどれかを使います。テンプレートは Assets/CatsUdonTools/AnimationTemplates/ にあります。複数の動きを切り替えたいときは、複数のアニメーションを持たせるを見てください。
| テンプレート | 再生のしかた |
|---|---|
OneShot | 1 回再生して、最後のフレームで止まる |
Loop | くり返し再生する |
IntroLoop | はじめの部分を 1 回再生してから、くり返しに入る |
.controller を複製する (Project ウィンドウで選んで Ctrl + D)| 反映される | 反映されない |
|---|---|
| ボーン・Transform の動き | マテリアルの変更 |
| BlendShape のウェイト (表情など) | ルートモーション |
| GameObject / Renderer の ON / OFF | コライダー・動画のアニメーション |
| 複数オブジェクトの同時再生 | BlendShape の多段フレーム |
- アニメーションさせる部分のシェーダーは lilToon (lilToon Multi を除く) か Unlit/Texture にしてください。それ以外のシェーダーの部分は、止まった形で表示されます。
- BlendTree は使えません。Speed は 0 より大きくしてください。くり返すクリップは Loop Time を有効にしてください。
- Animator の入れ子もできます (子は親の再生時間で切り取られます)。
- 変換は 30 分以内に終わる必要があります。とても長いアニメーションは避けてください。
複数のアニメーションを持たせる
1 つのモデルに「待機」「手を振る」「踊る」のような複数のアニメーション (クリップ) を持たせられます。ワールドでは、CatsUdon のコマンド (/anim-play など) でクリップを切り替えます。置いた直後に流れるのは、1 番目のクリップです。
Controller は入稿ツールの画面で作ります。テンプレートを複製する必要はありません。
| 列 | 入れるもの |
|---|---|
| 名前 | コマンドで打つ名前です (Idle・Wave など)。1〜32 文字で、ほかの行と重ならない名前にします。空白と . , " ' は使えません。# で始まる名前と、数だけの名前 (2 など) も使えません。クリップを先に入れると、クリップの名前から自動で付きます。 |
| 種類 | Loop はくり返し再生です。Oneshot は 1 回再生して、最後のフレームで止まります。IntroLoop は、はじめの部分を 1 回再生してからくり返します。 |
| fps | 30 か 15 です。15 にするとファイルが小さくなりますが、速い動きや揺れ物は粗くなります。 |
| クリップ | 再生するアニメーションクリップです。IntroLoop では、はじめの部分とくり返す部分の 2 つを入れます。 |
- 上から順に 1 番・2 番…がクリップの番号です。1 番目のクリップが最初に流れます。
- クリップは 16 個までです。合計の長さは 60 秒までを目安にしてください (15 fps のクリップは半分に数えます)。長いほどファイルが大きくなり、変換にも時間がかかります。
- 入れた内容に問題があると、画面が赤か黄色で知らせます。赤のあいだは Controller を作る を押せません。
- 入れ子の子の Animator には、複数のクリップを持たせられません。子は 3 つのテンプレートのどれかにしてください。
作った Controller を Animator ウィンドウで開くと、Base Layer にクリップごとのサブステートマシンが並びます。名前がクリップの名前で、上から順にクリップの番号です。
Idle へ向かいますコライダー
- Box / Sphere / Capsule Collider と、メッシュを設定した Mesh Collider が変換され、ワールドでもコライダーとして作り直されます。
- 非アクティブな物に付いたもの・チェックを外した (無効な) もの・Is Trigger のものは変換されません。
- Mesh Collider の Convex の設定は使われず、メッシュの形のまま変換されます。
- Mesh Collider の頂点は、表示用の頂点とは別にファイルに入ります。箱で足りるところは Box Collider にすると軽くなります。
変換時の自動調整
ワールドでそのまま表示すると崩れるものは、変換のときに自動で調整します。元のアセットは変更しません。
| 対象 | 調整 |
|---|---|
| lilToon / Standard / Unlit/Texture | そのまま使います |
| lilToon Multi | 通常の lilToon に置き換えます (設定はそのまま) |
| その他のシェーダー | lilToon に変換します。メインテクスチャ・色・透明の種類・カリング・ノーマルマップ・発光を引き継ぎます。見た目は近いものになりますが、同じにはなりません。 |
| 画面効果などのエフェクト用シェーダー | 表示しません |
| チェックを外した (無効な) Renderer | 表示しません |
| 展示用のライト | CatsUdonExporter 直下のライトを使います。無いときや、アバターの中のライトが先に見つかるときは、展示用のライトを補います |
制限・注意事項
| 項目 | 内容 |
|---|---|
| 変換されないもの | パーティクル、UI (uGUI)、カメラ、RenderTexture、スクリプト、PhysBone や Constraint などの動き (アニメーションとして記録したものを除く) |
| 表示されないもの | 非アクティブなオブジェクト (アニメーションで表示されるものを除く)、チェックを外した Renderer、LOD の 2 段目以降 (最も細かいレベルだけを変換します) |
| ファイルの大きさ | unitypackage は 1 GB まで。頂点数が非常に多いモデル (数百万頂点規模) は変換できません |
| 件数・期限 | 1 人 1 件ずつ。変換結果の受け取りは 7 日以内 |
| かかる時間 | 順番待ちのうえで、数十秒〜数分。アニメーション付きは長めです |
| Studio での表示 | 形だけ (灰色) の表示です。見た目はワールドで確かめてください |
うまくいかないとき
メニューに CatsUdon が出てこない
入稿ツールのインポートが終わっているか確かめてください。Unity の Console に赤いエラーが出ていると、メニューが表示されないことがあります。エラーを直してから、もう一度確かめてください。
Export UnityPackage が押せない
Export GameObject が空になっていないか、Package Name に半角英数字と - _ 以外の文字 (日本語・空白など) が入っていないかを確かめてください。Play モード中も押せません。
書き出したファイルが見つからない
Unity のプロジェクトのフォルダの中の Library → RemoteModelPublisher にあります。
見た目が Unity と違う
lilToon・Standard・Unlit/Texture 以外のシェーダーは、自動で lilToon に変換するため見た目が近似になります。変換時の自動調整を見てください。気になる部分は Unity 上で lilToon にしてから書き出すと確実です。
変換に失敗した
変換画面に失敗の理由が表示されます。このジョブを破棄 を押してから、直した unitypackage をもう一度アップロードしてください。
「前回のジョブが残っているため…」と表示される
変換は 1 人 1 件ずつです。前回の変換結果を受け取るか、破棄してください。アップロードの途中で止まったものは、30 分たつと自動で解除されます。
VazaR のログインが切れた
表示されるボタンから、小さなウィンドウで再ログインしてください。ログインが済むと、続きから再開します。
入稿ツールを新しくしたい
最新の CatsUdonTools.unitypackage をダウンロードして、同じ手順でインポートしてください。
更新履歴
- 1 つのモデルに複数のアニメーション (クリップ) を持たせ、CatsUdon のコマンドで切り替えられるようにしました (複数のアニメーションを持たせる)。
- 入稿ツールを更新しました。複数のクリップの Controller を作る画面が増えました。新しい入稿ツールをインポートしてください。
- CatsUdon Studio で、.cudm のモデルに色と模様 (テクスチャ) が付くようにしました。これまでは色の無い灰色の形でした。
- 入稿ツールを更新しました。新しい入稿ツールをインポートしてから、書き出し直してください。
- 入稿ツールをインポートしても、何も取り込まれない不具合を修正しました。
- .blend など、Unity だけでは読み込めない形式のモデルも表示されるようにしました (入稿ツールがメッシュを Unity の形式で書き出します)。
- Unity の Packages フォルダにある画像 (VCC で入れたシェーダーの MatCap など) も、入稿物に含めるようにしました。これまでは、その部分が白くなっていました。
- CatsUdon サポーター向けの機能になりました (β)。
- 入稿ツールを更新しました (展示用ライトの判定を修正)。新しい入稿ツールをインポートしてください。
- 縮小・拡大したアバター (Transform の拡大率が 1 以外) で、パーツがずれたり見えなくなったりする不具合を修正しました。
- ワールドで使えないシェーダーを、自動で lilToon に変換するようにしました。画面効果などのエフェクト用シェーダーは表示しないようにしました。
- チェックを外した (無効な) Renderer を表示しないようにしました。
- アバターの中のライトを、展示用のライトとして使わないようにしました。
- 変換を 1 人 1 件ずつにし、前回のジョブに戻る・破棄する操作を追加しました。
- アップロードした unitypackage を、変換の開始時にサーバーから削除するようにしました。
- 入稿ツールが、マテリアルとテクスチャを入稿用に複製して圧縮するようにしました (変換後のファイルが小さくなります。元のファイルは変更しません)。
- β 版を公開しました。
- .cudm を 3D モデルリストに登録して配置できるようにしました (Studio 上は形だけの表示)。
- 変換中に VazaR のログインが切れても、小さなウィンドウで再ログインして続きから再開できるようにしました。
- LOD は最も細かいレベルだけを変換し、同じメッシュを使う部分のデータをまとめてファイルを小さくしました。
- 入稿ツールを、
CatsUdonExporterのテンプレートに置いて書き出す方式にし、アニメーションのテンプレートを同梱しました。