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 |