アニメーション (Animations)

アニメーションはオブジェクトのプロパティを変更します。アニメーションは入力値を出力プロパティ値にマッピングします。

Kanzi Studio はアニメーションを Library > Animations に保存します。

Kanzi では、次のことができるキーフレームアニメーションを作成できます。

  • ノードの位置を定義するプロパティの値を変更することで、ノードの位置をアニメーション化します。例えば、位置をアニメーション化することで、アプリケーションの側面からメニューを表示させたり、ユーザーがクリックしたときにボタンをバウンドさせたりすることができます。

  • ノードの外観と感触を、ノードの外観と感触を定義するプロパティの値を変更することでアニメーション化します。さまざまなプロパティタイプをアニメーション化できます:

    • 浮動小数点プロパティタイプでは、例えば光の強度やマテリアルの色をアニメーションさせることができます。

    • ブールプロパティタイプでは、プロパティをタイムラインの値0と1にマッピングする際に、例えば可視性などの値をアニメーション化することができます。

Kanzi では、キーフレームアニメーションは次の方法で形成されます。

  • Animation Data。

    キーフレームアニメーションのキーフレームとターゲットプロパティを定義するには、Animation Data リソースを使用します。1つの Animation Data リソースは、1つのプロパティまたはプロパティフィールドのみをターゲットにできます。Animation Data リソースは、ターゲットとするノードから独立しています。これにより、異なるノードをアニメートするために Animation Data リソースを再利用することができます。

    例えば、Animation Data オブジェクトを使用してイベント駆動型のアニメーションを作成できます。キーフレームアニメーションの使用 を参照してください。

    Animation Data オブジェクトでは、各キーフレームが入力値を出力値にマッピングします。これらは浮動小数点数です。ブール値は、1未満の値が false を返し、1以上の値が true を返すようにマッピングされます。入力値は、プロパティ駆動のアニメーションやバインディングで使用される時間またはプロパティ値である場合があります。

    Kanzi は、必要に応じてキーフレームをメモリにロードします。アニメーションは使用されている間(例えば、アニメーションクリップエディタでの編集操作中)メモリに保持され、修正が完了した後にディスクに保存されます。アニメーションクリップ (Animation Clip) を編集する を参照してください。

  • Animation Clip と Animation Child Clip。

    Animation Clip を使用して、Animation Data リソースを組み合わせて、より複雑なアニメーションを作成します。同じ Animation Data リソースを異なる Animation Clip アイテムで再利用できます。階層的なアニメーションを作成するには、Animation Child Clip を使用します。

    アニメーションチャイルドクリップのターゲットノードの階層は、Target プロパティを使用して設定できます。このプロパティは相対パスを使用して設定することができますが、親クリップで Reference for Targeting プロパティを設定した場合は絶対パスを使用します。絶対パスを使用する場合は、クリップがターゲットに設定されているオブジェクトへの参照を設定してください。アニメーションクリップ (Animation Clip) を編集する を参照してください。

  • Timeline Entry。

    繰り返し、サイズ変更、ターゲット設定、ブレンドなどのアニメーション操作、およびアニメーション入力タイプ (時間またはプロパティ値) を定義するには、Timeline Entry を使用します。

    タイムラインシーケンスで Reference for Absolute Paths プロパティを設定すると、タイムラインエントリは絶対パスを使用して設定したオブジェクトの相対パスを追跡できます。この参照をシーケンスがインスタンス化されるオブジェクトに設定します。

    タイムラインエントリは、含まれるアニメーションクリップをブレンドすることができます。この機能は、ホスティングタイムラインシーケンスレベルと各エントリに設定されたエントリウェイトプロパティに基づいて使用されます。Entry Weight は Blending Mode と Weight によって定義され、Weight は選択した Blending Mode に基づいてブレンドが計算される比率です。Blending Mode が None に設定されている場合、アニメーションのブレンドは行われません。タイムラインシーケンスの編集 を参照してください。

  • Timeline Sequence。

    Timeline Entry リソースを組み合わせるには、Timeline Sequence を使用します。

プロパティタイプの値を時間とともに増加させることで、Float Value Accumulator または Int Value Accumulator を使用してアニメーションを作成することもできます。例えば、Value Accumulator を使用してストップウォッチやタイマーを作成したり、3Dモデル上のテクスチャを移動させたり、3Dモデルを回転させてアニメーションを作成することができます。プロパティタイプの値をインクリメントする を参照してください。

../../_images/float-value-accumulator-wheel.gif

アニメーションの共有とターゲティング

アニメーションの共有とは、1つのアニメーションが複数または一群のノードをアニメートすることを意味します。Kanzi のすべてのアニメーションは共有されています。Animation Clip および Animation Data リソースを異なるノードで再利用できます。キーフレームアニメーションの使用 を参照してください。

ターゲットアニメーションは、アニメーション化されたプロパティの開始値をノードの現在のプロパティ値から取得し、ターゲット値を指定されたターゲットノードの現在のプロパティ値から取得します。ターゲットアニメーションを使用するには、ターゲットノードのプロパティに新しい値を設定し、アニメーションを開始します。新しいアニメーションは現在のプロパティ値から新しい開始値を取得するため、進行中のアニメーションの途中で開始されてもスムーズに実行されます。

関連項目

アニメーションシステム (Animation System)

チュートリアル: キーフレームアニメーションを作成する

チュートリアル: プロパティ値を補間する

キーフレームアニメーションの作成

Kanzi Engine APIを使用してアニメーションとタイムラインを作成する

プロパティ駆動のアニメーションを作成する

プロパティタイプの値をインクリメントする

タイムラインシーケンスの編集

アニメーションクリップ (Animation Clip) を編集する

アニメーションのベストプラクティス