スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Mayaスクリプト: 移動ツールのカスタムベクトル設定

タイトルのまんまですが、選択したエッジから移動ツールのベクトルを取得・設定するスクリプトです。

勿論標準の機能でもエッジから取得することはできますが、ショートカットキーで設定して使いやすいように色々とカスタマイズしているので使いやすくなっていると思います。

仕様
  1. エッジを選択して実行 → ツールのカスタム軸をエッジから取得
  2. エッジ以外を選択 or 何も選択せずに実行 → ワールド軸へ戻す
  3. 移動ツール版は実行後に選択モードを頂点へ自動変更
導入
  1. [ウィンドウ]→[設定/プリファレンス]→[ホットキー エディタ]
  2. スクリプトをまるまるコピーしてコマンドに設定
  3. またはスクリプトを自動読み込みフォルダ(例: Documents/maya/2013-x64/ja_JP/scripts)に配置
    → TrM_SetMoveAxisFromEdge()をホットキーに登録

ちなみにスケール版もあります。

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

移動軸設定 アニメーション


こちらはソースのサンプルになります。
ハイライトした部分はカスタマイズ可能です。
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";
	}
}
エッジからベクトルを取得するスクリプトはMELで別途定義されているので、それを読み込んで実行しています。

今回は、ベクトル取得後に選択モードを頂点に変更するように設定していますが
(ハイライト部分)、この部分は各々好みで変更してください。
変更しないようにする場合は、行をそのままコメントアウト(先頭に//を付けてコメント化)してやればOKです。

また、エッジ以外を選択した状態で実行すると自動的に軸方向をリセットするようにしています。
こんな感じです。

ショートカットキーに登録しておくと便利ですよ。



関連記事
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。