移動先: 概要 戻り値 キーワード 関連項目 フラグ Python の例
referenceEdit([applyFailedEdits=boolean], [changeEditTarget=[string, string]], [failedEdits=boolean], [removeEdits=boolean], [successfulEdits=boolean])
注意: オブジェクト名や引数を表す文字列はカンマで区切ります。これは概要には示されていません。
referenceEdit は「元に戻す」が不可能、「照会」が不可能、「編集」が不可能です。
このコマンドを使用して、リファレンスに適用された修正を削除や編集できます。有効な commandTarget は、リファレンス ノード、リファレンス ファイル、リファレンス内のノード、リファレンスのプラグです。
変更や削除できるのは、現在開いているシーンでの修正のみです。'referenceQuery -topReference' コマンドを使用して、特定の commandTarget への修正を調べることができます。
適用されていない編集のみが影響を受けます。対象のノードがアンロードされた場合、または正常に適用できなかった場合に、編集は適用されません。デフォルトでは、このコマンドは失敗した編集のみに動作します(「-failedEdits」と「-successfulEdits」フラグを使用して調整できます)。
リファレンス ノードをコマンド ターゲットとして指定することは、ターゲット リファレンス ファイルにあるすべてのノードをターゲットとして指定することと同じです。このケースでは、ターゲット リファレンスをロードまたはアンロードしたかによって、結果が異なる場合があります。アンロードした場合、ターゲット リファレンスのノードと子孫リファレンスにあるノードの両方に影響する(削除などの)編集が実行されない場合があります。ただし、ターゲット リファレンスにあるノード、または先祖リファレンスのにあるノードのどちらかのみに影響する編集は正常に削除されます。これは、リファレンスをアンロードすると、そのリファレンスに属するノードなどの詳細情報が維持されないためです。
注:
プラグを指定する場合は、必ずアトリビュートの適切なロング ネームを使用します。
なし
reference, attribute, node
file, referenceQuery
applyFailedEdits, changeEditTarget, failedEdits, removeEdits, successfulEdits
ロング ネーム(ショート ネーム) |
引数型 |
プロパティ |
removeEdits(r)
|
boolean
|
|
|
アンロードした指定 commandTarget に影響する編集を削除します。
|
|
changeEditTarget(cet)
|
[string, string]
|
|
|
このフラグを使用して、指定した編集のターゲットを変更します。
このフラグは 2 つのパラメータを使用します。変更前のターゲットと、変更後のターゲットです。ターゲットはノード名(node)、ノードとアトリビュート名(node.attr)、アトリビュート名(.attr)のいずれかです。
編集が古いターゲットに影響する状態の場合、新ターゲットに影響するように変更されます。
'referenceQuery' を使用して編集ターゲットのフォーマットを調べる必要があります。
たとえば多くの場合、編集はアトリビュートのロング ネーム(「translateX」など)を格納するので、古いターゲットを指定するときはロング ネームを使用する必要があります。ショート ネーム(「tx」)を指定すると、編集のリターゲットは成功しません。
|
|
applyFailedEdits(afe)
|
boolean
|
|
|
適用されていないすべての編集の適用を試みます。このフラグは、以前に失敗した編集を -changeEditTarget フラグで修正した場合に便利です。このフラグは、ロードされたリファレンスのみに使用できます。コマンドのターゲットがリファレンス ノードの場合、代わりにコネクトされたリファレンスを使用します。
|
|
failedEdits(fld)
|
boolean
|
|
|
失敗した編集(照会、削除など)を実行するべきかどうかを示す二次フラグです。失敗した編集とは、リファレンスを前回ロードしたときに、正常に適用されなかった編集を指します。
編集はさまざまな理由で失敗することがあります(適用するリファレンス ノードがリファレンス ファイルから削除された、など)。
デフォルトでは、失敗した編集を実行します。
|
|
successfulEdits(scs)
|
boolean
|
|
|
成功した編集(照会、削除など)を実行すべきかどうかを示す二次フラグです。成功した編集とは、リファレンスを前回ロードしたときに、正常に適用された編集を指します。
このフラグは、commandTarget をロードした場合は、影響を及ぼしません。
デフォルトでは、成功した編集を実行しません。
|
|
: コマンドの作成モードで使用可能なフラグ
|
: コマンドの編集モードで使用可能なフラグ
|
: コマンドの照会モードで使用可能なフラグ
|
: タプルまたはリストとして渡された複数の引数を持てるフラグ
|
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.
#