Kanzi 3.9.16 リリースノート

変更点

  • 以下のサードパーティライブラリを更新しました:

    • Zlib を 1.2.13 から 1.3.2 に更新。

    • LibPNG を 1.6.37 から 1.6.55 に更新。

    • FreeType を 2.12.1 から 2.14.3 に更新。FreeType は内部の TrueType インタープリターを更新しました。これにより、テキストのレンダリングにわずかな違いが生じることがあります。

    • HarfBuzz を 8.3.0 から 13.2.1 に更新。この更新によりテキストシェーピングの動作が変わるため、テキストレイアウトに小さな違いが生じることがあります。

プラットフォーム

  • DRM/GBM プラットフォームは、GBM サーフェスのフォーマットを要求された EGL コンフィグに一致させるようになりました。以前は、フォーマットは常に GBM_FORMAT_XRGB8888 でした。

レンダリング

  • 互換性のあるメッシュの動的バッチ処理を追加しました。動的バッチ処理では、互換性のあるメッシュをバッチでレンダリングすることでドローコールを削減します。バッチ処理するメッシュで Dynamic Batching を有効にし、新しい動的バッチ処理用のレンダーパスを使用してレンダリングします。Kanzi Studio には、マテリアルのシェーダーを動的バッチ処理に適合させるための Dynamic Shaders ツールと Dynamic UBO Shaders ツールも用意されています。

    次の図は、シーンの例でのバッチカウントと、30 FPS のパフォーマンステストでのアプリケーションの CPU 使用率という 2 つの別々の例を組み合わせたものです。

    動的バッチ処理によるバッチカウントとアプリケーションの CPU 使用率の比較

    動的バッチ処理により、シーンの例ではバッチカウントが、別のパフォーマンステストではアプリケーションの CPU 使用率が削減されました。

    ダイナミックバッチングの使用 を参照してください。

  • 3D コンテンツ向けの Temporal Anti-Aliasing (TAA) のサポートを追加しました。

    必要な画質と利用可能なレンダリングリソースに応じて、Performance TAA、Default TAA、または Quality TAA を選択します。Quality TAA は、静止した細かい継ぎ目やゆっくり回転するシルエットの安定性を向上させますが、より多くのメモリ帯域幅とグラフィックスメモリを使用します。個々のノードに対して TAA プロファイルを選択したり、モーションベクターの生成を制御したりできます。

    被写界深度など、デプスに基づくポストプロセスに TAA ジッターのないデプスを提供するには、TAA Result Depth Source を使用します。テンポラルアンチエイリアシングの使用 と TAA モードの選択 を参照してください。

  • Kanzi Studio はキューブマップテクスチャの ASTC 圧縮をサポートするようになりました。キューブマップの 6 つの面は共通のイメージプロパティを使用し、これは NegZ イメージ (NegZ Image) プロパティで設定します。ASTC によるキューブマップテクスチャの圧縮 を参照してください。

テキスト (Text)

  • FreeType のフォントフォールバックのサポートを追加しました。

    ../../_images/FreeType-font-fallback-font-Hello.png

    複数の文字体系を含むテキストのフォントを設定するには、Font UScriptCode と Fallback Font Family を使用します。Font UScriptCode に記載されていない文字体系には Extended を使用します。本文テキストと並べて絵文字を表示するには、絵文字を含むフォントファミリーを Fallback Font Family に追加し、その Font UScriptCode を Common に設定します。私用領域 (PUA) の文字には、プライマリのフォントファミリーのフォントが使用されます。

    フォントフォールバックの使用 を参照してください。

  • FreeType フォントエンジンでのカラー絵文字のレンダリングのサポートを追加しました。

    ../../_images/FreeType-color-emoji.png

    Kanzi は CBDT、SBIX、COLRv0 フォントのカラーグリフをレンダリングします。SVG または COLRv1 を使用するフォントはインポートできますが、そのグリフはグレースケールのアウトラインでレンダリングされます。iType ではカラー絵文字のレンダリングは使用できません。

    FreeType によるカラー絵文字の表示 を参照してください。

Kanzi Studio のツール

