高度な機能
このページでは、もちもちほっぺツールの高度な機能について説明します。
表情連動
もちもちされたときや引っ張られたときに、表情などのBlendShapeを変更できます。
Contact時の表情設定
Contact Receiver設定の「追加で変更するBlendShape(表情など)」セクションで設定できます。
設定方法
- 「+」ボタンをクリックして新しいBlendShapeを追加
- 項目を展開
- Target Mesh: 表情のあるSkinnedMeshRendererを選択
- BlendShape Name: ドロップダウンから変更したいBlendShapeを選択
- Target Meshを設定すると、そのメッシュのBlendShape一覧が表示されます
- Value: BlendShapeの値(0-100)を設定
使用例
- もちもちされたときに「Smile」を50%適用
- もちもちされたときに「Blush」を100%適用
- 複数のBlendShapeを組み合わせて表情を作成
PhysBone時の表情設定
PhysBone設定の「追加で変更するBlendShape(表情など)」セクションで設定できます。
設定方法はContact時と同じです。
使用例
- 引っ張られたときに「Surprised」を80%適用
- 引っ張られたときに目を開く表情を適用
複数のBlendShapeを設定
Contact時とPhysBone時で異なる表情を設定できるため、以下のような表現が可能です:
- もちもちされたとき: 笑顔
- 引っ張られたとき: 驚き顔
それぞれ複数のBlendShapeを組み合わせることで、より豊かな表情を作れます。
表情のBlendShapeは、ほっぺの変形とは別のメッシュでも設定できます。 例えば、Bodyメッシュのほっぺと、Faceメッシュの表情を連動させることができます。
詳細設定
BlendShape名のカスタマイズ
生成されるBlendShapeの名前を変更できます。
- 左BlendShape名: デフォルト「CheekStretch_Left」
- 右BlendShape名: デフォルト「CheekStretch_Right」
他のツールとの互換性や、既存のセットアップに合わせて変更してください。
ほっぺの位置の詳細設定
「詳細設定」を展開すると、以下の設定ができます:
中心位置
ほっぺの中心座標(targetMeshのローカル座標系)
直接数値を入力することもできますが、以下の方法も便利です:
- Hierarchyで空のGameObjectを作成
- ほっぺの位置に移動
- 「選択オブジェクトの位置を左ほっぺに設定」ボタンをクリック
伸ばす方向
ほっぺが伸びる方向のベクトル
デフォルトでは左右方向(Left/Right)ですが、斜めや前方向など自由に設定できます。
「方向を正規化」ボタンで長さを1に正規化できます。
デバッグ機能
デバッグビジュアル生成
「ほかの設定」セクションで「デバッグビジュアル生成」をONにすると、Contact ReceiverとPhysBoneの位置に半透明の球体が生成されます。
当たり判定の位置を確認するのに便利です。
デバッグビジュアルは開発時のみ使用してください。アップロード時は不要なポリゴンになります。
Exメニューのカスタマイズ
メニューの編集
アバターのExメニューに自動的に追加されるメニュー項目をカスタマイズできます。
- Hierarchyで「MochiMochiSystem」の子オブジェクト「もちもちメニュー」を選択
- Inspectorでメニューの設定を編集
編集できる項目:
- メニュー名
- トグル項目の名前
- アイコン
- サブメニューの構成
メニューの削除
Exメニューが不要な場合は、「もちもちメニュー」オブジェクトを削除してください。
Contact ReceiverとPhysBoneの機能は残りますが、ON/OFFの切り替えができなくなります。
Animator Controllerの手動管理
自動生成を無効化
「ほかの設定」セクションで「Animator Controller自動生成」をOFFにすると、Animator Controllerが自動生成されなくなります。
既存のAnimator Controllerに手動で統合したい場合に使用してください。
生成されるパラメータ
以下のパラメータが生成されます:
BlendShape制御
LeftCheek_Touch(Float): 左ほっぺのContact値LeftCheek_Stretch(Float): 左ほっぺのPhysBone値RightCheek_Touch(Float): 右ほっぺのContact値RightCheek_Stretch(Float): 右ほっぺのPhysBone値
メニュー制御
MochiMochi_ContactEnabled(Bool): Contact ReceiverのON/OFFMochiMochi_PhysBoneEnabled(Bool): PhysBoneのON/OFF
パフォーマンスの最適化
影響範囲を小さくする
影響範囲を小さくすることで、変形する頂点数を減らし、BlendShapeのサイズを削減できます。
減衰タイプの選択
- Constant: 最も単純で負荷が低い
- Linear: バランスが良い
- Smooth: 品質重視
パフォーマンスが気になる場合は、LinearまたはConstantを選択してください。
PhysBoneの最適化
PhysBoneの物理計算は負荷がかかるため、以下を検討してください:
- Pull値を大きくして動きを抑える
- Stiffnessを大きくして計算頻度を減らす
- 不要な場合はPhysBoneをOFFにする
複数のメッシュへの適用
同じアバターの異なるメッシュにもちもちを追加したい場合は、複数のコンポーネントを追加できます。
ただし、以下に注意してください:
同じメッシュに複数のコンポーネントを追加すると、BlendShapeが競合する可能性があります。 異なるメッシュ(例:BodyとFace)の場合は問題ありません。
Tips
ほっぺ以外への応用
このツールは名前こそ「ほっぺ」ですが、以下のような応用も可能です:
- お腹をもちもちにする
- 太ももをもちもちにする
位置と方向を調整するだけで、様々な部位に適用できます。
左右で異なる設定
左右対称モードをOFFにすることで、左右で異なる設定ができます:
- 左ほっぺは柔らかく、右ほっぺは硬く
- 左右で異なる表情
- 片方だけPhysBoneを有効化
アニメーション上書き
既存のAnimatorに追加で統合されるため、既存のアニメーションと共存できます。
Write Defaultsの設定は自動的にアバターの設定に合わせられます(Modular Avatarの機能)。