strange items(楽天)


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


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

2009年10月27日

shadeスクリプト練習その3 ベルト抜きスクリプト(辺を抜いて面を残す)

shade用スクリプト「ベルト抜き(辺を抜いて面を残す)」です。
carraraでいう「辺の一括ディゾルブ」みたいなもんです。
メタセコイアでいう「ナイフ>接続辺を連続消去」みたいなもんです。
(ただしこのスクリプトの場合手動で消す辺を全て選択状態にしてないといけない)

最初に考えたアルゴリズムではうまく機能しなかったため、また別のアルゴリズムを考えて、ようやくうまくいきました。
shadeでポリゴンモデリングを行う場合、余計なエッジループのクリーンナップ(削除)に多少は役立つのではないでしょうか。


新)ベルト抜き(面を残して辺を一括消去)20130123.txt

旧)ベルト抜き(面を残して辺を一括消去)20120330.txt

旧)ベルト抜き(面を残して辺を一括消去)20110412.txt

旧)ベルト抜き(面を残して辺を一括消去)20100303.txt

旧)ベルト抜き(面を残して辺を一括消去)20100202.txt

旧)ベルト抜き(面を残して辺を一括消去).txt


<重要>上位パートに変換がかかっている状態で、かつ一時ローカル座標モードかろくろモードONの状態でスクリプトを実行すると、「スクリプトの処理結果をキャンセルした際」に形状が破壊されてしまう不具合を修正しました。(2010.03.03)
修正前の旧版をお使いの方は不具合を修正した新版をダウンロードしなおしてください。
(メッシュツールプラスウィジェットでスクリプトを利用していた方はメッシュツールプラスの最新版をダウンロードしなおしてください。)


shade13.22で正常に動作するよう修正(2013.01.23)
shade13.01で正常に動作するよう修正(2012.03.30)
shade12.02に対応(2011.04.12)
処理速度を高速化しました。(2010.02.02) 

*ポリゴンメッシュ以外を選択状態で実行するとエラー表示が出るのを修正しました(2009.11.02)
*ダイアログを表示して簡単に結果を取り消しできるように変更しました。(2009.11.02)
(shade10.5用。shadeのスクリプトウインドウにコピペしてそのまま使用か、スクリプトウインドウの「保存」を押してscriptフォルダに保存して、shadeのスクリプトメニューバーに追加して使用してください。)
*保存した後shadeを再起動するとスクリプトメニューバーに追加されます。

<使用方法>
ポリゴンメッシュを選択し、編集モードに入って、頂点選択モードか辺選択モードで頂点あるいは辺をループ状に選択します。

このスクリプトを実行すると、選択していた辺(あるいは頂点)が削除されますが、面は残ります。
アンドゥする場合は、スクリプト実行前の形状がクリップボードにコピーされてますので、何か結果がおかしくなった場合はそのままクリップボードの内容をペーストしてください。(ペーストする前に図形ウインドウのどこかをクリックするとペースト位置がずれてしまいます。)

*選択している頂点の数(辺選択の場合は頂点に換算した場合の頂点数)が3点以上でないと機能しません。
辺あるいは頂点が階段状に選択されてる場合は機能しません。

例1
beltnuki001.jpg
↑平面のグリッドの頂点をこのように選択状態でスクリプトを実行すると…

beltnuki002.jpg
のようにポリゴンが張られたままで頂点のみ抜かれます。


例2
beltnuki003.jpg
↑ポリゴンメッシュの球のエッジをループ状に選択し(見えませんが裏側の線も選択してます)、スクリプトを実行すると…
beltnuki004.jpg
のようになります。

beltnuki005.jpg
もちろん縦方向の線でも…
beltnuki006.jpg
と、辺を一気に抜いてくれます。



注意点として、辺を抜いた後に残る面のうち、頂点数が5個以上となってしまう面にはポリゴンが張られません

beltnuki007.jpg
↑例えばこのように選択状態で実行すると…
beltnuki008.jpg
のように、辺(エッジ)を抜いた後にできる面が5個以上の頂点で構成される場所はポリゴンが張られません。
手動で頂点間にエッジをひき、穴を埋めてください。


beltnuki009.jpg
のケースでは
beltnuki010.jpg
となります。


選択されているエッジが同じ面を共有しないように間隔をあけて選択されている場合は、複数のエッジループを一括で抜く事もできます。
belt00a1.png

belt00a2.png
となります。

当初はエッジループ1本ずつのみ抜くように想定してスクリプトを製作したのですが、搭載したアルゴリズム的に複数のエッジループも一括して抜く事ができるようになってるみたいです。


ループエッジの選択にはエッジループ選択をどうぞ。

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