Rhino8 最新機能攻略セミナー 第1部:Rhino8 新機能紹介、Grasshopper初級編
2023年12月11日(月)に開催されました、株式会社Too主催のデザインイベント「Rhino 8 最新機能攻略セミナー」より、「第1部:Rhino8 新機能紹介、Grasshopper初級編」のセミナーレポートをお届けします。

【主催】株式会社Too
【協力】株式会社アプリクラフト
【登壇者】株式会社アプリクラフト
テクニカルサポート部
田上 雅樹 氏
セミナー概要

今回紹介するRhino8の新機能を大きく4つに分けました。
1つ目がMacのシリコンチップです。M1やM2、Metalに対応したものなどもあります。2つ目がインターフェース関連です。WindowsとMacのUIが共通化したことなどが挙げられます。3つ目に基本機能として、モデリングや図面の機能が強化されました。4つ目は、Rhino8に無料でついているプラグイン、『Grasshopper(以下、GH)』の開発者向けのアップデートについてです。
シリコンチップ

まずはMacの対応について説明します。MacはAppleのシリコンチップに対応したため、単純に動作が速くなりました。

同時に起動したのにも関わらず、画像右側のRhino8に対して、7は立ち上がりが少し遅れています。これはGHも同様で、全体的に2,3割ほど動作が速くなるイメージです。また、Macが従来のRhino7のOpenGLではなくMetalに対応したため、動作が全体的に速くなっています。
インターフェース

次に、ユーザーインターフェース関連について話をしていきます。

左と右に同じ画面がありますが、左側がWindowsで右側がMacの画面です。よく見ないと違いが分からないくらい画面が共通化されています。
「学校や会社がWindowsで自宅がMacのため、UIが違って操作しづらい」という要望があったため、基本的に共通のレイヤになるよう修正されています。

2つ目は、Windowsに「ダークモード/ライトモード」が追加された点です。ワンクリックで簡単に切り替えられます。従来通りに使いたい場合はツールのオプションから変更可能です。

3つ目はアイコンサイズについてです。アイコンサイズが従来のビットマップ形式ではなくベクタ形式での表示になったことで、任意の大きさに変更できるようになりました。4Kの高解像度のモニターなどを使っている方にとっては非常に良い修正になっています。

また、Rhino7にはパネルとツールバーがありましたが、Rhino8からコンテナの中に自分の入れたいパネルやツールバーを任意で登録できる仕様に変わりました。
今まではパネルを画面上に1種類のパネルは1個しか置くことができませんでしたが、1種類のパネルでも複数置けるようになりました。例えば、オブジェクトスナップを画面の左下と右上に置くなど、そういったカスタマイズも可能です。自分の使いやすいインターフェイスにカスタマイズできます。

一方でレイアウトのカスタマイズをすると、モデリング時に使いやすくてもレンダリング時には使わない機能が画面上にたくさん出ることがあります。そういったケースに対する機能として、「レイアウトの保存」ができるようになりました。
これによって、モデリング時はモデリング用のインターフェース、レンダリング時はレンダリング用にするなど、作業内容に合わせてカスタマイズ可能です。

次は、レイヤパネルについて説明します。一番違う点は、検索窓が付いた点です。名前を入力するとレイヤ名から絞り込んで表示できます。サブレイヤも表示されるため、レイヤ名を正しく付けていればレイヤを見失わずに作業可能です。

最後に2つ、小ネタを紹介します。今までは新規レイヤを左クリックすると黒いレイヤがたくさん出ていましたが、右クリックすることでランダムな色のレイヤを作れるようになりました。主に、複数レイヤがあるときに活躍する機能です。

また、今までレイヤにマテリアルを割り当てられていましたが、断面を切り取って表示するハッチングもレイヤごとに変更できるようになりました。そのため、レイヤごとハッチングをセッティングできます。
モデリング

ここからはモデリングについて紹介します。
シュリンクラップ(ShrinkWrap)

モデリングで一番違う点は、「シュリンクラップ(閉じたメッシュ作成)」という機能の追加です。画像は、3つ重なっていて、それぞれ隙間があるというデータです。ここにシュリンクラップのコマンドを実行し、1つの閉じたメッシュに変更します。

