strange items(楽天)


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


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

2010年02月16日

shade用スクリプトその49(指定位置を中心にスケーリング)

新)指定位置を中心にスケーリング20130123.txt

旧)指定位置を中心にスケーリング120330.txt

旧)指定位置を中心にスケーリング110412.txt

旧)指定位置を中心にスケーリング20100303.txt

旧)指定位置を中心にスケーリング20100216.txt

shade13.22にあわせて修正(2013.01.23)
shade13.01に対応(2012.03.30)
shade12.02に対応(2011.04.12)


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


指定位置を中心にスケーリング001.png
こういうのを
指定位置を中心にスケーリング014.png
こういう風に加工するのに多少は役に立つかなぁと思って作ってみました。
ビルの窓とか格子状のもの、メカなどのパーツのデザイン加工の際にご利用ください。

なお、上位パートに変換がかかっていたり、ローカル座標モード時は結果が不正になりますのでご注意ください。


指定位置を中心にスケーリング001.png
という格子状のポリゴンメッシュがあったとします。

指定位置を中心にスケーリング002.png
という風に頂点を選択して、この「指定位置を中心にスケーリング」を実行します。
なお、このスクリプトが動作するのは「選択形状がポリゴンメッシュ」で「頂点選択モードで頂点が二個以上選択されている場合」のみとなります。

指定位置を中心にスケーリング003.png
といったダイアログウインドウが表示されます。

「スケーリングの中心」で拡大縮小の中心位置を決めます。
「指定座標」の場合は下の「指定座標の場合」ボックスで入力した位置を中心に拡大縮小します。
「カーソル(クリック位置)」の場合は、最後にクリックした位置を中心に拡大縮小します。
「選択頂点(最初に選択した点)」の場合は、選択頂点のうち最初に選択した点を中心に拡大縮小します。
「選択頂点(最後に選択に追加した点)」の場合は、選択頂点のうち最後に選択に追加した頂点を中心に拡大縮小します。
「選択頂点群の中心(平均座標)」の場合は、選択されている頂点の座標を合計し、選択頂点数で割った座標を中心に拡大縮小します。頂点が偏って配置されてる場合は中心もそちらの方向へ引き寄せられます。
「選択頂点群のバウンディングボックスの中心」の場合は、選択されている頂点を囲むようにバウンディングボックスを作り、そのバウンディングボックスの中心を拡大縮小の中心にします。

「倍率」は拡大縮小の倍率です。1だとそのままです。

「X軸方向ON」「Y軸方向ON」「Z軸方向ON」のそれぞれのチェックボックスをOFFにすると、その軸に関した拡大縮小はされません。
例えば「X軸方向」だけONの場合はX軸方向にだけ拡大縮小され、Y軸方向・Z軸方向はそのままです。

「初期設定」のボタンを押すとデフォルトの設定に戻されます。


指定位置を中心にスケーリング002.png
は上面図で見ている画像ですが、「バウンディングボックスの中心」をスケーリングの中心にし、「倍率」を0.5、「X軸方向ON」だけONにしてY軸Z軸方向のスケーリングはOFFで実行すると
指定位置を中心にスケーリング004.png
となりました。

指定位置を中心にスケーリング005.png
次の列を選択して、またスクリプトを実行します。

設定はダイアログを閉じても保持されてるため、設定を変えずに「ok」だけ押します。
(「ok」ボタンをクリックするかわりにキーボードのリターンキーを押してもいいです。)

指定位置を中心にスケーリング006.png

隣の列も同じように選択してからスクリプトを実行します。
指定位置を中心にスケーリング007.png

指定位置を中心にスケーリング008.png

一番右端の列は同じように処理してしまうと端がちょっと左の方へ縮んでしまうため、今回は置いておきます。

指定位置を中心にスケーリング009.png
縦方向(Z軸方向)を同じ倍率で縮める場合は、このように選択してスクリプトを実行した後、「X軸方向ON」のチェックをはずし「Z軸方向ON」のチェックを入れて「ok」を押します。
(縦方向は横とはまた違う倍率にしてもいいですが)

指定位置を中心にスケーリング010.png

残りは頂点を選択してスクリプトを実行、「ok」ボタンを押す……を繰り返すだけです。

指定位置を中心にスケーリング011.png

指定位置を中心にスケーリング012.png

指定位置を中心にスケーリング013.png

指定位置を中心にスケーリング014.png
と加工できました。
一列一列実行していく手間がかかりスマートではありませんが、このようにしてビルの窓とか格子の縦横比を加工する事ができるようになります。
元が8x8の格子状だったので今回は一番右と一番下の列は処理してませんが、奇数x奇数の格子だったら外形を変える事なく右および下の列も処理できると思います。
内容的にはshade標準の「数値入力ツール」の拡大縮小機能と似ていますが、このスクリプトでは中心の位置をいちいちその都度設定する事なく次々と列を拡大縮小していく事ができます。


指定位置を中心にスケーリング015.png
ドラッグ選択で頂点を一気に選択した場合は、今回の例では一番左上の頂点が「最初に選択した頂点」となり、一番右下の頂点よりひとつ上の点が「最後の選択に追加した頂点」となるようです。
この性質を利用すれば、スケーリングの中心を「最初に選択した頂点」にして「X軸方向ON」だけチェックを入れて実行すると左端を軸に拡大縮小でき、スケーリングの中心を「最後に選択に追加した頂点」にして「X軸方向ON」だけチェックを入れて実行すると右端を軸に拡大縮小できます。

ただし、「倍率」を0にして左寄せあるいは右寄せした場合、計算精度が足りないのか、shade標準の「数値入力ツール」による0倍での縮小のようにまったく同じX座標値には移動しないようです。
このスクリプトで倍率0にした場合は微妙に位置がずれており、「頂点のマージ」を行ってもマージされませんのでご注意ください。


指定位置を中心にスケーリング016.png

格子のデザインをこのスクリプトで変更した後、上にふくらまし、下に反転コピー
指定位置を中心にスケーリング017.png
サブディビジョンサーフェイスをONにするとワッフル(四角タイプ)っぽい形状ができます。

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