シェイプキーの名前を変えたらアニメーションが動かない|原因と直し方【Unity・VRChat】

VRChat・Unityツール

※この記事の後半で紹介しているツール「まとめてシェイプ+」は、筆者(ほどき工房)が作ったものです(無料のテスト版と、有料版)。

シェイプキーの名前を変えたら、表情のアニメーションが動かなくなった…。これは、アニメーションがシェイプキーを名前で覚えているからです。この記事では、しくみと直し方を紹介します。

なぜ動かなくなるのか

アニメーション(.anim ファイル)の中には、「どのオブジェクトの、どの名前のキーを動かすか」が書かれています。キーの名前を変えると、アニメーションに書かれた名前と合わなくなり、そのキーは動きません(Unityのアニメーションの画面では、黄色の Missing と表示されます)。

アニメーションの中は、キーの名前で書かれている

方法1:名前を元にもどす(いちばん確実)

アニメーションをたくさん使っているなら、キーの名前を元にもどすのがいちばん確実です。

方法2:アニメーションのファイルをテキストで書きかえる(ツールなし)

Unityのアニメーションのファイル(.anim)は、ふつうはテキストで保存されています(Project Settings > Editor の Asset Serialization が Force Text のとき。新しいプロジェクトの初期設定です)。その中の attribute: blendShape.古い名前 を attribute: blendShape.新しい名前 に書きかえると、アニメーションも新しい名前のキーを動かすようになります。

  1. プロジェクトのバックアップをとる
  2. そのキーを使っているアニメーションを探す(Unityのアニメーションの画面で、黄色の Missing になっているもの)
  3. Unityを閉じて、.anim ファイルをテキストエディタで開き、attribute: blendShape.古い名前 を attribute: blendShape.新しい名前 にすべて置きかえる
  4. Unityを開いて、アニメーションが動くか確かめる

筆者の作業場所で、old_smile というキーを動かすアニメーションを書きかえ、Unityが smile というキーとして読み込むことを確かめました。

気をつけること

  • 同じアニメーションを、ほかのアバターでも使っているときは、そちらも新しい名前になります。心配なときは、アニメーションを複製してから書きかえてください
  • FBXの中のアニメーションや、Packagesの中のアニメーションは、この方法では書きかえられません
  • 口の動き(リップシンク)やまばたきの設定(VRC Avatar Descriptor)や、Modular Avatar の Blendshape Sync も名前で覚えているので、そちらも直す必要があります

方法3:名前を変えるときに、まとめて直す(まとめてシェイプ+)

有料版の「まとめてシェイプ+」(300円・筆者の商品)の「名前(アニメも直す)」では、キーの名前を変えると、次のものも新しい名前に直します。

  • アバターで使われているアニメーション(Modular Avatar の Merge Animator の中も)
  • VRC Avatar Descriptor の口の動き(リップシンク)・まばたき
  • Modular Avatar の Blendshape Sync

書きかえる前に、変わるアニメーションの数と名前を確認画面に出します(Ctrl+Zで戻せます)。キーの横に、そのキーを使っているアニメーションの数も出ます。無料版の「まとめてシェイプ」には、この「アニメも直す」はありません(名前の変更・削除だけ)。まず無料版で、自分のアバターに合うか試してから検討してください。

注意

  • VRChatの中での動作は、まだ確認できていません
  • 市販のアバターでの動作も、まだ確認できていません
  • 作業の前に、プロジェクトのバックアップをとってください

ダウンロード

まとめ

  • アニメーションはキーを名前で覚えているので、名前を変えると動かなくなる
  • ツールなしなら、名前を元にもどすか、.anim をテキストで書きかえる(バックアップをとってから)
  • 名前を変えるときにアニメーション・口の動き・まばたき・MA もまとめて直すなら有料版

コメント

タイトルとURLをコピーしました