iPhoneアプリ開発:AR 目次

 

 なんか再発の疑いとか言われたし〜

 来年3月に手術の予定。

 

 とりま、アーム本体とチューブ部分の製作。

 先にアーム本体を作って、それからチューブ取り付けます。

 

 

 アームは、ARで最終的に組み上げた時(「見た目が大事」ね)は、上のような位置や角度になるわけだが…

 ローカル空間(SceneKitでいうモデル空間)では、こんな感じっす。

 


 ARKitというかSceneKitでの、SNNodeにおけるtranslationやeulerAnglesプロパティは、このローカル空間の原点を対象に行われるんで、編集モードで原点に対して、形状をどうモデリングをするかで、なにかと使い勝手が変わってくるわけですな。

 アームの回転軸にしたいな、ってところに原点が来るように形状をモデリングしたわけっす。

 

 アームの先っぽなんかにローカル空間の原点が来るように形状をモデリングしちゃうと、eulerAngles指定時に、とんでもないとこを軸にして回転しちゃうからね。

 

 

 ローカル空間原点のズレは、最悪、pivotプロパティで調整すりゃいいんだけど、モデリング時点で気をつけるに越したことはないわけですよ。

 ここら辺、何話してるかワケワカメな人は「仮想体を置いてみる」〜「露骨なアニメ」あたりから出直してこーい。

 

 実際にアームのローカル空間での状態をみたい人は、オブジェクトモードでアームを選んで3Dビューのボトムバーから、オブジェクト>クリア>位置オブジェクト>クリア>回転とやれば親側での変形がクリアされます。

 アームを選んでる状態で、プロパティビューのオブジェクトタブ、もしくは3Dビューのプロパティパネル出してトランスフォーム項目に直接0を入力でも可。

 

ローカルとグローバルの原点が一致したので、めり込み〜

 

 グローバルでのトランスフォーム(transform:変形)を一時的に無効にして編集する、てなことできないのかね?まあ、Blenderでの回転中心は、グローバル、ローカル、選択中の頂点群の中心とか、いろいろ切り替えられるんで、それほど困らんわけだが…、やれるのかやれないのか、今の所わかりません。

 

 というわけで、この形状を作るために、まずはオブジェクトモードで立方体を追加。アウトライナービューの項目名見たら察しがつくと思うけど、アーム本体は、立方体を伸ばして変形してます。

 最終形は、次のように0.5m x 0.3m x 2.7mくらいなんで、それくらいの直方体になるように調整してちょ。

 

だいたいこんな感じ

 

 私は、オブジェクトモードのまま、3Dビューのプロパティパネルで寸法入力。そのあと、3Dビューのボトムバーのオブジェクト>適用>拡大縮小で適用してから編集モードに入りました。

 適用の意味がわからん人は「お気楽極楽Blender[6] 数値で解決」ね。

注意)最初アーム作ってる時は、大きさとか超テキトーで作ったんですけどね。縮めたり伸ばしたり、色々試行錯誤しながらね。今回は、すでにある何かを自分でも作るって時のお勉強を兼ねて、大きさ決めてやってます。

 

このあと適用して、拡大縮小は1.0に戻させるようにね

 

 ちなみに上の画面は平行投影状態の3Dビュー。

 視点から近い遠いに関係なく同じ長さなら、同じ長さで表示するモードっす。設計図っぽい。

透視投影/平行投影

 3Dビューのボトムバーからビュー>透視投影/平行投影で、透視投影と平行投影を切り替えます。慣れたらショートカットの5キー打ちで切り替えましょう。

 

 

 

 平行投影にすると、奥行きに関係なく大きさが同じになるので平行とか垂直を把握しやすい。まあ好みの問題なんですがね。

 

 あと、今回のアームのモデリングは、視線をy軸に沿わせた正面からの視点、いわゆる正面図(front view:フロントビュー)で作業すると全体の形状が把握しやすいっす。

正面図の表示

 正面図への切り替えはボトムバーからビュー>前を選べばいいんだけど、ショートカットなら1キー打ち一発で切り替わります。ここらへんは覚えて積極的に使うことで作業効率上がります。

 

 この正面から見た長方形の、以下の赤線入れてる3箇所に頂点を追加した上で、各頂点を移動させてアームの形状にしたわけですよ。

 

 感覚的に言えば、てっぺん部分の面に折れ目入れて尖らせるわけ。

 

 

 ただ、正面から見れば長方形だけど、実態は直方体(6面体)なんで、裏側の面にも頂点の追加が必要。でもって裏面の頂点と結んだ線で面も分割する必要がある。

 で、こういった、辺への頂点追加や面の分割をどうやってやるかなんだけど…

 「お気楽極楽Blender[1]インツーザ3D後編」でやったような原始的(primitive:プリミティブ)な方法だと、一度、頂点を足したい辺を削除してから、中間あたりに頂点を追加、改めて頂点同士を結んで2つの辺を追加、その他、とばっちりで消えた面を貼り直し…

 

 

 なんてことになるわけだけど、そこをどう効率化するかってのが3Dモデラーの課題なわけですよ。

 で、いよいよツールシェルフのツールタブの出番てことになります。

ツールシェルフのツールタブ

 ツールシェルフのツールタブには、3D形状の編集に使えるいろんなツール群が用意されてんですな。

 

 ボトムバーからメニューで呼び出せるもんもあるし、呼び出せないものもある。

細分化

 例えば、上の書いたように、辺の途中に頂点を追加したい場合は、まず辺選択状態で頂点を追加したい辺を選ぶ(もしくは頂点選択状態で2点の頂点を選んで選択)

 

 

 その状態で「細分化」てのをクリックすることで、選ばれた辺が2つに分割されます。ワンチャンあるので2つじゃなく3つとかの分割もできる。

 

 

 で、今回なら面を分割したいんで、同じことを面でやるわけなんだけど〜

 


 面だと四分割されちゃうんだよね〜

 

 

 

 選んでる面が3角形か、4角形かでも、分割のされ方が変わるみたい。5角形以上は対応しない感じ。面を複数選択した場合も面ごとに分割が発生する。そこんとこは各自で色々試してみてください。

 便利だけど、今回の目的には合わないんだよね。

 次行ってみよ〜。

二等分

 二等分は、上と同じように辺や面を選択した状態でクリックすると、選ばれてる辺や面を、どの位置で2等分したいかを聞いてきます。

 

 

 3Dビュー上で左クリックとドラッグで線を引いて示せって言われるので、分割したいところで切り込みを左ボタンクリック&ドラッグで入れる。

 

 

 ほぼ、ほぼ、求めてた機能っすわ。

 同じ機能で、もうちょっと自由度が増すのがナイフ。

ナイフ

 こっちは、事前に面や辺を選ぶ必要はないっす。

 まずツールシェルフにある「ナイフ」項目をクリック。

 そうすっとナイフモードになるんで、あとは3Dビューボトムバーの説明に沿って作業っす。

 

 その説明によると、左クリックしたところから、ナイフを振り回す軌道が始まって、左クリックするたびに軌道修正できる。で、ナイフの軌道に当たる面や辺が切られていくという…

 

 

 最終的にenterキー打ちもしくはスペースキー打ちで確定させて終了。

 終了時には、最後の左クリック地点までの軌道に触れる面には切り込みが入り、辺には頂点が追加される。

 例えば、上の軌道の「今、ここ」のとこで、左クリックして軌道修正かけずに確定させるとこうなる。

 

 

 とまあ、かなり自由度高いツールっす。

 キャンセルしたい場合は、escキー打ち右クリックね。


 ナイフモード中は、カーソルを辺の上に持っていくと、カーソル形状が変わるんで、そこで左クリックすると、辺の上にきっちり切り込みが入る(周りの面に切り込みがはみ出ない)ようになってるんで、そこらへん気をつけて左クリックしていけば、かなり狙った通りに切り刻めます。

 

カーソルが重なった辺が光って、今、クリックすると

ちょうど辺の上で切れ込み入れられるよって合図してくれる

 

 他にナイフモード中にcontrolキーを押すと、押してる間は、辺の中間しかナイフの軌道が通れなくなる制約をかけたりもできる。

 色々各自で試してみてちょ。

 

 ま〜、これが一番使えそうっすな。

 ただし、二等分やナイフだと軸に平行に切るのは結構むずい。

 

斜めに入っちゃったよ〜

自作自演乙的な

 

 なので、そこらへんは諦めて分割する。

 で、その後頂点を選んで整列ってことをやります。

 そこらへんは次回。

iPhoneアプリ開発:AR 目次

 

 今回作るのはarm>joint部。

 

 

 基本となるのは以下の円柱2つを直方体でつなげてる形状。以後アイドラリンクって呼びます。

 

↓油圧ショベルの各パーツの名称を解説してくれてるページ見つけた

https://www.kenki-parts.com/hpgen/HPB/entries/22.html

 

 

おっす、おらアイドラリンク

 

 私の油圧ショベルモデルのjoint部ってのは、このアイドラリンクが4つ組み合わさってるわけです。

 

 

 アイドラリンクをモデリングすること自体は、これまでの学習で可能。

 サイズは測るとこんな感じでした。

 

 

 なので、だいたい以下のステップで作れるわけですよ。

 

 0、3Dカーソルを原点に置く

   注意)shift+sキー打ちで出たメニューで「カーソル→原点」ね

 1、オブジェクトモードにする

 2、円柱追加

 3、作成時のワンチャンで半径を0.075、深さを0.07にする

 4、編集モードにする

   注意)切り替えた時点で円柱の全ての頂点が選択状態のはず。なってなければaキー打ち

 5、円柱を回転(x軸で90度回転)

   注意)ワンチャンで数値指定が正解

 6、複製

  注意)編集モードでの複製は、3Dビューのボトムバーのメッシュ>複製の追加メニューです

     編集モードだと選択してる頂点、辺、面のみが対象になるので、その点を注意ね

 7、複製物を移動(z軸に沿って0.55上昇)

   注意)複製時点で、複製側の円柱のみ、全ての頂点が選択状態のはず

 8、立方体追加

 9、立方体だけ選ばれた状態にして直方体になるようスケーリング

   2つの円柱の間に収まるように適当に調整し確定する

   注意)追加時点で、立方体のみ、全ての頂点が選択状態のはず。y軸を薄くして、z軸を長くするとか

     適当に見た目で調整すればいい

 10、立方体を移動して2つの円柱の間に配置し確定する

 

 何言ってるかわからん人は「AR 目次」開いて、第9回あたりから読み返してね。

 

 こんな風に1つのオブジェクトの形状として用意するんじゃなく、2つの円柱、直方体、全て別々のオブジェクトとして親子関係でアイドラリンクを作ってもいい。

 けど、構造物として考えた場合、2つの円柱と間をつなぐ直方体は完全に固定されてる状態なので、これをオブジェクトで個別に管理する理由もないんでね。私は1つのオブジェクトの形状として作りました。

 そういう理由で、今回は上のようにオブジェクトモードで、1つ目の円柱を追加した後は、編集モードで形状を複製したり、立方体を追加して形状そのものを変更してるわけです。

 

 ただ、編集モードで変形を行うときは、1つでも変形対象にしたい頂点を選び忘れるだけで、とんでもない形状になっちゃうんで気を使うし、aキー打ちだと、全頂点選択なんで、円柱や直方体といった2つ以上の形状を別個に選びたいときは、選びたい形状側の頂点や辺、面いずれか1つ以上を選んだ状態でlキー打ちが必要だったりとか、色々面倒なんで、まずは1つ1つをオブジェクトで用意して、それぞれのオブジェクトを、オブジェクトモードで配置や回転をした後に、1つのオブジェクトに統合するのも有りかと思います。

統合

 この場合、オブジェクトモードで、統合したいオブジェクトを全て選択しておいて、3Dビューのボトムバーからオブジェクト>統合を選ぶ。

 これで、最後に選択したオブジェクトの形状に、それ以外のオブジェクトの形状が組み込まれることになる。

 組み込まれる先のオブジェクトのスケーリングや回転、移動は変更されず、組み込まれる側のオブジェクトの形状が調整される。この調整は組み込み先のスケーリングや回転、移動が適用されたら、今見えてる形になるというもの。

 

 色々やり方あるんで、好みのやり方追求してみてください。

 

 で、こんな感じで用意したアイドラリンクなんですが、動くときは2つがペアで動く仕組みなんですよ。

 

 

 まー、こういう場合も、アイドラリンクを2つ、別々のオブジェクトとして用意してどちらかを親にするとか、全く別の空のオブジェクトを用意して、2つのアイドラリンクオブジェクトを子供として関係を結ぶとか、色々方法はあるんですが…

注意)ここでいう空のオブジェクトてのは、ローカル空間になんの形状もないオブジェクトっす。例えばオブジェクトモードで立方体追加して、編集モードで頂点を全選択して削除したりして作る

 

 私は素直に、ローカル空間にアイドラリンクを2つ配置した単独のオブジェクトを用意することにしました。

 

 

 編集モードで今用意したアイドラリンク形状を全選択にして複製し、原点を中心にx軸を挟むように対象に間を開ければいいわけですが…

 なんですが…

 こういう左右対象(シンメトリック:symmetric)系の形状を作る時に、非常に役に立つ機能がBlenderにあるんですな。ミラーモディファイアという機能。

ミラーモディファイア

 モディファイア(modifier:変更する者)です。その中のミラー(mirror:鏡)てのを使います。

 こいつはオブジェクトごとに指定できるようになってて、指定されたオブジェクトのローカル空間に存在する形状全てを特定の規則で変更するんですな。

 今回なら鏡。

 まずはアイドラリンクオブジェクトを選んで、編集モードにしてプロパティビューでモディファイアタブ選びましょう。

 

 

注意)編集モードじゃなくオブジェクトモードでもモディファイを追加できるけど、その場合も設定できるのは1つのオブジェクトのみ。複数選んでた場合は最後の選択物(オレンジ枠のオブジェクトね)にだけ追加されます。

 

 追加てのを押すとモディファイアの一覧が表示されるんでミラー選んでください。

 

 いっぱいあるんですが、この中でもミラーはかなり使います。世の中シンメトリックな形状って多いからね。

 追加されるとプロパティビュー内にミラーの詳細が表示される。私のところでは初期値はこんな感じ。とりあえず、これと同じ状態にしてちょ。

 

 

 そこまでできたら、3Dビューでアイドラリンク形状を全選択状態(aキー打ち、それで全解除になった場合は、もう一度aキー打ち)にしてからgキー打ちして選択してる形状を適当に動かしてみてください。鏡に映したような形状が現れ連動して動くはず。

 

 

 こいつはモディファイアされる前の形状の各頂点のx座標成分だけが反転した複製っす。

 こんな感じで、ミラーモディファイアのかかったローカル空間では、全ての形状がミラー複製されます。プロパティビューの軸って項目でチェックされてる分だけ複製される。今回はxにチェック入れてたのでx座標成分だけが反転した複製が出た。

 

 

 ちなみに、動かさない時に1つに見えてたのはたまたまで、たまたまアイドラリンク形状が、x軸に対して対象形だったから。

 雑なモデリングで、ミラー元のアイドラリンク形状の位置がx軸からずれてたりすれば、ミラーモディファイアを追加した時点で複製が見えてるはず。

 

 でもって、x、yをチェックすれば、x座標成分反転の複製、y座標成分反転の複製、x+y座標成分反転の複製の3つが表示されアイドラリンク4人衆になります。

 

ウヒョ〜

 

 x、y、zをチェックなら7つ複製で8人衆ね。 

 

ウヒョヒョヒョ〜

 

 今回はy軸に対してミラーします。

 gキー打ち、yキー打ちで移動しましょう。3Dビューの左下に移動距離が出るんで、0.2くらいで確定。

 

 ま、こんな感じでアイドラリンクをペアにした形状のオブジェクト完成っす。

 キャラクタ作る時なんかも、基本このミラーモディファイアを使う。

 人間、左右対称なんで、片側だけ作れば、残りを勝手に作ってくれるミラーモディファイアはマストと言っていいんすよ。

 

半分作れば

 

ミラーで完成!

 

 これはまたいずれ。

 とにかく、作成したアイドラリンクペアオブジェクトを、オブジェクトモードで複製して、複製側を編集モードで、もうちょっと左右のアイドラリンクの間隔を広げて外側とします。

 で、適当に親子関係結んで、それぞれをy軸で回転させて完成。

 

 ここらへん、見た目以外あまり考えてません。

 アイドラリンクをアームとブームの動きに合わせて動かすようにする時に改めて考えます。多分、その時はローカル空間の原点側をどこにするかとか、色々考えることが出てくる。

 

