怒涛のMMD移植から一転、油圧ショベルのモデリングっす。

 

 

色気はないな

 

 我慢しろやああああ

 ほんとはワシもショベルとかほっぽり出して、髪とか揺らしたいんじゃああ。

 

 までも、基礎は大事ですよね。

 MMDモデルいじるにしても、メッシュの加工・変形の知識は持っといた方がいいからね。知ってると知ってないで効率だいぶ違うから。

 とりま、私がBlenderで作った油圧ショベル3Dデータも置いときます。

 

↓油圧ショベル3Dデータ(こいつからCOLLADAファイルを出力した)

http://tetera.jp/xcc/book-sample/yumbo.blend.zip


 で、これから語る私のショベル作成作業では、次のサイトが大変参考になりました。

 

↓ここね

https://blender-cg.net

 

 「お気楽極楽Blender[1]インツーザ3D後編」の最後でも紹介したサイトっす。

 GIFアニメーションで操作方法を紹介してくれてたりとか、かなり親切な作りでありがたい。感謝。ここにリストされてる入門記事を読んでいけば、それなりにBlenderを使えるようになると思われ。

 全部読んでから作り始めるのもいいし、先に作りたいモデルを決めて、それを作るにはどういった方法があるのか探りながら、その都度読んでいくのでもいいんじゃないかと。

 私は後者派。

 このブログは、そのためのもんで、油圧ショベルをネタにしてBlenderのモデリング機能の一部を紹介します。あくまで一部ね。

 どのみち終わりはない。

 Blenderというか3Dモデラー、レンダラー全般に言えるんだけど、やることがありすぎて、深く追求し始めるときりがないのよ。その間に新しい機能追加されるとかね。

 参考にしたサイトは、その都度紹介する予定。

 本では以下の2冊を読みますた。

 ちょい古いです。今はもっと色々な本出てるし、YouTubeも充実してんで、そっちから攻めるのがいいかと思う。

 

 

 アプリでキャラを動かしたい者にとっては、下のずん子ちゃん本より、こっちの本の情報の方がより役立ちます。アーマチュアやインバースキネマティックス、布シミュレーションあたりのやり方まで解説しててアニメーションも作成する。それとノードエディタの説明もあり。
注意)インバースキネマティックスは逆運動学と訳される。例えば現実の世界で人形にボクシングのファイティングポーズ取らせようとした時、大概の人は人形の手首持って胸に近づけたり離したりして調整すると思うけど、その時、人形のヒジ関節が手首の位置によって勝手に曲がってるでしょ。コンピュータの場合、このヒジの曲がり具合を逆算しないとダメなんだけど、これが結構むずいのよ。そこらへんで使うのが逆運動学。布シミュレーションは、文字通り布の振る舞いをシミュレートする。スカートのひらひらを再現するためなんかに使います。ノードエディタはレンダリングの際の処理工程を編集する機能で、Blenderで画像を生成する際の仕上がりを調整するのに使う。

 

 

 

 こっちはSubdivision surfaceの取り扱いに力点置いてる。アーマチュアでポージングまでさせるけどアニメーションは無し。

注意)Subdivision surfaceは、大雑把な平面で構成される3D立体形状から、その平面を細分化してより詳細な形状を計算する仕組み。ずん子ちゃん本は初版本を買ったせいで誤植に悩まされたんだよね〜、懐かしい。[頂点の経路を連結]を使わないとできないところに[辺/面作成]を使うって書かれてるとこが結構あって、全然書いてるとーりにならねーじゃんってなった。先に正誤表を確認するべきだったわー。

 ↓正誤表確認は技術本の基本やね

 https://www.borndigital.co.jp/book/5815.html#book_support

 

 2冊のモデリングの仕方、それぞれやり方が違ってて興味深かった。いろいろなやり方があるんだね〜。ネットでは、そのどちらでもないモデリングの仕方があったし〜、奥深いわ。
 と前置きはこれくらいにして、まずは、アームからいってみましょう。

 上に置いといたyumbo.blendファイルを開いてみてください。

