← チュートリアル目次へ戻る | ← 第6章: 高度な Figure 登録と局所変形(PBM)
本章では、キャラクターが靴(ヒールや厚底など)を履く際に生じる足首の角度や腰の高さのずれを補正する Collection(コレクション) 機能の手順を解説します。
Shoes1 を登録し、Collection 用素体 Prefab の姿勢(Hip Y / Foot X 回転)を調整・Override 保存して Full Collection(頂点 Projection 有効) を設定し、Fit 動作確認を行います。Bone と Full の違い:
Bone: 骨(ボーン)の位置・回転のみを補正します。Full: 骨の補正に加えて、身体メッシュ頂点の変形(Projection)も合わせて行います。本章では靴への確実なフィットのため Full を使用します。まずは VRoid Studio を使用して、モデルから靴を取り出して Base / FBM 素体に着用させ、VRM をエクスポートします。
AvatarSample_I を開きます。衣装 タブを選択し、左側メニューから 靴 を選択します。カスタム に切り替え、表示されている靴の項目で カスタムアイテムとして保存 をクリックします。
▲図 7-1: AvatarSample_I を開き、衣装 > 靴 > カスタムアイテムとして保存を選択
Shoes1BasicFemale.vrm のエクスポートBasicFemale.vroid を開きます。衣装 タブ > 靴 > カスタム から、先ほど保存した靴アイテムを選択して着用させます。
▲図 7-2: BasicFemale を開き、カスタム靴を着用させる
VRMエクスポート を選択します。VRM1.0 を選択し、エクスポート情報(ポリゴン数: 20706、マテリアル数: 10、ボーン数: 59)を確認します。
▲図 7-3: ポリゴン数・マテリアル数・ボーン数を確認し Shoes1BasicFemale.vrm としてエクスポート
Shoes1BasicFemale と入力し、Unity プロジェクト内へ Shoes1BasicFemale.vrm としてエクスポートします。Shoes1SampleI.vrm のエクスポートSampleI.vroid を開きます。衣装 タブ > 靴 > カスタム から、同じ靴アイテムを選択して着用させます。
▲図 7-4: SampleI を開き、カスタム靴を着用させる
VRMエクスポート(VRM 1.0)を選択し、エクスポート情報(ポリゴン数: 20706、マテリアル数: 10、ボーン数: 59)を確認します。
▲図 7-5: ポリゴン数・マテリアル数・ボーン数を確認し Shoes1SampleI.vrm としてエクスポート
Shoes1SampleI と入力し、Unity プロジェクト内へ Shoes1SampleI.vrm としてエクスポートします。Unity エディタに戻り、素体と靴の初期状態での位置関係を確認します。
BasicFemale.vrm と靴 Shoes1BasicFemale.vrm を配置します。(0, 0, 0) に設定します。
▲図 7-6: BasicFemale と Shoes1BasicFemale を同一座標 (0,0,0) に配置し、足元や腰の位置ずれを確認
Shoes1)の登録と Materials 分類書き出した靴 VRM を ShapeSync Editor に登録します。
Outfits を選択します。Outfit Id に Shoes1、Outfit Name に Shoes1 と入力し、Create Mesh Outfit ボタンをクリックします。Outfits > Mesh Outfits > Shoes1 を選択します。Outfit Prefab に、Project ウィンドウの Shoes1BasicFemale.vrm をドラッグ&ドロップして指定し、画面下部の Save to Database をクリックします。Shoes1 > Materials(Mesh Outfit Materials)を開きます。Classification を、Exclude ではなく Projection に設定します。Shoes_01_CLOTH)は Include のまま、Entry Name を Shoes1 に設定し、画面下部の Save to Database をクリックします。
[!IMPORTANT] 身体部分を
Projectionに分類することで、後述する Full Collection の頂点補正(Projection)が有効になります。
▲図 7-7-1: Shoes1 > Materials で顔や目などの身体マテリアルを Projection に設定
▲図 7-7-2: Body_00_SKIN を Projection、靴マテリアルを Include(Entry Name: Shoes1)に設定して Save to Database
Shoes1 > FBMs を開きます。SampleI の行にある FBM Prefab に、Project ウィンドウの Shoes1SampleI.vrm をドラッグ&ドロップして指定し、画面下部の Save to Database をクリックします。素体の姿勢を靴に合わせて調整した Collection 用 Prefab を作成します。
Figure(Base 画面)を開き、Prefab on Database 行の Export ボタンをクリックします。Assets/ShapeSync/Collection/Shoes1/BasicFemale.prefab を指定して保存します(既定のファイル名を維持します)。Figure > FBMs で SampleI 行を開き、Prefab on Database の Export ボタンをクリックします。Assets/ShapeSync/Collection/Shoes1/SampleI.prefab を指定して保存します。Shoes1 の Base 画面の Outfit Prefab on Database 行にある Export から Assets/ShapeSync/Collection/Shoes1/Shoes1BasicFemale.prefab を保存します。Shoes1 > FBMs の SampleI 行にある Outfit Prefab の Export から Assets/ShapeSync/Collection/Shoes1/Shoes1SampleI.prefab を保存します。
▲図 7-8-1: Assets/ShapeSync/Collection/Shoes1/ に 4 つの Prefab が Export された状態
BasicFemale.prefab と比較用の靴 Shoes1BasicFemale.prefab を配置し、両方を (0, 0, 0) に置きます。
▲図 7-8-2: BasicFemale(Collection用)と Shoes1BasicFemale を Scene 上の同一座標に配置
Shoes1BasicFemale)の Root/J_Bip_C_Hips の Position Y 座標(例: 0.9225485)を確認します。
▲図 7-8-3: Shoes1BasicFemale の J_Bip_C_Hips の Position Y 座標(0.9225485)を確認
BasicFemale)の Root/J_Bip_C_Hips の Position Y 座標へ、確認した値(0.9225485)をコピーして入力します。
▲図 7-8-4: BasicFemale の J_Bip_C_Hips の Position Y に 0.9225485 を入力
J_Bip_L_Foot および J_Bip_R_Foot)の Rotation X を、靴の傾きにぴったり合うよう調整します(例: Rotation X = 3.71)。
▲図 7-8-5: BasicFemale の J_Bip_R_Foot の Rotation X を 3.71 に設定して靴の傾きに合わせる
BasicFemale)を選択し、Inspector 右上の Overrides ドロップダウンから Apply All をクリックして Prefab へ上書き保存します。
[!WARNING] Override の保存(Apply All)を行わないと、調整した姿勢が Collection の補正に反映されません。また、専用の別 Prefab は作成せず、必ずこの
BasicFemale.prefabに保存してください。
▲図 7-8-6: Inspector の Overrides ドロップダウンから Apply All をクリックして BasicFemale.prefab へ上書き保存
SampleI.prefab と Shoes1SampleI.prefab を Scene に配置し、Hip Y のコピーと左右 Foot X 回転の調整を行って SampleI.prefab へ Override 保存(Apply All)します。Full と Projection)調整した Prefab を ShapeSync Editor の Collection 設定に登録します。
Outfits > Mesh Outfits > Shoes1 > Collections を選択します。Collection ドロップダウンで Full を選択します。Use Projection for Full Collection にチェックを入れて ON にします。Base Collection Prefab: Assets/ShapeSync/Collection/Shoes1/BasicFemale.prefabSampleI Collection Prefab: Assets/ShapeSync/Collection/Shoes1/SampleI.prefabSave to Database ボタンをクリックして保存します。
▲図 7-9: Collection を Full に設定し、Use Projection for Full Collection を ON、Base/SampleI Collection Prefab を指定して Save to Database
靴用の Outfit Shape を作成し、Shape Template を生成します。
Shapes を選択します。Shape Id に outfitShoes1、Shape Name に outfitShoes1 と入力し、Create Outfit Shape Template ボタンをクリックします。Shapes > Outfit Shapes > outfitShoes1 を開きます。Add Mesh ボタンをクリックし、Outfit Mesh に Shoes1 を指定します。Save to Database ボタンをクリックして保存します。
▲図 7-10-1: outfitShoes1 の Outfit Shape で Outfit Mesh に Shoes1 を指定して Save to Database
Generation セクションを選択します。Generate ボタンをクリックします。Assets/ShapeSync/Generated)を選択して「フォルダーの選択」をクリックし、生成を実行します。
▲図 7-10-2: Generation セクションで Generate をクリックし、出力ルートフォルダー(Generated)を選択して生成を実行
Scene 上の Figure に靴を適用し、Fit 状態と残存する課題を確認します。
BasicFemale)を選択します。ShapeDirector コンポーネントの Inspector を確認します。Template List に、新しく生成された outfitShoes1.asset をドラッグ&ドロップして追加します(※登録は Play Mode 開始前に行います)。Animator に Walking.controller が割り当てられていることを確認し、Unity の Play ボタン を押して Play Mode に入ります。
▲図 7-11-1: Play Mode で歩行アニメーション再生中、靴の位置・角度が正しく Fit して追従している様子
▲図 7-11-2: ドレス下部から見た靴と足の追従状態
▲図 7-11-3: 靴のつま先先端から素体の肌がわずかに突き出ている Poke の状態
[!NOTE] このつま先に残存する Poke は、次章(第8章)で解説する Figure Mask(マスク) 機能を使用することで完全に解消します。
BasicFemale.prefab 等)の姿勢調整後に、Inspector の Overrides > Apply All による Prefab への上書き保存が行われていない可能性があります。Overrides > Apply All を押して保存してください。その後、ShapeSync Editor の Generation で Generate を再実行してください。Shoes1 > Materials で身体部分のマテリアルが Projection ではなく Exclude に設定されているか、Collections 画面で Use Projection for Full Collection が有効になっていない可能性があります。Shoes1 > Materials で身体マテリアルが Projection になっていること、および Shoes1 > Collections で Full かつ Use Projection for Full Collection が ON になっていることを確認して保存し、再生成してください。