Kanzi 3.8 リリースノート

新機能 (New features)

  • Property Target Easing Interpolator

    プロパティのターゲット値を動的に設定し、イージング関数を使用して現在の値をターゲット値に時間をかけて補間したい場合は、Property Target Easing Interpolator を使用します。イージング関数を使用すると、より快適なユーザーエクスペリエンスを提供するリアルなアニメーションを作成できます。

    イージング関数を使用してプロパティ値を補間する を参照してください。

  • バインディング式の新機能

    バインディング式では、今や次のものを使用できます:

    • 三角関数

    • リレーショナル演算子

    • 論理演算子

    • アクセサ関数

    • ベクトル関数

    • ベクトルとクォータニオンの乗算

    バインディング式リファレンス を参照してください。

    ../../_images/binding-operations.png
  • Asset Packages

    アセットパッケージを使用すると、UIコンポーネント、マテリアル、ブラシ、スタイル、テクスチャなどのコンテンツを含むアセットライブラリを作成できます。アセットパッケージを使用して、このコンテンツを異なる Kanzi Studio プロジェクトで簡単に利用できるようにしたり、会社内で共有してすべての Kanzi アプリケーションで使用できるようにしたりします。

    アセットパッケージ を参照してください。

    ../../_images/myassetsource.png
  • Cubemap レンダーパス

    Cubemap レンダーパスを使用して、3D ノードの表面に周囲環境の動的な反射を作成します。

    キューブマップ反射の作成 を参照してください。

    ../../_images/preview-cubemap-reflections.gif

