← チュートリアル目次へ戻る | ← 第2章: 初期 VRM データ生成
本章では、第2章で作成した Base VRM(BasicFemale.vrm) と FBM VRM(SampleI.vrm) を Unity 上の ShapeSync Editor に登録し、体型変形が可能な Figure アセットを生成して、アニメーション再生下での初期動作確認を行う手順を解説します。
[!NOTE] Figure 登録において、Mesh Utility 等による事前のメッシュ結合作業は不要です。作成した VRM ファイルをそのまま ShapeSync Editor に登録します。
作業に入る前に、本章で使用する基本概念を説明します。
.prefab)。※Runtime そのものではなく、作成・編集用の設定アセットです。Save to Database を実行することで Database に確定保存されます。まずは ShapeSync Editor を起動し、作業データを保存する Database を作成します。
Database フィールドの横にある New Database ボタンをクリックします。Create ShapeSync Database 保存ウィンドウが表示されるので、保存先フォルダを選択し、初期ファイル名(ShapeSyncDatabase.prefab)のまま保存します。
▲図 3-1: ShapeSync Editor の General 画面と Database 作成ダイアログ
基準となる標準体型モデル(BasicFemale.vrm)を Figure として登録します。
Figure セクションを選択します。Figure Name に、登録する論理名(BasicFemale)を入力します。Figure prefab フィールドに、Project ウィンドウの Assets/VRM/BasicFemale.vrm をドラッグ&ドロップして指定します。Save to Database ボタンをクリックして、Figure の設定を Database に保存します。
▲図 3-2: Figure セクションで BasicFemale.vrm を指定し Save to Database を実行
Figure 登録後、Database 内でマテリアルを論理名で正しく管理するため、Material Entry の名前を整理します。
Figure > Materials セクションを選択します。MouthIrisHighlightFaceEyeWhiteBrowEyelashEyelineBodySave to Database ボタンをクリックして確定保存します。
▲図 3-3: Materials セクションで 9 件の Material Entry 名を変更して保存
[!TIP] Entry 名は ShapeSync の Database 内で論理的に扱うための識別名です。Entry 名を変更しても、元の VRM やマテリアルの source asset 自体は一切変更されません。
体型変形用の FBM モデル(SampleI.vrm)を FBM 軸として登録します。
Figure > FBMs セクションを選択し、Register FBMs 画面を開きます。Add FBM Entry ボタンをクリックして、新しい FBM 行を追加します。FBM Name に SampleI と入力します。Source Prefab フィールドに、Project ウィンドウの Assets/VRM/SampleI.vrm をドラッグ&ドロップして指定します。Import All Materials and Textures のチェックボックスを ON(チェックあり) にします。
[!NOTE] この項目は初期状態では OFF になっています。第5章で扱う「Skin Shape(肌の質感や色味の調整)」で参照するために、FBM 側のマテリアルとテクスチャを取り込む目的で有効化します。
Save to Database をクリックして設定を確定します。
▲図 3-4: FBMs セクションで SampleI を追加し、Import All Materials and Textures を ON にして保存
登録したデータから、体型変形に対応した Figure アセットを出力(Generate)します。
Generation セクションを選択します。Registries/、Bindings/、Materials/、Textures/、Outfits/、VRM/)は 既定のまま変更しません。Generate ボタンをクリックします(※このセクションの Save to Database は使用しません)。Generate ShapeSync Figure 保存ウィンドウが表示されるので、出力先となるルートフォルダを選択します。
▲図 3-5: Generation セクションで既定設定のまま Generate を実行
生成された Figure を Scene に配置し、アニメーション再生下で体型がスムーズに変形することを確認します。
動作確認には、配布用の CC0 1.0 ライセンスのアニメーションパッケージを使用します。
Walking.controller、T-pose.controller、アニメーション FBX、および LICENCE.txt が含まれています。Animator コンポーネントにある Controller に Walking.controller を割り当てます。DynamicBoneBlender コンポーネントを開きます。blendName が SampleI となっている対象行の weight スライダーを 0 から 1 に動かします。
▲図 3-6: Play Mode で Walking.controller 再生中に SampleI の weight を操作して体型変化を確認
FigureGenerateMeshBuildFailed が表示されるFigureGenerateMeshBuildFailed: FigureMeshBuildInvalid: FBM topology does not match Base: SampleI
code=DomainFailure; domain=figure-generate; domainCode=FigureMeshBuildInvalid; tokenIndex=-1; instructionPointer=-1; wordId=<none>; bindingName=<none>; detail=<none>
▲図 3-7: Generate 失敗時に表示される診断メッセージ例
Animator コンポーネントに Controller が割り当てられていないか、Animator が無効になっています。Animator コンポーネントの Controller フィールドに Walking.controller が指定されているか確認してください。