unity3d-jp / MeshSync

A package for synchronizing meshes/models editing in DCC tools into Unity in real time.
Other
1.55k stars 174 forks source link

ご質問:生成されたanimation clipについて #45

Closed TsuPMC closed 5 years ago

TsuPMC commented 5 years ago

MeshSyncで生成されたanimation clipデータについて質問があります

容量をみますと、生成されたanimation clipの容量はそのままだと随分小さいようで image 例えばsave projectをする、とかすると容量が増えます image

Syncしただけのデータは実体がないとかそういったものでしょうか? Syncで生成されたanimation clipを使いまわせるといいな(FBXでDCCツールからanimationデータを書き出さなくてもそのまま本番用animation clipとして使えないかな)と思ったのですがそういった用途で使うようにはできてないですか?

テスト環境 Unity2018.2.9f1/MeshSync-master181130/Maya2017Update5

i-saint commented 5 years ago

現状 save project するまでメモリ上にしかデータがないようです。sync 直後にディスクへ書き出しまでやるようにしておきます。

animation clip の再利用は、Unity 上で Hierarchy の構造が一致していれば可能です。 元々シーン単位で同期することが目的 (better Alembic のようなイメージ) で、シーン間でのデータの再利用はあまり考えていませんが、現状結果的に再利用可能な形にはなっているはずです。これは要望次第ではできるだけ考慮しようと思います。

TsuPMC commented 5 years ago

「sync 直後にディスクへ書き出し」ご対応いただけるとのことありがとうございます

「シーン間でのデータの再利用」を試してみたいと思っています 現状他の項目でも色々要望など出させていただいてご対応いただいていることである程度「再利用」は可能なのではないかと考えています (ある程度と断っているのは弊社独自の仕様などが絡んでくるからです)

いずれにしてもテストしていきたいです

どうぞよろしくお願いいたします

TsuPMC commented 5 years ago

少しテストを進めましたところanimation clip の再利用をさせていただく場合 下記がクリアされるとありがたいなぁという事柄がございました

現状 Syncで生成されたanimation clipでkeyが検出(?生成)されるのは「フレーム間で値に変化がある場合」だけのようです 例えば開始フレームで右腕を上げたkeyを打つ けれど終了フレームまでこの腕のtarnsformに変化がない場合、終了フレームにkeyが打たれていても(開始フレームと同じ値なので)animation clipの値としては生成されない

なのでこのanimation clipを使いまわそうとすると「右腕が上がらない」animationになってしまう

なんとかなればありがたいと思う次第

ご検討いただける余地はございますでしょうか

i-saint commented 5 years ago

なるほど。アニメーション抽出後、値に変化がない key を削除する処理を入れているんですが、これが障害になっているようです。オプションで有効/無効を切り替えられるようにして、デフォルトで無効にしておきます。

ちなみに key を削除しているのは、Unity のアニメーションのインポート処理が非常に遅く、それを少しでも軽減するためでした。 余談になりますが、複数の MotionBuilder のユーザーの方々から、アニメーションもリアルタイムに同期してほしい (= Auto Sync のアニメーション板がほしい) という要望を頂いているんですが、このインポートの遅さのせいで現状諦めざるを得ない感じになっています。

TsuPMC commented 5 years ago

なるほど! 「アニメーションもリアルタイムに同期してほしい (= Auto Sync のアニメーション板がほしい) という要望を頂いているんですが、このインポートの遅さのせいで現状諦めざるを得ない感じになっています」 アニメーターからはそのような要望は確かに出るでしょう…

「オプションで有効/無効を切り替えられるようにして」の処理は大変ありがたいです 「デフォルト無効」も承知いたしました MeshSyncの本来の使い方からするとまったくそうでしょう

ご無理を申しまして申し訳ありません ご対応いただけること大変感謝申し上げます

どうもよろしくお願い申し上げます

i-saint commented 5 years ago

sync 直後ディスクへ書き出し、対応いたしました。こちらは Unity 側、MeshSyncServer.cs のみの変更になります。 MeshSyncServer.zip

キーフレームリダクション有効/無効オプションも対応いたしました。こちらは Maya プラグイン側の変更になります。Animations の項目に "Keyframe Reduction" チェックが追加されています。(デフォルトで無効、と書きましたが、結局有効にしました) UnityMeshSync_Maya_Windows.zip

また、本件とは関係は薄いですが、来週あたりに新しいバージョンをリリースする予定です。本件を含むこれまでの変更、および Maya 2019, MotionBuilder 2019 などへの対応版が含まれる予定です。

TsuPMC commented 5 years ago

ありがとうございます 今テストさせていただいてますのでまたご連絡させていただきます

新バージョンリリース情報もありがとうございます

i-saint commented 5 years ago

https://github.com/unity3d-jp/MeshSync/releases/tag/20190315