Amazon10/19まで!プライム感謝祭開催中!セール会場へ

【Maya】ブレンドシェイプを反転コピーする方法

以下は保存されていた過去原稿をもとにした操作記録です。

掲載画像やメニューは当時のもので、現行版での再現試験は行っていません。

この記事はラップデフォーマや外部スクリプトを使った過去の作業記録です。

現在のMayaでは、まずShape EditorのFlip Targetを検討してください。

Flip Targetは選択したターゲット自体を反転します。

元のターゲットを残す場合は先に複製し、Shape Editorで対象を選んでShapes > Flip Targetから対称軸を指定します。

以下のabSymMeshは、既存の制作環境で利用していた別の方法です。

目次

通常のブレンドシェイプを反転コピーする手順

ベースメッシュを複製し、X軸のスケールを-1に設定して反転します。

複製して反転したメッシュにブレンドシェイプを適用します。

ベースメッシュから反転メッシュに対してラップデフォーマを適用します。

ブレンドシェイプのウェイト値を1にして有効化します。

反転メッシュのX軸スケールを再び1に戻します。

次のMELは当時のスクリプト例です。

ターゲットメッシュ、ベースメッシュの2つをこの順に選ぶ前提で、名前のL_からR_への置換やX軸反転を含みます。

名前空間や同名オブジェクトなどへの対応は検証していないため、作業シーンの複製で確認してください。

global proc MirrorPolyShape()
{
string $sel[] = `ls -sl`;
string $base = $sel[1];
string $shape = $sel[0];
string $NN = `substitute "L_" $shape "R_"`;
string $nShape[] = `duplicate -name $NN $base`;
string $temp[] = `duplicate $base`;
string $blendName[] = `blendShape -name "tmpBlend" $shape $temp[0]`;
setAttr -l 0 ($temp[0] + ".scaleX");
setAttr ($temp[0] + ".scaleX") (-1);
string $grp = `group $temp[0] $nShape[0]`;
setAttr ($grp + ".s") 50 50 50;
select -r $nShape[0] $temp[0];
string $wrapName[] = `doWrapArgList "2" { "1","0","1" }`;
setAttr ($blendName[0] + "." + $shape) 1;
DeleteHistory;
setAttr ($grp + ".s") 1 1 1;
parent -w $nShape;
delete $grp;
}

abSymMeshの導入方法

  • 下記からスクリプトをダウンロード、scriptフォルダに格納
  • MAYAを起動してabSymMesh;とMELを入力。ウインドウを起動します

abSymMeshの使い方

スクリプトを実行して起動したウィンドウの表示状態。
  • ベースオブジェクト、ターゲット、ターゲットのコピーを用意
ベースオブジェクトとターゲットおよびそのコピーをシーン内に用意した状態。
  • ベースオブジェクトをSelect Base Geometryして登録して、ターゲットのコピーを選択してFlip Selectedで頂点番号を保ったまま反転コピーされます。

正常に動作しない場合は「Check Symmetry」を実行し、ベースオブジェクトが左右対称になっているか確認して調整します。

3DCGに関するほかの記事は、まとめから確認できます。

スキニング後にジョイント(骨)を追加する手順はこちらです。

Mayaの記事は、ほかにもあります。

よくある質問:Mayaでブレンドシェイプを反転コピーするときのチェックリスト

Mayaでブレンドシェイプを、左右反転してコピーするには?

現在のMayaでは、まず、Shape EditorのFlip Targetを検討してください。Flip Targetは、選択したターゲット自体を反転します。元のターゲットを残す場合は、先に複製し、Shape Editorで対象を選んで、「Shapes」→「Flip Target」から対称軸を指定します。

この記事の手順は、何の方法ですか?

ラップデフォーマや外部スクリプトを使った、過去の作業記録です。abSymMeshは、既存の制作環境で利用していた、別の方法です。掲載画像やメニューは当時のもので、現行版での再現試験は行っていません。

ラップデフォーマで反転コピーする手順は?

ベースメッシュを複製し、X軸のスケールを-1に設定して反転します。複製して反転したメッシュに、ブレンドシェイプを適用し、ベースメッシュから反転メッシュに対して、ラップデフォーマを適用します。ブレンドシェイプのウェイト値を1にして有効化し、反転メッシュのX軸スケールを、再び1に戻します。

記事のMELは、どう使いますか?

ターゲットメッシュ、ベースメッシュの2つを、この順に選ぶ前提で、名前のL_からR_への置換や、X軸反転を含みます。名前空間や同名オブジェクトなどへの対応は検証していないため、作業シーンの複製で確認してください。

abSymMeshは、どう導入しますか?

スクリプトをダウンロードして、scriptフォルダに格納します。Mayaを起動して、abSymMeshとMELを入力すると、ウィンドウが起動します。

abSymMeshの使い方は?

ベースオブジェクト、ターゲット、ターゲットのコピーを用意します。ベースオブジェクトを「Select Base Geometry」して登録し、ターゲットのコピーを選択して「Flip Selected」を押すと、頂点番号を保ったまま、反転コピーされます。

abSymMeshが、正常に動作しません。

「Check Symmetry」を実行し、ベースオブジェクトが左右対称になっているか確認して、調整します。

どの方法を、選べばよいですか?

現在のMayaでは、まずShape EditorのFlip Targetを検討してください。外部スクリプトを使う場合は、配布元の対応バージョンを確認し、作業シーンの複製で試してください。メニュー名や仕様は、バージョンで変わることがあるため、最新はAutodeskの公式ヘルプで確認してください。

次に学ぶ・作業環境を選ぶ

学習を続けたい方や、作業環境を整えたい方は、目的に合うガイドをご覧ください。

3DCGのおすすめ書籍

3DCG用PCの選び方

周辺機器の優先度

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次