Kanzi Studio の Tools メニューに以下のツールを追加しました:

  • Dynamic Shaders と Dynamic UBO Shaders は、マテリアルのシェーダーをそれぞれ通常の動的バッチ処理と UBO 動的バッチ処理に適合させます。メッシュごとに個別の値が必要な変数を選択したり、選択内容を更新したり、シェーダーの変更を元に戻したりできます。シェーダー変換ツールを使用する を参照してください。

  • Animation Bake は、FBX モデルのスケルタルアニメーションを GPU スキニング用の EXR テクスチャにベイクし、生成されたリソースをプロジェクトにインポートします。

    ../../_images/animation-bake-preview.gif

    Animation Bake の使用 を参照してください。

  • Binding check は、現在のソリューションのプロパティバインディング式、ステート、ノードパスを、レビュー用の Excel レポートにエクスポートします。プロパティのバインディングをチェックする を参照してください。

  • Image Atlas は、プロジェクトの画像をアトラスにまとめ、画像領域を記述した JSON ファイルを生成します。EXR のみのアトラスをインポートすると、ツールは該当するスケルタルアニメーションのマテリアルを更新してアトラスを使用するようにします。

    ../../_images/kanzi-tools-image-atlas.png

    Image Atlas を使用する を参照してください。

ドキュメント

  • Kanzi API MCP サーバーと Kanzi Documentation MCP サーバーのドキュメントを含む Kanzi AI ツールの使用 セクションを追加しました。これらのサーバーを使用すると、AI アシスタントを Kanzi の API リファレンスとユーザードキュメントに接続できます。

  • Kanzi Documentation MCP サーバーを、読み込まれているすべての Kanzi バージョンをサポートする統合エンドポイント https://docs.mcp.kanzi.com に更新しました。Claude Desktop 用の mcpb ファイルは https://docs.kanzi.com/mcp/kanzi-docs-mcp.zip から入手できるようになりました。Kanzi ドキュメント MCP サーバー を参照してください。

  • docs.kanzi.com の Documentation サイトのサーチと AI アシスタントの機能を全面的に刷新し、必要な情報を、より正確で根拠のある内容とともに、より速く見つけられるようにしました。サーチでは、Kanzi フレームワーク、フィーチャーパック、ツールを含む Kanzi ドキュメント全体から結果が返されるようになりました。サーチ対象を特定のドキュメントセットや Kanzi バージョンに絞り込むこともできるようになりました。新しい Ask Kanzi AI アシスタントは、同じドキュメントと API リファレンスに基づいて質問に回答します。その際、閲覧中のページ (および選択しているテキスト) がフォローアップの質問のコンテキストとして使用されます。サーチの使用方法の詳細については、Documentation の検索 を参照してください。

  • Kanzi API MCP サーバーで、継承関係に基づいて型を列挙できるようになりました。新しい list_derived_types ツールは、基底型から派生するすべての型 (たとえば、Node から派生するすべてのノード型) を、バージョンごとの完全なリストとして一覧表示します。get_type_hierarchy ツールは型の基底型と直接のサブタイプを表示し、list_types ツールは API セットまたはネームスペース (Namespace) 内の型を一覧表示します。これにより、AI アシスタントは「Kanzi のすべてのノード型を一覧表示して」のような、キーワードサーチだけでは回答できなかった質問にも回答できるようになりました。Kanzi API MCP サーバー を参照してください。

  • AI コーディングエージェントに自身を設定させることで、両方の Kanzi MCP サーバーを 1 ステップでセットアップできるようになりました。エージェントに 1 つの指示をペーストするだけで、手動で設定することなく両方のサーバーが登録されます。これは、Claude Code、VS Code、Cursor、Windsurf、Codex をはじめ、MCP をサポートするあらゆるツールで機能します。

    クイックセットアップ を参照してください。

  • Kanzi MCP サーバーは、呼び出し間で選択された Kanzi バージョンを保持しなくなりました。各クエリツールはオプションの version アーギュメント (Argument) を受け取るようになり、set_kanzi_version と set_version は、バージョンを切り替えるのではなく、そのバージョンが利用可能であることを確認するようになりました。使用している Kanzi バージョンを AI アシスタントに伝えると、AI アシスタントは各呼び出しでそのバージョンを渡します。これは Model Context Protocol の 2026-07-28 リビジョンによるもので、サーバーは既存の AI アシスタントが使用する以前のリビジョンとあわせてこのリビジョンを実装しています。Kanzi ドキュメント MCP サーバー と Kanzi API MCP サーバー を参照してください。

