strange items(楽天)


shade10.5〜15用スクリプト(WINDOWS&MAC用)一覧はこちらです。


bannerst.jpg
リンク用のバナーです。
リンクはご自由にどうぞ。

2010年02月04日

shade用スクリプトその43(選択ラインを瞬間表示・他)

新)選択状態の記憶20100303.txt

選択状態の復帰20100204.txt

選択ラインを瞬間表示20100204.txt

今回は上記の三つのスクリプトを連携して使用します。
なお、ショートカットキーから起動して使用するのを想定してますため、「メッシュツールプラス」には収録していません。

各々のスクリプトをスクリプトウインドウにペーストしてから「保存」ボタンを押して、shadeのインストールフォルダ下層の「script」フォルダ内に名前をつけて保存した後、shadeを再起動してからショートカットキーにそれぞれ登録してください。
(スクリプトウインドウにコピー&ペーストする場合は、一度スクリプトウインドウ内を全消去してからペーストしてください。そのままペーストすると前のスクリプトと混ざってしまいます。)

今回の例では「k」キーに「選択状態の記憶」を、「F1」キーに「選択状態の復帰」を、「TABキー」に「選択ラインを瞬間表示」スクリプトを登録したとして使用手順を説明してあります。


<このスクリプトの狙い>
自由曲面で形状を編集する際の利点として、「断面ごとに線形状がハイライトで表示される」というのがあります。
自由曲面は格子状に構成されているため、縦方向あるいは横方向の線形状に切り替えながらコントロールポイントの位置やハンドル調整を行うのですが、その際には断面となる線形状が1本ずつハイライトで表示されます。
断面が何層にもなってる形状でも、線形状(断面)ごとに確認できるという利点があります。

一方ポリゴンメッシュでは、線が入り組んで表示されるようになっています。

断面001.png
例えばこういうポリゴンメッシュがあったとします。
円柱をベースに、頂点を法線方向にランダムに移動させてデコボコさせています。
正面図で中腹あたりの頂点を選択状態にしています。

断面002.png
上から見ると線が入り乱れています。
線がごちゃごちゃしすぎて選択している頂点を結ぶ線(断面)は上面図ではぱっと見よくわかりません。

断面003.png
編集モードを「頂点編集モード」から「辺編集モード」に切り替えると、選択していた頂点を結ぶ辺がハイライト表示されて、断面の形状が(若干)見やすくなりました。
「これをうまく使えばポリゴンメッシュでも断面形状をこまめに確認しながら頂点の位置調整が行えるかも」と思い、作ってみたのがこの三つのスクリプトです。


<「選択状態の記憶」と「選択状態の復帰」>
まず一つ目の「選択状態の記憶」スクリプトは、現在の選択要素を記憶するためのスクリプトです。
頂点編集モードなら選択頂点が、辺編集モードなら選択辺が、面編集モードなら選択面が記憶されます。

断面004.png
例えばこういう風に面を選択します。
「選択状態の記憶」を実行すると、
断面005.png
というダイアログウインドウが開きます。

「名前」は識別するために入力してもいいし、空欄のままでもいいです。
ここでつけた名前が現在選択しているポリゴンメッシュの真上に作られる記憶用の形状(中身はポリゴンメッシュ)の名前に追加されます。

「頂点選択モードに切り替えて記憶」チェックをONにすると、現在「辺編集モード」や「面編集モード」で辺や面を選択していても、一度頂点編集モードに切り替えてから選択状態を記憶(選択辺を構成していた頂点、選択面を構成していた頂点が記憶)されます。 このオプションは「断面上の頂点を簡単に選択する」ために盛り込んでいます。
(具体的な使い方は後述)

選択状態の記憶といっても、やってる事は選択形状を真上(兄階層)にコピーした後、形状名を変えてるだけです。
(レンダリングOFF、表示OFF、編集ロックONにしてあります)
あと、選択頂点を記憶した場合はvertexの「v」が、選択辺を記憶した場合はedgeの「e」が、選択面を記憶した場合はfaceの「f」が名前に追加されています。

ちなみに選択状態はshadeファイルには保存されませんので、shadeを再起動した際は記憶した情報から選択状態を復帰できません。
またポリゴンメッシュの要素数(頂点数や辺数、面数)が変化した場合、変化前に記憶した情報から「選択状態の復帰」は行えません。
(頂点や辺、面の数が変化すると対応する頂点、辺、面の位置や情報も変わってしまう場合があるため)

「選択状態の記憶」を実行するたびに、真上にどんどん選択状態記憶用のダミー形状がたまっていきますので、それらは不要になった段階でdelキーで削除してください。
(編集モードに入った状態でdelキーを押しても削除できませんので、削除する場合は一度編集モードから出てください。)


