ラベル Blender の投稿を表示しています。 すべての投稿を表示
ラベル Blender の投稿を表示しています。 すべての投稿を表示

2014年11月27日木曜日

Blenderから出力したオブジェクトをInstantiateする時の回転

FBX出力時に軸を操作しろよという話もあ・り・ま・す・が!
ちょっと今頭を使う時間がないのよ。

Blenderから出力したオブジェクトはおそらく
-Z Forward
Y Up

オプションで出していると思いますが。
これをこのままUnityに表示すると
Euler(90, 0, 0)
で配置されます。

これをよくあるInstantiateの構文で出そうとすると。
Instantiate (prefab, Vector3(0, 0, 0), Quaternion.identity);
てなって、これで出すと90度回転してしまいます。
なので、回転を設定・・・
えええーまたQuaternionじゃねーの!
というわけで、90度回転させて置く場合の記述方法

Instantiate (prefab, Vector3(0, 0, 0), Quaternion.Euler(-90, 0, 0));

理屈じゃねーんだ!
身体で覚えろ!


・・・・


何かね
Quaternion.EulerAngles(-90, 0, 0)
とか
Quaternion.eulerAngles(-90, 0, 0)
とか色々試しちゃったよ・・・
つまり総当りで見つけ出したってわけ!
記憶障害のある文系ってこれだから!
ね!

BlenderからUnityへのモデルとアニメーションの出力

スケール


UnityはBlenderの100倍のスケールで動作している
Blenderからの吐き出しを100倍にしないとUnity上で1の大きさで表示されない
しかし
単純に100倍して出力するとトップノードに100倍のスケールが入る
このため子ノードのローカル移動が(ワールド移動は問題ないが)1/100単位になってしまう
そのため小数点以下2ケタが無視されてしまい誤差が生じる
かといって
Blender上で100倍のスケールで作業するとビューのクリッピングやデフォルトのオブジェクトの大きさが小さすぎるなどの問題が生じる
現在はBlenderで10倍のサイズで作業して
出力する際に10倍して対応している


フレーム番号の違い

Blenderのスタートフレーム=1
の場合
Unityのスタートフレーム=0


1フレームの扱い


Blenderで1fだけのモーションを作った場合
Unityの最少アニメーション長は0.1f
つまりBlenderの1.1f分のアニメーションも再生されてしまう
停止したアニメーションを作成したい場合
Blenderでは(例えば)1~2fで作成し
Unity上で1~2fとしなければならない


アニメーションの出力


Takeを出力できるという記述もあるが今のところ再現しない
よって
A:モデルとアニメーションを同時に出力してUnity上でアニメーションを分割する
B:モデルとアニメーションを別々に出力してUnityで分割して使用
C:モデルとアニメーションを別々でアニメーションも分割して出力
しかしCの場合再生されないアニメーションがあったのでAかBが望ましい
(ファイル数が多くなるのでデータロード時間の問題?)
また出力ファイルの大きさの問題からBを推奨する
その場合「フレーム番号の違い」に注意して分割すること


アニメーションが正常に再生されない場合


Anim.Compressionがデフォルトでは「Keyframe Reduction」になっているので
「Off」に設定する


アニメーションするオブジェクトの移動


(Genericモードの場合=Mecanim使用)
トップノード無し トップノード有り
オブジェクト自体を移動する ワールド位置に戻る ワールド位置に戻る
Unity上で親を付ける ワールド位置に戻る ワールド位置に戻る
ApplyRootMotion = off 移動先でアニメするが
トップノードが動かない
移動先でアニメ

Blenderでモデルを作成する時にBlender上では動かさないが
Unity上で全体位置を操作するためのトップノードを作成し
ApplyRootMotionをoffして作業することを推奨します

★RigセクションのRoot Nodeの項目変更による動作については未調査


出力ファイルの大きさ(参考)

モデルの構造やアニメーションの長さに依存しますが
アニメーションするノードだけをアニメーションファイルとして別に出力した方がサイズが小さくなります
また複数のアニメーションを含む場合は別々に出力するよりも1ファイルで出したほうが小さくなります

モデルとアニメーションを同時に出力>510kb
モデルのみの出力>197kbアニメーションのみを1フィアルで出力>170kb

アニメーションのみを分割して出力(複数のアニメーションファイルの合計)>346kb


プログラムによるアニメーションよりもアニメーションクリップが優先される

つまりそういうこと。
キャラクターの首の角度をプログラムで回転させようとしてもアニメーションクリップが適用されている限り動かすことができない。
頭と体を別オブジェクトにして間にアニメーションクリップと関係のないノードを挿入する?
現在キャラクターアニメーションを使っていないのでよくわからない。

2014年11月6日木曜日

Blender:Edit ModeでPick Shortest Pathされてしまう(MAXキーショートカット)

普通・・・

Ctrl Left Mouse Button
したらピックしたメッシュなりをそのまま選ぶはずなのに、何故か直前に選んだメッシュからそのメッシュまでつながったメッシュが全部選ばれてしまう!
これ、困ってる人にしかわからない説明だけど、困ってる人はわかるはず!

というわけで、

MAX Key Short Cutにしている人向け
Toggle Selectionにする方法



キャプチャ

単純にUser Preferenceでチェックを外すだけ
ふースッキリ!
Save User Settinを押すのを忘れずに!

2014年11月5日水曜日

Blender:Attach とDetach

MaxでAttachとDetachって言ってる奴。

