Rhinoceros ヒストリを使って雪の結晶を描く

ヒストリとはモデルを作成した際に入力操作の履歴を記録しておいて、ヒストリの起点となる親オブジェクトに変更があった場合、関連付けされている子オブジェクトをそれに合わせて更新させる機能です。

CADアプリケーションにはヒストリ系ノンヒストリ系の2種類があります。

Rhinocerosはヒストリ系CADアプリケーションなのですが、実は3.0まではヒストリ機能がありませんでした。4.0で導入されて以降、5.0から6.0へとバージョンアップされる毎に、ヒストリ機能が使えるコマンドが増えていきました。例えばSweep1Sweep25.0以降でないとヒストリは効きません。

それから、Rhinoceorsのヒストリは他のヒストリ系CADアプリケーションとは異なり、ヒストリ履歴を視覚的に確認できるツリーデザインツリー・仕様ツリー・モデルツリーとも呼ばれる)が無いので、ヒストリ情報を見失いやすく、他のCADオペレーターが描いたモデルデータにどのようなヒストリが使われているか解らない場合もあり、完全なヒストリ系CADとは呼べないような印象もあります。

しかしながら、ヒストリを上手く使うことで作業の効率化が図れますし、リアルタイムな形状変化はプレゼンの場面でも有効活用できます。

今回はこのヒストリ機能を有効に使って雪の結晶のモデルを作っていきたいと思います。

ヒストリを使う準備

ヒストリ設定は画面下ステータスバーもしくはツールバーから操作します。

ステータスバー
ヒストリのステータスバー
ツールバー
ヒストリのツールバー

どちらからでも設定可能ですが、ステータスバーヒストリを記録のチェック項目を使用するといいでしょう。自分の場合はヒストリを常に記録・子を更新・ヒストリ破損警告にチェックしています。

ヒストリを使って雪の結晶をモデリング

今回は、あらかじめPictureFrameで下絵を配置します。

画像・モデルデータはRhinocerosのビューポート内にファイルをドラッグアンドドロップすることで開いたりインポート出来るので主にそちらを利用することが多いです。

ピクチャーフレームを配置

Rectangleなどで四角形を作り配置します。

雪の結晶のアウトライン作成1

Filletで先端を丸くします。

雪の結晶のアウトライン作成2

Polygonで中心に六角形を配置します。

雪の結晶のアウトライン作成3

CurveBooleanで一つの閉じた曲線にします。

雪の結晶のアウトライン作成4

TrimSplitからJoinしても良いですが、こういった結合はCurveBooleanが便利です。

あまり使わないコマンドですがツールバーでは下記にあります。

曲線のブール演算のツールバー

30度になるように線を配置します。

雪の結晶のアウトライン作成5

TrimSplitで分割し、選択しやすくするためGroupグループ化しておきます。これがヒストリの親オブジェクトになります。

雪の結晶のアウトライン作成6

MirrorでY軸対称にコピーします。

雪の結晶のアウトライン作成7

ArrayPolarで中心点0を基点に6個を配列します。

雪の結晶のアウトライン作成8

ExtrudeCrvで押し出します。コマンドオプション設定はソリッド(S)=はい・元のオブジェクトを削除(L)=いいえの設定をしておきます。尚、親オブジェクトのグループ化した線は分かりやすくするために色設定にしています。

雪の結晶のポリサーフェス

親オブジェクトの制御点に変更を加えると、ヒストリ機能によって子オブジェクトの形状も更新されていることがわかります。

雪の結晶のヒストリ動画1

この方法だと雪の結晶の輪郭はヒストリ機能で更新可能ですが、厚みを変えることが出来ません。厚みにもヒストリが効くように少しやり方を変えてみましょう。

ヒストリを厚みにも適用させる方法

親オブジェクトとなる曲線グループはそのまま使っています。

Z軸方向+0.5ほど移動させて、MirrorでZ軸対称にコピーします。

雪の結晶の作成・別バージョン1

Loftでサーフェス・ポリサーフェスにします。法線方向を分かりやすくするためにサーフェス・ポリサーフェスの背面側を薄紫色に設定しています。

雪の結晶の作成・別バージョン2

MirrorでY軸対称にコピーします。

雪の結晶の作成・別バージョン3

ArrayPolarで中心点0を基点に6個を配列します。

雪の結晶の作成・別バージョン4

PlanarSrfで上面・下面サーフェスを作ります。

雪の結晶の作成・別バージョン5

親オブジェクトのZ座標に変更を加えると、ヒストリ機能によって子オブジェクトの厚みも更新されていることがわかります。

雪の結晶のヒストリ動画2

このやり方で上手くいっているように思えますが、実はヒストリで更新されている子オブジェクトは、複数のサーフェス・ポリサーフェスであり、一つの閉じたポリサーフェスではありません。ポリサーフェスにするにはJoinなどをする必要があり、ポリサーフェスに結合されるとオブジェクトからはヒストリが削除されてしまいます。

このように親オブジェクトと子オブジェクトのヒストリは簡単に壊れますので、次のことに注意する必要があります。

  • 子オブジェクトを作成するのに使用した親オブジェクトを削除しない。
  • 子オブジェクトの制御点を編集したり、移動しない。
  • 親オブジェクトと子オブジェクトを一緒に移動しない。
  • オブジェクトの結合は、オブジェクトのヒストリを壊す。

以下のように心掛ければ誤ってヒストリを破損させなくて済むと思いますので参考にしてみて下さい。

  • 親オブジェクトには色付けをして認識しやすくする。
  • 子オブジェクトをまとめる場合はまずGroupにしておいて、最後に必要なタイミングでJoinする。
  • 子オブジェクトはLockするか、レイヤーパネルからレイヤーを分別してロックを掛ける。
  • ヒストリ設定でヒストリ破損の警告を有効化しておく。

ヒストリが使用可能なコマンドを繋げていくことで、親オブジェクトの編集だけで子オブジェクトの形状を後からでも変えれるのはモデリングの効率化に繋がります。使いこなせればとても便利なヒストリ機能ですが、Rhinocerosではヒストリ履歴を視覚的に確認できないために扱いには慣れが必要です。また、Rhinocerosのバージョンによって使えるコマンドに違いがあるので注意しましょう。それから、ヒストリを使ったモデルデータを他者と共有する場合はNotes注記パネルにメモを残して、相手が確認できるようにしておくなど配慮したほうが良いと思います。

Topic

せっかくなので雪の結晶をペンダントにしてみました。

3Dコンテンツの良いところのひとつはリアルタイムに表現を変えれるところです。ジュエリーに使われる貴金属にはプラチナ・イエローゴールド・ピンクゴールド・ホワイトゴールドなど様々ですが、素材によって商品の印象はガラッと変わります。

この例では一定時間で色が変わる設定にしていますが、ボタンを配置するなどしてユーザーがクリックで素材を選べるようにすることで、静止画では得られない満足感を提供することが出来ます。

貴金属素材だけではなく、宝石の種類・色や表面テクスチャなどインタラクティブに切り替えれるのは3Dコンテンツの魅力です。