ImportModel

詳細

.emdl ファイルからモデルを読み込みします。 このコマンドを実行するには、.emdl ファイルがなくてはなりません。

デフォルトでは、モデルは通常のモデルとして読み込みされますが、Reference 引数が True に設定されている場合には、モデルはリファレンス モデルとして読み込みされます。 リファレンス モデルを読み込みすると、モデルはシーンに読み込みされますが、シーンとともに保存されることはありません。 リファレンス モデルを含むシーンをロードするたびに、すべてのリファレンス モデルは元の場所から読み込みされます。

注: リファレンスされるモデルを読み込みする際に、モデル名にプリフィックス(referenced_)を付加する設定があります。 このオプションはデフォルトで有効になっています。 プリファレンスは以下に位置しています:preferences.General.refmodelprefix

このコマンドは、メイン メニューの[ファイル] -> [読み込み] -> [モデル]を選択してアクセスできます。

このコマンドは、インターネットからのファイルのダウンロードに対応しています。ファイル名に URL を指定すると、コマンドが実行される前にそのファイルがローカルにダウンロードされます。

警告: バージョン 4 以降、このコマンドに[元に戻す]を使用できるようになりました。ただし、モデルの読み込みを元に戻すとモデルのみが削除され、マテリアルやイメージクリップなど、別のコンテナにネストされたオブジェクトは削除されません。 使用されていないマテリアルやイメージ クリップのクリーンアップには別のコマンドを使用します。リファレンス モデルで ImportModel コマンドを元に戻しても、機能しません。

注: このコマンドは、出力引数を使用します。C# および一部のスクリプト言語(JScript、PerlScript、Python など)は、リファレンスによって渡される引数をサポートしていません。このため、状況に応じた適切な回避策を実行する必要があります。

スクリプト言語の場合、このコマンドは出力引数を取得するために使用できる ISIVTCollection を戻します。

C# の場合は、XSIApplication.ExecuteCommand メソッドを使用してこのコマンドを呼び出すことができます。ExecuteCommand は、出力引数を C# の System.Object (出力引数の Array を含む)にパック化します(詳細については、「C# からのコマンドの呼び出し」を参照)。

スクリプト構文

ImportModel( FileName, [Parent], [Reference], [Value], [Name], [ShareOptions], [ExternalCnxMappingTemplate] );

パラメータ

パラメータ タイプ 説明
FileName 文字列 読み込みするモデル ファイルの名前
Parent 文字列 読み込みされたモデルの親として使用するオブジェクトまたはモデル
Reference Boolean v6.0 の時点で、このパラメータは廃止されました。 リファレンスモデルとしてモデルを読み込みする場合は、代わりにCreateRefModelコマンドを使用します。

デフォルト値: False

Value Model モデルを戻します。
Name 文字列 読み込みされたモデルに付与する名前
ShareOptions siImportShareOptions モデルを読み込みする際に、オブジェクトを共有するためのオプションを指定するための、Integer 型のビット フィールドの値。

モデルを読み込む際に何を共有できるかについては、「siImportShareOptions」を参照してください。

イメージ クリップの共有: イメージ クリップは、同じイメージ ソースを参照していて、かつすべてのパラメータが同じであれば同一のものです。したがって、パラメータの F カーブは比較時には無視されます。

モデルの読み込み時には必ずイメージ ソースが共有されます。

マテリアルの共有: マテリアルはその名前、ライブラリ、シェーダの数、およびシェーダの順序が同じであれば、同一です。 同じ library.materialName、同じシェーダの数、かつ同じ順序で表示されるマテリアルが存在する場合は、それが再利用されます。

レイヤ/パーティションの共有:Layers and partitions are shared also based on their name. モデルを書き出すと、そのモデルには各オブジェクトのレイヤ名およびパーティション名が保存されます。モデルを読み込むときに同じ名前のレイヤまたはパーティションがあると、オブジェクトはそこに読み込まれます。

リファレンス モデルは、リファレンスされるモデルによってロックされているイメージ クリップのみを共有するか、イメージ クリップを使用しません。 標準的なモデルは、まったくロックされていないイメージ クリップのみを共有します。

デフォルト値: siImportShareOptionsImageClips AND siImportShareOptionsLayers AND siImportShareOptionsPartitions

ExternalCnxMappingTemplate 文字列 このパラメータはカンマ区切りのモデルのリストを含みます。このリストは、リファレンスされるモデルの読み込み処理の最後で再接続を試行する、オブジェクトの解決に使用されます。

このパラメータがヌルでない場合は、モデルは読み込みの最後に再接続されますが、ヌルである場合は再接続されません。

リファレンスモデルのみ(パラメータReferenceがTrueの場合):常にモデルを再接続します。 パラメータがヌルの場合、モデルがはじめに書き出された時の元のモデル名に再接続を試行します。

1. VBScript の例

'---------------------------------------------------------

' VBScript example : Importing and exporting models using

' the ImportModel/ExportModel commands. Models and submodels

' are created and then exported and imported in this example.

'---------------------------------------------------------

' First create a model, a submodel, and primitives within them.

SICreateModel , "SubModel"

SICreateModel "SubModel", "Model"

CreatePrim  "Torus", "MeshSurface", "MyTorus", "SubModel"

CreatePrim  "Cube", "MeshSurface", "MyCube", "Model"

' Now export the models, once exporting submodels, and once not.

emdlFile = Application.InstallationPath( siUserPath ) & "\Model.emdl"

emdlSubFile = Application.InstallationPath( siUserPath ) & "\Model_with_Submodels.emdl"

ExportModel "Model", emdlFile, False

ExportModel "Model", emdlSubFile, True

' Now delete the models/primitives of the scene (so we can re-import them), 

DeleteObj "Model.SubModel.MyTorus"

DeleteObj "Model.SubModel"

DeleteObj "Model.MyCube"

DeleteObj "Model"

' Now import the exported files. One as a referenced model, the other not.

ImportModel emdlFile, , False, , "Model (no submodels, not referenced)"

ImportModel emdlSubFile, , True, , "Model (with submodels, referenced)"

'---------------------------------------------------------

'INFO : Output from this script:

'INFO : "4152 - Data loaded from file <UserPath>\Model.emdl was created with build number: <build_num> - compatibility version: 300"

'INFO : "4152 - Data loaded from file <UserPath>\Model_with_Submodels.emdl was created with build number: <build_num> - compatibility version: 300"

'INFO : Object: "Model___no_submodels__not_referenced_.MyCube"

'INFO : Object: "Model___with_submodels__referenced_.MyCube"

'INFO : Object: "Model___with_submodels__referenced_.SubModel.MyTorus"

'---------------------------------------------------------

2. VBScript の例

' This will import test.emdl as a ref model and reconnect envelop operators on deformers which are in model test2

ImportModel "T:\XSI_Project\Models\test.emdl", , True, ,,true, "test2"

関連項目

ExportModel ImportDotXSI ImportRefModels