今は、こっちの簡単なやつでやってる

 

運動学的にはこうするべきか?

 

 ちなみに、回転では回転の中心をどこにするかで、だいぶ結果が変わるわけですが、私は基本「それぞれの原点」てのを使ってます。この原点てのは多分、ローカル空間の原点のこと。

回転の中心をどこにするか

 3Dビューのボトムバーから選べるようになってて、目的に合わせて使い分けると便利っすよ。

 

 

 ちなみにちなみに、もう気づいてる人もいると思うけど、rキー打ちによる回転モードは、もう一回rキー打ちするとトラックボール回転モードに切り替わります。

 

 

トラックボール回転モード

 トラックボールはゲーセンでミサイルコマンド遊んだ人や、X-68000、1990年代前後のPowerBookユーザーには馴染みの装置のはず。あんな感じで形状をくるくる回せるようになります。知らん人はとりあえずマウスを動かして試してみましょう。いつでも左クリックでキャンセルできるんでね。

注意)あとマクロスのピンポイントバリアとかなー。わかる人50歳超えてるわ〜。書いてて時の流れにむせび泣いたわ〜

 

 ちなみにちなみにちなみに、プログラムでトラックボール回転を実現するにはクォータニオン使います。興味ある人は「WebGLでいきますぜい」で紹介したthree.jsのサンプルを読むといいでしょう。

 three.js-master/examples/js/controls/TrackballControls.jsがソース本体っす。

 

こっちはトラックボール回転の動作サンプル(javaだがな)↓

https://threejs.org/examples/misc_controls_trackball.html

 

 次回はチューブ部分と、アーム本体の製作。

iPhoneアプリ開発:AR 目次

 

 Blenderのオブジェクトモードでは、オブジェクトの大きさをプロパティパネル(前回、回転で使ったやつね)の寸法で見たり指定できたりもするんですよ。

 と言っても、オブジェクトの3D形状は多種多様(MMDのキャラクタとか)で、その寸法と言われても困るわけでして、しょうがないので、形状を覆うローカル軸に沿った最小サイズの箱(Box:ボックス)を想定し、その大きさを表示するようにしてます。

 このボックスはローカル軸に沿うという決まりを設けることで、オブジェクトモードでオブジェクトを回転させても、値は変わらないってのがミソですね。調整しやすい。

 

 

 ちなみに、このオブジェクトを覆う最小サイズのボックスは、オブジェクト同士の衝突判定でよく利用されるんで今後もちょくちょく出ます。というかすでに「光あれ」でboundingBoxプロパティとして出てきてるけどな。

 ミニマム・バウンディング・ボックス(minimum bounding box:最小境界ボックス)と呼んで、そのうち軸に沿ったものをAxis Aligned (アクシス・アラインド:座標軸に沿った)minimum Bounding Boxと呼ぶんだけど、長いんで以後はAABBと書きます。みんなそうしてるねん。なのでAABBが出たら、心の中でアクシス・アラインド・ミニマム・バウンディング・ボークスと呼びましょう。

AABB

 アクシス・アラインド・ミニマム・バウンディング・ボークス!

 もうちょっと厳密に言うとローカル空間でのAABBです。

 

 で、Blenderの組み込み形状である円柱は、円柱の円部分がローカル空間のx、y平面になり、深度がzとなります。

 

 


 たまたま、円柱の特徴的な寸法がAABBの寸法に綺麗に一致してるわけやね。

 

AABBにぴったり一致

 

 オブジェクトモードでしかオブジェクト形状を傾けない限り、この値を円柱の長さや半径変更に利用できるわけっすよ。

 編集モードで傾けたらダメよん。そっちで傾けるとAABBと形状がずれるからね。興味がある人は、これからやる寸法設定を、編集モードで傾けた円柱に対して試してみるといいです。

 


 

 とにかく、当初の目的である油圧ショベルのarm>bucket power部の円柱を作るなら、円柱がローカル空間で傾いていないのを確認しつつ、プロパティパネルでarm>bucket power部の円柱の寸法を値として入れちゃえばいいわけですよ。

