【MEL】ピボットをマニピュレータの位置にする等のピボット制御


![]() | AriSetPivot |
現在のマニピュレータの位置をピボットにしたり、オブジェクトの端やセンター、原点にピボットを移動させたりします。
他のオブジェクトのピボットと同じ座標にすることも出来ます。
2015/06/24 更新 : UIの誤字を修正しました。
マニピュレータの位置をピボットに
移動、回転、スケールいずれかのマニピュレータを表示し、「マニピュレータ位置」ボタン、
で、オブジェクトのピボットが現在表示されているマニピュレータの位置になります。

たとえば頂点を選択しておけば、選択頂点の中心になります。
頂点のちょうど中心にしたいけど、スナップする頂点がなかったりする場合に使えます。
注意点としてマニピュレータの位置なので、移動、回転、スケールいずれかのマニピュレーターが表示されていないと機能しません。
他のオブジェクトのピポット位置と同じにする
基準にしたいオブジェクトを最後に選択すると、マニピュレータの位置が最後のオブジェクトになるので、
上の説明と同じく「マニピュレータ位置」ボタンで、結果的に最後に選択したオブジェクトとピボットを同じ位置にできます。

中心、端、原点など
「CenterPivot」でオブジェクトの中心に
標準機能の中央にピボットポイントを移動と同じ効果です。

すぐ下の「X Cent」ら、3つのボタンで特定の軸だけ中心に移動も出来ます。
「X Min」等で端に

「W原点」などで原点に

L原点はローカル座標の原点です。オブジェクトの親に依存します。
XYZ軸単体で行いたい場合は右クリックで軸のメニューが現れます。

追記2021/08/13
L原点(pivot)はローカルピボットの値を0にします。
右クリックで表示されるメニューで、XYZ単軸指定と、親マニピュレータの位置に移動させることが出来ます。

ローカル空間
Local にチェックを入れると、
XYZのMaxMinとCenterをローカル空間の座標値で判断します。

オブジェクト自身や、親が回転しているときに便利です。
疑似マニピュレーター
ちょっと試験的ですが、
オブジェクトを選択した状態で、ピラミッド型のアイコンをクリックすると、
XYZ MaxMinの位置にそれぞれにピラミッドが6個出現します。

ピラミッドを選択すると、その位置にピボットが移動します。
もう一度ピラミッドのアイコンを選択するか、他のオブジェクトを選択すると消えます。
AriReFreezeTransform
上部のFreezeフレームに入っている機能はフリーズなど移動値の制御をするものです。
ピボット移動させた場合、移動値も制御したいことが多いと思い以前公開したAriReFreezeTransformを組み込みました。

「ReFreeze」ボタンの機能についてはこちらの記事を。
【MEL】フリーズしたオブジェクトの移動値を戻す
回転値転送
Orient内の項目で、回転の方向を現在表示されているマニピュレーターの方向に合わせられます。
Pivot ボタンはPivotの方向のみ。
Rotate ボタンはオブジェクト自体を回転させます。

Orient内の
Pivot ボタンを 右クリックすると現れる、
Set Parent Pivot をクリックすると、
選択したオブジェクトの回転値を親に転送します。

一つ上の階層の親オブジェクトに、回転値を転送します。

選択したオブジェクト自体の回転値は0になります。
親に回転値が入っている場合、統合されます。
更新
2021/08/13 更新
・Local Pivot の挙動を昔に戻し右クリックで新しい親マニピュレータに設定できるように調整
2021/06/27 更新
・回転値を親に転送する機能追加
2021/03/28 更新
・回転値転送機能追加
2020/03/29 更新
・ローカル空間に対応
・疑似マニピュレーター追加
2018/08/19 更新
・座標表示とオブジェクトリスト機能追加
2017/11/11 更新
・MEL名やUI変更
MEL名を AriSetPivot にしました。(旧: AriReFreezeTrAndSetPivot)
UIを変更しました。
他 詳細はこちら。
2016/08/28 Pivot位置をコンポーネント情報から設定できるように
ピボットのMax Min Centerを設定するとき、コンポーネント選択状態で行うと、選択したコンポーネント中でのMax Min Centerを設定するようにしました。

