ジャンプ先: 概要. 戻り値. キーワード. 関連項目. フラグ. Python 例.

概要

referenceEdit([applyFailedEdits=boolean], [changeEditTarget=[string, string]], [editCommand=string], [failedEdits=boolean], [onReferenceNode=string], [removeEdits=boolean], [successfulEdits=boolean])

注意: オブジェクト名や引数を表す文字列はカンマで区切ります。これは概要には示されていません。

referenceEdit は 「元に戻す」が不可能「照会」が不可能「編集」が不可能 です。

このコマンドを使用して、リファレンスに適用された修正を削除や編集できます。有効な commandTarget は、リファレンス ノード、リファレンス ファイル、リファレンス内のノード、リファレンスのプラグです。 変更や削除できるのは、現在開いているシーンでの修正のみです。'referenceQuery -topReference' コマンドを使用して、特定の commandTarget への修正を調べることができます。 適用されていない編集のみが影響を受けます。対象のノードがアンロードされた場合、または正常に適用できなかった場合に、編集は適用されません。デフォルトでは、このコマンドは失敗した編集のみに動作します(「-failedEdits」と「-successfulEdits」フラグを使用して調整できます)。 リファレンス ノードをコマンド ターゲットとして指定することは、ターゲット リファレンス ファイルにあるすべてのノードをターゲットとして指定することと同じです。このケースでは、ターゲット リファレンスをロードまたはアンロードしたかによって、結果が異なる場合があります。アンロードした場合、ターゲット リファレンスのノードと子孫リファレンスにあるノードの両方に影響する(削除などの)編集が実行されない場合があります。ただし、ターゲット リファレンスにあるノード、または先祖リファレンスのにあるノードのどちらかのみに影響する編集は正常に削除されます。これは、リファレンスをアンロードすると、そのリファレンスに属するノードなどの詳細情報が維持されないためです。 注: プラグを指定する場合は、必ずアトリビュートの適切なロング ネームを使用します。

戻り値

なし

キーワード

reference, attribute, node

関連項目

file, referenceQuery

フラグ

applyFailedEdits, changeEditTarget, editCommand, failedEdits, onReferenceNode, removeEdits, successfulEdits
ロング ネーム(ショート ネーム) 引数型 プロパティ
removeEdits(r) boolean create
アンロードした指定 commandTarget に影響する編集を削除します。
changeEditTarget(cet) [string, string] create
このフラグを使用して、指定した編集のターゲットを変更します。 このフラグは 2 つのパラメータを使用します。変更前のターゲットと、変更後のターゲットです。ターゲットはノード名(node)、ノードとアトリビュート名(node.attr)、アトリビュート名(.attr)のいずれかです。 編集が古いターゲットに影響する状態の場合、新ターゲットに影響するように変更されます。 'referenceQuery' を使用して編集ターゲットのフォーマットを調べる必要があります。 たとえば多くの場合、編集はアトリビュートのロング ネーム(「translateX」など)を格納するので、古いターゲットを指定するときはロング ネームを使用する必要があります。ショート ネーム(「tx」)を指定すると、編集のリターゲットは成功しません。
applyFailedEdits(afe) boolean create
適用されていないすべての編集の適用を試みます。このフラグは、以前に失敗した編集を -changeEditTarget フラグで修正した場合に便利です。このフラグは、ロードされたリファレンスのみに使用できます。コマンドのターゲットがリファレンス ノードの場合、代わりにコネクトされたリファレンスを使用します。
failedEdits(fld) boolean create
失敗した編集(照会、削除など)を実行するべきかどうかを示す二次フラグです。失敗した編集とは、リファレンスを前回ロードしたときに、正常に適用されなかった編集を指します。 編集はさまざまな理由で失敗することがあります(適用するリファレンス ノードがリファレンス ファイルから削除された、など)。 デフォルトでは、失敗した編集を実行します。
successfulEdits(scs) boolean create
成功した編集(照会、削除など)を実行すべきかどうかを示す二次フラグです。成功した編集とは、リファレンスを前回ロードしたときに、正常に適用された編集を指します。 このフラグは、commandTarget をロードした場合は、影響を及ぼしません。 デフォルトでは、成功した編集を実行しません。
editCommand(ec) string createquerymultiuse
コマンドが考慮するべくリファレンスの編集のタイプを示すための二次フラグです。このフラグが指定されない場合、すべてのタイプの編集が含まれます。 このフラグには文字列パラメータが必要です。有効な値は、「addAttr」、「connectAttr」、「deleteAttr」、「disconnectAttr」、「parent」、「setAttr」です。 状況によっては、このフラグを複数回指定して、複数の編集タイプを考慮するように指定できます。
onReferenceNode(orn) string createquerymultiuse
指定したリファレンス ノードに格納された編集のみを考慮することを示すための二次フラグです。 このフラグは、「exportEdits」コマンドによる指定時のみ複数使用が可能です。

