2013年1月25日金曜日

Import multiple BVH file to Blender, Export as one FBX file and Import to Unity as multiple Animations (ネットに転がってるVBHをUnityで使えるようにする)

使用ツール
・Blender 2.56
・Unity 3.5

ここのサイトで色々なbvhを落とせるので適当なものを落とす
https://sites.google.com/a/cgspeed.com/cgspeed/motion-capture/daz-friendly-release

こっちが何が何の動きかリスト(リスト見てもよくわからない)
https://sites.google.com/a/cgspeed.com/cgspeed/motion-capture/cmu-bvh-conversion/bvh-conversion-release---motions-list

適当なbvhをblenderにインポートする。Armatureとして。値はデフォルト




AnimationつきのArmatureオブジェクトとしてインポートされる



適当なモデル(裸のオッサン)を用意して、
ArmatrueをObjモードで適当な裸のオッサンの位置にざっとあわせ
ArmatureのEdit Modeに入って各Boneの位置をなんとなく裸のオッサンにあわせる

この位置あわせの時に注意すべき点は、各BoneのAxesは絶対にRoll回転させないこと。




こういうことすると動かしたときになんかねじれてキモイことになる。
(とにかくRollには注意。いじる機会ないと思うけど)


で、Boneをなんとか正しく当てましょう。




ところで、ArmatureはBone構造が同じなら
ほかのArmatureに適用されているAnimationを適用できますよね。
(Bone名が同じなら同じ動きする)













なので、このBVHのインポート後のデフォルトArmatureを
キャラに適用できれば、後からインポートしたBVHのAnimationデータをいくらでも使える。
今回はrun, walk, danceの3つのBVHをインポートした。

さっきのBVHの素材サイトは番号だけ振られてて何が何だかよくわからねーけどここで探す。

https://sites.google.com/a/cgspeed.com/cgspeed/motion-capture/cmu-bvh-conversion/bvh-conversion-release---motions-list



これをfbxとしてエクスポートする。
たぶん、Shift押しながらキャラクタと、Armatureを選択して


FBX Export
Selected Only にチェック入れる以外はデフォルト。
Selected Onlyしないと余計なもんが入るから。




それでExport したFBXをUnity3.5のProjectペインの適当なフォルダにドラッグ&ドロップしてインポートする。

とりあえずAnimationごとインポートされて











Unity上で動いた
(下はUnityのSceneウィンドウ上。
上の画像のInspectorのAnimationの中の「dance1」を再生しているところ)





スクリプト側からも当然呼び出せる。
やったね!

これをうまく使えばクオリティの高い動きが実現できると思うんだけど
Mecanimでどう使うのかは未検証なのでいつかやる。やらなきゃいけないね。


2013年1月23日水曜日

Blender のRIgあてたキャラをUnity mecanim へ入れる


UnityのMecanimの公式チュートリアルをやってみましたが、用意されているものをそのまま使うのはどうも理解がなぁと思ったので

Blenderで作ったキャラをUnity+Mecanimに乗せることを試みました。
このチュートリアルをやってみました。
http://www.youtube.com/watch?v=Z9iUm2llVPc


結果は、初めてだったけど上手くゆきました。
(私が入れたのは右の裸のオッサンです。左は公式のチュートリアルのRobot)


一応同じidleアニメーションポーズを取ってるし、スクリプトを適用し、再生して適当なキーを

押してみると


裸で走る立派な不審者になりました!
おめでとう!
よくわかんないけど


チュートリアルの手順そのままですが、

まず、適当なキャラクタを用意します。

私はmakehumanで適当に吐き出したobjファイルをBlenderにimportして使いました。



次にチュートリアルのとおりにBoneを入れます。






で、このBoneをAutomatic Bone heatで人体のMeshに適用して動きを確認


ここまでは普通のBlender上のRigging.
で、Unityの公式チュートリアルから公式のチュートリアル用のプロジェクトファイルを落としてきたプロジェクトフォルダをUnity4.0で開いて
Sceneファイル Assets/Finished/Scenes/Tutorial-done.unityを開いて
これを一応別名で保存して、そいつを開いたまま
さっきの*.blendファイルをAssetsフォルダの適当なフォルダにドラッグ&ドロップしてぶちこんで

blendファイルをUnityにインポートさせ





こいつ(untitled.blend)を選択したままのInspectorで、Rigタブを開き、
AnimationTypeでHumanoidを選択








でConfigureを押す

と例のConfigureウィンドウに入るので


Automapを選択


そしてMappingタブのお隣のMusclesタブ開いてみると

適当なスライダー動かすとちゃんと適当に動きますよと。


これでDoneを押してConfigtureを閉じ、Sceneウィンドウに戻ると、
公式チュートリアルのRobotくんとおなじAnimationControllerが利用できます。



というか、動画見ればわかるので書く必要がなかった。。

2013年1月8日火曜日

Shader on Unity 結局Strumpy Shader Editor

ここでいうShaderはモデリングソフトのShaderではなく
ライティングやシェーディングを行うためのあいつのこと。

だいたい、すっげーグラフィックのゲームはShader使ってる。
だからShader使えるようになればそれなりに見栄えがするものができると思う。

まあ、センスがあればの話なんですけど。

Shaderに絞って解説している
「SHADER GURU」という日本語の本があるけど、そっちはDirectX11をつかっているんで
環境整えるのが面倒。。


UnityでShaderをやりたいだけなんだ。

と思ってたら

Strumpy Shader Editor
http://u3d.as/content/strumpy-games/strumpy-shader-editor/1C4


というのがあるらしいではないかっ
しかもフリー(2013/1現在)。

全く知らんかった。ほんと勉強不足ね。

インターフェースはこんなんだった。

oh..BlenderのNode Editorにそっくりやん。

これなら少しいじれば慣れるかもしれない。
ぜひマスターしてやろう。


参考にさせて頂いた記事
Strumpy Shader Editor導入
http://www.shader.jp/?page_id=300
http://www.shader.jp/?page_id=353