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

複数の Kanzi Studio プロジェクトのコンテンツを単一の Kanzi アプリケーションに統合できます。これにより、次のことが可能になります。

  • Kanzi アプリケーション開発を複数のチームに分散させます。各チームは、同じアプリケーションの異なる部分を同時に作業することができます。

  • Kanzi アプリケーションに、kzbファイルでのみ利用可能なコンテンツを含めてください。

  • 複数のプロジェクトで使用したいリソースのみを保持する Kanzi Studio プロジェクトを使用する。

  • Kanzi アプリケーションの構造を簡素化するために、いくつかの Kanzi Studio プロジェクトに分割します。

例えば、複数のアプリケーションで構成される車載インフォテインメントアプリケーションを開発する場合、これらのアプリケーションのそれぞれを1つ以上の Kanzi Studio プロジェクトで開発することができます。その後、1つの Kanzi アプリケーションを使用して、これらの Kanzi Studio プロジェクトを1つの Kanzi アプリケーションに統合します。

../../_images/multi-project-example.svg

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

複数の Kanzi Studio プロジェクトを Kanzi アプリケーションに統合する際にテーマとローカライゼーションを使用するには、アプリケーションのメインプロジェクトの Screen ノードからテーマグループとローカライゼーションテーブルにアクセスできるようにする必要があります。複数の Kanzi Studio プロジェクトを Kanzi アプリケーションに統合して、テーマとローカライゼーションを使用する を参照してください。

Kanzi Studio プロジェクトからコンテンツを組み合わせる方法を学ぶには、チュートリアルを完了してください。チュートリアル: 複数の Kanzi Studio プロジェクトを1つの Kanzi アプリケーションに統合する を参照してください。

Kanzi Studio ソリューション構造

Kanzi Studio ソリューションとは、Kanzi アプリケーションを単一の Kanzi アプリケーションに統合するために使用する Kanzi Studio プロジェクトです。

Kanzi ソリューションを作成する際は、次のガイドラインを使用してください。

  • ソリューションプロジェクトは、Kanzi アプリケーションのメイン Kanzi Studio プロジェクトです。これを使用して、関連する Kanzi Studio プロジェクトを組み合わせ、そのソリューション内のすべての Kanzi アプリケーションのアプリケーションコードをビルドします。

  • ソリューションプロジェクトを作成する際、Kanzi Studio で、作成するアプリケーションのタイプに最も適したこれらのテンプレートのいずれかを使用してください。

    • Application テンプレートは、Kanzi Studio プロジェクトと Kanzi Engine アプリケーションを作成します。

    • Application with Kanzi Engine plugin テンプレートは、Kanzi Studio プロジェクトを作成し、その中に Kanzi Engine アプリケーションと Kanzi Engine プラグインが含まれています。

    • Application with data source plugin テンプレートは、データソースプラグインテンプレートを含む Kanzi Engine アプリケーションを持つプロジェクトを作成します。

    • Android application テンプレートは、Kanzi Studio プロジェクトと Kanzi Android フレームワークベースのアプリケーションを作成します。

    • Android application with Java plugin テンプレートは、Kanzi Studio プロジェクトを作成し、Kanzi Android フレームワークベースのアプリケーションに Kanzi Engine Java プラグインを含んでいます。

    プロジェクトの作成 を参照してください。

    ../../_images/multi-project-new-project-main.png
  • Kanzi Studio ソリューションの Android Studio または Visual Studio プロジェクトに、Kanzi アプリケーションのロジックを定義するアプリケーションコードを追加します。

  • Kanzi Studio プロジェクトを Kanzi Studio ソリューションに追加したい場合、そのプロジェクトにアプリケーションコードが含まれている場合は、そのプロジェクトの Visual Studio プロジェクトを Kanzi ソリューションプロジェクトの Visual Studio ソリューションに追加してください。

    ../../_images/multi-project-vs-add-project.png ../../_images/multi-project-vs-projects.png
  • Kanzi Studio プロジェクトと kzb ファイルを組み合わせて単一の Kanzi アプリケーションにするソリューションプロジェクトに適したプロジェクトを作成するか選択します。

    例えば、これはアプリケーションコードのみを含み、他のプロジェクトやファイルからノードやリソースを取得するプロジェクト、または他のすべてのアプリケーションのベースとして機能する既存のアプリケーションである可能性があります。

  • Kanzi ソリューションのために kzb ファイルをエクスポートする場合、Kanzi Studio はソリューション内のすべての Kanzi Studio プロジェクトから kzb ファイルをエクスポートし、それらをソリューションプロジェクトの Application/bin ディレクトリにコピーします。この場所は、ソリューションプロジェクトの Project > Properties の Binary Export Directory プロパティで設定できます。

    ../../_images/project-properties-main.png ../../_images/main-project-properties.png

