プロパティタイプを作成する¶
プロパティは、ノードの状態、見た目、動作を指定したり調べたりする手段となります。例えば、プロパティは色を定義したり、ボタンが押されているかどうかを示したり、アイテムの配置を指定したりすることができます。
プロパティは、Kanzi ノードのデータにアクセスするための統一された方法を提供し、多くの Kanzi サブシステムがデータを操作できるようにします。これにより、たとえば、プロパティ値をアニメーション化したり、プロパティ値間のバインディングを提供したり、プロパティ値の変化を監視したりすることができます。
Kanzi の各プロパティは、プロパティタイプによって記述されます。プロパティタイプは、プロパティの名前とカテゴリ、およびプロパティが持つことができるデータの種類と値を記述します。
アニメーションは浮動小数点数のみをアニメートできることに注意してください。そのため、複数の値を持つプロパティ(例えば、色や変換)をアニメートするには、プロパティデータを一連の浮動小数点プロパティデータ属性に分割することができます(例えば、色プロパティタイプのRGBAチャンネル)。
カスタムプロパティタイプのための名前空間の設定と使用¶
カスタムプロパティタイプの名前は、Kanzi アプリケーション内でユニークでなければなりません。異なる Kanzi Studio プロジェクトからエクスポートされた kzb ファイルを Kanzi アプリケーションで使用する場合、そのアプリケーション内でカスタムプロパティタイプの名前がユニークであることを保証するために、各 kzb ファイルでカスタムプロパティタイプに異なる名前空間を使用してください。
Kanzi Engine プラグインでプロパティタイプを作成する際には、同じ Kanzi アプリケーションで使用するすべてのプラグインと Kanzi Studio プロジェクトにわたって一意の名前を使用してください。
Kanzi では、これらの名前を使用してアプリケーション内のプロパティタイプにアクセスできます。
Namespace.Name は Kanzi Engine API を使用してプロパティタイプにアクセスします。
例えば、Gauges kzbファイルの名前空間で Speed という名前のプロパティタイプにアクセスするには、Gauges.Speed を使用します。
シェーダーでプロパティタイプにアクセスするには、Name を使用します。
例えば、SpeedNeedle。
バインディングでプロパティタイプにアクセスするには、Namespace.Name または Name を使用します。
Display Name は、Library > Property Types で確認できるユーザーフレンドリーな名前です。
例えば、Speed Needle。
Kanzi Studio プロジェクトはデフォルトでプロジェクト名をデフォルトのプロパティタイプの名前空間として使用します。プロジェクト名にスペースが含まれている場合、Kanzi Studio は名前空間名からそれらを削除します。
例えば、プロジェクト名が Primary gauges の場合、デフォルトでプロジェクトプロパティの名前空間は Primarygauges です。そのプロジェクト内のプロパティ名が Speed の場合、プロパティのフルネームは Primarygauges.Speed です。
プロジェクトプロパティの名前空間を変更するには、メインメニューの Kanzi Studio で Project > Properties を選択し、Property Namespace プロパティを使用したい名前空間に設定します。
Kanzi Studio はデフォルトで、作成するすべての新しいカスタムプロパティタイプに新しいプロジェクトプロパティネームスペースを使用します。
プロパティタイプの作成¶
プロパティタイプを作成するには、以下のようにします。
Library で、Alt を押しながら右クリック Property Types を選択し、Property Type を選択します。
New Property Type ウィンドウで、次を設定します。
Naming カテゴリで、以下を設定します。
Kanzi Engine APIを使用してプロパティにアクセスする際に、その名前を設定するための Name。
プロパティタイプ名には含めることができません:
プロパティ名の先頭または末尾にあるピリオド (.)
スペース
タブ (Tabs)
スラッシュ (/)
バックスラッシュ ()
ハッシュ (#)
波括弧を開くまたは閉じる ({})
アットサイン (@)
Kanzi Studio で使用する際にプロパティの名前を設定するには、Display Name を使用します。Name プロパティで設定した名前と同じ名前を使用するには、<Name> を入力します。
Category は、Kanzi Studio が Properties および Add Properties ウィンドウでどのカテゴリに表示されるかを設定します。
Kanzi Studio でプロパティタイプをすばやく見つけるには、Category プロパティを使用します。
Tooltip は、Properties ウィンドウと Add Properties ウィンドウでプロパティタイプに対して Kanzi Studio が表示するツールチップテキストを設定します。Kanzi Studio は、ツールチップテキストにプロパティタイプの Kanzi Engine 名を追加します。
ヒント
Properties からカスタムプロパティタイプに素早くアクセスするには、カスタムプロパティタイプを右クリックし、Select in Library を選択します。
Data Type を使用して、プロパティタイプが保持するデータの種類を設定します。以下のいずれかのデータタイプを使用できます。
Boolean は値 true または false を格納し、型固有のプロパティを持ちません。
Color は、赤、緑、青、およびアルファチャンネル (RGBA) の色情報を格納します。
Kanzi Studio では色の値を色相、彩度、輝度、アルファチャンネル(HSLA)で設定できますが、Kanzi ではそれらをRGBAで保存します。つまり、アニメーションできるのはRGBAの値のみです。
Enumeration は、一意のキーが一意の整数に解決されるように、一連のキーと値のペアを格納します。
Float は単精度浮動小数点値を格納します。
Integer は32ビット符号付き整数値を格納します。
Matrix 3x3 は、2Dノードの変換を保存するために使用できる浮動小数点数の3x3行列を保存します。
Matrix 4x4 は、3Dノードの変換を保存するために使用できる浮動小数点数の4x4行列を保存します。
Project Item はノードやリソース、リソースIDへの参照を格納し、型固有のプロパティを持ちません。Project Item データ型はアプリケーションコード内でのみ使用でき、Kanzi はプロパティをターゲットノードまたはリソースのパスに文字列形式で変換します。
Property Type は他のプロパティタイプへの参照を格納します。Property Type データタイプはアプリケーションコード内でのみ使用でき、Kanzi はプロパティをターゲットプロパティタイプの名前に文字列形式で変換します。
Range は値のコレクションを格納します。
Text はプレーンテキストを格納し、型固有のプロパティを持ちません。
ユーザーがノードやリソースを選択したり、リソースIDを設定したりできるプロパティタイプを作成したい場合は、Project Item プロパティタイプを使用してください。
Vector 2D は、2つの浮動小数点数のベクトルを格納します。
Vector 3D は3つの浮動小数点数のベクトルを格納します。
Vector 4D は4つの浮動小数点数のベクトルを格納します。
Editor を使用して、Kanzi Studio の Properties ウィンドウでプロパティタイプの値を設定するために使用するエディタを選択します。使用可能なエディタはデータの型によって異なります。
Is Inherited フラグを使用して、ノードがこのプロパティタイプの値を祖先ノードから継承できるかどうかを設定します。
Affect Layout フラグを使用して、このプロパティタイプがノードのレイアウトに影響するかどうかを設定します。Affect Layout を有効にすると、ノードでこのプロパティの値が変更された際に、Kanzi はそのノードのレイアウトを再計算します。レイアウトの再計算はアプリケーションのパフォーマンスを低下させることに注意してください。
例えば、コンテンツをアニメーションさせてその境界ボックスのサイズを変更するためにカスタムプロパティタイプを使用している場合、Affect Layout 設定を有効にします。この設定により、プロパティはレイアウトとレンダリングを更新します。
Affect Rendering フラグを使用して、このプロパティタイプがノードのレンダリングに影響するかどうかを設定します。Affect Rendering を有効にすると、ノードでこのプロパティの値が変更された際に、Kanzi はそのノードのレンダリングを更新します。作成するプロパティがレイアウトやサイズに影響しない場合、このプロパティで実現したい効果を確認するには Affect Rendering を有効にする必要があります。たとえば、このプロパティを使用して Text Block ノードの色を設定する場合は、Affect Rendering を有効にします。アプリケーションアイドル状態 を参照してください。
Material Rule Property フラグを使用して、このプロパティタイプがマテリアルルールに影響を与えられるかどうかを設定します。マテリアルルールでカスタムプロパティタイプを使用する を参照してください。
Type Specific カテゴリでは、このプロパティのデータ型に特有のパラメータを設定できます。
例えば、プロパティタイプの下限値と上限値を設定することができます。
Value セクションでは、プロパティのデフォルト値とソートインデックスを設定できます。
Save をクリックします。
Kanzi Studio は、プロパティタイプの Name フィールドで設定した Namespace の名前が付いたフォルダに、そのプロパティタイプを Library > Property Types 内で保存します。
これで、Kanzi の他のプロパティと同様に、このプロパティタイプをノードに追加して使用できます。Kanzi Studio でプロパティを使用する を参照してください。
すべてのカスタムプロパティタイプをプロジェクトプロパティの名前空間に移動する¶
Kanzi Studio プロジェクト内で、すべてのカスタムプロパティタイプをプロジェクトプロパティネームスペースに移動するには、Library で右クリックし、Property Types を選択して Add Property Namespace to Property Types を選択します。
Properties ウィンドウでプロパティカテゴリを並べ替える¶
Properties ウィンドウでプロパティカテゴリの順序を設定するには、Edit > User Preferences を選択し、Properties タブの Property Category ドロップダウンでプロパティカテゴリを選択し、プロパティカテゴリの位置を設定します。
例えば、Transform 2D と独自の My Property Category カテゴリを、Description カテゴリの後に表示するように設定できます。
注釈
General と Description プロパティカテゴリは常に上部に表示されます。