Kanzi 3.6.8 マイグレーションガイド¶
このマイグレーションガイドを使用して、Kanzi アプリケーションを Kanzi 3.6.7 から 3.6.8 に更新してください。
アニメーションなしでのステート間の遷移¶
State Manager でアニメーションのないトランジションを使用する場合、Kanzi 3.6.8では State Manager が Transition Started および Transition Finished メッセージを送信します。アプリケーションがこれらのメッセージを受信しないことに依存している場合、アプリケーションを Kanzi 3.6.8にアップグレードする際に、この機能の変更を考慮してアプリケーションを修正してください。
スキンメッシュへの変更¶
Kanzi アプリケーションでスキンメッシュを使用している場合、アプリケーションを Kanzi 3.6.8 に移行する際に、メッシュデータとスケルトンノードの変換を更新してください。
Library の必要な項目のみを更新し、既存のプロパティの値を保持するには、fbx または dae ファイルからスキンメッシュをマージします。
Library > Resource Files > 3D Assets でスキンメッシュを右クリックし、Merge 3D Asset File を選択します。3Dアセットのマージ を参照してください。
Merge ツールで:
スキンメッシュの横にあるチェックボックスを選択します。これにより、メッシュデータが更新されます。
既存の Kanzi Studio プロジェクトの変換と異なるスケルトンノードを選択します。
Merge ツールで Resolve to source をクリックし、次に Merge をクリックします。
マージ後、インポートされた Scene ノードに対するプロパティの追加や値の変更などの変更がそのままであることを確認してください。
マージしたスキンメッシュに使用するマテリアルの頂点シェーダー内で、スキニングを計算するシェーダーの部分を、Kanzi 3.6.8で機能するコードに置き換え、Shader Source Editor で Save をクリックします。
たとえば、置き換えます
localToSkinMatrix = kzWorldMatrix * localToSkinMatrix; vec4 positionWorld = localToSkinMatrix * vec4(kzPosition.xyz, 1.0); vViewDirection = positionWorld.xyz - kzCameraPosition; vec4 Norm = mat4(localToSkinMatrix[0], localToSkinMatrix[1], localToSkinMatrix[2], vec4(0.0, 0.0, 0.0, 1.0)) * vec4(kzNormal.xyz, 0.0); vN = normalize(Norm.xyz); gl_Position = kzProjectionCameraWorldMatrix * vec4(positionWorld.xyz, 1.0);
以下に置き換えます。
mat4 localToWorldMatrix = kzWorldMatrix * localToSkinMatrix; vec4 positionWorld = localToWorldMatrix * vec4(kzPosition.xyz, 1.0); vViewDirection = positionWorld.xyz - kzCameraPosition; vec3 V = normalize(vViewDirection); vec4 Norm = mat4(localToWorldMatrix[0], localToWorldMatrix[1], localToWorldMatrix[2], vec4(0.0, 0.0, 0.0, 1.0)) * vec4(kzNormal.xyz, 0.0); vN = normalize(Norm.xyz); gl_Position = kzProjectionCameraWorldMatrix * localToSkinMatrix * vec4(kzPosition.xyz, 1.0);