2013年9月16日月曜日

【Unity】メタセコイアでモデリングしblenderでアニメーションをつけてUnityに送り出す

blender経由のメタセコモデルのインポートにまたはまってしまった。過去の記事を探してみると二年前にも全く同じことで泥沼にはまっていた。進歩が全くない…再度やり方をここに記してもう詰まらないようにしたい。



メタセコでモデルを作成しMQOインポータを使わせてもらってblenderにMQOファイルをインポートする。

 メタセコでUVマップの指定パスが怪しいとUV情報がインポートされない。

メタセコ環境設定でファイルの扱いを絶対パスにしてメタセコ本家フォルダ下にモデルやテクスチャを保存したらうまくいった。

メタセコで鏡体を作ったあと隣り合う頂点は「コマンド+J」で結合し縫い合わせておく。表面がスムースになる。
縫合前
縫合後。 図のような十字架が見えたら直ちに消去すること unityでインポート時に軸が狂う
いつも忘れるblender操作

shift+中ボタン:視点移動、shift+c:カーソルを頂点に移動、shift+s:焦点スナップ

オブジェ G:移動 R:回転 S:スケール x y zで軸を限定 数字キーでパラメータ入力

aで全選択・選択解除 bで範囲選択

shift+a:メニュー呼び出し tabでmodeトグル、ctrl+tabで第三のモード含めトグル

モデルの正面は-y方向





インポートした時テクスチャが欠けていたらUVimageEditorでイメージをオープンして追加する。
マウスを画面上部境界線にかざして画面を割る。オブジェクトモードでモブジェを選択しtabでエディットモードにする。イメージの方にUVマッピングが表示されるので下部メニューからテクスチャをインポートする。
左上メニューの画面レイアウト選ぶところからUVを選んだら簡単に出来ました。



ボーンを埋め込む。


オブジェクトモードで新規オブジェクトとしてボーンを追加し、エディットモードに切り替えてeキーで子供ボーンを追加していく。
あるいはエディットモードでshift+aでボーンを追加する。子>親の順に選択しctrl+Pで親子にする。offsetでコネクトすれば離れていても親子になる。
ボーンができたら埋め込むオブジェクト>ボーンの順に選択しctrl+pで親子にする。
emptyの頂点グループを作る。

ボーンはnameにチェックをいれて名前を表示させておく
オブジェを選択しエディットモードで各頂点をボーンに割り振る。
オブジェは親のボーンの頂点グループを自動的に作っている。なかったら手動で追加する。
一つの頂点に複数のグループを割り当てないようにする。オブジェがボーンの動きにきちんと追随しなくなる。
(ウェイトペイントを使わないため)

ボーンの動きを確認するためにはボーンを選択しポーズモードで動かしてみる
ctrl+tabでモードをトグル




アニメーションを付ける


左上でAnimationに画面レイアウトを変更する。
適当なタイミングでposeモードのボーンを動かし、Iキー>locrotで動きをキーに記録する

最初のポーズをtime1に記録しておく。
下段、Starttimeはいじらない。unity読み込みでおかしくなるため。
ポーズはコピペできる

FBX形式でエクスポートする。scalは1000倍 -Zforward Yup
モデルを読みこめばボーンは選択していなくてもきちんとエクスポートされる。
アニメーションを付けない場合でもボーンを埋め込んでおけば軸ズレは防げる様子。Unityはオブジェクトの回転の起点をrootのボーンに設定している?(未確認)


Unityにfbxを取り込んだらAnimertionTypeをLegacyに変更する


その後Animetionsでアニメーションクリップを定義する。


コンポネントで定義すればアニメーションが再生される。

ボーンのrootがunityでオブジェクトの回転(ex. transform.rotation)の中心になる?
アニメーションなくてもボーンを埋め込んどけばunityでインポート時にも軸が狂わない模様






0 件のコメント: