Houdini 20.0 デジタルアセット

2つのタイプのアセットバージョン管理

歴史的な理由で、Houdiniは色々な使用場面に対応できるようにアセットのバージョン管理のための2つの異なるシステムをサポートしています。どちらか一方または両方を同時に使用することができます。

On this page

概要

Houdiniは色々な使用場面に対応できるようにアセットのバージョン管理のための2つの異なるシステムをサポートしていますが、それらのシステムは互換性があります:

  • バージョン番号をアセットの内部名の一部として組み込むことができます。例えば、mynode::2.0。これは、アセットをバージョン毎に完全に別のアセットにします。

    これによって、同じシーンファイル内に異なるバージョンのアセットを共存させることができます。ユーザがノードを作成すると新しいバージョンのノードが使用されますが、既存ノードは変更されることなく古いバージョンのまま以前通りの方法で作業を続けることができます。

    • ノードの挙動、入力の解釈、パラメータインターフェースなどに対して何も破壊することなく大改修することができます。

    • 手動で古いノードを更新する必要がありません。

    • 自動的に古いノードをアップグレードする仕組みは用意していません。

  • アセット定義で Version フィールドを使用することができます。アセットインスタンスは、アセットのバージョン文字列を読み込んだ時にシーンファイルが保存されてからそのバージョン文字列に変更があった場合に、 Upgrade Handler Script (そのスクリプトがあれば)を実行します。このスクリプトは、ノードインスタンスを編集して、新しいバージョンに 変換 することができます。

    これは、通常では大改修ではなくマイナーな下位互換のあるアセット変更、特に新しいパラメータの追加で役立ちます。これはスタジオ環境でTDが作業を行ない、アーティストのツールを自動的にアップグレードする場合に非常に役立ちます。

    • 既存アセットを新しい(下位互換のある)機能を持ったアセットに自動的にアップグレードすることができます。

    • アセットを更新する度に、アップグレードスクリプトを手動で更新し、古いインスタンスを新しいインスタンスに変更する作業をスクリプト化する必要があります。スクリプトがいくつかの古いバージョンのどれかを最新バージョンにアップグレードする機能を維持する必要性があるかもしれません(例えば、スクリプトがバージョン1, 2, または 3のいずれかをバージョン4に更新できるようにする必要があります)。

2つ目のシステムは、歴史的にネームスペースが追加される前のバージョン管理ソリューションでした。これが今でも役立つ場合のために残しています。

Note

アセットの変更をユーザに伝搬するような集中管理システム(例えば、ネットワークドライブやバージョンコントロール)があるスタジオでは、どちらのシステムも自動的に他のユーザのアセットだけをアップグレードします。

How to

To...Do this

下位互換バージョンのアセットを新しく作成する

新しくアセットを作成します。その内部名を選択する時、以前のバージョンと同じ名前(とネームスペース)を使用しますが、それよりも高いバージョン番号を付けます。

例えば、古いアセットがmynamespace::mynodeなら、新しいアセットの名前をmynamespace::mynode::2.0にします。

詳細は、ネームスペースとバージョンを参照してください。

古いバージョンを新しいバージョンに自動的にアップグレードするイベントハンドラーを作成する

  1. アセットのType Propertiesの( Basic タブ上の) Version フィールドを変更する。

    (このフィールドの内容をどのように変更するべきかシステムを検討したほうが良いでしょう。例えば、単に番号を増分させるだけにするとか。)

  2. アセットのScriptsタブでは、アセットのSyncNodeVersionイベントハンドラーを作成/編集することができます。( Edit as をHScriptではなくPythonに設定することを忘れないでください。)

    このスクリプトは、アセットのインスタンスがそのアセットのバージョン文字列を読み込んだ時にシーンファイルが保存されてからそのバージョン文字列に変更があった場合に実行されます。

    このハンドラーでは、kwargs["old_version"]を使用することで古いバージョン文字列を取得し、kwargs["current_version"]を使用することで現行バージョン文字列を取得し、kwargs["node"]ではノードインスタンスのhou.Node参照を取得することができます。このスクリプトは、古いバージョンのノードを現行バージョンのノードに変更するのに必要な変更を把握し、そのノードに対してそれらの変更を実行する必要があります。

    一般的な情報に関しては、アセットのイベントスクリプトの記述の方法を参照してください。

デジタルアセット

はじめよう

  • デジタルアセットの紹介

    Houdiniでは、デジタルアセットと呼ばれる再利用可能なカスタムノードに作業を変更することができます。

アセットの作成

次のステップ