プロジェクトのマージ

プロジェクトをマージする際、別のプロジェクトで作成したリソースやノードを再利用できます。プロジェクトのマージでは、完全なプロジェクトをインポートするか、選択したリソースとノードのみをインポートすることができます。マージ中に Kanzi は競合解決を提供します。

Kanzi は、他のプロジェクトからコンテンツを取り込むための次のオプションを提供します。

Kanzi Studio プロジェクトをマージする

プロジェクトをマージするには:

  1. File > Import > Merge Project を選択し、現在開いているプロジェクト(ターゲットプロジェクト)にマージしたいプロジェクト(ソースプロジェクト)を選択して、Open をクリックします。

    Project Merge ダイアログが開きます。

    ../../_images/merge-project-menu-option.png
  2. Project Merge ダイアログセットで:

    • Select referenced items。選択したアイテムが参照するすべてのアイテムを Kanzi Studio が自動的に選択するようにしたい場合は、チェックボックスを選択してください。

      例えば、Select referenced items チェックボックスをチェックし、マテリアルを持つメッシュを選択すると、Kanzi Studio スタジオは自動的に選択したメッシュで使用されているマテリアル、マテリアルタイプ、およびシェーダーを選択します。

    • 変換。Kanzi Studio がターゲット内のオブジェクトをソースからのオブジェクトに置き換える際にオブジェクトの変換で競合が発生した場合、Keep transformations from を次のように設定します:

      • Target Project: <ProjectName> は、ターゲットで使用するオブジェクトの変換を保持します。Kanzi Studio は、Kanzi Studio 内のオブジェクトに対して行ったすべての変換変更を記憶します。

      • Source Project: <ProjectName> は、ソースで使用するオブジェクト変換をインポートします。

      ../../_images/merging-keep-transformations-from.png
    • マテリアル。Kanzi Studio がターゲット内のオブジェクトをソースのオブジェクトで置き換える際にオブジェクトのマテリアルで競合が発生した場合、Keep materials from を次のように設定します:

      • Target Project: <ProjectName> は、ターゲット内のオブジェクトに使用するマテリアルを保持します。Kanzi Studio は、Kanzi Studio 内のオブジェクトに対して行ったすべてのマテリアル変更を記憶します。

      • Source Project: <ProjectName> は、ソース内のオブジェクトに使用するマテリアルをインポートします。

      ../../_images/merging-keep-materials-from.png
  3. ソースからターゲットにマージしたい項目の横にあるチェックボックスを選択してください。選択した項目がターゲットプロジェクトに存在するかどうかに応じて、項目の名前は次のように記述されます。

    • ホワイト フォント。アイテムはソースに存在しますが、ターゲットには存在しません。そのようなアイテムを選択すると、Kanzi Studio がターゲットにそれらを作成します。

    • 赤 フォント。アイテムはソースとターゲットの両方に存在しますが、両者の間で異なります。

      マージを続行する前に、ターゲットまたはソースのいずれかのアイテムを使用することを選択して、競合を解決する必要があります。

    • パープル フォント。アイテムはターゲットに存在しますが、ソースには存在しません。このようなアイテムを選択すると、Kanzi Studio がそれらをターゲットから削除します。

  4. ローカルに保存されたデータを使用するデータソースを持つプロジェクトをマージする場合は、ローカルに保存されたデータを使用するデータソースを持つプロジェクトのマージ を参照してください。

  5. Kanzi Engine Plugins を含むプロジェクトをマージする場合は、Kanzi Engine プラグインを使用したプロジェクトのマージ を参照してください。

  6. 競合を解決します。ターゲットとソースの両方に同じアイテムが含まれていて、そのアイテムのプロパティが異なる場合、どのプロパティを保持するかを決定する必要があります。

    • Resolve to source をクリックして、ソースの値を使用してすべての競合を解決します。

    • Resolve to target をクリックして、ターゲットの値を使用してすべての競合を解決します。

    • Use base project をクリックして、ターゲットとソース間の競合を解決するためのベースプロジェクトを選択します。例えば、Use base project は、初期プロジェクトの修正である2つのプロジェクトやアセットをマージする際に便利です。

      3方向マージを使用する場合、Kanzi Studio での競合解決は次のように機能します。

      • ベースプロジェクトとターゲットの間の違いのみである場合、Kanzi Studio はターゲットの変更を使用します。

      • ベースプロジェクトとソースの間の違いのみの場合、Kanzi Studio はソースの変更を使用します。

      • 変更がベースプロジェクトとターゲットの両方、そしてソースとターゲットの間で発生している場合、コンフリクトを解決する必要があります。

    • 競合を手動で解決するには、ソースツリーでアイテムを選択し、競合ペインで各プロパティについてターゲットで使用されている値を保持するか、ソースの値を保持するかを選択します。

      • いくつかのプロパティを選択し、Resolve to Target をクリックしてターゲットで使用されている値を保持するか、Resolve to Source をクリックしてソースで使用されている値を保持できます。

        ../../_images/merging-manually-resolve-to-target.png
      • Target または Source 列から保持したい単一の値を選択できます。

        ../../_images/merging-manually-resolve-to-source.png

    すべての競合を解決すると、ソースツリー内のアイテム名のフォントカラーが緑色に変わります。

  7. Merge をクリックします。Kanzi Studio は、ソースの内容をターゲットの対応する場所に配置することによって、ソースとターゲットをマージします。