そうすることで、オープンエッジのない隙間が閉じたメッシュを作成できます。使用例として、「3Dプリンターで出力する際に隙間がない状態にする」、もしくは「建物などで隙間が空いていると風の解析ができないため閉じることで正しく解析できる」などが挙げられます。

さまざまなオプションはありますが、オフセットに値を入れることで、「内側にオフセットしたところにデータを作る」や「少し膨張したところにデータを作る」などもできます。

シュリンクラップは、メッシュやサーフェスだけでなく点群に対しても実行できます。左側の3Dスキャニングした点群データに対して、少し膨張させるようにメッシュを作成することもできます。昔のCGのメタボールのようなイメージです。

シュリンクラップはRhinoだけでなくGHでも実行可能です。画像の一番左側のScan Dataをシュリンクラップで閉じたメッシュにして、QuadRemeshで流れを変えた後SubDにしてナーブスに変換します。この1連の流れで、スキャニングしたデータをソリッドのポリサーブスに変換することが可能になります。
自動作業平面

次に紹介するのは、画面右下に追加された自動作業平面です。選択したところで自動的に作業平面を作成して、モデリングができるようになります。

作業平面が作成されると、そこで作図を行うことができます。水平・垂直ではない面にも対応しているため、斜め面に作図することや寸法を配置することも可能です。

これだけでは使い道が少ないように思われますが、Rhino8から加わった「プッシュプル(Pushpull)」を合わせて使うと、非常に強力なツールになります。自動作業平面で曲線を描き、プッシュプルコマンドを実行します。

クリックしたところが黄色に変わって対象となり、そこを盛る、削ることができます。1度削って終わりではないため、後から追加で修正を行うことも可能です。また、「1だけ減らす」や「3だけ盛る」という数値入力もできるため、寸法が必要なモデルにも使用可能です。

画像のような四角の形状などは比較的簡単にモデリングできます。

プッシュプルにも色々なオプションがあります。左側の押し出しでは90度持ち上げることができ、右側の延長では側面のサーフェスをそのまま延長してモデリングすることもできます。

この機能はガムボールにも加わりました。ガムボールにさまざまなオプションが加わったため、マウスのカーソルを合わせると黒い文字が出てくる仕様に変更されました。

1つの例として、曲線を使ってガムボールでオブジェクトを切断していきます。

青い矢印をドラッグすると、ポリサーフェスを切断できます。

ガムボールでプッシュプルを行うこともできます。普通にドラッグすれば押し出しもでき、Shiftキーを押しながらで側面を延長することもできます。

もう1つの違いとして、元々Rhino7には「インセット」というSubDの面をオフセットする機能がありましたが、それをポリサーフェスにも使用できるようになりました。そのため、該当の面を1や2などの数字で内側にオフセットすることができるため、これとガムボールを合わせてモデリングすることができます。

もしくはこういった形の曲面にも使用可能なため、数値を入力する、もしくはサーフェス上の点を指定して、この点を通過する位置までをオフセットするということもできます。従来のモデリング方法より幅が広がっています。
SubD

次は、SubDです。Rhino7から加わった機能ですが、Rhino8との違いを説明します。Rhino8からはSubDのエッジに対して重み付けができるようになりました。

0から100まで「強さ」のようなものを決められます。50の強さを与えると、画像のように形が少し角ばりました。

先端の部分を滑らかにするため、50%-50%ではなくて、0%から50%というかたちで段階的に強さを設定することもできます。

また、Rhino8からは新しくSubDに対して曲率の解析などを行えるようになりました。そのため、真ん中にある実際に凹んではいないが凹んで見えるところをガムボールで修正する、曲率を見ながら修正するということも可能になりました。分かりづらいですが、変更前に比べると少し丸くなっている様子が確認できます。


車などをモデリングしている方には馴染みがあると思いますが、Zebraコマンドで光の当たり方を見ることや、EMapコマンドで景色の映り込みを確認しながらモデリングすることも可能です。

次に、サブオブジェクト選択の機能について説明します。ShiftキーとCtrlキーを押しながらでまとめて選択するという機能ですが、Rhino7では「Ctrlキーでの解除」ができませんでした。
下の方だけ解除したい場合などでは全てが解除されていたのですが、Rhino8からは部分的な解除ができるようになり、作業性の向上につながりました。

