日々適当

hibitekitou

Blenderでの操作の基本的なところ 3

cg |2019-07-11

オブジェクトのローカルのセンター(オブジェクト原点)を設定

コマンドとしては Set Origin にまとまっているようです。

ローカルの原点を、ジオメトリの中心・3Dカーソル位置・重心に移動させることができるコマンドということのようですね。

オブジェクトの結合と分割

結合は複数オブジェクトを選択して、Object→Join

分割は分割したいメッシュを選択して、Mesh→Separate→Selection すか。右クリックでも実行できますね。By MaterialとBy Loose Partsってオプションもありますが、前者はマテリアルごと、後者はポリゴンアイランドごとに分割されるでいいかな?

回転中心

オブジェクトやコンポーネントを回転させる時の中心はピボットポイントで指定する模様。

バウンディングボックス・3Dカーソル・それぞれの原点・中点・最後に選択したやつの原点、を選ぶことができる。一番下の Only Origins はオブジェクトの原点だけが回転中心周りを回るようにする設定で、これをオンにすると観覧車みたいなことができる。
回転中心を任意に指定したい場合には3Dカーソルをピボットにするように設定して、3Dカーソルを適切な位置関係に持っていくのでしょうか。

そんな3Dカーソルを動かすのに便利な機能が2.8から加わったのだそうです。

カーソルのOrientationのポップアップからGeometryを選ぶと、クリックした面(エッジもかな?)にカーソルが移動し、かつ向きもそれに揃うので、ある面の垂直方向に動かすとかが簡単にできるようになったということです。

コメント ( 0 )|Trackback ( )

アセットをどんなサイズで作るのか

cg |2019-07-11

UnityとBlenderの話です。

SoftimageはSI単位系とかは内部で持っておらず、内部単位を現実世界のメートルにするのかセンチメートルにするのかミリメートルにするのか尺にするのか、そんな風に自分の中で決めて制作をしておりました。シミュレーションの結果を適切に出すために最適なサイズの決め方とかはありましたがね。
Unityもそれは同様みたいです。1Unityユニットってマニュアルには書かれています。
現実世界の単位系の中で制作を進められるソフトも多いですね。UnityのマニュアルによるとMaxはインチが基準でMayaはセンチメートルだそうです。
そして1Unityユニットは1mとして作ることをUnityは推奨しているそうです。

Blenderの場合、デフォルトではメートル単位で運用されるようになっているようです(Unit SystemがMetric、LengthがMetersになってる)。

それで Unit Scaleの値を変えると下図のように同じオブジェクトなのにUnit Scaleに応じて大きさが変化するみたいですね。

とはいえ、内部的にはBlenderユニット単位で値は保持されているようで、BlenderでデフォルトのCubeを出した時、それは2 Blenderユニット四方のサイズということになります。で、LengthをMetersにすると一辺は2mで、Millimetersにしてもそれは変わりません。そのCubeを2ミリメートル四方として扱いたないならUnit Scaleを0.001にする必要があります。ってことで大事なのはUnit Scaleってことっすな。

そうやって、1Blenderユニットを1mとして作った1m四方のキューブを用意しました。これをFBX出しします。

Apply Scalingsのところを変えると、Unityに読み込んだ時にScaleに入る値が変わってきます。

All Local(左)とAll FBX(右)の二種類を試しています。ネットを見ると対UnityにはAll FBXを使用しろとありますね。All Localだと一見サイズは同じに見えますがスケール値に100が入っちゃってます。ちなみに同じfbxファイルをMODOに読み込んでもスケール値は100(10000%)となります。

ってことはAll Localの場合、Blenderが「このオブジェクトは1ユニット四方(サイズは1m四方)だよ」って言った時に、けれどもFBXデフォルトの1ユニットは1cmだから100倍のスケール値を持たせて保持しましょうとなるのかね。

一方でAll FBXは、Blender側で1ユニット1mにしてるからFBX側もそうしてねってことでしょうか?

で、Z-upのBlenderとY-upのUnityとでポーズの整合性を取るためには、Unity側でどうしてもX軸に90度の回転を入れないといけないです。しかも -89.98 度って値が入ってる。なぜ?
ということで、2.8ベータ版には実験的にそれを補正するオプションがついていて、それをオンにすること前提で、結果的にFBX書き出しでは以下のようにすれば良さそうです。

これで意図したポーズでSRTの値が全部デフォルト値になってくれました(ポジション・回転は全部ゼロ、スケールは1)。階層が複雑になった時、例えばキャラクター系をやった時にこの実験的に搭載された機能がちゃんと動作するかは分かりませんが、単純なものならこれで良さそうです。

コメント ( 0 )|Trackback ( )
  ・