Kanzi Studio タスクの自動化

Kanzi Studio コマンドは、コマンドラインインターフェースからスクリプトを実行することで実行できます。これにより、Kanzi Studio または Kanzi Studio のタスクで繰り返し行う作業を自動化し、多数の Kanzi Studio プロジェクトで実行することができます。例えば、多くの Kanzi Studio プロジェクトで使用する Kanzi Engine プラグインを更新するスクリプトを作成したり、多くの Kanzi Studio プロジェクトから kzb ファイルをエクスポートするスクリプトを作成したりすることを考えてみてください。

利用可能なコマンドのリストについては、Kanzi Studio command reference を参照してください。

注釈

LoadProject コマンドでオープンしたプロジェクトが、別のプロジェクトのプロジェクトファイルを格納しているディレクトリ内に参照プロジェクトを保存している場合、Kanzi Studio はその参照プロジェクトを確認なしで同じ階層の別ディレクトリに移動します。これは、通常表示される確認には対話型の Kanzi Studio が必要なためです。この移動はディスク上のディレクトリを変更し、アンドゥすることはできません。また、スクリプトは、処理対象となった kzproj プロジェクトを確認なしで kzm に変換し、元の kzproj ファイルを削除します。このようなプロジェクトは、どちらの処理も確認できるように、事前に一度 Kanzi Studio でオープンしてください。参照プロジェクトの保存場所 を参照してください。

Kanzi Studio タスクを自動化するには:

  1. テキストエディタで、Kanzi Studio に実行させたいコマンドを定義するスクリプトを作成します。

    例えば、このステップのコマンドをスクリプトに追加し、スクリプトを MyScript.txt として保存します。

    1. Kanzi Studio プロジェクトを開きます。

      # Open the project named MyProject.
      LoadProject "C:\KanziWorkspace\Projects\MyProject\Tool_project\MyProject.proj.kzm"
      
    2. Kanzi Studio のタスクを自動化するコマンドを追加します。

      たとえば、次のことを自動化できます:

      利用可能なコマンドのリストについては、Kanzi Studio command reference を参照してください。

    3. プロジェクトを保存して閉じます。

      # Save the project.
      # The second parameter sets whether Kanzi Studio continues working in the directory where you
      # opened the project.
      # When you save the project to a different location, set the second parameter to false.
      # For example,
      # SaveProject "C:\KanziWorkspace\Projects\MyOtherProject\Tool_project\MyOtherProject.proj.kzm" false
      SaveProject "C:\KanziWorkspace\Projects\MyProject\Tool_project\MyProject.proj.kzm" true
      
      # Close Kanzi Studio.
      # To close the project but continue using Kanzi Studio, use CloseProject.
      ExitApplication
      
  2. コマンドラインインターフェースを開き、<KanziInstallation>/Studio/Bin ディレクトリに移動し、/Script フラグを使用して、前のステップで作成したスクリプトを指すように KanziStudio.exe ファイルを実行します。

    例えば、コマンドラインインターフェースで、実行します

    KanziStudio.exe /Script="C:\Users\username\Documents\MyScript.txt"
    

スクリプトを使用して kzb ファイルをエクスポートする

kzbファイルには、Kanzi Studio プロジェクトの内容が含まれています。Kanzi アプリケーションを実行するには、そのアプリケーションの Kanzi Studio プロジェクトの内容をkzbファイルにエクスポートする必要があります。

kzbファイルの使用 を参照してください。

スクリプトを使用してkzbファイルをエクスポートするには、ExportBinary コマンドを使用します。

# Export the kzb file to the location set in the Project > Properties in the Binary Export Directory
# property.
# To export the kzb file to another location use:
# ExportBinary "Path\to\directory\MyProjectBinary.kzb"
ExportBinary
../../_images/binary-export-directory.png ../../_images/export-kzb-binary.png

ExportBinary コマンドは、次のオプションパラメータを取ります。

  • 最初のパラメーターは、Kanzi Studio がテーマとロケールリソースを個別の kzb ファイルにエクスポートするかどうかを設定します。デフォルトで、true です。

  • 2番目のパラメーターは、Kanzi Studio がkzaファイルをエクスポートするかどうかを設定します。kzaファイルはkzbファイルのXMLバージョンです。デフォルトはfalseです。