Kanzi Studio プロジェクトを Kanzi ソリューションに追加する場合は、次のガイドラインを使用してください。

  • ソリューションに追加したいプロジェクトには、Kanzi Studio project テンプレートを使用し、これらすべてのプロジェクトのアプリケーションロジックを Kanzi ソリューションの Visual Studio ソリューションで定義します。プロジェクトの作成 を参照してください。

    ../../_images/multi-project-new-project-stats.png
  • Kanzi ソリューションでプロジェクト間で共有したい共通リソースを保存するプロジェクトを作成したい場合、Alt を押しながら右クリック Library > Project References を選択し、New Resource Project を選択します。

    リソースプロジェクトは、ノードツリーに Screen ノードのみを含み、Default Texture や DefaultBackground テクスチャのようなデフォルトの Kanzi Studio プロジェクトリソースを含みません。

    ../../_images/new-resource-project.png
  • ソリューションに追加したいプロジェクトを、ソリューションプロジェクトのルートディレクトリに配置してください。これらのプロジェクトが階層を形成している場合でも、この手順を行ってください。

    例えば、1つのプロジェクトでリソースを共有し、他のプロジェクトがそれを参照する場合、そのリソースプロジェクトをソリューションプロジェクトのルートディレクトリに保持してください。

  • Kanzi ソリューションに外部ファイルを参照するプロジェクトを追加する場合、そのようなファイルを Kanzi ソリューションプロジェクトのプロジェクトプロパティで設定された Preview Working Directory プロパティのディレクトリにコピーします。デフォルトで、これは Kanzi ソリューションプロジェクトの Application/bin ディレクトリです。

    ../../_images/preview-working-directory.png
  • ソリューションに新しい依存関係を追加する際は、ソリューションビルドスクリプトを更新してください。

  • ソリューションに追加するプロジェクト内にアプリケーションロジックを保持したい場合、Kanzi Studio でプロジェクトを作成する際に、Application、Application with Kanzi Engine plugin、または Application with data source plugin テンプレートを使用し、そのプロジェクトのVisual Studioプロジェクトを Kanzi ソリューションプロジェクトのVisual Studioソリューションに追加してください。これを行う際には、次の点に注意してください。

    • ソリューションビルドスクリプトを更新して、追加したプロジェクトを含めてください。

    • ソリューションのVisual Studioプロジェクトを構成して、Application/bin ディレクトリのコンテンツとプロジェクトで使用される依存関係をビルドおよびコピーし、ソリューションの Application/bin ディレクトリに配置します。Kanzi ソリューションのVisual Studioソリューションで、メインプロジェクトに次を追加します: プロパティページ > 構成プロパティ > ビルドイベント > プリビルドイベント > コマンドライン:

      if not exist "..\..\..\bin" mkdir ..\..\..\bin
      

      Kanzi ソリューションに追加する各プロジェクトに対して、次を追加します:

      xcopy ..\..\..\..\<ProjectName>\Application\bin ..\..\..\bin  /Y
      
  • すべての Kanzi Studio プロジェクトを同じソリューション内で同じカラーワークフローを使用するように設定します。カラーワークフロー を参照してください。

    ../../_images/color-workflow-linear.png