機能改善

  • Kanzi は、フォントファイルをフォントファミリリソースとして扱うようになりました。これには任意の数のフォントファイルを含めることができます。

    • Kanzi 内で渡されるフォントスタイルプロパティ値のコレクションを含むために、FontStyleDefinition クラスを導入しました。

    • TextFormat クラスおよび TextLayouter クラスからフォントスタイルのセッターおよびゲッター関数を FontStyleDefinition クラスに移動しました。

    • FontRuntime クラスを導入し、FontStyleDefinition を実行時にフォントファイル (FontFile) にマッピングします。FontRuntime は不変です。フォントスタイルが変更された場合、新しい FontRuntime オブジェクトを FontManager からリクエストしてください。

    • FontRuntime を行うためのヘルパー関数を含む FontStyleConcept クラスを導入しました。

    • TextFormat、TextLayouter、および TextShaper は、Font の代わりに FontRuntime を取るようになりました。

    • Text Block ノードがテキストをレンダリングするために使用するフォントファミリーのフォントファイルを設定する Font Weight および Font Style プロパティで、フォントの外観を設定できるようになりました。

    • Font プロパティ (Node::FontProperty) は、Font Family プロパティ (Node::FontFamilyProperty) に置き換えられます。

    Kanzi アプリケーションを変更されたAPIに移行する方法については、フォントの変更 を参照してください。

  • バインディング式の機能が向上しました:

    • 行列と変換関数 INVERSE および TRANSFORM を追加しました。

    • 行列と行列とSRT変換間の変換のサポートが追加されました。

    • リソースIDを使用してテキストリソースにアクセスできるようになりました。

    バインディング式リファレンス を参照してください。

  • リソース読み込みの改善:

    • ResourceManager::LoadTask には、LoadAndFinish と FinishOnly のロードタスクタイプがあります。FinishOnly ロードタスクはローダースレッドをスキップし、Kanzi がそれらを直接メインスレッド FinishingQueue にキューします。

    • ロードタスクは、依存関係のバックグラウンドロードをトリガーできるようになりました。これにより、ローダースレッドの使用が改善され、ロード時間が短縮され、バックグラウンドロードがスムーズになります。

    • これらのリソースタイプを追加して、ロードタスクとロードタスクの依存関係を使用しました:

      • Brush

      • Material

      • Mesh

      • Render Pass Prefab

      • State Manager

  • kzbファイル内でリソースディクショナリが保存される方法が改善されました。これにより、ローカライゼーションテーブルのような大きく未使用のリソースディクショナリを持つkzbファイルの読み込み時間が短縮されます。

  • setProperty、addPropertyModifier、removePropertyModifier、copyLocalValue のための速度最適化を導入しました。

  • Kanzi Engine APIを導入し、UIが一時停止されたことをアプリケーションに通知できるようにしました。

    • suspendOverride から Kanzi が呼び出すオーバーライド関数 onSuspend を追加しました。

    • UIのサスペンションをキャンセルする機能を追加しました。

  • Kanzi Engine APIでは、アプリケーション内のすべての登録されたプロパティタイプのリストを保持する PropertyTypeRegistry が導入されました。kanzi::beginPropertyTypes と kanzi::endPropertyTypes を参照してください。

  • ResourceManager のデストラクタを改善し、参照されているリソースの完全なリストを出力するようにしました。

  • これらのレンダーターゲットフォーマットを追加しました:

    • ARGB 8ビット (A8R8G8B8_UNORM)

    • アルファ8ビット (A8_UNORM)

    • グレースケール8ビット (L8_UNORM)

    • グレースケールアルファ8ビット (L8A8_UNORM)

    • アルファルミナンス8ビット (A8_L8_UNORM)

  • プレハブ依存関係の収集が改善されました。プレハブで使用される State Managers およびリソースIDについて、Prefab View 非同期プレハブの変更は、バックグラウンドでリソース依存関係をロードできるようになりました。

  • フォントエンジンのバックエンドをプラグインに変換し、Kanzi Studio Preview において FreeType と iType の両方のフォントエンジンを同時にインストールできるようにしました。動的ライブラリをサポートするプラットフォームでは、アプリケーションの起動時にフォントエンジンを選択することができます。フォントエンジン を参照してください。

  • Kanzi Studio のトリガーは現在プロジェクトアイテムであり、これにより次のことが可能になります。

    • トリガーをドラッグして並べ替えます

    • トリガー、アクション、およびトリガー条件をコピーして貼り付ける

    • アイテムのコンテキストでプロパティを修正する

  • Performance HUD の改善:

    • Performance HUD の位置を設定できるようになりました。PerformanceInfoPosition を参照してください。

    • Performance HUD では、タイマーサブスクリプション、定期タスク、およびアニメーションの数を確認できます。PerformanceInfoLevel を参照してください。

  • Overdraw のビジュアライゼーションを復活させました。

    Overdraw のビジュアライゼーションは、Kanzi が同じピクセルに複数回レンダリングされる領域を示します。より明るい緑色は、オーバードローの量が多いことを示しています。

    アプリケーションのパフォーマンスのトラブルシューティング を参照してください。

    ../../_images/overdraw-enabled.png
  • Kanzi がハードウェアキーを処理する方法に以下の改善を加えました。

    • KeyManipulator クラスが導入されました。KeyManipulator は、ユーザーがキーを押したり離したりしたときに KeyPressedMessage、KeyReleasedMessage メッセージをディスパッチし、キャンセル時には KeyCanceledMessage メッセージをディスパッチします。Keyboard.KeyDown および Keyboard.KeyUp メッセージは廃止されました。処理したい各キーに専用のキー操作子を使用して、KeyManipulator メッセージを使用してください。

    • NavigationManipulator クラスは、↑ (上矢印)、↓ (下矢印)、→ (右矢印)、← (左矢印)、Home、End、Page Up、Page Down キーボードキーなどのナビゲーションキーを処理するようになりました。

    • FocusNavigationManipulator クラスは、フォーカスチェーンと方向フォーカスナビゲーションで使用されるキーを処理するようになりました。このマニピュレータをフォーカススコープノードで使用してください。フォーカススコープにマニピュレータを設定するには、FocusScope を使用します。

    Kanzi アプリケーションを変更された API に移行する方法を学ぶには、ハードウェアキー処理の変更 を参照してください。

  • リファクタリングされた MessageType:

    • kzuMessageType を AbstractMessageTypeDescriptor に置き換えました。

    • MessageType は、引数 metaclass を自動的にアタッチするようになりました。これにより、メッセージタイプをマクロ KZ_METACLASS_MESSAGE_TYPE を使用して所有クラスにアタッチすることが任意になります。

    • kzb登録メッセージの場合、メッセージ引数クラスは MessageArguments に固定されています。

    • AbstractMessageType をパラメーターとして受け取る MessageArguments のコンストラクタを Node::dispatchAbstractMessage に置き換えました。

  • ノードにアタッチされたマニピュレータを維持するために、入力マニピュレータノードコンポーネントが導入されました。これらのコンポーネントは、Node Components > Input Manipulators: Click Manipulator、Multi-Click Manipulator、Long-Press Manipulator、Pan Manipulator、Key Manipulator で見つけることができます。入力マニピュレータの使用 を参照してください。

    ../../_images/input-manipulators.png
  • PanManipulator は、これらのメッセージで速度を報告します。

    • PanManipulator::MovedMessage

    • PanManipulator::EnteredMessage

    • PanManipulator::LeftMessage

    • PanManipulator::FinishedMessage

  • Composition Target Render Pass で深度レンダーターゲットの深度比較モードを設定するための機能と Depth Compare Function プロパティを追加しました。

    ../../_images/depth-compare-function.png
  • Kanzi Studio のユーザビリティの向上:

    • Kanzi Studio の Node Components 内のアイテムは、ツリーコントロールを使用するようになりました。この改善により、柔軟性が向上し、Node Components ウィンドウで作業する際のポップアップウィンドウの数が減少します。

    • Kanzi Studio からデフォルトのWindowsアプリケーションでファイルを直接開くことができるようになりました。Library > Resource Files でファイルを右クリックし、Open With Default Windows App または Open With... コマンドを選択します。

      ../../_images/open-with.png
    • State Manager、State Tools、および Styles のために Kanzi Studio アイコンを更新しました。