断面004.png
さて、先ほどこのように面を選択して「選択の記憶」を行いました。
(「頂点選択モードに切り替えて記憶」のチェックはOFFにしています。)
断面006.png
頂点編集モードに切り替えてから頂点をこのように選択しました。
で、「選択状態の復帰」スクリプトを実行すると…
断面004.png
選択状態は先ほど記憶したとおりに戻ります。
ポリゴンメッシュの一つ上(兄階層)に置いてあるデータを使って選択状態の復帰を行います。
(名前についてるv,e,fで頂点、辺、面編集モードの切り替えも行ってます。)

例えば二回「選択状態の記憶」を行って、二つ前の選択状態に戻したい場合は、ポリゴンメッシュの一つ上(兄階層)の形状を入れ替えて、復帰したい選択データにしてからポリゴンメッシュを選択して「選択状態の復帰」を行ってください。

例)

断面007.png
「e選択状態:ライン1」の選択状態に戻したい場合は
断面008.png
ポリゴンメッシュの一つ上に「e選択状態:ライン1」を移動して、ポリゴンメッシュを選択状態にして「選択状態の復帰」を行います。

「選択状態の記憶」も「選択状態の復帰」も編集モードに入っていないと機能しませんのでご注意ください。
利用できるのはポリゴンメッシュのみです。



<選択ラインを瞬間表示>
断面009.png
さて、上記のように辺をループ状に選択してあります。
裏側の辺も選択されており、上面図で見ると
断面003.png
と断面の線が赤くハイライト表示されています。

この状態で「選択状態の記憶」を実行するのですが、今回は「頂点選択モードに切り替えて記憶」をONにして選択辺を構成する頂点を記憶させます。
これをやっておくと、後で「断面上の頂点を上面図(側面図、正面図)で簡単に選択できる」ようになります。

(*辺編集モードではなく頂点編集モードで頂点を選択して「選択状態の記憶」をやってもかまいません。この場合も「選択ラインを瞬間表示」を行うと選択していた頂点間を結ぶラインがハイライト表示されます。)

断面010.png
編集モードを頂点編集モードに切り替えて、透視図で先ほど選択していた辺を構成する頂点を一つ選択してみました。

断面011.png
真上(上面図)から見ると、断面図がわからなくなりましたよね。
でも、ここでTABキーを押して「選択ラインを瞬間表示」を実行すると……
断面003.png
断面の線が数秒間ハイライト表示された後、
断面011.png
選択状態は元に戻ります。
*断面がハイライト表示されてる時に「選択ラインを瞬間表示」を連打して実行しないでください。選択状態が元に戻らなくなります。
再表示する場合は選択状態が元に戻ってから再実行してください。


頂点の位置を調整しつつ、ショートカットキーに登録してある「選択ラインを瞬間表示」を実行して断面が即座に確認できるわけです。

断面012.png
上面図上で選択していた頂点の位置を変更してみました。
(マニピュレーターかSHIFTキー+xキードラッグで移動してください。頂点にカーソルをあわせてドラッグ移動すると別の頂点が選択状態になってそっちを移動してしまう場合があります。)

TABキーを押して「選択ラインを瞬間表示」を実行すると…
断面013.png
頂点の移動によって変更された断面の形が即座に確認できます。

このような手順で、前もって断面の選択辺を「選択状態の記憶」で登録しておけば、断面の形をこまめに確認しながら、断面を構成する頂点の位置を調整できるようになるというわけです。


別の頂点を移動したくなった場合は、透視図で断面上の頂点を選択するのもいいですが、「選択状態の復帰」を実行すれば上面図で簡単に選択できます。
断面014.png
先ほど「頂点選択モードに切り替えて記憶」をONにして記憶しましたが、この場合は「選択辺を構成する頂点」が記憶され、そのため「選択状態の復帰」を行うと、それらの頂点を選択した状態になります。
あとは「CTRL(WIN)/COMMAND(MAC)キー+ドラッグ」の「絞り込み選択」で移動させたい頂点だけを選択状態にするといいと。
このように、上面図状で簡単に断面を構成する頂点が選択できます。


ポリゴンメッシュで辺が入り組んでる場所でも、参照したいラインを「選択状態の記憶」で登録すれば、「選択ラインを瞬間表示」でこまめにハイライト表示できるようになり、真上や真横、真正面で断面の形を確認しながら頂点の位置を調整できるようになるというわけです。

posted by stxsi at 20:56| shadeスクリプト | このブログの読者になる | 更新情報をチェックする