症状
Nukeの[編集] > [設定...]でパス置換を設定しましたが、コマンド ライン レンダリング中または Python ターミナル モード中にファイル パスが正しく置換されません。パスの置換は次のようになります。
原因
Nuke GUI モード以外で実行されている場合、環境設定が読み込まれないため、コマンド ライン レンダリングまたは Python ターミナル モードではファイル パスが正しく置換されない可能性があります。
ターミナル モード (GUI なし) では、GUI を起動せずに Python コマンドを入力できます。
このモードでは>>>コマンド プロンプトが表示されます。コマンド ライン モード (バッチ モード) では、ターミナルでコマンドを実行して、 Nukeスクリプトを (GUI なしで) レンダリングできます。
詳細については、 Nukeオンライン ヘルプのコマンド ライン操作を参照してください。
解決
これを解決するには、コマンドライン引数--remap
を使用します。これはパス置換ペアのリストを取得し、アクティブなNukeセッションに対してのみ機能します。または、 init.pyファイルにfilenameFilterコールバックを設定して、すべてのセッションで永続化することができます。 Nukeセッション。
現在のNukeセッション
Nukeターミナル モードで実行するときにフラグがどのように使用されるかの例を次に示します。
nuke -t --remap "X:/path,Y:,A:,B:/anotherpath"
どこ:
nuke
適切なNuke実行可能ファイルのインストール場所を参照します。Windows : C:\Program Files\Nuke14.0v5\Nuke14.0.exe
OSX : /アプリケーション/ Nuke 14.0v5/ Nuke 14.0v5.app/Contents/MacOS/ Nuke 14.0
Linux : /usr/local/ Nuke 14.0v5/ Nuke 14.0-
X:/path
で始まるパスはすべて、Y:
で始まるように変換されます。 -
A:
で始まるパスはすべて、B:/anotherpath
で始まるように変換されます。
異なるオペレーティング システム間でパスを置換するには、コマンドはたとえば次のようになります。
nuke -t --remap "/home/project/shot/,C:/project/shot"
注:パス マッピングは現在のNukeセッションにのみ適用され、 Nuke GUI の実行時に使用される Preferences.nk ファイルには影響しません。
複数のNukeセッション
複数のNukeセッションにわたってパス置換を永続的にするには、 filenameFilterコールバックを使用できます。次の例は、前の例と同様のシナリオでこれを設定する方法を示しています。
import nuke
def myFilenameFilter(filename):
filename = filename.replace( 'X:/path', 'Y:/' )
filename = filename.replace( 'A:/', 'B:/anotherpath' )
return filename
nuke .addFilenameFilter(myFilenameFilter)
すべてのターミナル セッションでこのコードを実行するには、コードをinit.py ファイルに追加する必要があります。
filenameFilterコールバックの詳細については、 Nuke Python Developer Guide」を参照してください。
私たちはそれを聞いて申し訳ございません
理由をお聞かせください