FBXのExportに含めたアニメーションの開始と終了時に意図しない補完がかかる

   3950   6   0
User Avatar
Member
21 posts
Joined: June 2019
Offline
アニメーションをつけたジオメトリをFBXとしてExportすると、開始と終了時のフレームにズレが出るのですがこれを解消するにはどうしたら良いでしょうか?

作成したアニメーション付きの時計モデルをUnityにImportしようとした時にループのつなぎ目がおかしくなるのを発見したのですが、
どうもHoudiniのFBX出力時に変な補正か補完が入っていると思っていて、この処理をオフに出来ればと考えています。



https://i.gyazo.com/d64b84a092d8de0eff1cc125b5e4f69e.mp4 [i.gyazo.com]
(同じ内容ですが動画は一時停止出来るのでリンクを張っておきます)

問題を再現するために12フレームのアニメーションの時計を作成し、一度FBXとしてExportしたものをもう一度Importして横に並べました。
FBX Export前のモデルでは、ループ再生すると綺麗に30度ずつ回転するのですが、
FBXとしてImportし直したものは大きくズレてしまいます。

FBX Exportウィンドウのヘルプなども見たのですが、特に設定としてなにかあるわけでもなく解決しませんでした。
よろしくお願いします。

Houdini 19.0.531
Edited by li la - April 9, 2022 10:35:34
User Avatar
Member
21 posts
Joined: June 2019
Offline
あとこれはUnity経由でしか確認出来ていないものだったので、このフォーラムで質問可能なものであればでいいのですが、
Houdini上ではキーフレームの情報を持たずにアニメーション付きFBXを保存したつもりだったのですが、
Unity上では全てのキーフレームが打たれていました。



出来れば値を全てのフレームで直接設定するのではく、
Houdiniで設定した値と補完情報だけでExportしてくれたほうが容量が減って助かるのですが可能でしょうか?
User Avatar
Staff
335 posts
Joined: April 2015
Offline
こちらの件でが、シーンファイルいただけないでしょうか? フォーラムに晒すのが問題の場合は ktaki@sidefx.com まで送っていただけますか?
User Avatar
Member
21 posts
Joined: June 2019
Offline
Ken Taki
こちらの件でが、シーンファイルいただけないでしょうか?

返答ありがとうございます、こちらになります
https://drive.google.com/file/d/1AqFNPRfbOX-d2vVoZkudrbFir3TfYVml/view?usp=sharing [drive.google.com]
User Avatar
Member
21 posts
Joined: June 2019
Offline
> 開始と終了時のフレームにズレが出る

と記載しましたが、寝て起きて投稿を見返したら表現が適切ではないかもしれません :S
Liner(Straight?)で指定した補完がFBX書き出し時に反映されていない(Bezierで出力されている?)とかでしょうか
User Avatar
Staff
20 posts
Joined: Feb. 2022
Offline
Houdini側で、最初のキーフレームがCubicになっていることが原因のようです。両方Linearに設定しなおしたところ意図したアニメーションになりました。

FBXがASCIIフォーマットで出力されていたので、テキストエディタで中身も直接確認したところ、最初のキーフレームのみ補完法がCubicになっていました。試しにキーフレームの補完法に関するフラグを書き換えてみることでも意図したアニメーションになりました。(339行目の2056を8452に書き換えました)
FBXは確かにベイク前のキーフレーム情報のみを保持しているように思えるので、Unity側での挙動はHoudiniとは切り離して考えてよいものであるように感じます。

HoudiniではAnimation Editorで確認できるSlopeというパラメータが存在して、あるキーフレームにおける瞬間の値の変化率を任意に指定できるのですが、これがうまく出力できていない可能性があります。頂いたFBXファイルの中身を見る限りは、FBXにも相当する概念が存在しそうな気がするのですが、詳しくは開発者に問い合わせる必要がありそうです。

とはいえ、複数の補完法が混在する場合の処理はソフトに依存するということでも仕方がない気もするので、個人的には何か一つに統一することが良いように思います。
User Avatar
Member
21 posts
Joined: June 2019
Offline
なるほど!ありがとうございます
手元で再現することが出来ました。

また確認して思ったのですが、自分がLinearだと思っていた「Straight」というボタンはもしかしたら補完とは関係ないものな気がしてきました・・・
AnimationEditorの右下に表示されるのが補完関数な気がしてきました。(Straightは単に線形っぽい編集にしてくれるだけのコマンド?)


> FBXは確かにベイク前のキーフレーム情報のみを保持しているように思えるので、Unity側での挙動はHoudiniとは切り離して考えてよいものであるように感じます。
ありがとうございます、こちらも参考にさせて頂きます
  • Quick Links