タイトルのまんまですが、移動ツールの向き(ベクトル)をエッジの向きから取得するスクリプトです。

標準の機能だけでも取得することはできますが、ショートカットキーに設定して使いやすいように色々と調整しているので、便利になっていると思います。

スケールツール版もあります。
018b5665.gif

ダウンロード

TrM_SetMoveAxisFromEdge.mel (移動ツール用)
TrM_SetScaleAxisFromEdge.mel (スケールツール用)
右クリックで保存

インストール

  1. [ウィンドウ]→[設定/プリファレンス]→[ホットキー エディタ]
  2. スクリプトをまるまるコピーしてコマンドに設定

使い方

  1. エッジを選択して実行 → 移動ツールのカスタム軸をエッジから取得
  2. エッジ以外を選択 or 何も選択せずに実行 → ワールド軸へ戻す
  3. 実行後に選択モードを頂点へ自動変更(オプション)

こちらはソースのサンプルになります。
global proc TrM_SetMoveAxisFromEdge()
{
	source "manipMoveOrient.mel";
	
	string $comps[] = `ls -sl -fl`;
	int $r = 0;
	
	if (size($comps) >= 1) $r = gmatch($comps[0], "*.e*");
	if ($r != 0)
	{
		manipMoveAlignHandleWith($comps[0],{});
		select -cl;
		manipMoveContext -e -mode 6 Move;
		string $buffer[];
		tokenize $comps[0] "." $buffer;
		doMenuComponentSelection($buffer[0], "vertex");  // 変更可能
		print "Mode: CustomAxis";
	}
	else
	{
		manipMoveContext -e -mode 2 Move;
		print "Mode: WorldAxis";
	}
}
移動ツール版は、ベクトル設定後に、選択モードを「頂点」に変更するようにしていますが、この部分は変更しないように変える事もできます。

変更前: doMenuComponentSelection($buffer[0], "vertex");
変更後: // doMenuComponentSelection($buffer[0], "vertex");

行の先頭に // を付ける事でコメントアウトして無効化します。


モデリングで、ツールの向きを素早く変更できるので私はかなり多用しています。
上手く使うと便利です。