SearchAndReplacePath

導入

v1.5

カテゴリ

ファイル

詳細

シーンで使用されるファイルへのファイル パスを更新します。 たとえば、ピクチャ ディレクトリの場所を変更する場合などです。 パスのリストを表示できるほか、[File]メニューから[Source Paths]を選択して外部ファイルを呼び出せます。

このコマンドは、特定カテゴリ内の全ファイル名を変更するか(例: すべてのピクチャ)、外部ファイル リスト内の各ファイル名を変更します。 引数が指定されない場合はプロパティ ページが表示され、値を入力するよう求められます。

スクリプト構文

SearchAndReplacePath( [Category], [OldString], [NewString], [CaseSensitive], [Files] );

パラメータ

パラメータ タイプ 詳細
Category 文字列 変更するファイルのカテゴリ。 [File] > [Source Paths]ダイアログの[Category]列に対応します。

デフォルト値: All

指定可能な値:

説明:

All ExternalFilesListの全ファイル
Actions すべてのアクション ファイル(.eani)
オーディオ すべてのオーディオ ファイル(「.wav」、「.aiff」、「.mov」など)
Models すべてのモデル ファイル(.emdl)
MatLib すべてのマテリアルライブラリファイル(.xsi)
Pictures すべてのピクチャ ファイル(「.pic」、「.tga」、「.gif」など)
Render_Pictures レンダリング用のすべてのピクチャ(例: HDR)
シノプティック すべてのシノプティックファイル(.htm、.html)
Thumbnails すべてのサムネイル ファイル
OldString 文字列 指定のパス内を検索する文字列。 ディレクトリ名(例: 「c:¥users¥fillet¥src」の「fillet」)、パス全体(例: 「c:¥users¥fillet¥src」)、またはディレクトリの一部の文字列(例: 「c:¥users¥fillet¥src」の「fill」)を使用できます。

デフォルト値:このパラメータが指定されていない場合はプロパティページが開き、入力するよう求められます

NewString 文字列 OldString を指定のパスに置き換える文字列

デフォルト値:このパラメータが指定されていない場合はプロパティページが開き、入力するよう求められます

CaseSensitive ブール 大文字小文字を区別して検索置換する場合は True

デフォルト値: False

Files XSICollection 処理するFileReferenceオブジェクトのコレクション。 何も指定されていない場合は、シーンが使用するすべての外部ファイルが処理されます。 つまり、[External File Manager]ダイアログによって使用されるファイルです。

JScript の例

//----------------------------------------------------------------------------
//
// This example demonstrates how to search and replace a portion of
// the path in the external file list.
//
//----------------------------------------------------------------------------
NewScene( null, false );
// First add the no_icon pic to the external file list by adding a texture
CreatePrim( "Sphere", "MeshSurface" );
BlendInPresets( null, null, 0, true, siReplaceNoBlend );
var oExternalFileList = GetValue( "Project.ExternalFilesList" );
// Print current external file list before SearchAndReplacePath
Application.LogMessage( "Original paths:" );
for ( var i=0; i< oExternalFileList.Count; i++ ) {
        Application.LogMessage( oExternalFileList.Item(i) );
}
// Change the pictures (only 1 in this case) to a new name which will be invalid
SearchAndReplacePath( "Pictures", "noIcon", "missingIcon" );
// Print replaced external file list
oExternalFileList = GetValue( "Project.ExternalFilesList" );
Application.LogMessage( "Changed paths:" );
for (i=0; i< oExternalFileList.Count; i++) {
        Application.LogMessage( oExternalFileList.Item(i) );
}
// Change back the pictures to the original filename.
SearchAndReplacePath( "Pictures", "missing", "no" );
// Print restored external file list
oExternalFileList = GetValue( "Project.ExternalFilesList" );
Application.LogMessage( "Restored paths:" );
for ( i=0; i< oExternalFileList.Count; i++ )
{
        Application.LogMessage( oExternalFileList.Item(i) );
}
//----------------------------------------------------------------------------
// Output of above script:
//----------------------------------------------------------------------------
// INFO : Original paths:
// INFO : $XSI_HOME/Application/rsrc/noIcon.pic
// INFO : Changing $XSI_HOME/Application/rsrc/noIcon.pic To $XSI_HOME/Application/rsrc/missingIcon.pic
// INFO : Changed paths:
// INFO : $XSI_HOME/Application/rsrc/missingIcon.pic
// INFO : Changing $XSI_HOME/Application/rsrc/missingIcon.pic To $XSI_HOME/Application/rsrc/noIcon.pic
// INFO : Restored paths:
// INFO : $XSI_HOME/Application/rsrc/noIcon.pic

関連項目

FileReference Scene.GetExternalFile