ヒストリとはモデルを作成した際に入力操作の履歴を記録しておいて、ヒストリの起点となる親オブジェクトに変更があった場合、関連付けされている子オブジェクトをそれに合わせて更新させる機能です。
CADアプリケーションにはヒストリ系とノンヒストリ系の2種類があります。
Rhinocerosはヒストリ系CADアプリケーションなのですが、実は3.0まではヒストリ機能がありませんでした。4.0で導入されて以降、5.0から6.0へとバージョンアップされる毎に、ヒストリ機能が使えるコマンドが増えていきました。例えばSweep1やSweep2は5.0以降でないとヒストリは効きません。
それから、Rhinoceorsのヒストリは他のヒストリ系CADアプリケーションとは異なり、ヒストリ履歴を視覚的に確認できるツリー(デザインツリー・仕様ツリー・モデルツリーとも呼ばれる)が無いので、ヒストリ情報を見失いやすく、他のCADオペレーターが描いたモデルデータにどのようなヒストリが使われているか解らない場合もあり、完全なヒストリ系CADとは呼べないような印象もあります。
しかしながら、ヒストリを上手く使うことで作業の効率化が図れますし、リアルタイムな形状変化はプレゼンの場面でも有効活用できます。
今回はこのヒストリ機能を有効に使って雪の結晶のモデルを作っていきたいと思います。
ヒストリを使う準備
ヒストリ設定は画面下ステータスバーもしくはツールバーから操作します。
どちらからでも設定可能ですが、ステータスバーのヒストリを記録のチェック項目を使用するといいでしょう。自分の場合はヒストリを常に記録・子を更新・ヒストリ破損警告にチェックしています。
ヒストリを使って雪の結晶をモデリング
今回は、あらかじめPictureFrameで下絵を配置します。
画像・モデルデータはRhinocerosのビューポート内にファイルをドラッグアンドドロップすることで開いたりインポート出来るので主にそちらを利用することが多いです。
Rectangleなどで四角形を作り配置します。
Filletで先端を丸くします。
Polygonで中心に六角形を配置します。
CurveBooleanで一つの閉じた曲線にします。
TrimやSplitからJoinしても良いですが、こういった結合はCurveBooleanが便利です。
あまり使わないコマンドですがツールバーでは下記にあります。
30度になるように線を配置します。
TrimやSplitで分割し、選択しやすくするためGroupでグループ化しておきます。これがヒストリの親オブジェクトになります。
MirrorでY軸対称にコピーします。
ArrayPolarで中心点0を基点に6個を配列します。
ExtrudeCrvで押し出します。コマンドオプション設定はソリッド(S)=はい・元のオブジェクトを削除(L)=いいえの設定をしておきます。尚、親オブジェクトのグループ化した線は分かりやすくするために赤の色設定にしています。
親オブジェクトの制御点に変更を加えると、ヒストリ機能によって子オブジェクトの形状も更新されていることがわかります。
この方法だと雪の結晶の輪郭はヒストリ機能で更新可能ですが、厚みを変えることが出来ません。厚みにもヒストリが効くように少しやり方を変えてみましょう。
ヒストリを厚みにも適用させる方法
親オブジェクトとなる曲線グループはそのまま使っています。
Z軸方向に+0.5ほど移動させて、MirrorでZ軸対称にコピーします。
Loftでサーフェス・ポリサーフェスにします。法線方向を分かりやすくするためにサーフェス・ポリサーフェスの背面側を薄紫色に設定しています。
MirrorでY軸対称にコピーします。
ArrayPolarで中心点0を基点に6個を配列します。
PlanarSrfで上面・下面サーフェスを作ります。
親オブジェクトのZ座標に変更を加えると、ヒストリ機能によって子オブジェクトの厚みも更新されていることがわかります。
このやり方で上手くいっているように思えますが、実はヒストリで更新されている子オブジェクトは、複数のサーフェス・ポリサーフェスであり、一つの閉じたポリサーフェスではありません。ポリサーフェスにするにはJoinなどをする必要があり、ポリサーフェスに結合されるとオブジェクトからはヒストリが削除されてしまいます。
このように親オブジェクトと子オブジェクトのヒストリは簡単に壊れますので、次のことに注意する必要があります。
- 子オブジェクトを作成するのに使用した親オブジェクトを削除しない。
- 子オブジェクトの制御点を編集したり、移動しない。
- 親オブジェクトと子オブジェクトを一緒に移動しない。
- オブジェクトの結合は、オブジェクトのヒストリを壊す。
以下のように心掛ければ誤ってヒストリを破損させなくて済むと思いますので参考にしてみて下さい。
- 親オブジェクトには色付けをして認識しやすくする。
- 子オブジェクトをまとめる場合はまずGroupにしておいて、最後に必要なタイミングでJoinする。
- 子オブジェクトはLockするか、レイヤーパネルからレイヤーを分別してロックを掛ける。
- ヒストリ設定でヒストリ破損の警告を有効化しておく。
ヒストリが使用可能なコマンドを繋げていくことで、親オブジェクトの編集だけで子オブジェクトの形状を後からでも変えれるのはモデリングの効率化に繋がります。使いこなせればとても便利なヒストリ機能ですが、Rhinocerosではヒストリ履歴を視覚的に確認できないために扱いには慣れが必要です。また、Rhinocerosのバージョンによって使えるコマンドに違いがあるので注意しましょう。それから、ヒストリを使ったモデルデータを他者と共有する場合はNotesで注記パネルにメモを残して、相手が確認できるようにしておくなど配慮したほうが良いと思います。
Topic
せっかくなので雪の結晶をペンダントにしてみました。
3Dコンテンツの良いところのひとつはリアルタイムに表現を変えれるところです。ジュエリーに使われる貴金属にはプラチナ・イエローゴールド・ピンクゴールド・ホワイトゴールドなど様々ですが、素材によって商品の印象はガラッと変わります。
この例では一定時間で色が変わる設定にしていますが、ボタンを配置するなどしてユーザーがクリックで素材を選べるようにすることで、静止画では得られない満足感を提供することが出来ます。
貴金属素材だけではなく、宝石の種類・色や表面テクスチャなどインタラクティブに切り替えれるのは3Dコンテンツの魅力です。