プロシージャルモデリングのアセット化


https://www.youtube.com/watch?v=qy6CgQtYs-E

MODO 10.2からはプロシージャルモデリングで組んだ一連のモデリングを、アセットとして保存し、再利用する機能が搭載されています。サンプルとして組んでいるこのStairというらせん階段状のアセットを使うと、簡単にらせんの数、回転角度などを指定し、作成することができるようになっています。

では、このサンプルStairをいちから組んでみましょう。メッシュの名称はStair_Meshとしておきます。まずは階段の元となるボックスを、作成プリミティブCubeを追加します。らせん階段状にするために、中心からずらして配置しておきます。さらにらせん状にこのボックスを複製するため、複製Radial Arrayを追加し、オフセットの値を調節します。アセットでは、必ず階段がきちんと重なるようにボックスのYのサイズを調整する必要があります。

このように見て見ると、らせん階段を作るためには、ボックスのサイズ、階段の数、階段全体のサイズ、回転角度が必要となってきますので、いったんこれらをコントロールするためのロケータを作ります。ロケータを作ったらユーザーチャンネルとして、階段の数となるCount、らせん階段の高さとなるHeight、回転角度となるAngle、さらに中心の空洞部分の半径となるInner Radius、そしてボックスのXとZのそれぞれのサイズを追加します。

このCountはRadial ArrayHelix Generatorカウント、Heightはオフセット、Angleは終了角度、Size XとSize ZはCubeのサイズ Xサイズ Zに接続します。これらにプロパティよりコントロールされるのがCubeのY軸に対するサイズとCubeのX軸に対する位置ですので、それらのチャンネルを追加しておきます。

ボックスのサイズ Yはボックスがぴったりと形状に重なり合っていくためには高さの値を階段の値で割ればよいので、除算ノードを追加して接続を行います。ボックスの位置 XはInner RadiusからさらにXのサイズの1/2を足し合わせればよいので、除算と加算ノードを追加して接続します。

これで一連のプロパティをロケータでコントロールできるようになりました。ではこの一連の流れを一つにまとめるため、アセンブリ化します。ノードをすべて選択したら、右クリックからアセンブリを作成をクリックして、アセンブリを作成します。しかしこれでは外から入力値を受け付けることができませんので、アセンブリをダブルクリックし、さらに内部へと入ります。ロケータのユーザーチャンネルをすべて選択し、これをアセンブリの外から入力できるプロパティとするため、右クリックからチャンネルを入力として公開を実行します。これでアセンブリが外からこれらの値を設定できるようになりました。こうなるとLocatorは必要ないので、アセンブリの入力チャンネルで全て接続しなおし、Locatorは削除してしまいましょう。これでアセンブリは完成です。

ではここからアセンブリをアセットとして保存します。アセンブリをアセットとするためには、いくつかの準備が必要です。まずはプロシージャルモデリングのオペレーションであるRadial ArrayとCubeを選択し、右クリックからフォルダ内へ配置を実行して、Deform Folderというフォルダに一つにまとめておきます。さらにアセンブリの中へと入り、スケマティックのノードとしてMerge Meshesを追加しておきます。デフォルトではStair_Meshが形状へと接続されているはずですので、これをソースへとつなぎかえます。このMerge Meshesを追加しておくことが重要になります。

あとはこれらをアセットとして使用するときに、今現在この設定で作られているメッシュが邪魔となってしまいますので、このStair_Meshのレンダーをオフにし、表示も見えない状態にしておきます。

それではアセンブリを右クリックし、アイテムへ折り畳みを実行します。タイプMesh Operationとし、ソースとしておまじないのように追加しておいたMerge Meshesを指定します。これでアセットが出来上がりましたので、ファイルメニュー > アセンブリプリセットの保存で、コンテンツフォルダAssetsAssembliesAliasesMesh Operationsの中へと保存します。

では新規シーンを開き、オペレータ追加AliasesMesh Operationsから、先ほど保存したアセンブリを読み込みます。まるで最初から用意されている一つのオペレータのように、ユーザーチャンネルタブのプロパティを調整するだけで、自由に形状を作っていくことが出きます。

このように、複数のオペレータを使用した決まった手順で作成するモデルがあれば、これをアセット化しておくことで、後から何度でも使いまわすことができるようになります。