Kanzi Studio プロジェクトからのプレハブとリソースの使用

Kanzi Studio プロジェクトからプレハブやリソースを使用するには:

  1. 他の Kanzi Studio プロジェクトのコンテンツを使用したい Kanzi Studio プロジェクトを開くか作成します。

    ここから、このプロジェクトは参照プロジェクトと呼ばれます。

  2. Library で Alt を押しながら右クリック Project References を選択し、Existing Project を選択して、参照元プロジェクトでコンテンツを使用したい Kanzi Studio プロジェクトを選択し、Open をクリックします。

    Kanzi Studio はプロジェクトを新しいタブで読み込みます。そのプロジェクトがプロジェクト参照を含む場合、Kanzi Studio は参照が指すプロジェクトを読み込みます。

    ここからは、これらのプロジェクトを参照プロジェクトと呼びます。

    プロジェクトタブでは、Preview アイコン アクティブ が Preview でアクティブなプロジェクトを示します。

    ../../_images/project-reference-create-existing-project.png ../../_images/stats-and-resources-project-tabs.png

    ヒント

    Preview ウィンドウでプロジェクトを表示するには、プロジェクトタブで次のいずれかを行います。

    • そのプロジェクトのタブを右クリックし、Show in Preview を選択します。Kanzi Studio はプロジェクトを Preview に表示しますが、プロジェクトを選択しません。

      ../../_images/stats-show-in-preview.png
    • そのプロジェクトのタブをダブルクリックします。Kanzi Studio はプロジェクトを Preview に表示し、プロジェクトを選択します。

    ヒント

    Library > Project References のプロジェクト参照の順序は、アプリケーションを実行する際に Kanzi がプロジェクトの kzb ファイルを読み込む順序を決定します。

  3. Preview で Restart をクリックし、Kzb export ダイアログで Yes をクリックして、参照されているプロジェクトのkzbファイルをエクスポートします。

    Kanzi Studio は、参照されたプロジェクトから kzb ファイルと構成ファイルを作成します。

    この方法で、参照プロジェクトのコンテンツを参照しているプロジェクトの Preview に利用可能にします。

    ../../_images/preview-restart-button-orange-in-context.png

    ヒント

    デフォルトで、Preview を開始または再起動すると、Kanzi Studio は参照プロジェクトの kzb ファイルをエクスポートするかどうかを確認します。Kanzi Studio を常に確認せずに kzb ファイルをエクスポートするように設定するには、次のいずれかを行います。

    • Kzb export ダイアログで Do not ask me again オプションを有効にし、Yes をクリックします。

      ../../_images/kzb-export-dialog.png
    • Edit > User Preferences を選択し、Advanced タブで Referenced project kzb file export behavior 設定の値を Always export に設定します。

    ヒント

    Kanzi Studio が Preview に表示されているプロジェクト、または参照されているプロジェクトのいずれかに、プロジェクトのkzbファイルにまだエクスポートしていない変更が含まれている場合、Preview の Restart ボタンはオレンジ色になります。

    Preview のコンテンツが古くなっているプロジェクトを確認するには、ボタンにカーソルを合わせてください。

    ../../_images/preview-content-outdated-tooltip.png
  4. プロジェクトタブバーで、プレハブまたはリソースを使用したい参照先プロジェクトを選択します。

    ../../_images/stats-project-tab.png
  5. Kanzi Studio でプレハブとリソースを使用できるようにするには、参照元プロジェクトのドロップダウンメニューで次のいずれかを行います。

    • Prefabs または Library でプレハブまたはリソースを選択し、Properties で Visibility Across Projects プロパティを追加して Public に設定します。

      Prefabs と Library では、左上隅の緑色のアイコンがパブリックアイテムを示します。

      ../../_images/stats-visibility-across-projects-public.png ../../_images/stats-marked-public.png ../../_images/white-50-opacity-visibility-across-projects-public.png ../../_images/white-50-opacity-with-public-icon.png

      ヒント

      Library または Prefabs でアイテムを直接公開するには、アイテムを右クリックして Make Public を選択します。

      ../../_images/make-public.png
    • Project > Properties を選択し、Properties で Resource Visibility Across Projects プロパティを Public に設定します。

      プロジェクトの Resource Visibility Across Projects プロパティを Public に設定すると、そのプロジェクトのすべてのリソースが参照プロジェクトのドロップダウンメニューで利用可能になります。

      Kanzi Studio は、プロジェクトタブの左上隅に緑色のマーカーで公開プロジェクトを示します。

      ../../_images/resources-resource-visibility-across-project-public.png ../../_images/resources-project-tab-public-icon.png

      ヒント

      プロジェクトタブから直接プロジェクトを公開するには、プロジェクトタブを右クリックして Make Public を選択します。

      ../../_images/resources-make-public.png
  6. 参照されたプロジェクトからコンテンツを使用してください。

    • プレハブを使用するには、Node Tree でプレハブを使用したい場所に Prefab Placeholder ノードまたは Prefab View ノードを作成し、Properties で Prefab Template プロパティを前のステップで利用可能にしたプレハブに設定します。

      Kanzi Studio は、プレハブの kzb URL を使用するように Prefab Template プロパティを自動的に設定します。参照されたプロジェクトからプレハブを制御できます。Kanzi Studio プロジェクトからプレハブをカスタマイズおよび制御する を参照してください。

      ../../_images/project-stats.png ../../_images/stats-prefab-template-select-stats.png ../../_images/stats-properties.png
    • リソースを使用するには、Node Tree でリソースを使用したいノードを選択し、Properties でリソースを使用したいプロパティを前のステップで利用可能にしたリソースに設定します。

      Kanzi Studio は、リソースの kzb URL を使用するようにプロパティを自動的に設定します。

      ../../_images/music-artist.png ../../_images/music-properties-foreground-brush.png ../../_images/artist-properties-foreground-brush.png
  7. (オプション) プレハブの外観をカスタマイズして制御します。Kanzi Studio プロジェクトからプレハブをカスタマイズおよび制御する を参照してください。

