Object Hierarchy | 関連する C++クラス:Library
Library
v4.0
ライブラリは、同じ種類のオブジェクトのコンテナです。たとえば、マテリアルライブラリにはマテリアルのリストが含まれています。ライブラリのストレージは内部または外部のいずれかになります。内部ストレージでは、シーンファイル内に保存されます。外部ストレージでは、異なるファイルに保存されます。ライブラリはdotXSIフォーマットまたはネイティブのバイナリフォーマットに書き出しおよび読み込みできます。
/* This example illustrates how to get a material library and how to enumerate all materials in a library */ NewScene(null, false); // First create some libraries and materials CreatePrim("Sphere", "MeshSurface"); ApplyShader(null, "", null, "", siLetLocalMaterialsOverlap); CreateLibrary(); SelectObj("Sources.Materials.MaterialLibrary"); SetValue("Sources.Materials.MaterialLibrary.Name", "MyLibrary"); SetCurrentMaterialLibrary("Sources.Materials.MyLibrary"); SelectObj("sphere", null, true); ApplyShader(null, "", null, "", siLetLocalMaterialsOverlap); // Now enumerate all materials in all libraries var oScene = Application.ActiveProject.ActiveScene; var oMaterialLibraries = oScene.MaterialLibraries; Application.LogMessage("There are " + oMaterialLibraries.Count + " libraries under the scene."); for( var i=0; i<oMaterialLibraries.Count; i++ ) { var oLibrary = oMaterialLibraries(i); Application.LogMessage(oLibrary.Name + " has " + oLibrary.Items.Count + " defined materials"); var oMaterials = oLibrary.Items; for( var j=0; j<oMaterials.Count; j++ ) { Application.LogMessage(" - " + oMaterials(j).Name); } } // Expected result: // INFO : There are 2 libraries under the scene. // INFO : DefaultLib has 2 defined materials // INFO : - Scene_Material // INFO : - Material // INFO : MyLibrary has 1 defined materials // INFO : - Material |