FBXエクスポート時に接線(tangent)・従接線(binormal)を含める方法

   4349   4   0
User Avatar
Member
7 posts
Joined: May 2020
Offline
お世話になります。
について質問させていただきます。

私はVex等で計算したtangentをFBXに含めて書き出す方法を探しています。
mayaでいうところの「接線・従接線を含める」オプションのようなものがHoudiniにありますでしょうか?

例えば以下のように自分でtangentを計算し、FBXで書き出しても、



現状では接線情報は含まれていないように見えます。(mayaにインポートして接線を表示し確認)



簡単ではございますがsceneファイルも添付させていただきます。
よろしくお願いいたします。


【行ったこと】
pointで計算した接線・従接線をvertexに変換してFBXエクスポート
Edited by mmmorohoshi - Nov. 15, 2021 08:43:21

Attachments:
tangentTest.hiplc (106.1 KB)
{34370993-EE2C-4E56-8F3A-4BADE5948C90}.png (599.4 KB)
{CBEFACA0-EF08-48D3-9CE0-0432F413106D}.png (88.6 KB)
{326EA0CE-E858-405F-BDCD-C701E56B311B}.png (58.2 KB)
{22365C0A-46FF-4CBF-8CEB-16CE00F30AF5}.png (110.5 KB)
{15FBB543-24B3-4D4B-BA55-6158CF7A63D2}.png (856.7 KB)

User Avatar
Staff
335 posts
Joined: April 2015
Offline
添付いただいた tangentTest.hiplc の /obj/geo1/OUT の下に ROP FBX Output ノードを追加して $HIP/out.fbx として出力したファイルを再び File ノード (/obj/geo2/file1) で読み込み、Geometry Spreadsheet で Vertex アトリビュートを確認すると、読み込んだジオメトリには定義したアトリビュートとその値が残っていることがわかります。
よって、Houdini からの fbx 出力には tangentu と tangentv が書き出されていることがわかります。これはテキストエディタで開いてみても tangentu と tangentv が存在するのが確認できます。

すると質問は「Houdini から書き出した tangentu と tangentv を Maya に認識させるにはどうしたら良い?」ということになりますが、上の画像で Maya 上での tangent 表示はどのように行っているのでしょうか?
これは、Autodesk に訊いた方が速いかもしれませんが、Maya のバージョンと手順をお知らせいただけると有難いです。
User Avatar
Member
7 posts
Joined: May 2020
Offline
素早いお返事ありがとうございます。接線表示に関して不足していた情報は以下の通りです。
MAYAバージョン MAYA2019
tangent表示方法
ディスプレイ/ポリゴン/接線 から表示しております。赤い線がtangentで青い線がBinormalだと考えています。


以下の画像のMayaで作成したプリミティブの球が左、お返事いただきました内容でFBX出力しインポートした球が右となっています。


私自身もAutodeskの方でも聞いてみようと思いますが、ご確認のほどよろしくお願いいたします。
User Avatar
Staff
335 posts
Joined: April 2015
Offline
Maya で作った左側の球を FBX で出力して
1. Maya に FBX として読み込むとどうなりますか?
2. Houdini に FBX として読み込むとどうなりますか?
もし、ASCII FBX で出力できるのであれば、tangentu と tangentv はどういうアトリビュートとして書かれているのでしょうか?
Houdini 側からその名前に Attribute Rename ノードなどでアトリビュート名を変更すれば、Maya でも認識できるかもしれませんね。
User Avatar
Member
7 posts
Joined: May 2020
Offline
お世話になっております。
私自身の質問についておそらく答えが見つかりましたので共有いたします。

結論から申しますとmayaでは自動的にUV準拠のtangentが計算され、これが出力されるという仕様でした。
(HoudiniでいうところのPolyframeノード「style」パラメータ「Texture UV」に相当?)

そこでUE5にてHoudiniから書き出したFBXを読み込みますと、作成したカスタム接線をそのまま持ち込むことができました。
(UE5はFBXの接線を再計算することなくそのまま使用するモードがあります。)


また、わたくしの二番目の回答においてHoudiniから読み込んだFBXの接線が読み込めていなかった件に関しましては、アトリビュートとしてUVを
含めていなかったことが原因のようでした。UV込みで再度インポートしなおした所、maya側で再計算されたタンジェントにはなりますが確認することができました。

最後に、いただいた質問も併せて回答しておきます。
➀maya自身が再計算した接線が表示されます。(「接線のスムース」等で接線を編集していたFBXだとしても、再計算された接線が表示されます)
➁mayaでの接線が表示されます。
➂Name: "tangentu"に該当する部分は Name: "map1"となっていました。そこでtangentu の部分を map1に変更してインポートしてみましたが、特に変化はありませんでした。

お忙しい中ご対応ありがとうございました。
  • Quick Links