Kanzi Engine

  • リストが末尾付近のアイテムまでスクロールされている状態で、データソースがアイテムを一括で置き換えると、トラジェクトリリストボックス 3D (Trajectory List Box 3D) がクラッシュする問題を修正しました。(FMW-993)

  • QNX Screen プラットフォームでのマルチタッチの入力処理が正しくない問題を修正しました。複数の指によるジェスチャーで誤ったタッチステートと座標が報告され、同時に 10 箇所を超えるタッチが破棄され、静止しているタッチから不要な移動イベントが生成されていました。Kanzi は、各タッチポイントを個別に追跡し、タッチステートを正しく報告するようになりました。(INTE-1275)

  • Activity Host がアニメーションなしで Activity ノードをアクティブ化または非アクティブ化したときに、その Activity ノードがステータスを報告しない問題を修正しました。この問題は、たとえば、アクティブな Activity のプレハブを変更したときに発生していました。Activity ノードは、ActivityConcept::ActivityActivatedMessage、ActivityConcept::ActivityDeactivatedMessage、ActivityConcept::StatusChangedMessage のいずれのメッセージも送信していませんでした。そのため、Activated および Deactivated の Activity トリガーが実行されませんでした。(FMW-1334)

    同じ問題により、Activity ノードが Activating ステータスのまま停止することもありました。これは、そのプレハブの State Manager に、Activity Status プロパティが制御するステートグループ (State Group) がある場合に発生していました。そのステートグループに Activity Status の値のいずれかに対応するステートが欠けていたため、トランジションなしで最初のステートに入り、ステータスが一切報告されませんでした。その結果、Activity Host は完了することのないアクティブ化を待ち続けていました。

    Activity Host は、これらのメッセージを送信する前に、アクティブとして報告する Activity も更新するようになりました。そのため、Activity ノードをアクティブ化または非アクティブ化する Activity ステータスメッセージのハンドラーは、その Activity Host の最新のステートを参照できます。

  • スタックレイアウト 2D (Stack Layout 2D) ノード内で、テキストブロック 2D (Text Block 2D) の子ノードをタイポグラフィのベースラインで揃える機能のサポートを追加しました。Baseline Alignment プロパティを有効にすると、異なるフォントサイズを使用する横方向に並べたテキストを揃えることができます。ベースラインでテキストブロック 2D ノードを揃える を参照してください。(CH-1)

  • ドローオブジェクトレンダーパス (Draw Objects Render Pass) を最適化し、冗長なオブジェクトリスト (Object List) の走査とレンダーステートの生成を回避することで、CPU の負荷を軽減しました。(CH-8)

  • Wayland プラットフォームで、要求されたレガシー以外のサーフェスカラースペースがサポートされていない場合に、Kanzi アプリケーションが EGL ウィンドウサーフェスの作成に失敗することがある問題を修正しました。Kanzi は、Legacy カラースペースを使用してサーフェスの作成を再試行するようになり、カラースペースの互換性の問題について、より詳細な警告メッセージとエラーメッセージを表示するようになりました。レガシーカラーワークフローを使用する を参照してください。(CH-10)

  • 連続したタッチ入力によって、スクリーンが応答しなくなる、またはフリーズすることがある問題を修正しました。(CH-18)

  • メインスレッドの管理情報が古い場合に、GL のサスペンド中に ResourceManager::wait が無期限にハングし、シャットダウン中に Kanzi がハングする (ANR) ことがある問題を修正しました。(CH-20)

  • アイドルステートでのフレームレート補正の仕組みが、アニメーションのフレーム間隔の安定性に影響する問題を修正しました。(CH-32)

  • メインスレッドの管理情報が古い場合に、GL のサスペンド中に ResourceManager::wait が無期限にハングし、シャットダウン中に Kanzi がハングする (ANR) ことがある問題を修正しました。(CH-35)

  • タッチポイントの数が変化したときに、ピンチジェスチャーとパンジェスチャーを動的に切り替えられない問題を修正しました。(CH-36)

  • ダイナミックバッチングレンダーパス (Dynamic Batching Render Pass) を最適化し、不要なレンダーステートの作成によって発生する、まれなフレーム時間の急増を回避しました。(CH-44)

Kanzi Java API

  • Node::addTunnelingMessageHandler メソッドによるメッセージハンドラーの登録が原因で発生するメモリリークを修正しました。

  • Kanzi ネイティブクラスのオブジェクトを作成したときに発生するメモリリークを修正しました。

Kanzi Studio

  • 一部のコンピューターで Kanzi Studio が起動時にクラッシュする問題を修正しました。(CH-48)

関連項目

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

既知の問題