Kanzi 3.8 リリースノート¶
新機能 (New features)¶
Property Target Easing Interpolator
プロパティのターゲット値を動的に設定し、イージング関数を使用して現在の値をターゲット値に時間をかけて補間したい場合は、Property Target Easing Interpolator を使用します。イージング関数を使用すると、より快適なユーザーエクスペリエンスを提供するリアルなアニメーションを作成できます。
イージング関数を使用してプロパティ値を補間する を参照してください。
バインディング式の新機能
バインディング式では、今や次のものを使用できます:
三角関数
リレーショナル演算子
論理演算子
アクセサ関数
ベクトル関数
ベクトルとクォータニオンの乗算
バインディング式リファレンス を参照してください。
Asset Packages
アセットパッケージを使用すると、UIコンポーネント、マテリアル、ブラシ、スタイル、テクスチャなどのコンテンツを含むアセットライブラリを作成できます。アセットパッケージを使用して、このコンテンツを異なる Kanzi Studio プロジェクトで簡単に利用できるようにしたり、会社内で共有してすべての Kanzi アプリケーションで使用できるようにしたりします。
アセットパッケージ を参照してください。
Cubemap Render Pass
Cubemap Render Pass を使用して、3Dノードの表面に環境の動的な反射を作成します。
キューブマップ反射の作成 を参照してください。
機能改善¶
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 が同じピクセルに複数回レンダリングされる領域を示します。より明るい緑色は、オーバードローの量が多いことを示しています。
アプリケーションのパフォーマンスのトラブルシューティング を参照してください。
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 で見つけることができます。入力マニピュレータの使用 を参照してください。
PanManipulatorは、これらのメッセージで速度を報告します。PanManipulator::MovedMessagePanManipulator::EnteredMessagePanManipulator::LeftMessagePanManipulator::FinishedMessage
Composition Target Render Pass で深度レンダーターゲットの深度比較モードを設定するための機能と Depth Compare Function プロパティを追加しました。
Kanzi Studio のユーザビリティの向上:
Kanzi Studio の Node Components 内のアイテムは、ツリーコントロールを使用するようになりました。この改善により、柔軟性が向上し、Node Components ウィンドウで作業する際のポップアップウィンドウの数が減少します。
Kanzi Studio からデフォルトのWindowsアプリケーションでファイルを直接開くことができるようになりました。Library > Resource Files でファイルを右クリックし、Open With Default Windows App または Open With... コマンドを選択します。
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_threadkzc_fileとkzc_input_streamkzc_output_streamkzs_mmap
Kanzi Studio のカスタム Message Types は、現在 Property Types から分離されています。Kanzi Studio では、Library > Message Types にそれらを見つけることができます。
Kanzi Studio でバインディング操作の名前と大文字小文字を統一しました。
Kanzi 3.8 用のプラットフォームパッケージ qnx700_screen_aarch64 は ES2 をサポートしていません。
Kanzi Studio は、Rightware に使用状況レポートをより定期的に送信するようになり、これにより Kanzi Studio を改善し続けることができます。
Kanzi アプリケーションを変更されたAPIに移行する方法については、Kanzi 3.8 マイグレーションガイド を参照してください。
ドキュメント¶
...を使用する セクションに、Android 用の Kanzi アプリケーション開発に特化したトピックを追加しました。Kanzi アプリケーションをAndroid向けに開発する を参照してください。
Kanzi Studio でポストプロセッシングエフェクトを作成する方法についての指示を追加しました。ポストプロセッシングエフェクトの作成 を参照してください。
独自のノードコンポーネントを作成する方法に関する手順を追加しました。カスタムノードコンポーネントの作成 をご覧ください。
フィックス (Fixes)¶
ID |
ディスクリプション (Description) |
エリア |
|---|---|---|
102522 |
スキンメッシュのインポートとボーンマトリックスの計算の修正。 スキンメッシュへの変更 を参照してください。 |
Kanzi Engine |
10852, 10731, 10651 |
破損したPNGおよびJPEG画像の処理が改善されました。Kanzi が破損したPNGまたはJPEG画像を読み込もうとしたときに、例外をスローするようになりました。 |
Kanzi Engine |
10678 |
印刷不可能な文字がレンダリングされる原因となっていた問題を修正しました。この修正の前:
|
|
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 |