とりあず愚痴るのでさっさと知りたい人は、読み飛ばして貰えればいいと思いますが。
なんで!
Joinの隣にSeparateが無いんだ!

さてそれでは・・・

Join

これはMaxでいうAttach
こちらは、Object Modeで左のメニューにあります。
複数選択してからボタンを押すと、一つのオブジェクトになります。

さて・・・
じゃあ分割しようと周囲を見回しても・・・
それっぽいものがない!
じゃあどこよ!

Separate

こちらは、Edit Modeでショートカットの「P」。
もう一度言います。
Edit Modeでショートカットの「P」

わかるかよ!
オススメは「By loose parts」。
くっついていないやつを全部バラバラにします。

ちなみにSeparateは未だにメニューからは見つけられてませんよ!
マジで。

Blender:Duplicate LinkedとUnLink

ブレンダーのキーボードマッピングがどーしても受け付けなくて、MAXにしてるんですが。
それだと、なんかしらんが二重に登録されてたりしてうまく動かない場合が多い!

それはさておき

Duplicate Linked

これは左のツールバーから選べば簡単。
コピー元でもコピーされたオブジェクトでも、Edit Modeで編集するとどちらも同じように変わる。

Duplicate Linked > Unlink

これがよくわからんかった。
ググると、「U」を押せばいいらしいのだが、始めに書いたようにキーボードマップがMAXだと動かん。
そこで、直接やることになる。

結論から言うと、この「2」になっている所を押すとよい。


まあUnlinkなんてショートカットにアサインされてても別にそんなに使わないしいいや。

2013年10月28日月曜日

Blender:オブジェクト原点の移動と回転

MayaだとInsertキーを押してやるアレ。
Maxだと右のタブから選んでやるアレ。

Pivotと呼ばれる、オブジェクト自身の原点の変更方法。

・移動
3DViewのメニューから
Object>Transform
のOrigin to というところを使う
BlenderではOriginと言うみたいね。

・回転
これはかなり無理矢理
正式なやり方はわからない
現状はEdit Modeに切り替えてオブジェクト自身を回転させてOriginとずらしている

本当のやり方はどうなんだろう
Posted on 8:41 | Categories:

2013年9月20日金曜日

2013年9月16日月曜日

BlenderからUnityにオブジェクトを持ってくるとSmooth Shadeになってしまう問題

http://answers.unity3d.com/questions/294558/blender-normal-smoothing-import-problem.html

ここに回答があった。

モディファイアにエッジスプリットを入れる

以前から調べていてスプリットしちゃうと後々オブジェクトの編集が難しくなるんじゃないかと思ってたんだけど、モディファイアを使うなら問題なし。

めでたしめでたし。

2013年7月14日日曜日

Blenderはおいといて・・・

結局、ちょっとBlenderを勉強しながらやってると、プログラムが進まないので、Unityで仮組みしてしまうことにした。

しかし・・・・BlenderよりUnityの方がオブジェクトの配置とか楽なのはなんで・・・

2013年7月10日水曜日

Blender四苦八苦:スケーリング

BlenderのスケールがUnityに持ってくると消える!

例えばキューブを、スケールを使って棒にしたとすると、Unityではキューブに戻っちゃう。
棒を作りたければ、EditModeでVertexをいじらないきゃだめ!

まあ、何にせよスケーリングは色々と悪さをするから、全部1なのにこした事は無いんだけど・・・

Blender四苦八苦:モデルのスムージング

Blenderでやったオブジェクトのスムージングが
Unityに継承されない!

調べたところ・・・
http://forum.unity3d.com/threads/130542-Flat-Shading-in-Blender-Imported-Mesh

ダメみたい!

エッジをスプリットしろって・・・

BlenerのオブジェクトはUnityに持ってゆくと、全部スムージングがかかった状態になります。

BlenderのファイルをUnityで直接読む

http://d.hatena.ne.jp/tueda_wolf/touch/20120120/p1

UnityのAssetフォルダにブチ込めば読めるらしい。

...

読めました。
あっけなく。

テクスチャなんかは別途張り込まなければならないけど、UVは来てるから楽チン。

気がかりなのは、.blndファイルがマテリアルとかテクスチャを内臓してること。
ファイルが壊れたら一発アウト。
あと、容量的にも不利なんじゃないかなー。調べてないけど。

でも、とりあえずテンション上がった!
Blenderの扱いにはまだ心が折れがちだけど。

2013年7月8日月曜日

2013年7月7日日曜日

2013年7月1日月曜日

Blenderチュートリアル開始

3DモデリングにはBlenderを使ってみることにしました。

Blenderはとりあえず、見た目がいい!



で、チュートリアルがあったので、開始しました。
http://www.blender3d.biz/index.html

んですが・・・
AutoDesk製の3Dソフトを使っていると、Maya/XSI/Maxそれぞれショートカットキーが違っていてイライラしていたものです。
しかし!Blenderのショートカットは違いすぎ!

あと、テンキーショートカット必須!

ノートPCで作業しているので、ビューの切り替えもままならないんですよ。
(ビューの切り替え系は全てテンキー使用)

あと、マウスの使い方変すぎ!

右クリックで選択?

はまだいいとして・・・

左クリックは謎の「3Dカーソル」とやらの移動。
なんだそれ!
答えはPivotが常に出ているという状態なんですがね。

先が思いやられますよ。

普段お高いソフトを使っていて、これからBlender触ってみようという人は、フリーソフトのヤンチャぶりに驚くといいと思いますよ。

---<追記>2013/7/7
あの変なセンターカーソルとやらをリセットするには、
Shift_C