参照されたプロジェクトを編集する

参照されたプロジェクトのコンテンツは、プロジェクトタブでそのプロジェクトを選択することで編集できます。ただし、参照されたプロジェクトの編集を容易にするには、参照されたプロジェクト間に相互参照を作成します。この方法で、参照されたプロジェクト内でメインプロジェクトのコンテンツを確認でき、参照されたプロジェクトのコンテンツを編集する際にメインプロジェクトと参照されたプロジェクトを切り替える必要がなくなります。

メインプロジェクトのコンテキストで参照されたプロジェクトを編集するには、以下の手順に従います。

  1. メインプロジェクトで、以下を行います。

    1. Node Tree から、Screen ノードの下にあるルートノードを Prefabs にドラッグします。

    2. Prefabs で、ルートノードのプレハブを選択します。Properties で、Visibility Across Projects プロパティを Public に設定します。

    この方法で、ルートノードから、参照されたプロジェクトで使用できるプレハブを作成します。

    ../../_images/node-tree-prefabs-multiproject-main-project-rootpage-prefab.png ../../_images/properties-rootnode-visibilit-across-projects-public.png
  2. プロジェクトタブで、子の参照されたプロジェクトのタブをダブルクリックし、そのプロジェクトから Preview を開始します。

    1. Library で Project References を右クリックし、メインプロジェクトへのプロジェクトリファレンスを作成します。

      ../../_images/project-reference-create-existing-project.png
    2. Node Tree で、ルートノードを削除し、Screen ノードを Alt を押しながら右クリック して、Prefab Placeholder ノードを作成します。Properties で、以下を行います。

      • Prefab Template プロパティをメインプロジェクトのルートノードに設定します。

      • Resources > Disable KZB Export プロパティを追加して有効にします。

        この方法で、参照されたノードのコンテンツはプロジェクトの kzb ファイルにエクスポートされません。

      ../../_images/node-tree-stats-prefab-placeholder-root.png ../../_images/properties-prefab-placeholder-root.png

