/BlendShapeCombiner

複数のブレンドシェイプを合成した新しいシェイプキーを追加し、新しいメッシュとして保存するUnityエディタ拡張です。Boothでも配布中👇

Primary LanguageC#MIT LicenseMIT

BlendShapeCombiner

複数のブレンドシェイプを合成した新しいシェイプキーを追加し、新しいメッシュとして保存するUnityエディタ拡張です。

係数を指定できるため、たとえば「瞳を小さくする」シェイプキーから「瞳を大きくする」シェイプキーを作ったり、0~100の範囲外に設定したウェイトを正規化することも可能です。

開発経緯としては、VRChat Avatars 3.0 のまばたき用シェイプキーが1つしか指定できない問題への対策が発端ですが、他の用途にも汎用的に用いることができます。

image

動作環境

Unity 2018.4 以降

インポート手順

unitypackageをインポートする方法

Releasesページ より最新版の BlendShapeCombiner-vX.X.X.unitypackage をダウンロードし、Unityにインポートする

パッケージマネージャを用いる方法

  1. インポート先プロジェクトの Packages/manifest.json をテキストエディタ等で開く

  2. dependencies オブジェクト内に以下の要素を追加

    "com.github.chigirits.blendshapecombiner": "https://github.com/chigirits/BlendShapeCombiner.git",
    

使い方

  1. シーンにモデルを配置してください。

  2. 「メニュー/Chigiri/Create BlendShapeCombiner」を選択すると、ヒエラルキーのトップレベルに BlendShapeCombiner が配置されます。

  3. BlendShapeCombiner の Target に、操作対象となる SkinnedMeshRenderer(アバターの表情に適用する場合、一般的には Body オブジェクト)を指定してください。
    このとき、対象にアタッチされているメッシュが Source Mesh に自動的にセットされます。

    usage-01

  4. Name に作成するシェイプキーの名前を入力し、Source [X] から合成元のシェイプキーを選択してください。

    • スケール係数(プルダウンの右にあるテキストボックスの数値)を 1 以外にすることで、効果のかかり具合を調整することができます(後述のスケール係数についてを参照)。
    • 合成元となるシェイプキーの数を増減するには、各 Source [X] の左にあるゴミ箱アイコンや左最下部にある + ボタンを押してください。
    • 作成するシェイプキー自体を増減するには、New Keys リストタブの右下にある + - を押してください(削除する際は事前に対象行を選択してください)。

    usage-02

  5. Process And Save As... ボタンを押して、生成された新しいメッシュを保存してください。

    usage-03

    保存が完了すると、Target の SkinnedMeshRenderer に新しいメッシュがアタッチされます。 この差し替えられたメッシュに追加されている新しいシェイプキーの値を変更してみて、期待どおりの効果がかかることを確認してください。

    usage-04

スケール係数について

スケール係数に 1 以外を指定することで、シェイプキーのかかり具合を極端にしたり、逆方向にすることができます。

たとえば、瞳を小さくするシェイプキーの scale-1 を指定することで、瞳を大きくするシェイプキーを作成することができます。

usage-05

usage-06

他にも、たとえば「A:目を閉じる」と「B:目を閉じて口を開く」しかシェイプキーがないモデルに対して、Aの -1 スケール化シェイプキーをBに重ねがけすることで、口だけを開いた表情を作ることができるようになります。

ライセンス

MIT License

  • このソフトウェアは商用・非商用問わず無償で利用できますが、無保証です。利用に際して発生する問題については、作者は一切の責任を負いません。
  • コードを再利用する際は、著作権表示と上記リンク先のライセンス条文を同梱する必要があります。詳しくは条文(英語)をお読みください。

更新履歴

  • v1.2.0
    • UIの改善
      • カスタムUI実装
      • Source Mesh を Target とは独立して保持し、リトライ時の手間を軽減
      • 保存ダイアログの初期ディレクトリを Source Mesh と同一に
      • Revert Target ボタンを追加
      • ツールチップ表示
  • v1.1.0
    • スケール係数プロパティを追加
    • 複数シェイプキーの一括追加に対応
  • v1.0.0
    • 初回リリース