現在Mayaでお粗末ながらもキャラクターのモデリングからアニメーション作成までを終了させました。
しかし、Unityにfbxでデータを送った際に、
・テクスチャをベイクしたにも関わらず、Unity上でテクスチャが表示されない
(キャラクターのモデルと、UV展開して作成したpngファイルをテクスチャに持つblinn{place2dTexture-キャラクターテクスチャ-blinn}をベイク)
そのうえ、blinn1をベイクするとblinn2が、blinn2をベイクするとblinn3が自動生成されます。
これは仕様なのでしょうか?
・リギングースキニングの処理を行ったデータはエラーメッセージが出て原型をとどめていない。
この2つをどのように解決したらよいのでしょうか?
ベイク後のハイパーシェード、エラーメッセージ、リギングースキニングを行ったときのUnity上でのオブジェクトの違いを添付させていただきます。
解決済! 解決策の投稿を見る。
回答者: 高木yusuke. 解決策の投稿を見る。
こんにちは。
まず最初に、作業されているMayaとFBXのバージョンを教えてもらえますか?
1つ目のテクスチャベイクについてですが、Unity上でテクスチャのパスが正しく設定されていないという事はないでしょうか?
>そのうえ、blinn1をベイクするとblinn2が、blinn2をベイクすると
>blinn3が自動生成されます。 これは仕様なのでしょうか?
「ファイル テクスチャに変換」でテクスチャを作られているのでしょうか?もしこの場合は仕様です。
2つ目のスキニングのエラーですが、Bind後に階層を変更したり何か変更を加えていませんでしょうか?一度、以下の手順でbindPoseを新しく作り直してみてください。
1.バインドポーズが設定されているJointを選択。
2.チャネル ボックス/レイヤ エディタを開いて、バインドポーズ名を確認。
3.このバインドポーズ(複数ある場合は全て)をコマンドで削除します。( delete bindPose1; )
4.Jointのルートを選択し、コマンドで新しくバインドポーズを作成します。( dagPose -save -name "bindPose" )
ご回答ありがとうございます。
FBXのバージョンは調べることが出来ませんでした。Maya等から調べられるスクリプトが在るならば教えてください。
MayaのバージョンはMaya2018です。
テクスチャの問題は、Unity上でテクスチャをロードすることによって解決しました。
bindPose1を削除し、bindPoseにしたことによってエラーは出なくなったものの
// 警告: line 1: 選択項目には polySplit7 を実行できません //
という警告が発せられます。
FBX化したものをUnityにインポートしたところ、bindPoseの変更をしたもののと完全に合同ではないものの、
原型をとどめていないという点では一致しています。
リギングをすることが初めてなので何か不十分な要素があるかもしれないのでやった作業を列挙させていただきます。
頸椎ー腰椎と左、右腕・左、右足のジョイントを作成
スキンのバインド
アニメーションを入れる
投稿前の書き出し
ペアレント化
bindPoseに変更
で以上です。
また、リギングと私が誤認していたものはスケルトン作成ースキニングのことで
カーブによるリグを作成したり、リグの色分けをしたりはしていません。
今一度ご協力お願いします。
追伸ーー
Unityのフォーラムで「fbx出力する前に一度delete>nondeformerhistoryをかけてみては」というご指摘があったので
実行してみたところ警告そのものは出なくなりましたが、依然として奇妙な書き出し結果です。
また、FBX Review上でも同じ結果になりましたのでUnityの調子が悪いわけではなさそうです。
>// 警告: line 1: 選択項目には polySplit7 を実行できません //
>という警告が発せられます。
こちらはポリゴンを分割する際にできるノードの事かと思われますので、追伸で書かれている通り、ヒストリーを削除する事で問題は改善すると思います。
>実行してみたところ警告そのものは出なくなりましたが、依然として奇妙な書き出し結果です。
「奇妙」とは具体的になんでしょうか?(データを添付して頂ければ確認する事も可能です。)
データのアップロードありがとうございます。
Maya2018で開いてみたところ、スケルトンが以下の様な感じになってしまうのですが、これで正しいでしょうか?
ジョイントにアニメーションはついていますが、モデルがついてきていませんので、恐らく意図とされてる状態ではないかと思います。
この状態だとどこで問題が起きたのか分かりませんので、一度バインド直後のアニメーションを付けていないデータを使ってUnityにエクスポートしてみてください。
もしうまくいかない場合は、バインド前の(モデルとジョイントがある)データをアップロードして頂けますか?
再アップロードありがとうございます。(こちらはモデルも一緒に動いているので大丈夫そうです。)
一部のノードを削除する事で、Unityでデータを開く事ができました。
手順については動画にしましたので、添付ファイルをご確認ください。
おはようございます。
無事に問題が解決できたようで、よかったです。
Unityのヘルプにも説明があるように、ノードが乱雑になると正しくエクスポートできなくなります。Mayaで作成されたデータはネイティブ形式(.mbや.ma)であれば保存できますが、汎用フォーマットであるFBX形式への変換に失敗する場合は、FBXに対応していないノードが含まれていたり、複雑なデータになっている場合が殆どです。その際には今回の様にデータの調整(ヒストリの削除やプロットなど)が必要となります。
最初のうちは面倒かと思いますが、段階的(モデリング後、スキニング後、アニメーション作成後など)にエクスポートを行い、その都度問題を起こすノードがないか確認されるとよろしいかと思います。慣れてくれと、どういうデータであればUnityでも問題なく開けるのか理解できてくるかと思います。
以下のチュートリアルは若干中級者向けですが、上2つは実際のデータがダウンロードできるので参考にしてみてください。
チュートリアル
お探しの情報が見つからないときは、コミュニティで質問しましょう。困っている人がいたら、情報を教えてあげましょう。