これで、Preview で参照されたプロジェクトのコンテンツをメインプロジェクトのコンテキストで表示できます。これにより、参照されたプロジェクトのコンテンツを容易に編集できます。

kzbファイルからのプレハブとリソースの使用

kzbファイルからプレハブやリソースを使用するには:

  1. kzb ファイルのコンテンツを使用したい Kanzi Studio プロジェクトを開くか作成します。

  2. Library で Project References を Alt を押しながら右クリック して Existing .kzb を選択し、ターゲットプロジェクトでコンテンツを使用したい kzb ファイルを選択して、Open をクリックします。

    kzbファイルが他のkzbファイルを参照している場合、それらのkzbファイルへの参照も追加する必要があります。

    ../../_images/existing-kzb.png
  3. kzbファイルからコンテンツを使用します。

    • プレハブを使用するには、Node Tree でプレハブを使用したい場所に Prefab Placeholder ノードまたは Prefab View ノードを作成し、Properties で Prefab Template プロパティを <ResourceID> に設定して、使用したいプレハブの kzb URL を入力します。

      ../../_images/project-stats.png ../../_images/stats-properties.png
    • リソースを使用するには、Node Tree でリソースを使用したいノードを選択し、Properties でリソースを使用したいプロパティを <ResourceID> に設定して、使用したいリソースの kzb ファイル URL を入力します。

      ../../_images/music-artist.png ../../_images/music-properties-foreground-brush.png

Kanzi Studio プロジェクトからプレハブをカスタマイズおよび制御する

Kanzi ソリューションで Kanzi Studio プロジェクトのプレハブを使用する場合、これらのプレハブのコンテンツと外観を設定できます。これを行うには、各プレハブのルートノードで、操作したいプレハブのコンテンツにバインドするプロパティタイプを使用します。

Kanzi Studio プロジェクトからプレハブを制御するには:

  1. プロジェクトを開くか作成し、そのプロジェクトに Kanzi Studio プロジェクトからプレハブを追加します。Kanzi Studio プロジェクトからのプレハブとリソースの使用 を参照してください。

    ここから、このプロジェクトはターゲットプロジェクトと呼ばれます。

  2. プロジェクトタブバーで、操作したいプレハブを含むプロジェクトを選択します。Prefabs でプレハブを選択し、Properties で、プレハブの操作に使用したいプロパティの横にある 編集を有効にする をクリックします。

    Kanzi Studio は、そのプロパティからカスタムプロパティを作成し、それをそのプレハブのルートノードに追加し、そのプレハブのルートノード内のプロパティに ##Template バインディングを作成します。

    これにより、プレハブのルートからプレハブの外観を編集できるようになります。

    たとえば、Progress というプロパティを使用してミュージックプレイヤーのプログレスバーを操作したい場合は、そのプロパティの横にある 編集を有効にする をクリックします。

    ここから、このプロジェクトはソースプロジェクトと呼ばれます。

    ../../_images/music-progress-bar.png ../../_images/music-progress-bar-properties.png
  3. Preview で イメージ2 (image2) をクリックして Preview をリスタートし、ソースプロジェクトの kzb ファイルをエクスポートします。

  4. プロジェクトタブバーでターゲットプロジェクトを選択し、Node Tree で、操作したいソースプロジェクトのプレハブをインスタンス化するために使用するノードを選択します。Properties で、前のステップで作成したカスタムプロパティを追加します。

    ターゲットプロジェクトでプロパティを使用して、ソースプロジェクトからプレハブを制御できるようになりました。

    ../../_images/music-prefab-placeholder.png ../../_images/music-properties-progress.png

