Q100273: Nuke ターミナルセッションでパス置換を設定する方法

症状

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\Nuke16.0v4\Nuke16.0.exe
    OSX : /Applications/ Nuke 16.0v4/ Nuke 16.0v4.app/Contents/MacOS/ Nuke 16.0
    Linux : /usr/local/ Nuke 16.0v4/ Nuke 16.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 開発者ガイドでも参照できます。

    私たちはそれを聞いて申し訳ございません

    理由をお聞かせください