例えば、テーマとロケールリソースの両方を別々のkzbファイルとkzaファイルにエクスポートするには、

# Export the theme and locale resources and the kza file.
ExportBinary true true

スクリプトを使用してAndroid用の Kanzi アプリケーションをビルドする

スクリプトを使用してAndroid用の Kanzi アプリケーションをビルドするには、ExportApk コマンドを使用します。

# Before you build an APK file, you can set whether to install the APK file to your
# Android device and launch the application. By default, |k| installs the APK file
# and launches the application.
# In My Android Configuration, disable the Install to Device property.
SetProperty "/Resource Files/Build Configurations/My Android Configuration" BuildConfigurationInstallToDevice false
# In My Android Configuration, disable the Launch Application property.
SetProperty "/Resource Files/Build Configurations/My Android Configuration" BuildConfigurationRunApplication false

# Build the APK file using the My Android Configuration build configuration.
# If the project contains images that use texture compression, the second
# parameter sets whether Kanzi Studio compresses these images.
ExportApk "/Resource Files/Build Configurations/My Android Configuration" true
../../_images/library-my-android-configuration.png ../../_images/properties-my-android-configuration.png ../../_images/build-android-package.png

スクリプトを使用して Kanzi Engine プラグインをインポートおよび更新する

Kanzi Engine プラグインは Kanzi Engine の機能を拡張します。Kanzi Engine はターゲットプラットフォーム上でこれらのプラグインを実行します。

Kanzi Engine プラグイン を参照してください。

スクリプトを使用して、Kanzi Engine プラグインをインポートおよび更新できます。

スクリプトを使用して Kanzi Engine プラグインをインポートする

Kanzi Studio プロジェクトで Kanzi Engine プラグインを使用したい場合は、その Kanzi Engine プラグインを Kanzi Studio プロジェクトにインポートする必要があります。

スクリプトを使用して Kanzi Engine プラグインをインポートするには、ImportEnginePlugin コマンドを使用します。

# Import the Kanzi Engine plugin DLL MyPluginProject\Application\lib\Win64\GL_vs2022_Debug_DLL\MyPluginProject.dll.
# Kanzi Studio adds to the Library > Kanzi Engine Plugins a reference to the Kanzi Engine plugin DLL that you import.
ImportEnginePlugin "C:\KanziWorkspace\Projects\MyPluginProject\Application\lib\Win64\GL_vs2022_Debug_DLL\MyPluginProject.dll"
../../_images/import-kanzi-engine-plugin.png ../../_images/mypluginproject-in-library.png

スクリプトを使用して Kanzi Engine プラグインを更新する

Kanzi Studio プロジェクトで異なるバージョンの Kanzi Engine プラグインを使用したい場合は、その Kanzi Engine プラグインを Kanzi Studio プロジェクトで更新する必要があります。

スクリプトを使用して Kanzi Engine プラグインを更新するには、ImportEnginePlugin コマンドを使用します。

# Update the XML_data_source Kanzi Engine plugin in the project.
# You leave the first parameter empty because you do not import a new plugin to the project.
ImportEnginePlugin "" "/Kanzi Engine Plugins/XML_data_source"
../../_images/update-kanzi-engine-plugin-metadata.png

スクリプトを使用してプロジェクトまたはソリューション内のすべての Kanzi Engine プラグインを更新する

Kanzi Studio プロジェクトで異なるバージョンの Kanzi Engine プラグインを使用したい場合は、その Kanzi Engine プラグインを Kanzi Studio プロジェクトで更新する必要があります。

スクリプトを使用して、Kanzi Studio プロジェクト内のすべての Kanzi Engine プラグインを更新できます。Kanzi Studio プロジェクトにプロジェクト参照が含まれている場合、そのプロジェクトとすべての参照プロジェクトを含むソリューション内のすべての Kanzi Engine プラグインを更新できます。Kanzi Studio プロジェクトを Kanzi アプリケーションに統合する を参照してください。

