第24回 ポリゴンメッシュの選択を記憶・適用・追加・除外するスクリプト
Here's a Customized. モデリングのほとんどは何かしら選択することが多いですね。ポリゴンメッシュの選択は面や稜線、頂点などを選択してUVのシーム作ったり、15.1では頂点カラーのためにも選択するわけですが、ちょっと操作を間違えると選択してたものが消えてしまいます。今回はそんなときのちょっとした保険となるスクリプトのお話です。
- 今回のスクリプトは 7/23日発行のメルマガにて配布しました。
- インストール先などは【インストール・使用法】をご覧ください。
- この記事は Shade 3D ver.15.1 を基準に書いています。
- 記事で紹介しているスクリプト(最新号分を除く)はマーケットプレイス「カスタマイズはいかがですか? 全部入り Script 」よりダウンロードできます。
- 記事で紹介している widget (最新号分を除く)はマーケットプレイス「カスタマイズはいかがですか? 全部入り Widget」よりダウンロードできます。
標準の選択
Shade 3Dの選択
ポリゴンメッシュの要素は頂点、稜線、面の3つがあり、コントロールバーで選択する対象を切り替えます。
・左から頂点選択、稜線選択、面選択
選択する方式は矩形、投げ縄、トレースがあり、これもコントロールバーから選択します。
・ボックス選択は四角形の内側と四角形の線に触れているところが選択されます。
・投げ縄選択は線の内側と線に触れているところが選択されます。
・トレース選択は線に触れているところが選択されます。
キーボードを組み合わせることで追加選択や絞り込み選択ができます。
Mac | Win | |
---|---|---|
追加選択 | shiftキー+ドラッグ | |
選択解除 | commandキー+ドラッグ | Xキー+ドラッグ |
絞り込み選択 | optionキー+ドラッグ | ctrlキー+ドラッグ |
これらのキーを駆使して選択していくのですが、うっかりキーボードを押さないでクリックしてしまうとそれまでの選択が消えてしまうのでスクリプトです。
今回は4本の個別機能のスクリプトと、統合した1本の5本セットです。
ポリゴンメッシュ要素の選択状態を記憶スクリプト
選択しているポリゴンメッシュの面、稜線、頂点の選択状態をそれぞれ個別に記憶します。まずはこれで記憶します。
ポリゴンメッシュを1つ選択し、面選択モードでスクリプトを実行すると選択されている面を記憶します。
ポリゴンメッシュを1つ選択し、稜線選択モードでスクリプトを実行すると選択されている稜線を記憶します。
ポリゴンメッシュを1つ選択し、頂点選択モードスクリプトを実行すると選択されている頂点を記憶します。
それぞれの要素は個別に記憶されます。
それぞれの要素は固有の番号を持っています。スクリプトではその番号をメモリに記憶します。
ポリゴンメッシュ要素の選択状態を記憶_適用スクリプト
「ポリゴンメッシュの要素の選択状態を記憶」スクリプトで記憶した要素を選択しているポリゴンメッシュに適用します。
ポリゴンメッシュを1つ選択し、面選択モードでスクリプトを実行すると記憶されている面を適用します。
ポリゴンメッシュを1つ選択し、稜線選択モードでスクリプトを実行すると記憶されている稜線を適用します。
ポリゴンメッシュを1つ選択し、頂点選択モードでスクリプトを実行すると記憶されている頂点を適用します。
記憶された要素が無い場合は何もしません。
記憶と適用は同じポリゴンメッシュである必要はありませんが、記憶されている要素の数と同じかそれ以上の要素を持たない場合は何もしません。
ポリゴンメッシュ要素の選択状態を記憶_追加スクリプト
「ポリゴンメッシュの要素の選択状態を記憶」スクリプトで記憶した要素を現在の選択範囲に追加します。
ポリゴンメッシュを1つ選択し、面選択モードでスクリプトを実行すると記憶されている面を現在の選択範囲に追加します。
ポリゴンメッシュを1つ選択し、稜線選択モードでスクリプトを実行すると記憶されている稜線を現在の選択範囲に追加します。
ポリゴンメッシュを1つ選択し、頂点選択モードでスクリプトを実行すると記憶されている頂点を現在の選択範囲に追加します。
記憶された要素が無い場合は何もしません。
記憶と適用は同じポリゴンメッシュである必要はありませんが、記憶されている要素の数と同じかそれ以上の要素を持たない場合は何もしません。
ポリゴンメッシュ要素の選択状態を記憶_除外スクリプト
「ポリゴンメッシュの要素の選択状態を記憶」スクリプトで記憶した要素を現在の選択範囲から除外します。
ポリゴンメッシュを1つ選択し、面選択モードでスクリプトを実行すると記憶されている面を現在の選択範囲から除外します。
ポリゴンメッシュを1つ選択し、稜線選択モードでスクリプトを実行すると記憶されている稜線を現在の選択範囲から除外します。
ポリゴンメッシュを1つ選択し、頂点選択モードでスクリプトを実行すると記憶されている頂点を現在の選択範囲から除外します。
記憶された要素が無い場合は何もしません。
記憶と適用は同じポリゴンメッシュである必要はありませんが、記憶されている要素の数と同じかそれ以上の要素を持たない場合は何もしません。
ポリゴンメッシュ要素の選択状態を記憶_選択式スクリプト
記憶、適用、追加、除外をプルダウンで選択して実行します。
このスクリプトはショートカットキーに登録してさくさく使う用に作りましたので、機能別に分かれています。ただ、ショートカットがいっぱいだったり、覚えきれない人(私だ)のために選択式も用意しました。
widgetにするとクリック操作が入り、意図せず選択範囲を変えてしまう可能性もあるのでスクリプトでの配布です。
たとえばこんなこと
このスクリプトと標準の選択機能を併用するとこんな感じで選択できます。
・2つ選択
・ループ選択して記憶
・2つ選択
・ループ選択
・適用
次回もよろしくお願いします。
要望や質問、またユーザー同士の意見交換にShade3D公式ユーザーフォーラムをご用意しております。どうぞご利用くださいませ。