プロパティパネルでの寸法入力

 bucket power部の円柱の大きさも、油圧ショベルのarm>bucket powerを選んでプロパティパネルの寸法を見るとわかります。調べてみると約0.08 x 0.08 x 0.8でした。

注意)Blenderでは単位はないみたいっす。ARKitだとメートル単位の扱いになるんで、この場合、直径8cm、長さ80cmの円柱っすね

  注意)別にレイヤーを表示させなくても、アウトライナービューでarm>bucket powerを選べば出るけどね

 

 

 ぶっちゃけ、オブジェクトモードで、今作ってる円柱選んでプロパティパネルの寸法で0.08 x 0.08 x 0.8を入力しちゃえば、いきなり完成なわけです。

 

 

 ただし、こうすると「現在のAABBをこの寸法にする」じゃなく「スケーリングされてこの寸法になるよう、現在のAABBへのスケーリング値を変える」って解釈されるんすよ。

 なので拡大縮小の項目見ると、さっきまでx、y、z、全て等倍の1.0だったのが、寸法設定直前の状態から逆算されたスケーリング値が設定されてるわけです。

プロパティパネルの拡大縮小

 つまり、このプロパティパネルの拡大縮小ってのは、前回で言うところのローカル軸に沿ったスケーリングってわけで、今の寸法にするために、ローカル軸に沿ったスケーリングをやったってことになるわけです。

 

 

 ま、これでもいいーんすけどね。

 現に油圧ショベルのarm>bucket power部の小さい方(arm>bucket power>bucket power poll)は拡大縮小の値が0.08 x 0.08 x 0.6ってなってました。なんでこっちだけそうしちゃったか、ちょっと思い出せないけど。かなり適当。

 

適当に作ってるのが丸わかりというね

 

 ただ、初志貫徹、理想は追求してこそ意味があーる、で、どうしてもスケールを等倍にとどめておきたいなら、今、見えてる形状こそがローカル側での形状なんだって、Blenderに伝えてやる必要があるんす。

 この作業をBlenderでは適用って呼んでます。

適用

 スケールだけを適用する(回転はローカル側の形状に適用したくない)時は、作成中の円柱をオブジェクトモードで選んだ状態で、3Dビューのボトムバーからオブジェクト>適用>拡大縮小を選びます。

 

 

 見ての通り、移動だけ適用、回転だけ適用、回転とスケール(拡大縮小)両方適用なんてのもあるんで、目的にあった適用を選択するといいでしょう。

 今回はスケールのみで。

 これで、現在値がローカル側の形状寸法に反映されて、スケールは元の等倍(1.0)に戻る。

 

 

 こんな感じで、円柱作り1つとっても、いろんなやり方があります。

 

 円柱追加直後にワンチャン!てのもある。

 というのも、ツールシェルフパネルの下半分のエリアは、絶えず直前にやった作業の数値を表示するようになってて、その値をいじると、直前にやった作業を数値で修正できるんすよ。

直前作業の制御にワンチャン!

 例えばオブジェクトを回転させると、ツールシェルフパネルの下半分のエリアには、その回転した値が表示されるって具合です。

 オブジェクトモードのままでいいんで、今選んでる円柱をグローバルz軸を使って適当に回転させて確定してみてください。

 

 rキー打ちzキー打ち、適当に回転、左クリックで確定ね

 

 ツールシェルフパネルの下半分のエリア見ると、その回転の詳細が数値で表示されてます。

 

 で、この表示されてる内容を変更すると、さっきの回転作業はその数値でやったってことになるんですな。

 例えば角度に180って入れると、さっきの回転作業は37.3度じゃなく180度回転だよってことになる。

 

 別の作業をするまで、この状態が続きます。

 そして別の作業、例えば移動とかさせたら、パネルは移動の詳細に変わり、スケーリングしたらスケーリングの詳細にと、作業のたびに画面が変わります。

 別の作業するまで、最後に行った作業を修正するワンチャンスがあるわけですな。