参照された Kanzi Studio プロジェクトからコンテンツをマージする

参照された Kanzi Studio プロジェクトからコンテンツを取り込みたい場合は、必要なアイテムをマージできます。

参照された Kanzi Studio プロジェクトからコンテンツをマージするには、Library > Project References で、コンテンツを取り込みたいソースプロジェクトを右クリックし、Merge Project を選択します。

Merge Project を使用すると、選択したアイテムのみをターゲットプロジェクトにインポートできます。マージ時には、インポートしたいプロジェクトアイテムを選択し、両方のプロジェクトに存在するアイテムの競合を解決できます。Kanzi Studio はソースプロジェクトのノードを新しいプレハブにマージします。Kanzi Studio は、ノードとリソースがターゲットプロジェクトに存在する場合でも、同じプロジェクトリファレンスから以前にマージしていなければ (以前にマージしている場合は同一としてマークされます)、それらを作成します。プロジェクトのマージ を参照してください。

../../_images/project-reference-merge-project.png

同じ参照プロジェクトを参照するプロジェクトをロードする

Kanzi Studio は、同じプロジェクトを Kanzi Studio の複数のインスタンスでロードすることをサポートしていません。Library で、Kanzi Studio は Kanzi Studio の別のインスタンスですでにロードされているプロジェクトリファレンスを赤字で示します。そのプロジェクトの kzb ファイルが存在する場合、Kanzi Studio の Preview はその kzb ファイルのコンテンツを表示します。参照されたプロジェクトをアンロードすると、Preview にはそのプロジェクトのコンテンツが表示されません。

../../_images/project-reference-marked-red.png

複数の Kanzi Studio プロジェクトで Kanzi Studio プロジェクトをプロジェクト参照として読み込みたい場合、それらのプロジェクトを同じ Kanzi Studio ソリューションの一部にしてください。

例えば、MainProject1 と MainProject2 という名前の Kanzi Studio ソリューションがあり、どちらも Resources プロジェクトへのプロジェクト参照を含んでいる場合:

  1. Kanzi Studio プロジェクトを作成する。

  2. Library > Project References で、MainProject1 および MainProject2 Kanzi Studio プロジェクトのプロジェクトリファレンスを作成します。

    ../../_images/create-project-reference-existing.png ../../_images/project-references-in-library.png

Kanzi Studio の同じインスタンスを使用して、MainProject1、MainProject2、および Resources プロジェクトを編集できるようになりました。

複数の Kanzi Studio プロジェクトを Kanzi アプリケーションに統合して、テーマとローカライゼーションを使用する

複数の Kanzi Studio プロジェクトを Kanzi アプリケーションに統合する際にテーマとローカライゼーションを使用するには、次のいずれかの方法で、アプリケーションのメインプロジェクトの Screen ノードにテーマグループとローカライゼーションテーブルをアクセス可能にする必要があります。

  • アプリケーションのメインプロジェクトでテーマグループとローカライゼーションテーブルを定義します。

  • 参照されたプロジェクトのテーマグループとローカライゼーションテーブルを、Screen ノードを含むメインプロジェクトにマージします。その後、リソース ID を使用して、参照されたプロジェクトのテーマグループとローカライゼーションテーブル内のリソースにアクセスできます。プロジェクトのマージ を参照してください。

  • Rightware サポートチームに連絡し、複数の Kanzi Studio プロジェクトと kzb ファイルでテーマ設定とローカライズを使用できるようにする Kanzi Engine プラグインをリクエストしてください。サポートリクエストの提出 を参照してください。

関連項目

チュートリアル: 複数の Kanzi Studio プロジェクトを1つの Kanzi アプリケーションに統合する

プロジェクトのインポート

プロジェクトのマージ

ノードプレハブの使用

アプリケーションのテーマ設定

ローカライズ (Localization)