2016/08/28 閉じたUIを保存
Freeze Pivot Moveのグループを閉じたとき、次回開くときも閉じた状態になるよう修正。
2016/03/14 UI修正と機能追加
UI関連ごとにグループ化し、並び替えました。
マニピュレータ位置に各軸ごとに移動できるようになど機能を少し追加しました。
2015/06/28 cm以外の単位に対応
「マニピュレータ位置」がcm以外の単位に対応していないと報告を頂き修正しました。
よかったらこちらからどうぞ。
Download
当ブログのMELについて
つぶやき
MELも増えてきたので、今回のよう同時に使用する頻度が高そうなものはできるだけ一緒にしていきたいです。
説明がごちゃごちゃしちゃいそうですが・・・。
あとはUI直したり、一緒にしたりしてたことでのバグが怖いんですよ。
今回も自分用に使ってたものをだいぶ改良しちゃいましたので少し心配ではあります。大丈夫でありますように。
スポンサーリンク
コメントの投稿
GooD!!
2日ほど使ってみたのですが
気がついたところを何点か。
1.
Pivotのボタン表記、配置がおかしいようです
Xmin,Xmaxが2つあります
機能的には青のボタンがZですね
2.
これはmayaの仕様のせいかversionのせいか
こちらでもはっきりした再現性がなくてなんとも言えないのですが
しばらく作業したり
手の入ったシーンで使用すると
「マニピュレータ位置」の挙動がおかしくなります
選択ポイント座標の 大体x100の値が ワールド空間に入ってしまうようです(目測ですが)
新規シーンでプリミティブでお試し作業するには問題なく動作します。
なんとも曖昧な現象で報告も心苦しいのですが一応ご報告まで。
一旦この状況になると他作者様の
同機能スクリプトでも同じ現象になりますので
maya側の問題かもしれません。
こちらのmayaは2014です。
Re: GooD!!
1: Xが2つ??あ・・・これはお恥ずかしい!
先ほどあわてて直しましたw
2: マニピュレーター位置…そうなんですね!そんな症状が!!
うーん何でしょう・・・私のほうでは何パターンか色々試してみたのですが今のところ再現が出来ないんです。
あ・・・でも助かります。そういう症状が起きるということを、意識するきっかけになりましたので。
新たにMayaの性質がわかるかもしれませんし、これからも原因は気にかけていこうと思います。
このようなご報告はとてもありがたいです。
わざわざありがとうございました。
Re: GooD!!
早速のボタン修正ありがとうございます!
しかし配置ってこれでいいのかな・・?
機能的な見栄えからすると赤、緑、青の縦ラインが揃っている方がいいのかも?
まあ作業感覚の方向からするとX、Yのボタン配置は今のほうが合っていますよね。
Zボタンは右から見てモデリングするか左から見てモデリングするかによりますが
その辺は作者様の使いやすいほうがいいと思います!
2
原因がわかりました
作業単位の設定がメートルになっていると
100倍に移動してしまうようです
デフォルトはセンチメートルですので
そちらの設定では問題なく動作しました
気が付かずに作業していましたが
今の作業が巨大なものを作る感じでしたので
メートル指定のファイルでした・・気が付かなかった・・
ファイル指定の作業単位にとらわれずに移動って難しいのですかね?
条件分岐しないとダメかな・・?
とりあえずご報告まで。
Re: Re: GooD!!
1
そうなんですよ!お察しのとおりで、
私の中で少しでも直感でボタンを押せるのはこうじゃないかなー?な判断であんな変な配置にしています。
でも自分の感覚なので、他の方の意見は参考になります。
2
あ!!
なんかコンポーネントエディタの値がそういう感じになったこと思い出しました!!!それ関連の気がしますね。
あーもうありがとうございます。それですねぇ!
すぐに検証できる環境にありませんが、時間作ってじっくり検証してみます。
できるのであれば、そんな手間でもないので条件分岐してでも調整はさせていただきます。そうなるとインチやフィートがどうなるかも気になりますがそれはそれでw
ほんとありがとうございます。
Re: Re: GooD!!
原因まで探っていただき本当に助かりました。ありがとうございました。
Re: Re: GooD!!
すべての単位に対応、ヤッター!
こちらでもざっくり検証しましたが問題なく動作していると思います。
単位切り替えて作業してから戻せばいいかな~?
と思っていたところでしたw
これで効率UPです!
海外の作者さんですと語意がうまく伝えられないこともあって
リクエスト出しづらいのですが 国内だと安心ですw
素早い修正対応ありがとうございましたーーー!
No title
初めてのMEL、ダウンロードさせて頂きます!!
便利なツールありがとうございます^^
Re: No title
初めてのMEL光栄です。
できる限りわかりにくいことがないように頑張ります。
よろしくお願いします。
回転も揃えられるようにならないでしょうか?
こちらのスクリプト、Pivotの回転情報も
他方に揃えられるようにはできませんでしょうか?
Re: 回転も揃えられるようにならないでしょうか?
実は昔そういうスクリプトを書いておりまして、
どういったUIや操作で実装しようか考えているうちに、需要ないのではないかと思いすっかり忘れ去っていました。
良い機会ですのでこのスクリプトに実装しようと思います。
少し時間かかってしまうかもしれませんが、それでもよろしければあまり期待せずにお待ちいただければと思います。
実装ありがとうございます!
おっしゃられた通り、あまり期待もせず暫く過ごしていたのですが
ふと思い出して来てみたら、期待通りのものが実装されていて
びっくりしました!
只でさえ便利に使わせて頂いているのに
要望まで聞いて頂いて、まさに望外の喜びです!
Re: 実装ありがとうございます!
今回のケースは、仕組み自体たまたま昔作ってあったので、
ツールに組み込むだけでご要望にお応えすることが出来ました。
お役に立てれば光栄です。
L原点について
手元のAriSetPivotを最新版(2021/06/27)に更新させていただいたのですが
『L原点(Pivot)』を実行しますとPivot位置がワールド原点になってしまいます。
(以前はPivot位置がワールド原点では無く、オブジェクトの原点位置に戻っておりました)
以前の挙動状態が私の使用法では頻度の高い機能でしたので
前の挙動状態に戻していただく(不具合なら)、もしくは新規ボタンを別途機能として追加していただけますと幸いです。
お忙しいとは思いますが、ご検討よろしくお願いいたします。
Re: L原点について
Local原点は親のマニピュレータの位置に移動させる仕様に変えていたのですが、
実は正直これどうなのかなと気になっていたので、元に戻して最新版としてアップしました。
2021/08/13版をダウンロードいただければと思います。
L原点(Pivot)右クリックで、新たに実装していた「親マニピュレータに移動」させる機能も残っています。
ご報告ありがとうございました。
ご対応ありがとうございます
元々がSoftimageをメインで使用しておりましたため、MAYAのPivotの挙動に慣れず困っていた際に
こちらのスクリプトと出会い、使用させていただいておりましたので大変助かりました。
(SoftimageのPivot位置は一時的に移動する仕様で、MAYAの様にPivot位置が移動したままの状態で残ると困っておりました)
本当にありがとうございました。