概要
VRChatなどで利用できる大抵のアバターの髪やしっぽ、ケモミミ、スカートなどの揺れものには、Dynamic Boneと呼ばれるボーンを動的に動かすアセットが必要です。
このページでは、Dynamic Boneが入ったアバターを使用したいが、Dynamic Boneを持っていない人向けにDynamic Boneのコンポーネントを削除する手順を解説します。
※Dynamic Boneを使えるようにするわけではありません。
Dynamic Boneが必要なアバターでDynamic Boneをインポートしていない状態でアップロードしようとすると、このようにエラーが出ます。

TL;DR
- Prefabを展開する。
- 対象アバターの中からMissing Scriptとなっているコンポーネントを探し、削除する。
- Prefab化する。
解説
SDK2を使用したアバターのアップロードやSDK3を使用したアバターのアップロードの5. アップロード準備が終わっているものとして進めます。(もちろん、Dynamic Boneのインポートはしていないものとする)
Prefabから展開する
コンポーネントを消す前にアバターのPrefabを展開します。
Unpack Prefabの詳しい説明などはプレハブインスタンスの展開 - Unity マニュアルに詳細が書かれているので省きます。
Prefabとは以下の画像のように、青い立方体のアイコンをしたゲームオブジェクトのことです。
右クリックメニューからUnpack Prefabを選択することで、Prefabを展開することができます。
Unpack PrefabとUnpack Prefab Completelyの違いは、後者はネストされたPrefabも展開してくれます。
展開後は他のオブジェクトと同じアイコンになります。

削除するコンポーネントを探す
ScriptコンポーネントかつMissing (Mono Script)となっているものが対象です。
アバターによってどこにDynamic Boneコンポーネントが設定されているかはバラバラです。
探し方は、Hierarchyタブの検索ボックスにScriptと入力することで、Hierarchy内からScriptコンポーネントがアタッチされたGameObjectを探すことができます。
Dynamic Boneがインポートされていない場合、Dynamic Boneコンポーネントはこのようになります。

Dynamic Boneのある場所(例)
Dynamic Boneコンポーネントがどこに設定されているかはアバターによってまちまちなのでそれの例です。
ルートオブジェクトに設定されている場合
Vけっとちゃん plus+など
この画像の例ではVketChanPlusV1.3に直接設定されています。
VRC Avatar Descriptorと同じ場所に設定されています。

Emptyオブジェクトにまとめられている場合
薄荷、一介天使など
この画像の例ではDynamicBone_Body、DynamicBone_Common、DynamicBone_LongSleeveに設定されています。

それ自体は何の機能も持たない空(Empty)オブジェクトにDynamic Boneのスクリプトがアタッチされています。

それぞれのオブジェクトに設定されている場合
かすたちゃんなど
揺らしたいボーンそのものに設定されている場合もあります。
画像の例では、選択しているオブジェクトに設定されていました。
ボーンに直接設定されています。

コンポーネントを消す
各コンポーネントの右上のメニューからRemove Componentを選択し、消します。
すべてのオブジェクトからMissingが消えるまでします。
Prefab化
Prefab化の利点として再利用できるという点があります。また、Prefabを更新することで同じPrefabを使用しているほかのシーンにも変更点を同期することができます。
Prefabに関してはプレハブ - Unity マニュアルに詳細が書かれています。
Prefab化は簡単で、PrefabにしたいオブジェクトをProjectタブにドラッグ・アンド・ドロップするだけです。