Kanzi Engine プラグインを使用したプロジェクトのマージ

同じ名前で異なるコンポーネントタイプ、データソース、メッセージ、またはプロパティタイプを持つ Kanzi Engine プラグインを含むプロジェクトをマージする場合、Project Merge ツールで競合を解決することはできません。

../../_images/kanzi-engine-plugin-merge-conflict.png

Kanzi Engine プラグインが競合するプロジェクトをマージするには、

  1. Kanzi Studio で、正しいバージョンの Kanzi Engine プラグインを使用していないプロジェクトを開きます。

  2. Library > Kanzi Engine Plugins でプラグインを右クリックし、Update Kanzi Engine Plugin を選択します。

    ../../_images/update-plugin-metadata.png
  3. Kanzi Studio プロジェクトをマージします。Kanzi Studio プロジェクトをマージする を参照してください。

ローカルに保存されたデータを使用するデータソースを持つプロジェクトのマージ

通常、Kanzi Studio プロジェクトにマージするデータソースのデータは、アプリケーションが接続するサーバーによって提供されます。しかし、マージしたいデータソースのソースファイルがソースプロジェクトにローカルで保存されている場合は、<SourceProjectName>/Application/bin から <TargetProjectName>/Application/bin に手動でコピーする必要があります。データファイルをターゲットプロジェクトにコピーしないと、Preview が起動に失敗します。

バージョン管理ツールを使用したプロジェクトのマージ

バージョン管理ツールを設定した後、Kanzi プロジェクトの更新とマージに Kanzi マージツールを使用できます。統合のために、Kanzi は Kanzi マージツールに必要なパラメータを提供するバージョン管理ツールを必要とします。

パラメータータイプの例

ディスクリプション (Description)

私の (MINE)

ソースプロジェクトのパラメーター。

THEIRS

ターゲットプロジェクトのパラメーター。

ベース (Base)

ベースプロジェクトのパラメーター。

マージ済み

マージされたプロジェクトのパラメータ。

Kanzi マージツールをバージョン管理ツールと統合する

Kanzi マージツールをバージョン管理ツールと統合するには:

  1. バージョン管理ツールを構成して、.kzprojファイルに対して Kanzi マージツール (<KanziInstallation>/Studio/Bin/KanziMergeTool.bat) を使用してください。

  2. KanziStudio.exe への絶対パスをバージョン管理ツールに渡します。例えば、C:\Program Files\Rightware\Kanzi\Studio\Bin\KanziStudio.exe。

  3. Kanzi マージツールのバージョン管理ツールパラメータを設定します。例えば、これらのパラメータは MINE、THEIRS、BASE、MERGED と呼ばれることがあります。

SVNバージョン管理ソフトウェアに Kanzi マージツールを統合する

Kanzi マージツールをSVNバージョン管理ソフトウェアと統合するには、Kanzi マージツールを.kzproj拡張子のファイルをマージするための外部プログラムとして追加します。

例えば、Tortoise SVNを使用している場合、TortoiseSVNでSVN > 設定 > 外部プログラム > マージツール > 詳細を選択し、次のように設定します。

  • ファイル名、拡張子、またはmime-typeを.kzprojに

  • 外部プログラムに

    <KanziInstallation>/Studio/Bin/KanziMergeTool.bat "<KanziInstallation>/Studio/Bin/KanziStudio.exe"  %mine %theirs %base %merged
    

    例えば、Kanzi のインストールが C:\Program Files\Rightware\Kanzi にある場合、使用します。

    C:\Program Files\Rightware\Kanzi\Studio\Bin\KanziMergeTool.bat "C:\Program Files\Rightware\Kanzi\Studio\Bin\KanziStudio.exe" %mine %theirs %base %merged
    

関連項目

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

3Dアセットのマージ

アセットパッケージ

プロジェクト (Projects)

Kanzi でバージョン管理システムを使用する