アーム

 アウトライナービュー見たらわかるように、アーム(arm)は単独のオブジェクトじゃありません。arm本体に複数の子オブジェクトが追加される形で構成されてます。そのほとんどは、Blender組み込みの形状を使ってて、それを縦に伸ばしたり横に縮めたりして、それぞれをくっつけたりしてるだけなんすよ。

 

注意)arm line 1、arm line 2、arm line 3のチューブも、組み込み形状なんだけど、カーブってのを使っててちょっと特殊っす。使い方はいずれ。

 

 例えば、arm>bucket power部なんてのは、2本の引き延ばした円柱オブジェクトを親子関係にしてるだけ。

 

 

 なんだけど、「お気楽極楽Blender[1]インツーザ3D前編」で紹介した拡大縮小のやり方じゃ、縦や横、幅の比率(プロポーション:proportions)を保持したまま拡大縮小するので、円柱を縦に伸ばしたり横に縮めたりはできないんすよ。

 

プロポーションを維持して大きくなったり、小さくなったりする

 

 こういう場合は制約を使います。

 とりあえず、実際作ってみるということで、今のモデルは作業に邪魔なんで消しましょう。まるっきり新規に、情報ビューでファイル>新規でもいいんだけど、今回はレイヤ使ってみます。

レイヤ

 オブジェクトを隠す方法はこれまで散々やってきたけど、今回は層(レイヤ:layer)単位での表示・非表示。Blenderは作業空間を20層のレイヤーで共有してまして、層ごとに表示・非表示を切り替えることができるんですな。

 層といっても、オブジェクト同士の階層関係には全く影響しません。

 あくまでBlenderでの作業中に、見せるグループ、見せないグループを、より分けるのが目的なだけの層っす。

 表示・非表示の状態は3Dビューのボトムバーにある可視レイヤで確認・コントロールできるようになってます。

 

 

 例えば、今見てるyumbo.blendファイルの全オブジェクトは、1つのレイヤに集中して割り付けられてて、その層だけが表示状態なわけですよ。

 

 

 んで、この可視レイヤは、クリックで切り替えでき、shift+クリックで追加や解除ができるようになってます。

 なので、オブジェクトを複数のレイヤにより分けておくと、いちいち選択して表示・非表示なんてしなくても、必要な時に必要なオブジェクトだけまとめて表示・非表示することができるんですな。

 

 今回は、勉強の意味でこいつ使います。

 まず、左上2番目の可視レイヤをクリックしましょう。

 1番目が非選択状態になるので、油圧ショベル、カメラ、光源全て見えなくなる。

 

 

 これで、以後の追加オブジェクトは、この選んだ2番目のレイヤに所属することになる。

注意)shiftクリックで複数選んでる場合は、追加オブジェクトが所属するのは最後に選んだレイヤね

 

 てことで、まずはオブジェクトモードにしておいてから円柱追加しましょう。

 間違って編集モードの時に追加しちゃうと、その編集中のオブジェクトの形状に円柱を追加することになるんでね。

 あくまで円柱の形状を持つ、単独のオブジェクトとして追加します。

 何言ってるのかわからん人は「お気楽極楽Blender[1]インツーザ3D前編」から読み返すように。

 

 1、オブジェクトモードにしておく

 2、shift+aキー打ちでメッシュ>円柱を選んで追加

 注意)もちろんボトムバーから追加>メッシュ>円柱でもいい

 

 こんな感じなりよ。

 

 

 これで円柱形状の単独のオブジェクトを1つ追加したことになる。

 ちなみに、追加された円柱は3Dカーソルのある場所に出現するので、3Dカーソルの場所によっては画面外に出現する場合があります。

 あれ、円柱出ねーなと思ったら3Dビューのボトムバーから、以下のいずれかを選びましょう。

 

 ビュー>選択部分を表示

 ビュー>視線を揃える>3Dカーソルを視点の中心に

 ビュー>視線を揃える>選択部分を表示

 注意)視線を揃える系と、そうでない系の違いは知りません。いつかわかると思われ

 

 今更だけど、3Dカーソルを原点に移動させてから、オブジェクトを追加するとよくってよ。

 もう変な位置に作っちゃたyoooな人も、円柱選んだ状態で3Dビューのボトムバーから以下の2ステップで円柱は原点に移動してくれます。

 

  1)オブジェクト>スナップ>カーソル→原点

  2)オブジェクト>スナップ>選択物→3Dカーソル

 

 ちなみに、1)の代わりにshift+cキー打ちでもいい。これはビュー>視線を揃える>3Dカーソルのリセットと全表示のショートカット。1)と違い原点が中心に来るように見てる範囲も調整されるんで目的によって使い分けるといいす。

 

 で、円柱を選んだ状態で編集モードに切り替える。

 

