DynamicBoneの再設定を楽にするツールです。
DynamicBone設定完了したリファレンスからDynamicBone/DynamicBoneColliderのデータを読み込み保存。
構成が同じ別のオブジェクトに読み込んだデータを元にして設定を復元します。
元モデルなどからは切り離したものとして保存してあるので、読み込んだデータに変更が必要無ければ元のオブジェクトは不要になります。
複数のデータをセットとして保存出来ますが、操作対象オブジェクトの名前を変更したり、オブジェクト側の名前を変更する事でどの対象に復元するかなど自由に設定出来ます。
以下の参考動画では別のツリー構造のデータを相互に読み込み・復元しています。
項目の説明
-
- Save
全てのデータを保存します。 - Create
データセットを新規作成します。 - Delete
編集中のデータセットを削除します。 - RootObject
シーン直下の一番親になるオブジェクトの名前。 - BoneRoot
コライダーを設置するツリーの一番親になるオブジェクトの名前。 - ReferenceObject
設定を読み込む為の元になるオブジェクトの一番親の名前。 - DynamicBoneRoot
DynamicBoneのコンポーネントを設置するツリーの一番親になるオブジェクトの名前。 - Override
- DynamicBone / DinamicBoneCollider 個別で上書きするかどうか指定出来ます。
チェックすると上書きで設置します。 - Raplace Colliders DynamicBoneをOverrideしない場合でもColliders情報を差し替えるかどうか指定します。
チェックすると、CollidersをOverrideしDynamicBoneをOverrideしない場合にCollidersの対象を新しいColliderに差し替えます。
- DynamicBone / DinamicBoneCollider 個別で上書きするかどうか指定出来ます。
- Attach
編集中のデータのRootObjectにDynamicBone/DynamicBoneColliderを設置復元します。 - Read
編集中のデータのReferenceObjectから編集中のデータ用に情報を読み込みます。 - Delete
編集中のデータのRootObjectからDynamicBone/DynamicBoneColliderを全て削除します。
削除対象となるのはBoneRootとDynamicBoneRootで指定したオブジェクトの配下のオブジェクトのみになります。
そこから外れた位置に設置してある物はそのまま残ります。 - Save Path
保存するファイルを変更する場合にここで指定します。 - Load
Save Path で指定したファイルを読み込みます。
- Save
使い方
アップデート時に使用中のデータが更新されてしまうのを防ぐ為に、本使用時には以下の手順で Save Path をSampleDataから必ず変更してください。
Assets/TypeATools/DBSetupUtility/Data/SampleData にあります。
-
- InspectorでSampleDataをCtlr+Dで複製しリネーム。
- Save Pathに1で変更したものを指定。
- Saveで保存。
ツールバーにTypeAToolsという項目が増えるのでそこからDynamicBoneSetupUtilityを選択し操作ウィンドウを開いてください。
各設定をしたらReadボタンで読み込み、Attachボタンで設置します。
設置先にあるDynamicBone / DynamicBoneColliderを削除したい場合、Deleteボタンで全て削除出来ます。
保持データはDynamicBoneのReferenceObject以外の殆どを名前で判別するようにしているので、ツリー構造が違っても名前さえ同じなら復元設置が出来ます。
ただし弊害もあって別ツリーで同じ名前があると正常に動作しません。
また、構造が同じでも名前が違えば復元出来ません。
FBX差し替え時、元の状態に素早く戻すというような使い方を想定している為です。
FBXでインポートされるツリー(blenderからだとArmature)とDynamicBoneを設置するツリーを分ける事で当ツール無しでも付け外しが楽になります。
(Colliderはプレハブで保持しておくくらいしか出来ませんが…)
そのうえでDynamicBone設置用ツリー(構造はArmatureと違ってもいい)の設置対象オブジェクトの名前をArmature側と同じ名前にする事で、参考動画のように相互に読み込み・復元が出来ます。設定でBoneRootとDynamicBoneRootを指定しているのは名前重複を利用する為です。
制作中は別ツリーで、完成したら同一ツリーのままでという事も可能です。
また、データはモデルなどとは切り離されているので、設定はそのままでHierarchy内の複製オブジェクトなどの名前を順次設定値に変えていく事で、ワンクリックで復元も出来ます。
DynamicBone/Collider共にFBX内データから切り離した形でどうにか出来ないかとプレハブの使用なども考えましたがほぼフルコピーになりました。
その為読み込んだデータを纏めて編集・修正当を加えてから復元に使うという事も出来るのですが、使用方法がややこしくなるので読み込み・復元のみとなっています。
注意事項
プレハブの元になっているオブジェクトに対してはリファレンスとしての読み込み操作のみ可能です。
unityのプレハブデータ破損防止の仕組みの絡みで色々うまくいきませんでした。
プレハブに対してオブジェクト追加時に親の指定を無効とされてしまうなど。
なので、プレハブ元に対して使いたい場合、インスタンスか複製に対して利用してください。
VRChatのアバター作成には問題になる事は殆ど無いと思います。
利用規約
UnityAssetstore利用規約に従って下さい。
- UnityAssetstore利用規約参考ページ
当データ又は改変・複製したものを使用したことにより発生したトラブルや損失に関して作者は一切の責任を負いません。
Version History
2018/10/18
1.0.1
-
- DynamicBoneColliderの情報が無い時の動作に不具合があったのを修正。
- 保存単位の名前をRootObjectからSettingsNameに変更。
- Override時の挙動を変更。
Override時にリファレンスデータに無い物が残らないようにしました。 - DynamicBone情報をOverrideしない場合にCollidersを差し替えるかどうかの設定を追加。
2018/10/16
1.0.0
-
- First release