もう1つは、サブオブジェクトです。オブジェクトが密集している中で、細かい箇所を選択しようとして間違えて他のエリアを触ってしまったという経験がある方も多いと思います。Rhino8では選択前にピンク色で表示されるように変更されたため、面やエッジなどを間違えずに選択できるようになりました。

次はフィレットサーフの機能を2つ説明します。1つ目は、「フィレットサーフカーブ(FilletSrfCrv)」というサーフェスから曲線に対してフィレットをかけるというコマンドです。

ここでは、5Rを下の面から上にある円の外周に対してフィレットをかけていきます。後からRの値は変更可能なため、見ながら修正することもできます。もしくは形式編集やG2ブレンドでつなぐことも可能です。ここでは5Rにして作成していきます。

Rを測ってみると、5Rになっているのが確認できます。

2つ目は、「フィレットサーフトゥレール(FilletSrfToRail)」というコマンドです。このコマンドでは、サーフェスとサーフェスの間にフィレットを掛ける際にRの大きさを曲線で指定することができます。
サーフェスからもう1つ対になるサーフェスを選び、Rの大きさを曲線で指定します。

さまざまな使い方が考えられますが、工業製品などのパーティングラインに平行な線をRの始点として始めてフィレットをかけたいケースなどで使われています。
2D関連 図面/イラストレーション

次は2D関連、図面とイラストレーションについて説明します。