編集状態だ!


 こんな感じで、形状をいじるのは基本的に編集モードでやって、オブジェクトモードでは、編集モードで完成させた形状を移動したり回転させて配置するだけって風に役割分担させるのが正統派なんじゃないかと思われ。

 油圧ショベルはかなり適当に作ったけど…

注意)一つのオブジェクトの形状を、複数のオブジェクトで共有させて、それぞれを不均等なプロポーションで拡大縮小することで、変化をつけるって手法もあるけど、それはまたいずれ。

 

 編集モードになったところで、不均等スケーリング行ってみよー。

 ここから先は、円柱全体の変形なので、頂点が全選択状態になってる必要がある。

 なんか変な操作して、全選択になってなさそうならaキー打ちで全選択状態にしといてね。

 

 まずsキー打ちでスケーリング状態にするのは同じ。

 違いは、スケーリング状態でzキー打ちすること。

制約(x、y、z軸だけ動けるようにする)

 これでz軸に沿った拡大しかできなくなる。

 スケーリングの中心点を通るz軸に平行な薄青の線が出てるの気づいた?

 

 

 スケーリング状態時は、xキーyキーとキーを打つたびにスケーリングできる方向が限定されるのがわかるはず。それに合わせてスケーリング制約軸の表示も変わります。

 

 

 右クリックでキャンセルになるので、x、y、z軸切り替えながら、いろいろな軸で制約されたスケーリングを試してみるといいです。

 で、気づいた人もいると思うけど、例えばzキー打ちでz軸制約状態にして、もう1度zキー打ってもz軸制約解除とはならない。解除するにはzキーを2回打たないと解除にならないのよ。

 何でかというと、軸制約にはグローバルとローカルの2種類あって、同じキーを打つ場合、次のようにローテションしてるから。

 

 

 3Dビューのボトムバーにも出てるんで、z、z、z、z、…てキーを打って変化を観察してみるといいでしょう。

 

 

 で、このグローバル・ローカルなんだけど、「光あれ」でSCNNodeのワールド座標とモデル座標ってやった、あれのことです。でもって、今は、ワールド座標とローカル座標の軸が、一致してるんで全然変化がわかりません。

 基本、形状モデリング中はそれでいいんだけど、それじゃ違いがわからんので、わざとワールド座標とローカル座標の軸をずらしてみます。

 スケーリングをキャンセルか確定して、編集モードからオブジェクトモードに戻しましょう。

 でもってオブジェクトモードで円柱に、移動と回転を加えます。

 ちなみに今回は数値で制御してみる。

数値での移動や回転

 まずは、オブジェクトモードに戻す。

 で、3Dビューのボトムバーからビュー>プロパティを選んでプロパティパネルを出す。

プロパティパネル

 

 円柱が選ばれてるのを確認して、位置、回転に以下の値を入力。

 

 

 これで、ワールド座標とローカル座標の軸がかなりずれた状態になったわけだ。

 XYZオイラー角ってのは、「ムーブムーブムーブ」で説明したオイラー角の適用順序ね。X軸で30度回転させてから、Y軸で30度回転させる。順序が変わると回転結果も変わります。今回はどう傾いてもいいんだけど、上の画面と一致させたいならXYZオイラー角にしてx=30度、y=30度を指定しましょう。