オブジェクト追加時数値制御

 そういうわけで、円柱を追加という作業を行うと、ツールシェルフパネル下部には、円柱作成時の数値が羅列されるんですよ。

 試しに、今作成中の円柱選んでxキー打ちで削除して、改めてshift+aキー打ち円柱選択で、円柱追加してみてください。パネルに頂点(円を何角形で表現する)とか、半径、深度(高さ)、色々な数値情報が表示されます。

 

 

 繰り返すけどBlenderの組み込み形状である円柱は、円柱の円部分がx、y平面になり、深度がzとなります。

 

 

 なので、あらかじめ寸法が0.08 x 0.08 x 0.8ってわかってるなら、ここで、半径に0.04、深さに0.8を指定してやれば、苦もなく求めている円柱が完成するわけですよ。

 

 

 以後、円柱はこの最後に設定した値がデフォルトとなり、その値で作成され追加されることになります。

 ちな、半径の上にある頂点てのは、円柱を何角形の円で近似するかの指定ね。32頂点なら、32角形。数が多い方が滑らかにはなるが、分割された分、平面が増え描画処理に負担がかかります。

 逆に、六角形のボルトとか作りたい場合は、わざと6とか入れてカクカクにしたりもするわけだ。

注意)実は、それだけじゃ見た目に六角形のボルトにならない。他に設定をいじる必要があるけど、これはいずれ。

 

 小さい方の円柱を作る時も、この作成時寸法指定のやり方が一番簡単なんですが、それじゃ勉強にならないんで、ここはあえて別のやり方、今の円柱を複製して、スケーリングでx、yだけ0.8倍にして、その後オブジェクト>適用>拡大縮小でローカル側の形状として適用させちゃいましょう。

オブジェクトの複製

 まず、オブジェクトモードの状態で作成した円柱選んで、オブジェクト>オブジェクトの複製を選びます。

 複製された円柱オブジェクトは、複製元と完全に重なってるので、一瞬、複製されたかどうか分からないんだけど、マウス動かしたら追随するので適当な位置に移動させて左クリックで確定させてください。

 

移動するときにzキー打ちで制約すると、中心揃えたまま上下に移動できるよ

ま、位置は後で直せばいい話で気にしなくてもいいけど

 

 複製時、複製先が複製元と完全に重なるって仕様は、複製されたか見た目にわかりずらいんだけど、3Dモデリングでは、それ以上のメリットがあると思うので、OK牧場。

 もし、完全に重ねたまま確定したい場合で、マウスクリックに不安がある人(クリックで一緒にマウスが動いちゃう人ね)はenterキー打ち使う手もあります。こっちも左クリック同様、作業確定の意味がある。

 大きさの調整は上で言ったとおり。2番目の円柱の太さを、最初の円柱の0.8倍の太さにします。スケールのxとy値を0.8で、そのあと適用ね。

 あとは太い方を親、細い方を子供として親子関係結んで完成。

親子関係の設定

 引き続きオブジェクトモードのまま、3Dビューで細い方、太い方と順にshift+右クリックで選択。最後に選んだやつが親側になるんで選ぶ順序は気をつけましょう。

 

 

 ボトムバーからオブジェクト>親>オブジェクトを選びます。

 そうすっと、もう一発「ペアレント対象」ってのを聞かれるんで、もう一回オブジェクト項目を選びます。

 

 

 なんかよく分からん。

 この最後に出てくるオブジェクト/オブジェクト(トランスフォーム維持)/頂点/頂点(三角形)て項目群は、子供側が、親側のどこに従うかを決める項目みたいで、頂点なんかを選ぶと、親側の特定の頂点にのみ追随するようになるんだけど…

 謎。

 とりあえず、円柱オブジェクトそのものに従えってことでオブジェクトを選びます。これで最後に選んでたオブジェクト(オレンジ枠)が、残りのオブジェクト(赤枠)の親に設定される。

 もしくは、アウトライナービューで細い方の項目を太い方にドラッグ&ドロップでもいいです。

 

 

 これでarm>bucket powerと同じモデルが完成。

 オブジェクトに名前をつけたい人は、適当に。

 つけ方が分からん人は「お気楽極楽Blender[2]親子関係を確認」を読みましょう。

 

 arm>joint部もこんな感じで作ります。

 ただし、ちょっと工夫してミラーモデファイアなんかを使ったりなんかして。

 そこらへんは次回。