iPhoneアプリ開発:AR 目次

 

 まじきついわー

 まずいな〜!こんなに抗がん剤飲んでるのバレたら、心配されちゃってまずいな〜!

 

 今回はチューブっす。

 

 

 ちなみに、バージョン2.79のボトムバーにあった可視レイヤーですが、2.80ではアウトライナービューに移動したみたいっす。

 

こいつね

 

 2.80ではアウトライナービューで、View layerモードを選ぶと〜

 

 

 Collection〜という名前でグループ分けされた一覧が表示されます。

Collection(コレクション:集まり)

 このCollection〜てのが2.79でいうところのレイヤっぽいです。

 

 

 

 ドラッグ&ドロップで別のCollectionに移動できたりと、以前よりレイヤーの選り分けがやりやすくなった。

 

 

 新しいCollectionを作りたい場合は、アウトライナービュー内を右クリックでポップアップするコンテキストメニューから新規を選ぶことで追加されます。

 

 

 削除する場合は、削除したいCollection項目を選んで、同じく右クリックでのコンテキストメニューから削除ね。

 ちなみに、このとき、削除されるCollectionの中に入っていたオブジェクト群は、最上位階層に移動するみたいっす。

 

 

 で、これ見て、もしかしてCollectionの中にCollection置けるんじゃね?と試したら置けました。プログラマは再帰が好き。

 

使うか?この機能、と思わないわけではない

いや、意外に使うか、いや、わかんね

 

 ま、そんな感じ。

 でもって、これまで見慣れたアウトライナービューにしたい時はシーンてモードを選びましょう。

 

 

 と、まあレイヤの話はここまでとして、とりあえず、新規にCollection用意してチューブ作り、いってみます。

 

 どうやって作るかというと、まず、オブジェクトモードでShift+aキー打ちで円オブジェクトを追加。

 

もちろん、ボトムバーの追加メニューから選んでもOK

 

 

 そのままtabキー打ちで編集モードにして、全頂点が選択されてるのを確認したら、eキー打ちしてからマウスを動かす。そうすっと円が押し出されて円柱になるんで、適当なところで左クリックして確定。

 

 

押し出し(Extrude)

 eキー打ちは、Extrude(エクツード:押し出し)のショートカットっす。

 こいつは、モデリング中で一番多用するんじゃないかってくらいの便利機能で、選んだ部分を押し出す(今回なら引き出す)イメージで、その際に必要な部分に勝手に面が張られます。便利。

 頂点1つとか、辺2つとか、面1つとか、Extrude前に選ばれてる状態によって押し出しの結果は違うんで、色々実験してみるといいす。

 

頂点1個とか

 

辺2個とか

 

面1個とか

 

 ま、とにかく、こいつで先端の円を延長して、延長した先を、rキー打ちで向きを変えながら、またeキー打ちで延長して〜

 

 

 って、めんどくさいわ。

 

いや、間違ってはないんだけどさ〜

はい、すいません

 

 間違いではないんですが、お利口さんはカーブを使います。

カーブ(Curve:曲線)

 オブジェクトモードに戻して、作った円はxキー打ちで削除しましょう。

 で、改めてShift+aキー打ちで出たメニューを見てもらうと、カーブってのがあると思うんですよ。

 

 注意)メッシュオブジェクトを選んで編集モードにしてると出ません。オブジェクトモードで追加しましょう。

 

 こいつは空間上にカーブオブジェクトを追加します。

 blenderが扱えるカーブには、ベジエとNURBSの2種類があって、それぞれ曲線を決めるための操作法に違いがあるんですな。

 

 

 AdobeのillustratorやPhotoshop使ってる人には、ベジエが慣れてるんじゃないかと思う。どっちを使うかは個人の好みや作りたい曲線の形状次第って感じっすな。

 どっちもパラメトリック曲線と呼ばれるもんで、例えば、2次元平面でなら、tの2次式に与えるa, b, c, d, e, fをパラメータ(parameter:制御用の値)とし、tの変化によってその式から計算されたx、y座標を移動するといった曲線っす。

 

  y = at2 + bt + c

  x = dt2 + et + f 

  注意)t2 = tの2乗

 

 ただし、ベジエとNURBSは2次式じゃなく、もっと複雑な式を使う。興味のある人はWiKi見ましょう。式載ってます。

 

https://ja.wikipedia.org/wiki/ベジェ曲線

https://ja.wikipedia.org/wiki/NURBS

 

 ベジエは考案した人の名前、NURBSはNon-Uniform Rational B-Splineの略。でもってベジエ曲線はUniform Non-Rational B-Splineだったりして、どっちもベジエ考案とか紛らわしい。Non-Uniform Rational B-Splineがなんなのか興味のある人は上のWiKiから探ってください。私は上で説明したように頂点を通るのがベジエ、頂点で構成される経路に沿うようになるのがNURBS程度の認識です。

 

 で、話を戻して、Blenderが提供してくれるカーブオブジェクトプリミティブには

 

 

の5つがあるんだけど、曲線と円の違いは、線が閉じてるか開いてるかの違いなんで、実質ベジエかNURBSかPathかの3種類っす。

注意)閉じる閉じないは後から変更できる。その一手間をはぶく程度の分類っぽい

 

 で、ここで意味不明なのがPathで、NURBS曲線なんだよね、これ。

 何が違うんだろ。なんか意味わかりません。マニュアルだとPath以外は2D曲線とか書いてるんで、そういう違いかな〜と思ったけど、実際作ってみると全部3Dっぽいんだよね。謎。

 

 ↓2.80のマニュアル、ただいま絶賛構築中っぽい。

https://docs.blender.org/manual/ja/dev/getting_started/index.html

 

 ↓ちなみに、別ドメインだけど、2.6はかなり翻訳されてる。