スクリプトを使用してプロジェクトまたはソリューション内のすべての Kanzi Engine プラグインを更新するには、UpdateProjectEnginePlugins または UpdateSolutionEnginePlugins コマンドを使用します。

# Update all the Kanzi Engine plugins in the project.
# To update the Kanzi Engine plugins in that project and all referenced projects use
# UpdateSolutionEnginePlugins.
UpdateProjectEnginePlugins
../../_images/update-kanzi-engine-plugins-in-project.png

スクリプトを使用してデータソースを作成および更新する

データソースを使用すると、ユーザーインターフェイスをアプリケーションデータから切り離し、Kanzi Studio プロジェクトと Kanzi アプリケーションを定義するアプリケーションコードとの依存関係を取り除くことができます。

データソース (Data Sources) を参照してください。

スクリプトを使用してデータソースを作成および更新できます。

スクリプトを使用してデータソースを作成する

Kanzi Studio プロジェクトで Kanzi Engine データソースプラグインを使用したい場合は、Kanzi Studio プロジェクトでデータソースを作成する必要があります。

スクリプトを使用してデータソースを作成するには、まず Kanzi Engine データソースプラグインをインポートし、次にデータソースを作成して更新します。

# Import the Kanzi Engine data source plugin DLL MyDataSource\Application\lib\Win64\GL_vs2022_Release_DLL\MyDataSource.dll.
# The MyDataSource plugin defines the CustomDataSourceType data source type.
# Kanzi Studio adds to the Library > Kanzi Engine Plugins a reference to the Kanzi Engine data source plugin DLL that you import.
ImportEnginePlugin "C:\KanziWorkspace\Projects\MyDataSource\Application\lib\Win64\GL_vs2022_Release_DLL\MyDataSource.dll"

# Create a data source named Cluster of the type CustomDataSourceType.
CreateDataSource "Cluster" "CustomDataSourceType"
# To create data objects from the Cluster data source, update the data source.
UpdateDataSourceContents "/Data Sources/Cluster/"
../../_images/mydatasource-in-library.png ../../_images/mydatasource-properties.png ../../_images/cluster-data-source.png

スクリプトを使用してデータソースを更新する

Kanzi Engine プラグインがデータソースを更新しない場合、スクリプトを使用してデータソースを更新することができます。

スクリプトを使用してデータソースを更新するには、UpdateDataSourceContents コマンドを使用します。

# Update the Cluster data source in the project.
UpdateDataSourceContents "/Data Sources/Cluster/"
../../_images/update-data-source.png

スクリプトを使用してプロジェクトまたはソリューション内のすべてのデータソースを更新する

Kanzi Engine プラグインがデータソースを更新しない場合、スクリプトを使用してデータソースを更新できます。Kanzi Studio プロジェクトにプロジェクト参照が含まれている場合、そのプロジェクトとすべての参照プロジェクトを含むソリューション内のすべてのデータソースを更新できます。Kanzi Studio プロジェクトを Kanzi アプリケーションに統合する を参照してください。

スクリプトを使用してプロジェクトまたはソリューション内のすべてのデータソースを更新するには、UpdateProjectDataSources または UpdateSolutionDataSources コマンドを使用します。

# Update all data sources in the project.
# To update the data sources in that project and all referenced projects use
# UpdateSolutionDataSources.
UpdateProjectDataSources
../../_images/update-data-sources-in-project.png

スクリプトを使用してノードを作成する

スクリプトを使用してノードを作成できます。例えば:

  • Button 2D ノードを作成するには、CreateButton2D コマンドを使用します。

    # In the RootNode node, create a Button 2D node named My Button.
    # The last parameter sets whether Kanzi Studio selects the node that you created.
    CreateButton2D "/Screens/Screen/RootNode" "My Button" true
    
    ../../_images/my-button-in-project.png
  • Grid List Box 3D ノードを作成するには、CreateComponentNode コマンドを使用します。

    # In the RootNode > Viewport 2D > Scene node, create a Grid List Box 3D node named My Grid List Box.
    CreateComponentNode "/Screens/Screen/RootNode/Viewport 2D/Scene" "My Grid List Box" Kanzi.GridListBox3D
    
    ../../_images/my-grid-list-box-in-project.png

