2019/01/22
JSONファイルを使用して補助骨のExport/Importを行う
はじめまして。
BACKBONEのゆはらです。
リグ作業をしていると、基準となるbiped骨の他に補助骨(インフルエンス)
などの追加骨を設定することがありますよね。
このような追加骨は流用性を考え、Export/Importに対応すると作業効率があがります。
では、どのように流用するか?
melやeditMAなど手法は多々ありますが、当スタジオではJSONファイルで出力しています。
追記や修正したいノードだけをファイルにマージしたい、
JSONファイルのパース(解析)により何が出力されているか等わかりやすい、
などの理由から、JSONファイルでの出力にしています。
今回は、JSONファイルを用いた追加骨の Export/Importの運用についてご紹介します。
1.Export
選択している追加骨やトランスフォームノードをJSONファイルで出力します。
簡易的ですがこのような状態で出力されます。
この情報は再構築に必須の最小構成です。
- hierarchyLevel
import時に、階層上位にあるノードから再構築していきたいので、
階層下の何番目に位置しているかを情報として保存しておきます。 - matrix
位置情報を保存します。
注) matrixだけで位置をget/setするとjointOrientの数値を無視しますので、
jointOrientの値が含まれている場合はmatrixではなく、
jointOrientとrotateを別々に保存します。 - parentSpace
親のノード名を取得して保存します。 - type
ノードタイプにより再構築時の処理が変わるため、こちらも必須項目です。
jointであればinverseScaleのコネクション状態なども出力するとより再現性が高まります。
このようにインフルエンスの持つ情報を保存しておきます。
2.Import
保存されたJSONファイルをパース(解析)し、再構築していきます。
当スタジオでは、様々なリグシステムを使用する機会があります。
リグシステムの構造により、固有のノード(プラグインなど)や
特殊なコネクションが含まれていることが多く、
インフルエンスの設定も多種多様なため、
プロジェクトごとにExport/Importの仕様もカスタマイズし、
GUIによりImportを行っています。
まとめ
JSONファイルのロード時に、object_hookという引数を利用することで、
保存した大量の情報にアクセスしやすくなります。
ご興味のある方は是非試してみてください。
ではまた。
※免責事項※
本記事内で公開している全ての情報について、その完全性、正確性、適用性、有用性等いかなる保証も行っておりません。
これらの情報のご利用により、何らかの不都合や損害が発生したとしても、当社は何らの責任を負うものではありません。
自己責任でご使用ください。