変更点

  • PVRTexToolをバージョン4.20.0に更新しました。

  • メジャーおよびマイナーリビジョンを伴うkzbフォーマットのバージョニングを導入しました。Kanzi 3.8のkzbフォーマットバージョンは11.0です。

  • Kanzi Engine プラグインメタデータ属性 SortingIndex の構文を metadata.sortingIndex に変更しました。sortingIndex を参照してください。

  • 削除されたレガシー機能:

    • レガシーkzbフォーマットのサポート

    • kzs_thread

    • kzc_file と kzc_input_stream

    • kzc_output_stream

    • kzs_mmap

  • Kanzi Studio のカスタム Message Types は、現在 Property Types から分離されています。Kanzi Studio では、Library > Message Types にそれらを見つけることができます。

    ../../_images/library-message-types.png
  • Kanzi Studio でバインディング操作の名前と大文字小文字を統一しました。

  • Kanzi 3.8 用のプラットフォームパッケージ qnx700_screen_aarch64 は ES2 をサポートしていません。

  • Kanzi Studio は、Rightware に使用状況レポートをより定期的に送信するようになり、これにより Kanzi Studio を改善し続けることができます。

Kanzi アプリケーションを変更されたAPIに移行する方法については、Kanzi 3.8 マイグレーションガイド を参照してください。

ドキュメント

フィックス (Fixes)

ID

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

エリア

102522

スキンメッシュのインポートとボーンマトリックスの計算の修正。

スキンメッシュへの変更 を参照してください。

Kanzi Engine

10852, 10731, 10651

破損したPNGおよびJPEG画像の処理が改善されました。Kanzi が破損したPNGまたはJPEG画像を読み込もうとしたときに、例外をスローするようになりました。

Kanzi Engine

10678

印刷不可能な文字がレンダリングされる原因となっていた問題を修正しました。この修正の前:

  • FreeType フォントエンジンのバックエンドは、非印刷可能な文字をレンダリングに影響を与えないゼロ幅のレンダリング可能なグリフとしてレンダリングしました。

  • iType フォントエンジンバックエンドは、非印刷文字を見つからないグリフを使用してレンダリングしました。

10688

カスタムトランジションアニメーションや一部のトリガーおよびアクションを持つ State Manager のロード時に、リソースローダースレッドがアクティブな場合にアサートが発生する問題を修正しました。

Kanzi Engine

10624

破損または不完全なUTF-8文字列入力の処理を修正しました。

Kanzi Engine

10539

iTypeフォントエンジンを使用する場合、Kanzi はカーニングをWTShaperに委任します。WTShaperはフォントのGPOSテーブルからカーニングデータを読み取り、GPOSテーブルにカーニングが定義されていないフォントの場合、フォールバックとしてkernテーブルを使用します。

Kanzi Engine

10487

Preview は、State Manager 内のプロパティ値から読み取る SetPropertyAction でノードをパッチする際に、もはや終了しません。

Kanzi Engine

10320

すべてのスタートアップパフォーマンスプロファイラーが表示されない問題を修正しました。

Kanzi Engine

10193

ステートマネージャーは、状態間の遷移にアニメーションを使用しない場合、Transition Started および Transition Finished メッセージを送信します。アニメーションなしでのステート間の遷移 を参照してください。

Kanzi Engine

10178

スケールされたノードのコンテンツが別のノードに表示される問題を修正しました。

Kanzi Engine

10172

MessageArguments インスタンスが静的ライフタイムを持つ場合にメモリリークを引き起こす問題を修正しました。

Kanzi Engine

10125

State Manager がステート遷移中に Left State および Entered State メッセージをディスパッチする際、これらのメッセージにStateGroup引数を設定するようになりました。

Kanzi Engine

10107

不可視のModel3Dをnullptrに置き換えた後にテクスチャリソースの解放を妨げていた問題を修正しました。

Kanzi Engine

9955

Fixed FromToAnimation がすべてのケースで期間に To 値を返すように修正しました。特に、期間がゼロのときの時間ゼロで。

Kanzi Engine

10647

Preview が誤って State Tools が Edit モードであると表示される問題を修正しました。

Kanzi Studio

関連項目

Kanzi 3.8 マイグレーションガイド

既知の問題