← チュートリアル目次へ戻る | ← 第12章: Atlas(テクスチャ・マテリアルの統合による VRAM 削減と Humanoid 再生成)
本章は ShapeSync Asset チュートリアル(Spec 23)の 最終章 です。
第11章の Humanoid Compiler では Unity エディタ上で事前にアセットファイル(.prefab, .asset)として Humanoid をビルドしましたが、本章で解説する Hot Bake は、ゲーム実行時(Runtime)にメモリ上で動的に Humanoid を組み立てて生成する機能です。
Scene 上に別の ShapeSync Figure を直接置く必要はありません。空の GameObject に Animator と HotBake Figure コンポーネントを追加し、Figure / Document(および必要な Atlas Schema)を指定するだけ で、実行時に子階層へ完全な Humanoid モデルが自動生成されます。
Assets/ShapeSync/Generated/BasicFemale.prefab(第3章で生成)Assets/ShapeSync/ShapeSyncDocumentA.asset(第10章で保存: Tops + Skirt 姿)Assets/ShapeSync/ShapeSyncDocumentB.asset(第10章で保存: Dress 姿)Assets/ShapeSync/AtlasSchema.asset(第12章で作成)Assets/CC0Animation/Walking.controller(第3章で導入)まずは、Document A(セパレート衣装)と第12章の Atlas Schema を適用した 1 体目の実行時生成オブジェクトを作成します。
Create Empty を選択して空の GameObject を作成します。HotBakeFigureA に変更します。Position が (0, 0, 0)(X: 0, Y: 0, Z: 0)になっていることを確認します。
▲図 13-1-1: Hierarchy ウィンドウの右クリックメニューから「Create Empty」を選択して空の GameObject を作成する操作
▲図 13-1-2: 作成した空の GameObject(HotBakeFigureA)と Position (0, 0, 0) の初期状態
HotBakeFigureA の Inspector で Add Component ボタンをクリックします。anim と入力し、表示された Animator をクリックして追加します。Add Component をクリックし、検索欄に Hotbak(または hotbake)と入力して Hot Bake Figure(zgock.ShapeSync.StackMachine.Humanoid)をクリックして追加します。
[!NOTE] Animator との依存関係:
HotBake Figureは、自身または親階層に Unity 標準のAnimatorコンポーネントが存在することを前提として動作します。
▲図 13-2-1: Add Component の検索欄で「anim」と入力して Animator コンポーネントを追加する操作
▲図 13-2-2: Add Component の検索欄で「Hotbak」と入力して Hot Bake Figure コンポーネントを追加する操作
▲図 13-3: HotBakeFigureA に Animator および Hot Bake Figure コンポーネントが追加された直後の Inspector 初期状態
HotBakeFigureA の Hot Bake Figure コンポーネントに、以下の項目を設定します。
| 設定項目 | 設定値 | 備考 |
|---|---|---|
Figure Prefab |
BasicFemale.prefab |
Assets/ShapeSync/Generated/BasicFemale.prefab を指定 |
Document |
ShapeSyncDocumentA.asset |
Assets/ShapeSync/ShapeSyncDocumentA.asset を指定 |
Atlas |
AtlasSchema.asset |
Assets/ShapeSync/AtlasSchema.asset を指定 |
Require Atlas |
ON(チェックを入れる) | Atlas Schema を必須として適用 |
Physics Transport |
ON(チェックを入れる) | ※VRM 連携環境でのみ表示されます |
Spawn Targets |
空のまま(0) | 実行時に自動管理されます |
HotBakeFigureA の Animator コンポーネントの Controller 欄に、Assets/CC0Animation/Walking.controller をドラッグ&ドロップして指定します。
▲図 13-4: HotBakeFigureA の各プロパティ(Controller: Walking, Figure: BasicFemale, Document: ShapeSyncDocumentA, Atlas: AtlasSchema, Require Atlas: ON, Physics Transport: ON)を設定した状態
HotBakeFigureA の子階層へ BasicFemale(Clone)(Clone) や TextureStackMachineHost(Clone) が動的に生成されます。Animator の Avatar に生成された Avatar が自動的に割り当てられます。Hot Bake Figure の Spawn Targets が自動的に 1 となり、生成完了が示されます。
▲図 13-5: Play Mode 中に HotBakeFigureA の子階層へ Humanoid が動的生成され、セパレート衣装で歩行アニメーションが再生されている状態
次に、1体目を複製して、異なる服装(Document B: ワンピースドレス)および Atlas なし(個別テクスチャ)で動作する 2 体目を作成します。
HotBakeFigureA を右クリックし、Duplicate(または Ctrl + D)を選択して複製します。HotBakeFigureB に変更します。Position の X を 1(座標 (1, 0, 0))に設定します(1体目の右側に並べます)。
▲図 13-6-1: Hierarchy ウィンドウで HotBakeFigureA を右クリックして「Duplicate」を実行する操作
▲図 13-6-2: 複製した GameObject を HotBakeFigureB と命名し Position を (1, 0, 0) に設定した状態
HotBakeFigureB の設定を変更します。Animator の Controller(Walking)、Figure Prefab、および Physics Transport: ON は複製によりそのまま保持されています。
| 設定項目 | 設定値 | 変更内容 |
|---|---|---|
Figure Prefab |
BasicFemale.prefab |
保持されていることを確認(または再指定) |
Document |
ShapeSyncDocumentB.asset |
Document B(Dress 姿)に変更 |
Atlas |
None(空欄) |
Atlas の割り当てを解除 |
Require Atlas |
OFF(チェックを外す) | Atlas 必須を解除 |
Physics Transport |
ON | 1体目と同様に ON を維持(VRM 連携環境) |
▲図 13-7: HotBakeFigureB のプロパティ設定(Document: ShapeSyncDocumentB, Atlas: None, Require Atlas: OFF, Physics Transport: ON)
HotBakeFigureA: 座標 (0,0,0)): Document A のセパレート衣装(Tops1 + Skirt1)を着用し、Atlas が適用されたモデルが歩行します。HotBakeFigureB: 座標 (1,0,0)): Document B のワンピースドレス(Dress1)を着用し、Atlas なしで生成されたモデルが歩行します。
▲図 13-8: Play Mode 中に服装の異なる 2体の Humanoid(左: 赤い Dress1, 右: Tops1+Skirt1)が同時に動的生成され並んで歩行している最終画面
Figure Prefab や Document が None(未割り当て)になっていないか確認してください。Require Atlas: ON にもかかわらず Atlas 欄が None になっていないか確認してください(Atlas を使わない場合は Require Atlas: OFF にする必要があります)。Animator コンポーネントが正しく追加されているか確認してください。お疲れ様でした! これで ShapeSync Asset チュートリアル(全13章)はすべて完了です。
本チュートリアルを通じて、以下の ShapeSync の全ワークフローを習得しました:
ShapeSync を活用することで、VRoid モデルの豊かな表現力を保ったまま、Unity 上で自由自在な衣装カスタマイズ、体型変更、および高効率なキャラクター描画を実現できます。
← チュートリアル目次へ戻る | ← 第12章: Atlas(テクスチャ・マテリアルの統合による VRAM 削減と Humanoid 再生成)