Addon
v3.5
Addon
オブジェクトにより、スクリプトを使用してアドオンをパッケージング、インストール、アンインストールできます。アドオンとは、ツールバー、カスタムコマンド、レイアウトなどの項目のコレクションのことで、パッケージをしたりコンピュータに配布したりすることができます。
注:Addon オブジェクトにより.xsiaddon
ファイルの内容を精密に制御できますが、各ファイルを個別に追加する必要があります。PackageAddon コマンドを使用すると、簡単に
.xsiaddon ファイルを構築できます。
Application | Categories | DefaultInstallationPath | FullName |
Help | Name | NestedObjects | Origin |
OriginPath | Parent | SubDirectory | Type |
/* -------------------------------------------------------------- This example creates and registers a custom command and then shows how you can package it as an add-on through scripting. ----------------------------------------------------------------- */ /* PART ONE: SET UP THE COMMAND */ // Start off with a clean slate NewScene( null, false ); Application.RemoveCommand( "Howdy" ); // Get the factory (installation) path and use it to build the filename and path var sPath = InstallationPath( siUserPath ); var sCmdFileName = XSIUtils.BuildPath( sPath, "Data", "Scripts", "HelloWorld.js" ); // Create a "hello world" script file var fso = new ActiveXObject( "Scripting.FileSystemObject" ); var fHWFile = fso.CreateTextFile( sCmdFileName ); fHWFile.WriteLine( "function SayHi()" ); fHWFile.WriteLine( "{" ); fHWFile.WriteLine( "\tApplication.LogMessage( \"Hello, World!\" );" ); fHWFile.WriteLine( "}" ); fHWFile.Close(); // Add it to the command map in Softimage var oCmd = Application.CreateCommand( "Howdy", siExportCategory ); oCmd.Description = "Display the traditional greeting"; oCmd.ScriptingName = "Howdy"; oCmd.Handler = "SayHi"; oCmd.FileName = sCmdFileName; oCmd.Language = "JScript"; Application.AddCommand( oCmd ); // Run it make sure it works oCmd.Execute(); /* PART TWO: PACKAGE IT AS AN ADD-ON */ // Set up the add-on package object var oAddOn = Application.CreateAddon(); // Add the new command to the add-on package oAddOn.AddItem( siScriptCmdAddonItemType, oCmd ); // Set the default installation path and subdirectory for installation oAddOn.DefaultInstallationPath = siUserAddonPath; oAddOn.SubDirectory = "HiyaProject"; // Save the .xsiaddon file to disk var sAddOnFileName = XSIUtils.BuildPath( sPath, "myAddOn.xsiaddon" ); oAddOn.Save( sAddOnFileName ); // Remove the custom command we created and then install the add-on Application.RemoveCommand("Howdy"); fso.DeleteFile( sCmdFileName, true ); oCmd = null; oAddOn = null; Application.InstallAddon( sAddOnFileName, siUserAddonPath ); // Run the command to make sure it still works after we removed it and // then reinstalled it from our new add-on package Commands( "Howdy" ).Execute(); // Clean up and remove the add-on package sInstalledAddOnFileName = XSIUtils.BuildPath( InstallationPath( siUserAddonPath ), "InstalledAddons", "myAddOn.xsiaddon" ); Application.UninstallAddon( sInstalledAddOnFileName ); // -------------------------------------------------------------- // Output of the above script is: // //INFO : "Hello, World!" //Howdy(null); //INFO : "Hello, World!" //Howdy(null); |