注意)「ムーブムーブムーブ」で言った回転軸の順序で回転結果が異なるてのを、実際に確認したい人は、ここでYZXオイラー角とか、色々変えて違いを見るのもいいんじゃないかと思われ

 

 これでプロパティパネルの仕事はおしまい。

 画面が狭い場合、もう一回ビュー>プロパティを選んで引っ込めます。

 パネルの左端を右にドラッグしてもいい。右側まで持っていくと「+」になります。こいつをドラッグ(クリックでも可)して引っ張り出すことも可能。

 

閉じてもよし

 

引っ張り出してもよし

 

 ショートカットはnキー打ちね。

 ちなみにMMDでもお世話になった左のパネルはツールシェルフって言います。

ツールシェルフ

 

 こっちも3Dビューのボトムバーからビュー>ツールシェルフを選んで出したり引っ込めたりできます。画面上での操作も同じ感じ。ショートカットはtキー打ちね。

 

 ということで、円柱が選ばれてるの確認して、編集モードに戻りましょう。

 さっきと同じようにスケーリング中にzキー打ちすると、今度はスケーリング軸が変わってるのがわかるはず。

 

 

 

 ここらへんを理解すると、この傾いた状態でも、以下のステップで自由な長さの円柱がモデリングできるわけっす。

  1.  s:スケーリング開始
  2.  z:z軸制約設定(グローバル)
  3.  z:z軸制約設定(ローカル)
  4.  円柱を上下に伸ばす
  5.  左クリックで確定、制約でのスケーリング終了
  6.  s:スケーリング開始
  7.  好きな大きさに均等スケーリング
  8.  左クリックで確定、スケーリング終了

 

 

 ま、普通はグローバル・ローカル軸を一致させていじるけどね。

 

 制約機能はスケーリング中に限らず移動中や、回転中でも有効。

 移動は例えばyキー打ちならy軸に沿ってしかうごかせなくなる。

 回転の場合は、yキー打ちならy軸を回転軸にする。

 それと、これとは逆に、例えばz軸ならz軸だけを動けなくする制約もあります。

 こっちはshift+zキー打ち

制約(x、y、z軸だけ動けないようにする)

 x、yに関しても同じ。shiftキー押しながらのx/yっす。

 実際スケーリングでやってみればわかると思いますが、shift+zキー打ち(ローカルの方なんでshift+zを2回ね)やると、円柱の上下の長さは固定で、円だけが、形を保ったまま大きさだけ変化するはず。

 移動や回転でも同じ。

 回転に関しては軸を固定って表示されるけど、それって軸で回転するって意味じゃ…、同じなんじゃ…、実際shfit有りも無しも同じっぽい。

 

 後、こういった制約使う他に、画面上に出てるマニピュレータを使う方法もある。

マニピュレータ

 ボトムバーのトランスフォームマニピュレータてのがそれで、非表示、移動、回転、スケーリング用が選べます。

注意)望むならshift+クリックで複数のマニピュレータを同時に表示させることも可能

 

非表示

 

移動

 

回転

 

スケーリング

 

 デフォルトは移動用になってって、xの矢印ドラッグすれば、x軸に沿って移動するし、yの矢印ドラッグすれば、y軸に沿って移動するわけですよ。

 

各矢印をドラッグして軸に沿った移動を行う

 

 右にあるトランスフォーム方向をクリックしてメニューを選べば、グローバルとローカルの切り替えもできます。

 

 注意)ノーマルとかジンバル、ビューについては機会があれば

 

ローカル軸がよくわかる

 

 まー、でもさっきのx、y、zキーを使っての制約を覚えたらあんま使いません。

 

 円柱の形状変更は、他にもやり方があって、例えば選択ツールを面選択にして、円柱の上の面だけ選択しておいて、ローカルz軸制約の移動で上に引き伸ばしたり、下に縮めたりって方法でもできる。

 

 

  1.  面選択ツールに変更
  2.  aキー打ちで、一旦選択を全解除して、上の面だけ右クリック
  3.  gキー打ちで移動開始
  4.  zキー打ち2回でローカルz軸の制約設定

で、好きに伸び縮みさせる。

 


 その他、オブジェクトモードに切り替えて、プロパティパネルの寸法で、大きさを直接入力って手もあります。

 次回に続く。