【Unity制作日記】【Blender2.8】アーマチュアの回転をUnity上で正常な値にするBlenderのエクスポート方法
タイトル長いです。
最近はVTuberやVR文化の浸透でBlenderとUnityに関する知見はものすごく広まってそうですよね。私には相変わらず時代遅れな知識しかなくて焦りすらもないです。( ˘ω˘ )
タイトル通りですが、Blender&Unity関連で困った現象があったのでメモメモです。
Animation Riggingの勉強中
CEDECでUnity2019.3のAnimation Riggingを見てからずっと触っています。以前からProcedual Animationにとても興味がありましたが何から始めていいかわからず何もできてなかった中、この機能を見かけて入門出来そう!と思ったので勉強中です。
学習中、Hipボーンを追従させるRigをNinjaのExampleプロジェクトを参考にセッティングしてました。しかし設定は同じはずなのに完全な追従が行われない…RigのWeightも問題ありませんしなぜだ…
原因を見てみるとモデルのスケルトンのスケールがメッシュの大きさと比較してめちゃくちゃ小さかったんですよね。Unity上でアーマチュアの大きさを1にしたところ、リグにしっかり追従するようになりました。
Blenderファイルを確認したら、確かにアーマチュアがめっちゃ小さいサイズになってました。きっと作業中にデカすぎるという理由で小さくしたんだったかな…
いざスケールを修正してFBXを書き出し直してみるとスケールは治ったけど-90度回転はなんでか治らない。Animation Rigのサンプルで公開されているニンジャのモデルでは、メッシュもスケルトンも全部統一されていたので、全部修正しようと思いました。
Unityでアーマチュアの回転を正常値にするためのBlenderエクスポート方法
www.youtube.com
ありがたいことに、実現したいことについてこちらの動画に詳しい操作が解説されていました。
動画の通りのことしか書きませんが、次のような動作を行っていきます。
アーマチュアの回転を正しくするにはまずモデルの設定を変更していきます。
- アーマチュアをX軸-90度回転してで拡大縮小を適用(ctrl+A)する
- その状態でもう一度アーマチュアを90度回転させてもとに戻す(適用はしない!)
- 各メッシュが-90度になってるので、それぞれ回転を適用する
この作業を終えたらエクスポートの準備は完了です。
次にエクスポートを行います。
動画では、FBX単位スケールを指定することを推奨していましたが、いつも通り全ローカルを指定しても特に問題なかったです。
上記作業を行ってエクスポートしたFBXを確認してみます。全部いい感じになりました。
未解決課題
まず過去の私はなぜアーマチュアのスケールが0.03で作業を行っていたのか意味不明なのですが、アーマチュアのスケールを1に戻す作業がありました。スケールを戻すためにアーマチュアの拡大縮小を適用してみました。結果、アニメーションのボーン位置がなにやらおかしな挙動になってしまいました
スケールの適用は行わず手動でアーマチュアのスケールを1に戻すだけでも問題はなかったので、FBXへの書き出しには影響はなかったですが、どういう手順でアーマチュアのスケールの変更って行うんでしょうかね…気になります。
Animation Rigへの適用
Rigに対してHipボーンがしっかり追従してくれるようになりました。現状なんだ怪しい動きをしていますが学習途中ということで…( ˘ω˘ ) 今後自作モデルにAnimation Rigを利用していくのであれば、正確なFBXエクスポートは重要になりそうです。こういうところって一番時間取られたくないから早いところ解決できてよかったです( ;∀;)
Animation Rigについては、ほぼ公式のサンプルに倣うことしかしてないので何も有益なことは書けませんが、気が向いたらまとめようかと思います。