2D関連では、「セクションツールズ(SectionTools」という機能が加わりました。元々Rhinoにある「クリッピングプレーン(ClippingPlane)」という3次元の形状を切り取って表示する機能に、断面を作成する機能が追加されました。
これはクリッピングプレーンの機能です。そのため、「クリッピングプレーンとして切り取り」と「断面の作成」の2つの機能があることになります。

断面を切り取りたいところをZ方向に追加して「断面を抽出」を実行すると、交差が簡単に取れます。

これでは空間上に線が存在しているため、XY平面に並べたいときは「ネストされた図面」というコマンドで配置を決定します。それにより、XY平面上に全ての断面が横方向、もしくは縦方向に揃えることができます。それぞれの断面に番号が付いているため、自分が作った断面の番号を見失わずに作業することが可能です。

それ以外にもオフセットの基本コマンドも強化されています。Rhino7では真ん中しかできませんでしたが、Rhino8は真ん中以外もできるようになりました。

複数回オフセットを実行する「オフセットマルチプル(OffsetMultiple)」なども同様のため、複数回実行すると正しい値が取れます。こういった点も良い修正だと思っています。

それ以外にも、建築関係の方が強く要望していた機能に天井伏せ図があります。トップビューから見ている位置関係でボトムから見た絵を表示する機能です。
右側のところ、天井が見えるようなイメージです。トップから見ている絵に合わせてボトムから見た絵も表示するという機能なども追加されました。
Grasshopper

最後に、GH開発者向けの機能を紹介します。

GHはRhinoに無料で付いていて、箱と箱を繋げて新しい機能を作るようなイメージのプラグインです。
そのGHに「Rhinoタブ」が追加されました。これは、Rhinoの基本機能にアクセスすることができるタブになります。Rhinoではブロックという他の外部の3DMファイルを読み込んで扱えるのですが、それがGHでもできるようになりました。

3DMファイルを読み込んだ後はGHのアルゴリズムで配置して、最終的に取り出すこともできます。

GHからベイクすると、ベイクされたデータはブロックとして扱われます。また、ブロックデータとしてベイクできるので、後から元のファイルを修正するとそこに並んでいるブロックファイルも全て更新できます。

2つ目は、GHにアノテーション(注釈)関係の機能が加わった点です。大きさを変えると寸法が自動で付いてくるため、図面が作成できる、ベイクできるようになりました。

GHと聞くとグニャグニャしたものを作るというイメージがある方も多いと思いますが、こういった形で2次元図面を作成するのにGHを使うことも可能です。
3つ目は少し細かいですが、今までGHに読み込んだデータをRhinoにベイクしたときは、1つ新しいデータを追加していました。そこで、データに対して情報だけベイクするということができるようになりました。

読み込んだキーやバリューに情報がないデータですが、これをアップデートすると「情報を追加する、ベイクする」というかたちで使えるようになります。

これだとイメージが湧きづらいかもしれませんが、建築関係とBIMではジオメトリデータに属性情報を埋め込んで管理するために使用することもあるため、GHを使って簡易的なBIMとして扱うことができるという認識になります。

最後はGHでレイヤをベイクしたものになります。「floor0」「floor1」「floor2」などの複数データを用意しベイクすると、Rhinoの方にレイヤをベイクできます。

中身はないですが、レイヤだけをベイクして器だけ作るという使い方もできます。そのため、エクセルでデータを管理し、エクセルで用意したレイヤを作成するという使い方もできます。

軽量型で、「モールトゥメッシュ(MorphToMesh)」というコンポーネントも加わりました。名前の通り、メッシュに対してモーフィングを行なう機能になります。
そのため、このように三角形のデータがあった時に、そこに対して形状を張り込むことができたりします。

これは今までのコンポーネントでもできましたが、今までは基本的にはサーフェスのUV関係を見て変更していたため、複数のサーフェスからできているものに対しては、モーフィングを行ないづらいという点がありました。しかし、このようにポリサーフェスに対してそのままモーフィングを行なうということも可能になりました。

作成したデータはポリサーフェスでベイクできるため、使い方次第では他のCADなどで作ったデータをポリサーフェスで読み込み、GHで加飾だけ行なった後にもう一度別のCADで作業するということも可能です。
プログラミング
最後は、プログラム関係についてです。

今まではIronPythonの2系までしか使えませんでしたが、スクリプトエディターが加わったことでPythonの3系とC#に対応いたしました。そのため、3系のPythonの機械学習を行うライブラリーなども使用することができます。

もしくはC#でVisualStudioの中に入っているNugetPackageというライブラリーをダウンロードする機能がありますが、それをエディタの中で行うこともできます。

これはGHにも搭載されたため、スクリプトコンポーネントの中からPython23系と2系とC#を選んで使うという仕様になります。

従来のGhPythonスクリプトとC#のスクリプトはなくなってしまいましたが、クリックして先頭に#を付けることで非表示になっているものを表示して使うということもできます。
今回話しきれなかった内容はYouTubeの動画で見ることができます。興味ある方はアクセスしてみてください。
Q&A
Q1. 複雑なサーフェスで作られた製品の金型の製作はどのようにしたらいいですか。GHなどを使用するべきでしょうか?
後から修正できる点から考えても、作るのはGHの方が楽だと思います。GHを使わない場合は、Rhinoにある「FlowAlongSrf」というコマンドを使うと、サーフェスからサーフェスに対して貼り直すようにして複雑な形状などを作ることができます。
Q2. Rhino8に一番期待しているのは分析ツールですが、何か新しい機能はありますでしょうか。サーフェスとサーフェス間の距離の測定や、最大限離れている距離が確認できるツールなどがあるのか気になります。もし無いのであれば、GHで確認できる方法などを紹介いただければ幸いです。
スキャンニングしたデータの差分を見るということであれば、Rhino5から搭載された「点とオブジェクトの偏差」というコマンドがあります。PointDeviationというコマンドもあるため、それによって点群とサーフェスの誤差をGoodポイント(青色)とBadポイント(赤色)で見ることができます。

この球の上に複数のポイントを出した後、ウニのように線を生やして、その線ともう1つのぶつかる交点を求めます。その後に一番長いところを拾えば、最大値を取ることができます。
Q3. シュリンクラップとブーリアンは何が異なるのでしょうか?
シュリンクラップは包み込むような形のメッシュになるのに対して、ブーリアン演算を行った形状は、基本的にはポリサーフェイスのようになります。シュリンクラップは元の形と似たメッシュになるため、そこが少し違うところになります。
閉じた形状であれば、ブーリアンでの処理をおすすめします。シュリンクラップは、ブーリアンができないような複雑な形状であっても、とりあえず隙間がない形状にしてくれる機能というイメージです。
Rhino8 最新機能攻略セミナー
- 第1部:Rhino8 新機能紹介、Grasshopper初級編 ←今ここ!
- 第2部:コンピュテーショナルデザインによって拡張するデザインの可能性