https://en.blender.org/index.php/Doc:JA/2.6/Manual/Modeling/Curves

 

 とりあえず、私はパス(NURBS曲線)を追加します。

 

 

 

 見えません。

 うろたえるな〜、ドイツ軍人はうろたえなぃいいい。

 バグかと思うけど、そうじゃあ〜りません。tabキー打ちで編集モードに切り替えるとわかります。

 

 

 Blender、オンマエッ

 x軸にへばりつかせてんじゃねーよ。わかりにくいわ。

 とにかく5つの頂点が直列に並んでるのが初期状態っす。

 で、うまい具合に選択ツールが(選択)に切り替わってくれるので、そのまま左クリック&ドラッグで頂点動かせるんすよ。ここら辺はいい感じ。

 これまでやってきたように、適当に頂点を動かしてみてください。

 そうすっと黒い線で魚の背骨みたいなのが見えたと思う。

 

 

 まあ、最初から見えてるんだが…、なんでx軸に引っ付けるかなBlender…

 というか、3Dカーソルを原点に置いてる私のせいか、ごめんBlender。

 

 とにかく、これが実際の曲線です。

 今いじってる5頂点は、この実際の曲線のうねうねを指定するための制御点なんですな。それと、この肋骨みたいなのは線の向きを示すためのもんで、実際の線は太さのない曲線です。

 

 

 この状態でオブジェクトモードに切り替えるとわかる。

 

ないでしょ

 

選択するとこんな感じ

 

 NURBSでも、ベジェでも、端の頂点を選んでeキー打ちで押し出すことで、制御点を追加できます。これで、どんどん複雑な曲線を定義できる。

 他に、隣接する頂点同士を選んでセグメント指定。そこからボトムバーのセグメント>細分化メニューでの制御点追加もできます。ワンチャンもあり。

 

 

 削除はいつも通り、頂点選んでxキー打ちね。この時、削除方法として

 

 頂点

 セグメント

 頂点を融解

 

の3項目出ますが、頂点1つしか選んでない時はセグメントを選んでも何も機能しません。頂点頂点を融解を選びます。

 で、結果はどっちも同じっす。

 

 

 頂点を削除と、頂点を融解の違いは、ベジエ曲線の時に効果が現れる。ベジエ曲線の時は、頂点を融解だと、出来るだけ曲線が変化しないように、周りの頂点位置が変更されるんす。

 

ベジエ曲線の場合の頂点削除

 

 残りのセグメントメニューは、隣接する頂点を選んでる場合に意味があって、この場合セグメントの削除は曲線の分離を意味します。

 

 

 で、まあ、こんな感じで曲線をウニウニできるのはわかったが、これでどうやってチューブを作るのか?

 その答えが、プロパティビューのオブジェクトデータタブっす。

オブジェクトデータタブ

 カーブオブジェクトを選んでる場合、ここの内容はカーブをどう扱うかの設定になるんですよ。で、その中にあるジオメトリグループの中にあるベベルで深度ってのを変更してください。

 

 

 これで曲線に面がつくんですよ。前回やったベベルっす。

 

 

 でもって、その下の解像度でR(面取り曲面)の滑らかさが指定できる。

 

 なんだけど、ベベルなんで半分なんですな。

 これを変えるために、同じオブジェクトデータタブ内の、ジオメトリグループの2つ上にあるシェイプグループでフィルモードをフルにする。

 

 

 これでチューブが完成するわけっす。

 ちなみに、この作業は編集モード、オブジェクトモード、どちらでやってもOKです。

 

 あとは、適当にウニウニ曲げて、残り2つを複製して各自配置でおしまい。

 注意する点は、ARKit(SceneKit)で使う場合、カーブを認識してくれないということ。

 なのでColladaファイルとして書き出すときは、書き出す前にカーブをメッシュに変換する必要があります。オブジェクトモードでカーブオブジェクトを選んでおいて、ボトムバーからオブジェクト>変換>カーブ/メタ/サーフェース/テキスト/からメッシュメニューを選んで変換しましょう。

注意)Colladaに書き出すときに、一時的にメッシュにして書き出すよう設定できないかな〜と思ったけど、やり方見つけられなかった

 

 そんなわけで、チューブ完成っす。

 

 で、ここからは油圧ショベルとは関係ない、キャラクタのモデリングでの話になるんだけど…

 このカーブを使い、ハーフのまま、同じオブジェクトデータタブ内の、ジオメトリグループにある「押し出し」をいじると平べったい感じなるんすよ。

 まるでリゼロのレムちゃんの前髪の一片みたいだなと。

 

 

 ぶっちゃけ、これ、髪の造形に使えなくね?

 思うでしょ、みんなそーする、俺もそーする。

 実際「blender カーブ 髪」で検索かけたらぞろぞろ出てきます。

 でも、先っぽが尖ってる髪の方が多いよね。

 

 

 それが作れないんじゃイマイチ使い道ねーっすよ。

 と思った方。

 それができるんですな〜。

 同じオブジェクトデータタブ内の、ジオメトリグループのテーパーオブジェクト項目に別のカーブオブジェクトを指定すると、そのカーブに合わせてカーブの形状が変化します。

 

 まずは、オブジェクトモードでベジエカーブ追加して〜

 

 こいつを、さっき平べったくした曲線のテーパーオブジェクトに指定すると〜

 

 注意)もちろんアウトライナービューで、見つけやすい名前を付けるってのもあり。あと、ベジエでなくてNURBSでもOK

 

 アホ毛の完成。

 

 グレート。

 テーパーオブジェクトに指定したベジエ曲線の形状をいじると、連動してアホ毛側の形状も変わります。色々試してみるといいです。

 じゃ、また。