: コマンドの作成モードで使用可能なフラグ : コマンドの編集モードで使用可能なフラグ
: コマンドの照会モードで使用可能なフラグ : タプルまたはリストとして渡された複数の引数を持てるフラグ

Python 例

import maya.cmds as cmds

#
# EXAMPLE FOR -removeEdits
#
# Assume:
# main.ma contains a reference to mid.ma.
# mid.ma contains a reference to bot.ma.
# NOTE: The target reference must be unloaded for the
# following commands to work.
# Remove all the edits which apply to mid.ma.
# This can be done by specifying either the reference
# node or the reference file.
cmds.referenceEdit( 'midRN', removeEdits=True )
cmds.referenceEdit( 'mid.ma', removeEdits=True )
# Remove all "setAttr" edits which apply to mid.ma.
# This can be done by specifying either the reference
# node or the reference file.
cmds.referenceEdit( 'midRN', editCommand='setAttr', removeEdits=True )
cmds.referenceEdit( 'mid.ma', editCommand='setAttr', removeEdits=True )
# Remove all the "parent" edits which apply to mid:pSphere1.
cmds.referenceEdit( 'mid:pSphere1', editCommand='parent', removeEdits=True )
# Remove all the "connectAttr" edits which apply to mid:pSphere1.translateX.
cmds.referenceEdit( 'mid:pSphere1.translateX', editCommand='connectAttr', removeEdits=True )
# Remove all the edits which apply to bot.ma and are stored on midRN.
# The referenceEdit command is only capable of removing edits which
# are stored on a top level reference node. The only edits which
# are stored on a top level reference node are those which were made
# from the main scene. If you had previously opened mid.ma and made
# modifications to bot.ma, those edits can only be removed by opening
# mid.ma and issuing a referenceEdit command.
#
cmds.referenceEdit( 'mid:botRN', removeEdits=True )
cmds.referenceEdit( 'bot.ma', removeEdits=True )
#
# EXAMPLE FOR -changeEditTarget
#
tempDir = cmds.internalVar(utd=True)
# Create a reference containing pSphere1.
#
cmds.file( f=True, new=True )
cmds.polySphere( ch=1, r=1, sx=20, sy=20, ax=(0, 1, 0) )
newFileName = '%sref.ma' % tempDir
cmds.file( rename=newFileName )
cmds.file( f=True, s=True, type='mayaAscii')
# Reference the file in and position pSphere1
#
cmds.file( f=True, new=True )
cmds.file( newFileName, r=True, ns='ref' )
cmds.select( 'ref:pSphere1', r=True )
cmds.move( 5, 5, 5 )
topFileName = '%stop.ma' % tempDir
cmds.file( rename=topFileName )
cmds.file( f=True, s=True, type='mayaAscii')
# Later on its determined that pSphere1 is actually
# BobMrozowski.
#
cmds.file( newFileName, f=True, o=True )
cmds.rename( 'pSphere1', 'BobMrozowski' )
cmds.file( f=True, s=True, type='mayaAscii')
# Now go to open your main scene again...
#
cmds.file( topFileName, f=True, o=True )
# ... and notice that BobMrozowski is back at
# the origin.
#
# So remap all edits so that anything that used to
# affect ref:pSphere1 now affects ref:BobMrozowski...
#
cmds.referenceEdit( 'refRN', changeEditTarget=('ref:pSphere1','ref:BobMrozowski') )
# ... and then force all previously failing edits affecting
# refRN to be re-applied.
#
cmds.referenceEdit( 'refRN', applyFailedEdits=True )
# BobMrozowski should now be back at 5 5 5.
#