移動先: 概要 戻り値 関連項目. フラグ. Python 例.
scriptJob([allChildren=boolean], [attributeAdded=[string, string]], [attributeChange=[string, string]], [attributeDeleted=[string, string]], [compressUndo=boolean], [conditionChange=[string, string]], [conditionFalse=[string, string]], [conditionTrue=[string, script]], [connectionChange=[string, string]], [disregardIndex=boolean], [event=[string, string]], [exists=int], [force=boolean], [idleEvent=string], [kill=int], [killAll=boolean], [killWithScene=boolean], [listConditions=boolean], [listEvents=boolean], [listJobs=boolean], [nodeNameChanged=[string, string]], [parent=string], [permanent=boolean], [protected=boolean], [replacePrevious=boolean], [runOnce=boolean], [timeChange=string], [uiDeleted=[string, string]])
注意: オブジェクト名や引数を表す文字列はカンマで区切ります。これは概要には示されていません。
scriptJob は 「元に戻す」が可能、「照会」が不可能、「編集」が不可能 です。
このコマンドは、MEL コマンドまたはスクリプトである「スクリプト ジョブ」を作成します。このジョブは、指定した条件、イベント、またはアトリビュートにアタッチされます。条件が目的の状態に切り替わるたびに(またはトリガが起動されるたびに)、スクリプトが実行されます。
スクリプト ジョブは、インタラクティブなアプリケーションでイベント ループに結び付けられています。
このジョブはアイドル イベント中に実行されます。このことは、スクリプト ジョブがバッチ アプリケーションに存在しないことを意味しています。scriptJob コマンドは、バッチ モードでは何も行いません。
このトリガは非常に頻繁に発生するので、スピードを考慮して、再生中にイベントが転送されることはありません。つまり、scriptJob -tc tcCallback; を使用してアニメーションの動作を変更することはできません。
代わりに、エクスプレッションか、レンダリング コールバック「preRenderMel」と「postRenderMel」を使用します。
条件のジョブをセット アップするときに、true 状態、false 状態、状態変更のジョブを同時にセットアップすると無効になります。この動作は未定義です。ユーザは、true 状態および/または false 状態のジョブ、あるいは状態変更のジョブのいずれかのみをセットアップできますが、同時に 3 つの状態のジョブをセットアップすることはできません。すなわち、次のように実行する場合、
// Set up a job that runs for the life of the application.
// This job cannot be deleted with the "kill" command no matter what.
scriptJob -e "SelectionChanged" "print \"Annoying Message!\\n\"" -permanent;
// set up a job for the true state
scriptJob -ct "playingBack" playBackCallback;
// set up a job for the false state
scriptJob -cf "playingBack" playBackCallback;
scriptJob -cc "playingBack" playBackCallback; を実行してはなりません。
実行すると、未定義の動作が引き起こされます。
このコマンドは、使用可能な条件とイベントをリストする、そして実行中のジョブを中断するときにも使用できます。
int | ジョブの中断に使用できるジョブ番号です。ジョブ番号は 0 以上の整数値です。 |
string[] | list フラグ使用時の文字列リスト |
boolean | exists フラグの場合 |
eval, evalDeferred
allChildren, attributeAdded, attributeChange, attributeDeleted, compressUndo, conditionChange, conditionFalse, conditionTrue, connectionChange, disregardIndex, event, exists, force, idleEvent, kill, killAll, killWithScene, listConditions, listEvents, listJobs, nodeNameChanged, parent, permanent, protected, replacePrevious, runOnce, timeChange, uiDeleted
ロング ネーム(ショート ネーム) |
引数型 |
プロパティ |
exists(ex)
|
int
|
|
|
指定した「ジョブ番号」を持つ scriptJob が存在する場合は true を返し、存在しない場合は false を返します。「ジョブ番号」は、新しい scriptJob の作成時に返された値である必要があります。
|
|
conditionTrue(ct)
|
[string, script]
|
|
|
指定した条件が true になったときにスクリプトを実行します。
文字列は定義済みまたはユーザ定義のブーリアン条件の名前である必要があります。存在する条件のリストを取得するには、-listConditions フラグを使用します。
|
|
conditionFalse(cf)
|
[string, string]
|
|
|
指定した条件が false になったときにスクリプトを実行します。
文字列は定義済みまたはユーザ定義のブーリアン条件の名前である必要があります。存在する条件のリストを取得するには、-listConditions フラグを使用します。
|
|
conditionChange(cc)
|
[string, string]
|
|
|
指定した条件の状態が変わったときにスクリプトを実行します。
文字列は定義済みまたはユーザ定義のブーリアン条件の名前である必要があります。存在する条件のリストを取得するには、-listConditions フラグを使用します。
|
|
event(e)
|
[string, string]
|
|
|
指定したイベントが発生したときにスクリプトを実行します。文字列は定義済みの Maya イベントの名前である必要があります。存在するイベントのリストを取得するには、-listEvents フラグを使用します。
|
|
attributeChange(ac)
|
[string, string]
|
|
|
指定したアトリビュートの値が変わったときにスクリプトを実行します。
文字列はディペンデンシー ノードと特定のアトリビュートの両方を識別する必要があります。ディペンデンシー ノードが削除された場合、(削除を元に戻すことができても)このジョブは中断されます。
|
|
attributeDeleted(ad)
|
[string, string]
|
|
|
指定したアトリビュートが削除されるときにスクリプトを実行します。
文字列はディペンデンシー ノードと特定のアトリビュートの両方を識別する必要があります。ディペンデンシー ノードが削除された場合、(削除を元に戻すことができても)このジョブは中断されます。
|
|
attributeAdded(aa)
|
[string, string]
|
|
|
指定したアトリビュートが追加されるときにスクリプトを実行します。
文字列はディペンデンシー ノードと特定のアトリビュートの両方を識別する必要があります。ディペンデンシー ノードが削除された場合、(削除を元に戻すことができても)このジョブは中断されます。
|
|
connectionChange(con)
|
[string, string]
|
|
|
指定したアトリビュートの結合関係が変わったときにスクリプトを実行します。文字列はディペンデンシー ノードと特定のアトリビュートの両方を識別する必要があります。ディペンデンシー ノードが削除された場合、(削除を元に戻すことができても)このジョブは中断されます。
|
|
permanent(per)
|
boolean
|
|
|
ジョブを中断できないようにします。永続ジョブは、アプリケーションの存続期間中、またはジョブの親オブジェクトの存続期間中、存在します。
-killWithScene フラグは、永続ジョブには適用されません。
|
|
protected(pro)
|
boolean
|
|
|
ジョブを中断されにくくします。保護されたジョブは、-force フラグを使用して意図的に中断または置き換えを行う必要があります。
-killWithScene フラグは、保護されたジョブには適用されません。
|
|
idleEvent(ie)
|
string
|
|
|
Maya がアイドル状態になるたびにスクリプトを実行します。警告: アイドル イベントが登録されているかぎり、アプリケーションはイベントを呼び出し続け、使用可能な CPU 時間をすべて使い果たします。
idleEvents は注意して使用してください。
|
|
disregardIndex(dri)
|
boolean
|
|
|
このフラグは -ac/attributeChange フラグと併用した場合のみに使用できます。これが指定されており、ジョブがマルチ(インデックス付き)アトリビュートにアタッチされている場合、マルチ アトリビュートのいかなるアトリビュートが変更されてもジョブが実行されます。
|
|
allChildren(alc)
|
boolean
|
|
|
このフラグは -ac/attributeChange フラグと併用した場合のみに使用できます。これが指定されており、ジョブが複合アトリビュートにアタッチされている場合、
指定したアトリビュートとその子に変更が加えられるとジョブが実行されます。
|
|
timeChange(tc)
|
string
|
|
|
カレント タイムが変更されたときにスクリプトを実行します。タイム スライダのクリックによって時間が変更された場合、スクリプトは実行されません。これに対して、「timeChanged」条件によってトリガされたスクリプトは実行されます。
|
|
uiDeleted(uid)
|
[string, string]
|
|
|
指定した UI のピースが削除されたときにスクリプトを実行します。
|
|
nodeNameChanged(nnc)
|
[string, string]
|
|
|
指定されたノードの名前が変更されたときにスクリプトを実行します。
|
|
parent(p)
|
string
|
|
|
このジョブを Maya UI のピースにアタッチします。UI が破壊されると、このジョブも一緒に中断されます。
|
|
replacePrevious(rp)
|
boolean
|
|
|
このフラグは、必ず -parent フラグと一緒に使用します。新しい scriptJob が作成される前に、同じ親を持つ既存の scriptJobs がまず削除されます。
|
|
force(f)
|
boolean
|
|
|
このフラグは、-kill、-killAll、または -replacePrevious との併用のみで使用でき、保護されたジョブの削除が可能になります。
|
|
killWithScene(kws)
|
boolean
|
|
|
カレント シーンが空になったときに、ジョブをカレント シーンにアタッチします。カレント シーンは、新しいシーンまたは既存のシーンを開くと空になります。
|
|
runOnce(ro)
|
boolean
|
|
|
これが true に設定されている場合、スクリプトは一度だけ実行されます。false(デフォルト)に設定されている場合、スクリプトは条件/イベントのトリガが発生するたびに実行されます。-uid フラグが使用される場合、runOnce が自動的にオンになります。
|
|
compressUndo(cu)
|
boolean
|
|
|
これを true に設定すると scriptJob を元に戻すことができるようになり、そのアクションは、取り消しのために最後に行ったアクションとセットになります。たとえば、セレクションの変更により scriptJob がトリガされた場合に undo を押すと、scriptJob とセレクションの変更が両方一度に元に戻されます。
|
|
listJobs(lj)
|
boolean
|
|
|
このフラグが指定されている場合、既存のすべてのジョブの説明を含む文字配列とジョブ番号がコマンドから返されます。返されたジョブ番号を使用して、後からジョブを中断することができます。
|
|
kill(k)
|
int
|
|
|
指定したジョブ番号を持つジョブを中断します。ただし、永続ジョブを中断することはできません。また、保護されたジョブは、コマンドで -force フラグが使用されている場合にかぎり中断できます。
|
|
killAll(ka)
|
boolean
|
|
|
すべてのジョブを中断します。永続ジョブは削除されません。保護されたジョブは、-force フラグが使用されている場合にかぎり削除されます。
|
|
listEvents(le)
|
boolean
|
|
|
このフラグを指定すると、既存のすべてのイベントの名前を含む文字配列がコマンドから返されます。以下に、既存のすべてのイベントについて説明します。
- angularToleranceChanged:
- 角度単位の許容値が変更されたとき。
許容値は次の場合に変更されます。
- MEL コマンドを使用(「tolerance」で「-angular」フラグを使用)
- オプション > 一般プリファレンス > モデリング タブ > 接線許容値(Options > General Preferences >
Modeling tab > Tangential Tolerance
)でプリファレンスを変更
- angularUnitChanged:
- ユーザが角度単位を変更したとき。
- axisAtOriginChanged:
- 原点の軸が変更されたとき。
- axisInViewChanged:
- 特定のビューの軸が変更されたとき。
- ColorIndexChanged:
- カラー インデックスの値が変更されたとき。
- constructionHistoryChanged:
- コンストラクション ヒストリをオンまたはオフにしたとき。
- currentContainerChanged:
- ユーザーがカレント コンテナを設定または設定解除したとき。
- currentSoundNodeChanged:
- 次の理由から、タイム スライダに表示されているサウンドが変更されたとき:
- サウンドが削除されている(表示されない)[タイム スライダで右マウス ボタン]
- 新しいサウンドが表示されている [タイム スライダで右マウス ボタン]
- サウンド表示が切り替えられている [アニメーション オプション]
- サウンド表示モードが変更されている [アニメーション オプション]
- DagObjectCreated:
- 新しい DAG オブジェクトが作成されたとき。
- deleteAll:
- file new が実行されたとき。
- DisplayColorChanged:
- 表示カラーが変更されたとき。
- displayLayerChange:
- レイヤが作成または破壊されたとき。
- displayLayerManagerChange:
- ディスプレイ レイヤ マネージャが変更されたとき。
- DisplayRGBColorChanged:
- RGB 表示カラーが変更されたとき。
- glFrameTrigger:
- 内部使用専用:
- gridDisplayChanged:
- 内部使用専用:
- idle:
- Maya がアイドル状態で優先順位の高いタスクが存在しないとき。
- idleHigh:
- Maya がアイドル状態のとき。これは、優先順位が低いアイドル タスクより前に呼び出されます。通常は「idle」を使用します。
- lightLinkingChanged:
- ライト リンク リレーションシップを修正する変更が生じたとき。
- lightLinkingChangedNonSG:
- ライト リンク リレーションシップを修正する変更が生じたとき(シェーディング割り当ての変更を除く)。
- linearToleranceChanged:
- リニア許容値が変更されたとき。許容値は次の場合に変更されます。
- MEL コマンドを使用("tolerance" で "-linear" フラグを使用)
- オプション > 一般プリファレンス > モデリング タブ > 位置許容値(Options > GeneralPreferences > Modeling tab > Positional Tolerance)でプリファレンスを変更
- linearUnitChanged:
- ユーザがオプション(Options)メニューからリニア単位を変更したとき
- MenuModeChanged:
- ユーザが Maya メイン ウィンドウでメニュー バーのメニュー セットを変更したとき(たとえば、モデリング(Modeling)をアニメーション(Animation)に変更したとき)。
- RecentCommandChanged:
- 内部使用限定。
- NewSceneOpened:
- 新しいシーンを開いたとき
- nurbsToPolygonsPrefsChanged:
- NURBS をポリゴンに(Nurbs To Polygons)のいずれかのプリファレンスが変更されたとき。プリファレンスは次の場合に変更されます。
- MEL コマンドを使用(「nurbsToPolygonsPref」)
- ポリゴン > NURBS をポリゴンに > オプション ボックス(Polygons > Nurbs To Polygons > Option Box)でプリファレンスを変更
- playbackRangeChanged:
- 再生キーフレームの範囲が変更されたとき
- playbackRangeSliderChanged:
- アニメーション開始/終了範囲(タイム スライダ範囲の右端または左端のエントリ セル、その間のセルで再生範囲を調整)が変更されたとき
- quitApplication:
- ユーザが、MEL コマンドの quit、または終了(Exit)メニュー項目を使用して、終了を選択したとき
- Redo:
- ユーザがメニューから再実行を選択し、対象が再実行されたとき
このコールバックは、UI またはローカル ストレージの更新に使用できます。このコールバックの最中は、シーンや DG の状態を変更しないでください。
- renderLayerChange:
- レンダー レイヤ ノードの作成や削除が行われたとき
- renderLayerManagerChange:
- カレントのレンダー レイヤが変更されたとき
- RebuildUIValues:
- 内部使用限定。
- SceneOpened:
- シーンが開かれたとき。
- SelectionChanged:
- 新しい選択が作成されたとき。
- SelectModeChanged:
- セレクション モードが変更されたとき。
- SelectPreferenceChanged:
- 内部使用限定。
- SelectPriorityChanged:
- 選択の優先順位が変更されたとき。
- SelectTypeChanged:
- セレクション タイプが変更されたとき。
- setEditorChanged:
- 廃止されました。現在は使用されていません。
- SetModified:
- set コマンドを使用してセットを修正したとき。
- snapModeChanged:
- スナップ モードが変更されたとき。たとえば、グリッド スナップに変更されたとき。
- timeChanged:
- 時間が変更されたとき。
- timeUnitChanged:
- 時間単位が変更されたとき。
- ToolChanged:
- ツール/コンテキストが変更されたとき。
- PostToolChanged:
- ツール/コンテキストの変更後。
- NameChanged:
- オブジェクトの名前が rename コマンドを使って変更されたとき。
- Undo:
- ユーザがメニューから元に戻すを選択し、対象が取り消されたとき。このコールバックは、UI またはローカル ストレージの更新に使用できます。このコールバックの最中は、シーンや DG の状態を変更しないでください。
|
|
listConditions(lc)
|
boolean
|
|
|
このフラグを指定すると、既存のすべての条件の名前を含む文字配列がコマンドから返されます。以下に、既存のすべての条件について説明します。使用可能な Maya 機能に基づくイベント
指定した機能が使用できる場合、これらのイベントは true になります。
イベント名 |
Maya 機能 |
AnimationExists |
アニメーション |
AnimationUIExists |
アニメーションのユーザ インタフェース |
BaseMayaExists |
Maya の任意の基本機能 |
BaseUIExists |
任意のインタラクティブな Maya 機能 |
DatabaseUIExists |
|
DeformersExists |
デフォーマ機能 |
DeformersUIExists |
デフォーマのユーザ インタフェース |
DevicesExists |
デバイス サポート |
DimensionsExists |
次元 |
DynamicsExists |
ダイナミクス |
DynamicsUIExists |
ダイナミクスのユーザ インタフェース |
ExplorerExists |
Explorer |
ImageUIExists |
イメージングのユーザ インタフェース |
KinematicsExists |
キネマティクス |
KinematicsUIExists |
キネマティクスのユーザ インタフェース |
ManipsExists |
マニピュレータ |
ModelExists |
基本モデリングツール |
ModelUIExists |
基本モデリングのユーザ インタフェース |
NurbsExists |
NURBS モデリング ツール |
NurbsUIExists |
NURBS モデリングのユーザ インタフェース |
PolyCoreExists |
基本ポリゴン サポート |
PolygonsExists |
ポリゴン モデリング |
PolygonsUIExists |
ポリゴン モデリングのユーザ インタフェース |
PolyTextureExists |
ポリゴナル テクスチャリング |
RenderingExists |
ビルトイン レンダリング |
RenderingUIExists |
レンダリングのユーザ インタフェース |
その他のイベント
- autoKeyframeState:
- Maya で autoKeyframing が有効なときは true
- busy:
- Maya がビジーなときは true
- deleteAllCondition:
- すべてを削除の操作の最中は true
- flushingScene:
- シーンをフラッシュしている間は true
- GoButtonEnabled:
- パネル コンテキストの Go ボタンが使用可能なときは true
- hotkeyListChange:
- ホットキーの定義リストが変更されたときは true
- playingBack:
- Maya でアニメーション キーフレームが再生されているときは true
- playbackIconsCondition:
- タイム スライダで使用されている再生 状態のインスタンス
- readingFile:
- Maya がファイルを読み取り中のときは true
- RedoAvailable:
- 再実行のために使用可能なコマンドがあるときは true
- SomethingSelected:
- 何らかのオブジェクト(1 つまたは複数)が選択されているときは true
- UndoAvailable:
- 元に戻すための使用可能なコマンドがあるときは true
|
|
: コマンドの作成モードで使用可能なフラグ
|
: コマンドの編集モードで使用可能なフラグ
|
: コマンドの照会モードで使用可能なフラグ
|
: タプルまたはリストとして渡された複数の引数を持てるフラグ
|
import maya.cmds as cmds
# create a job that deletes things when they are seleted
jobNum = cmds.scriptJob( ct= ["SomethingSelected","cmds.delete()"], protected=True)
# Now display the job
jobs = cmds.scriptJob( listJobs=True )
# Now kill it (need to use -force flag since it's protected)
cmds.scriptJob( kill=jobNum, force=True)
# create a sphere, but print a warning the next time it
# is raised over 10 units high
def warn():
height = cmds.getAttr( 'mySphere.ty' )
if height > 10.0:
print 'Sphere is too high!'
cmds.sphere( n='mySphere' )
cmds.scriptJob( runOnce=True, attributeChange=['mySphere.ty', warn] )
# create a job to detect a new attribute named "tag"
#
def detectNewTagAttr():
print "New tag attribute was added"
cmds.scriptJob( runOnce=True, attributeAdded=['mySphere.tag',detectNewTagAttr] )
cmds.addAttr( 'mySphere', ln='tag', sn='tg', dt='string')
# list all the existing conditions and print them
# nicely
conds2 = cmds.scriptJob( listConditions=True )
for cond in sorted(conds2):
print cond