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という引数を利用することで、
保存した大量の情報にアクセスしやすくなります。
ご興味のある方は是非試してみてください。

ではまた。

 

※免責事項※
本記事内で公開している全ての情報について、その完全性、正確性、適用性、有用性等いかなる保証も行っておりません。
これらの情報のご利用により、何らかの不都合や損害が発生したとしても、当社は何らの責任を負うものではありません。
自己責任でご使用ください。



ブログTOPへ戻る