あるようで知らない特殊な複製。
// 選択したノードに至る上流ノード (およびその接続) も複製されます。
// スキンウェイトなどもコピーされます。
duplicate -upstreamNodes;
上記の場合
duplicate -returnRootsOnly -upstreamNodes;
group root1 parts_low1;
カスタムした例
global proc skinWeightCopy_JointMeshGroup(){
//選択
select root parts_low;
//スキンウェイトモデルのスキンウェイトごとコピー
duplicate -returnRootsOnly -upstreamNodes;
//グループ化
group -name "group_dup" root1 parts_low1;
//元の名前にリネーム
rename "group_dup|root1" "root";
rename "group_dup|parts_low1" "parts_low";
}
skinWeightCopy_JointMeshGroup();
combine しながらエクスポート
global proc skinWeightCopy_JointMeshGroup(){
//選択
select "|root" "|parts_low";
//スキンウェイトモデルのスキンウェイトごとコピー
duplicate -returnRootsOnly -upstreamNodes;
//グループ化
group -name "group_dup" root1 parts_low1;
//元の名前にリネーム
rename "group_dup|root1" "root";
rename "group_dup|parts_low1" "parts_low";
}
global proc group_dup_parts_low_combine(){
string $selected[] = `ls -sl -long -absoluteName`;
//string $selectedStr = stringArrayToString($selected, ","); // ","を区切り文字として結合する
//print("選択したもの $selected= "+$selectedStr+"\n");
string $mesh[];
for ($sel in $selected) {
string $allMesh[] = `listRelatives -ni -pa -ad -typ "mesh" $sel`;
for ($am in $allMesh) {
string $trans[] = `listRelatives -ni -pa -p $am`;
$mesh[size($mesh)] = $trans[0];
}
}
$mesh = stringArrayRemoveDuplicates($mesh);
string $meshStr = stringArrayToString($mesh, ","); // ","を区切り文字として結合する
print(" メッシュのみ選別したもの $mesh= "+$meshStr+"\n");
select -r $mesh; // <メッシュのみ選択
// Combine実行
// Skeletalだった場合
string $combine[] = `polyUniteSkinned -ch 0 -muv 1`;
rename $combine[0] "MeshGP";
//よけておくグループ化
select "|root" "parts_low";
string $group_root;
$group_root =`group -world -name "group_root"`;
//MeshGPをparts_lowへ入れる
select "MeshGP";
string $group_parts_low;
$group_parts_low =`group -world -name "parts_low"`;
//worldへ移動
parent -world "group_dup|root";
//出力用選択
select "|root" "|parts_low";
// Export
// --------------------------------------------------------------------------
simple_model_common_Export(2, "D:/MOSADesign/WorkData/Avatar/008/001/PL_008_001_001/Game/SK_PL_008_001_001_Body.fbx", 0);
//おかたずけ partslow|MeshGP rootを削除
delete "|parts_low" "|root" "|group_dup";
//worldへ移動
parent -world "group_root|root";
//worldへ移動
parent -world "group_root|parts_low";
//group_root 削除
delete "|group_root";
}
// Export
//--------------------------------------------------------------------------
global proc simple_model_common_Export(int $type, string $expName, int $modelType) {
showHidden -a;
// if($type == 2) {
if ($type == 1) {
FBXExportSmoothMesh -v 0;
} else {
FBXExportSmoothMesh -v 1;
}
FBXExportAnimationOnly -v 0;
FBXExportInAscii -v 0 ;
FBXExportConvertUnitString cm;
FBXExportTriangulate -v 0;
FBXExportSmoothingGroups -v 1;
FBXExportConstraints -v 0;
FBXExport -f $expName -s;
}
参考URL
https://help.autodesk.com/cloudhelp/2025/ENU/Maya-Tech-Docs/Commands/duplicate.html
http://me.autodesk.jp/wam/maya/docs/Maya2010/Commands/duplicate.html