スクリプトを使用してプロパティを編集する

プロパティは、ノードの状態、見た目、動作を指定したり調べたりする手段となります。例えば、プロパティは色を定義したり、ボタンが押されているかどうかを示したり、アイテムの配置を指定したりすることができます。

プロパティタイプ (Property Types) を参照してください。

スクリプトを使用してプロパティを編集できます。

スクリプトを使用してプロパティを追加する

スクリプトを使用してプロパティを追加するには、AddProperty コマンドを使用します。

例えば、RootNode ノードに Description プロパティを追加するには:

# In the RootNode node, add the Description property.
AddProperty "MyProject/Screens/Screen/RootNode" Description
../../_images/rootpage-description.png

スクリプトを使用してプロパティを削除する

スクリプトを使用してプロパティを削除するには、RemovePropertyFromItem コマンドを使用します。

例えば、RootNode ノードから Background Brush プロパティを削除するには:

# In the RootNode node, remove the Background Brush property.
# Use the Kanzi Engine property name which you see in Kanzi Studio when you hover your
# mouse pointer over the property name.
RemovePropertyFromItem "MyProject/Screens/Screen/RootNode" Node2D.BackgroundBrush
../../_images/background-brush-kanzi-engine-name.png ../../_images/remove-background-brush.png

スクリプトを使用してプロパティ値を設定する

スクリプトを使用してプロパティ値を設定するには、SetProperty コマンドを使用します。

例:

  • Screen ノードのサイズを1200 x 720ピクセルに設定するには:

    # In the Screen node, set:
    # - Metrics Type to Absolute
    SetProperty "/Screens/Screen" Window.MetricsType Absolute
    # - Width to 1200
    SetProperty "/Screens/Screen" WindowAbsoluteWidth 1200
    # - Height to 720
    SetProperty "/Screens/Screen" WindowAbsoluteHeight 720
    
    ../../_images/metrics-type-absolute.png ../../_images/window-width-and-height-1200x720.png
  • Text Block ノードの Text プロパティを1行のテキストに設定するには:

    # In the RootNode > My Text Block node, set the Text property to SERVICE VEHICLE SOON.
    SetProperty "/Screens/Screen/RootNode/My Text Block" TextConcept.Text "SERVICE VEHICLE SOON"
    
    ../../_images/text-single-line.png
  • プロパティ値を複数行にわたって設定するには、値をトリプルバッククォートで囲みます:

    # In the RootNode > My Text Block node, set the Text property to
    # SERVICE
    # VEHICLE
    # SOON
    SetProperty "/Screens/Screen/RootNode/My Text Block" TextConcept.Text ```SERVICE
    VEHICLE
    SOON```
    
    ../../_images/text-multiline.png

スクリプトを使用して無効なプロジェクトアイテムをログに記録する

Kanzi Studio は、Node Tree と Library の無効なアイテムを赤い文字でマークします。

例:

  • ノードに無効なバインディングが含まれています。

  • リソースが存在しないリソースを使用しているか、必要なプロパティが欠けています。

  • マテリアルタイプのシェーダーに精度の不一致があります。

  • シェーダーソースファイルにエラーが含まれています。

../../_images/node-with-invalid-binding-in-project.png

無効なプロジェクトアイテムを見つける を参照してください。

スクリプトを使用して Kanzi Studio プロジェクト内の無効なプロジェクトアイテムをログに記録するには、PrintDiagnosticReport コマンドを使用します。

# Print a list of invalid project items to the Log window and the KanziStudio.log file.
PrintDiagnosticReport MyProject

関連項目

Kanzi Studio command reference

kzbファイルの使用

Kanzi アプリケーションをAndroidにデプロイする

Kanzi Engine プラグイン

Kanzi Studio プロジェクトを Kanzi アプリケーションに統合する

データソース (Data Sources)

プロパティタイプ (Property Types)

無効なプロジェクトアイテムを見つける