Materializr
오픈소스 파라메트릭 3D CAD로 제약 스케치·솔리드 모델·나사·SVG·텍스트 조각·STL/STEP 내보내기를 지원합니다
lilToonの見た目と対応する表情をVRM 1.0へ。VR Vlog用のUnityエクスポーター。VCC・ALCOM対応 / Unity exporter with MToon fallback.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
お気に入りのアバターをVR Vlogで使う。 lilToonのアバターを、iPhoneのVR Vlogで使う VRM 1.0 に書き出すUnity用パッケージです。 Modular Avatarを使うアバターは、Modular Avatarとその依存パッケージも事前に導入してください。 1. インストールページで VCC / ALCOMに追加 を押します。 2. VCC・ALCOMで使いたいUnityプロジェクトのパッケージ管理画面を開きます。 3. VR Vlog lilToon VRM Exporter をインストールします。 ボタンで開かない場合は、リポジトリ追加画面に次のURLを貼り付けてください。 更新するときはUnityプロジェクトをバックアップし、パッケージ一覧を更新して最新版を適用します。変更を反映するには、元のアバターからVRMを書き出し直してください。 1. インストールページの ZIPで導入 から、エクスポーター・UniGLTF・VRMの3つのZIPをダウンロードします。 2. プロジェクトの Packages 内の別々のフォルダーへ展開し、それぞれの直下に package.json がある状態にします。 3. Unityで読み込みが終わるのを待ちます。同じUniVRMパッケージを重複して導入しないでください。README 전문 보기 ↗
lilToonのアバターを、VR Vlogで使えるVRM 1.0形式に書き出すUnity用ツールです。
MITライセンスで公開しています。
| 必要なもの | バージョン・導入方法 |
|---|---|
| Unity | 2022.3 |
| lilToon | バージョンを問わず書き出せます。アプリではlilToon 2.3.4として描画するので2.3.4を推奨します(1.0.0以降と0.12.0-beta.4以降。それより前は、0.12.0-beta.1〜beta.3が2.0.0〜2.3.4、安定版0.11.15が2.3.4だけ)。VCC・ALCOMのほか、unitypackageでAssetsの下に入れたlilToonでも書き出せます |
| UniVRM | 導入不要。UniVRM 0.131.4を名前空間・シェーダー名を変えて同梱しているので、導入済みのUniVRMとはバージョンにかかわらず衝突しません |
| VR Vlog | 0.1.1(ビルド345)以降 |
| VRChat SDK | 任意。3.5.0以上3.11.0未満(3.11.0未満のベータ版を含む)で確認しています。音声再生(VRC Animator Play Audio)を含む表情ファイルを使う場合は、3.5.2以上3.11.0未満が必要です |
| NDMF | 任意。Modular AvatarなどNDMFで動くツールを使うアバターは、NDMF 1.6.0以上2.0.0未満の正式版が必要です。Modular Avatar 1.19.0-alpha.2用に、プレリリースの1.15.0-beta.1・beta.2も通します |
| Modular Avatar | 任意。Shape Changer・Object Toggle・Material Setter・Material Swap・Mesh Cutterを使うアバターは1.12.2以上1.19.0未満か、プレリリースの1.19.0-alpha.2。これらを使わないアバターはバージョンを問いません |
Modular Avatarを使う場合は、事前に導入してください。
注意
Hidden/ltsother_baker)が2.3.4と違うときだけです。互換性の詳細VCC・ALCOMのリポジトリ追加画面に、次のURLを貼り付けてください。
https://vrvlog.fun/exporter/index.json
以前の個人側・組織側のURLを登録済みなら、そのまま使えます。
VCC・ALCOMを開かずに、Unityで開いているプロジェクトへ入れられます。
com.vrvlog.liltoon-vrm-exporter-installer-<版>.unitypackage をダウンロードする。https://vrvlog.fun/exporter/index.json)がプロジェクトとVCC・ALCOMに登録され、エクスポーターが Packages に入る。インストーラーのファイルは終わると自動で消える。インストーラーは、ダウンロードした版と同じ系列(1.0.0のインストーラーなら2.0.0より前の1.x、0.12.0のインストーラーなら0.12.x)のうち、VPMの一覧にある最新の版を入れます。ベータ版のインストーラーはベータ版も選びます。Releaseに出た直後で一覧にまだ載っていない版は入らないので、少し待ってからやり直してください。特定の版を入れたいときはZIPで導入してください。
Packages 内のフォルダーへ展開する。package.json があることを確認する。安定版1.3.4の手順です。
Unityで、書き出すアバターと衣装を表示します。親オブジェクトも有効にしてください。
Hierarchyでアバターの一番上のオブジェクトを選び、メニューの VR Vlog → アプリに転送(通常)... を選びます。Hierarchyでアバターを右クリックしたときの VR Vlog にも同じ項目があります(右クリックでアプリに転送する)。prefabとして保存したアバターは、Projectでそのprefabを右クリックしたときの VR Vlog からも同じように開けます。VRMファイルだけを保存するときも、この表情ボードの3ページ目の VRMを保存 を使います。
表情ボードが開き、選んだアバターで「書き出しを準備」まで進みます。別のアバターにするときは、1ページ目の「アバター」欄の横の「変更」を押します。
見つかった表情は、すべて「その他の表情」(VRMのカスタム表情)に入ります。
.anim を「その他の表情」へドロップします。表情の名前(その表情を出すVRChatメニューの項目名も含みます)から自動で入った枠は「自動の候補○件を確定」で確定できます。表情を割り当てずに保存することもできます。
選んでから2秒で顔が止まらないメニューの表情(少し待ってから切り替わる・長いアニメーション・ループ)は、Animatorの遷移をたどった最終状態の顔で書き出し、書き出し結果の一覧に「近似」として表示します。
表情ボードは「1 表情の設定 › 2 除外するオブジェクト › 3 VRMの保存と転送」の3ページに分かれています。1ページ目で表情・瞬き・任意の全身ポーズを決め、下の 次へ:除外するオブジェクト を押します。2ページ目でVRChat用のギミックと手で外すオブジェクトを確認し(右側の全身のプレビューに、外したものがその場で消えます)、次へ:VRMの保存と転送 を押すと、変えた除外をプレビューに反映してから3ページ目へ移ります。3ページ目には名前・作者名・VRMの利用条件 の欄があり、下に VRMを保存 と QRコードを作る が並びます。作者名 を入力し、VRMの利用条件 を確認して VRMを保存 を押します。保存だけなら利用規約への同意は要りません。
全身ポーズがアプリの上限(128件、動くポーズのフレーム合計32,768、動くポーズのデータ16MB、静止ポーズのデータ2MB)を超えるときは、書き出しの途中で アプリの上限を超えた項目 の画面が1回だけ開きます。既定ではリストの末尾から外すので、残すポーズを選び直して この内容で書き出す を押します。選んだ内容はアバターの書き出し設定に保存し、次の書き出しと アプリに転送(かんたん) でも使います。外したポーズは書き出し結果の一覧に「同梱ポーズ」として表示します。上限内なら画面は開きません。
保存後は「保存先を開く」でファイルを確認できます。
アプリで髪や体が消える・透けるときは、書き出し結果のウィンドウか アプリに転送 の完了画面の 診断情報をコピー を押し、コピーした文字列を不具合の報告に貼ってください。メッシュとマテリアルの数値、書き出さなかったギミックの種類と数(外したギミック・カメラや音などのVRMに入らない部品・PhysBoneとコンストレイントの変換前後の数)と変換の内容だけで、アバター名・オブジェクト名・作者名・パスは入りません。
開発者からDMなどで詳しい情報を頼まれたときは、診断情報をコピー の右の ▾ から 名前・パスを含めてコピー(DM など非公開の場だけ) を選んでください。同じ内容に、アバター名、メッシュとマテリアルの名前・元のシェーダー名、外したギミックと部品の場所、変換の内容の文面と対象のパスを足した別の文字列をコピーします。先頭に「名前・パスを含みます。DM など非公開の場だけで送ってください」と入ります。公開のチャンネルやIssueには貼らないでください。
利用条件を設定する場合は、3ページ目の VRMの利用条件 を開き、元の利用規約に合わせてプルダウンを選びます。規約URL(VN3等)、著作権表示、第三者ライセンスも入力できます。設定は出力VRMのメタデータに保存されます。設定を開かない場合は、このアバターで前に書き出したときの設定で書き出します。記録が無ければ既定値(作者のみ・個人非営利・クレジット表記が必要・表現用途の各許可なし・再配布と改変なし)です。
保存したVRMを、VR Vlogアプリと同じ読み込み処理で開いて確認する画面です。1.0.0以降には、この画面を開くボタンとメニューがありません。開いた画面では、ほかの .vrm を VRM ファイルを開く で選べます。
この画面は、VR Vlogアプリの読み込みパッケージ(com.vrvlog.avatar-runtime)がプロジェクトに入っているときだけ使えます。このパッケージは一般には配布していません。入っていなくても書き出しは今までどおり動きます。
パッケージを参照するのは Editor/AppPreview/AvatarRuntimeBackend.cs(VRVlog.LilToonExporter.AppPreview アセンブリ)だけです。画面はこのファイルが登録するインターフェイス(Editor/AppPreviewEntry.cs の IAppPreviewBackend)だけを使います。パッケージの置き場所や名前が変わったときは、このファイルとアセンブリ定義だけを直します。
QR対応の最新iPhone TestFlight版が必要です。Android配布版では受信できません。
PCとスマホをインターネットに接続してください。
注意
QRを持つ人はアバターを受け取れます。他人へ見せないでください。
転送時は、暗号化したVRMをクラウドへ一時保存します。転送の詳細・同意事項
Hierarchyでアバターの一番上のオブジェクトを右クリックし、VR Vlog から2つのどちらかを選びます。上のメニューバーの VR Vlog にも同じ項目があり、Hierarchyで選んでいるアバターを転送します。アバターの一番上のオブジェクトを1つだけ選んでいないときは、どちらの項目も灰色で選べません。QRはスマホのカメラで読み取ります。
Projectでアバターのprefabを右クリックしたときの VR Vlog にも同じ項目があり、そのprefabを転送します。シーンに置かなくても転送・保存でき、開いているシーンとprefabは変わりません。prefabを1つだけ選んでいないときや、選んだprefabの一番上にAnimatorが無いときは灰色で選べません。
右クリック(HierarchyとProject)とメニューバーの VR Vlog には、どれも アプリに転送(かんたん)... と アプリに転送(通常)... の2つが並びます。Projectの右クリックでは、そのあとに区切り線と Validate lilToon VRM が続きます。VRMファイルだけを保存するときは、アプリに転送(通常) の3ページ目で VRMを保存 を押します。
| メニュー | 向いているとき | 流れ |
|---|---|---|
| アプリに転送(かんたん) | 表情やオブジェクトを選ばずにすぐ送る | 名前・作者名・利用規約の同意を確認 → QRコードを作る |
| アプリに転送(通常) | 使う表情を選ぶ・不要なオブジェクトを外す | 表情ボードで割り当てる → 次へ:除外するオブジェクト で外すものを選ぶ → 次へ:VRMの保存と転送 → QRコードを作る |
入力が必要なのは、名前・作者名・利用規約への同意(毎回)・プライバシーポリシーへの同意(初回だけ)です。ライセンスは VRMの利用条件 を開いて変えられます。開かない場合は前回の設定か既定値で書き出します。
.vrm に保存します。利用規約とプライバシーポリシーの同意は要りません(作者名は要ります)。アップロード中とQRの表示中も使え、転送はそのまま続きます。転送から開いたときは QRコードを作る が青いボタンです。.vrm をスマホに保存する。_LightingMode)や効果ごとの切り替えを持つトゥーンシェーダーの材質は、項目ごとに公式lilToonの同じ役割の項目へ写します。影(照明の種類ごとの境界とぼかし、影色、2つ目の影)、明るさの上限と下限、色調補正(色相・彩度・明るさ・ガンマ・グラデーション)、マットキャップ2つ、リムライト、輪郭線、発光(点滅を含む)、アルファマスク、ステンシルが対象です。公式lilToonに無い効果(デカール・ディゾルブ・グリッター・AudioLinkなど)は書き出さず、材質名と効果名を保存前に表示します。色相(元がOKLabの場合)・彩度・ランプ画像の影は近い値への置き換えで、元と完全には一致しません。他のビューアーではMToon表示になり、見た目や動く表情が異なる場合があります。
補助ギミックを自動除外 がオン(既定)のとき、VRMでは働かない次のものを書き出しから外します。外したものと、判断がつかず残したものは書き出し結果の一覧に表示します。
外したくないギミックは、表情ボード(アプリに転送(通常))の2ページ目 除外するオブジェクト にある VRChat用のギミック で 含める を選ぶと残せます。VRMに入れても、VRChatの中での動きは再現されません。選んだ内容はアバターの書き出し設定に保存します。表情ボードでは、選んだ内容を2ページ目の右側の全身のプレビューにはその場で、VRMにはページを移るときに反映します。ボーンを付け替える仕組みを 含める にすると、ヒューマノイドのボーンの親子が崩れるため書き出しを止め、崩れたボーンの名前を出します。
書き出し画面の「書き出しの詳細」を開きます。エラーが起きた対象と、表示された対処方法を確認してください。
対策候補が表示された場合は、再試行できます。成功したら、見た目を確認してVRMを保存してください。
書き出せないときは、アプリに転送 の画面に VR Vlog 動作環境 が出ます。押すと、不足しているパッケージや未対応のバージョンが表示されます。画面の案内に従って導入・更新し、もう一度書き出してください。
Unityで、その衣装が表示されているか確認してください。非表示の衣装は出力されません。表示しても出ない場合は、アバターへの接続設定を確認してください。
閉眼用の変形を自動で決められないときは、瞬きなしで保存し、警告に理由を表示します。瞬きを入れるときは次の手順で選んでください。
不具合報告に、次の内容を添えてください。
VR Vlogアプリ内の問い合わせも利用できます。
脆弱性は非公開の報告窓口へ連絡してください。再現手順や悪用条件を公開Issue・PRへ投稿しないでください。
不具合報告・改善提案・文書の修正・Pull Requestを受け付けています。投稿フォームから、使用環境・再現手順、または解決したいことを記載してください。変更の進め方と検証方法はCONTRIBUTING.mdにまとめています。
| ディレクトリ | 内容 |
|---|---|
Editor/ | Unity Editorの書き出し処理・設定画面・依存環境診断 |
Runtime/ | アバターに付ける設定コンポーネント |
Formats/ | VRMの独自拡張を読み書き・検査する共有コード(Unityに依存しない。アプリも同じものを使う) |
Schema/ | VRMに保存する独自拡張の定義とlilToonのカタログ |
Tests/・Tools/ | Unityテスト、ホスト検証、配布パッケージの生成 |
Compatibility/ | 対応する依存パッケージの方針と検証記録 |
Documentation~/ | 利用ガイドと明示的な依存修正パッチ |
Website/ | VCC/ALCOM向けのインストールページ |
ThirdPartyNotices/ | 第三者コード・ライブラリの出典とライセンス |
エクスポーターのコードはMIT Licenseで公開しています。第三者コード・依存パッケージの出典とライセンスは、それぞれの文書を参照してください。
アバターなどの素材・掲載画像には各権利者の利用条件が適用されます。画像の出典・クレジット