7. アニメーション

ParaView では、一連のキーフレームを記録してアニメーションを作成できます。各キーフレームで、表示パイプラインを構成するリーダー、ソース、およびフィルタのプロパティの値と、カメラの位置と方向を設定します。パラメータを選択したら、アニメーションを再生できます。アニメーションを再生すると、ビジュアリゼーションパイプラインのジオメトリ出力をメモリにキャッシュできます。アニメーションを再生すると、イメージの生成に必要な計算が非常に少なくなるため、再生速度が大幅に向上します。また、アニメーションの結果をイメージファイル(アニメーションフレームごとに1つのイメージ)またはムービーファイルに保存することもできます。各フレームでレンダリングされたジオメトリは、ParaView のPVDファイル形式で保存することもでき、時変データセットとして ParaView にロードし直すことができます。

7.1. アニメーションビュー

アニメーションビュー( Animation View )は、キーフレームを追加してアニメーションを作成するためのユーザインタフェースです。これは、複数のパラメータをアニメートするためのトラックを作成する機能を備えた、一般的なアニメーションおよびキーフレーム編集アプリケーションに似ています。Animation View には、View メニューからアクセスできます。

../_images/AnimationView.png

図 7.1 アニメーションビュー

図 7.1 に示すように、このビューはテーブルとして表示されます。 テーブルの上には、アニメーションの時間経過を管理するコントロールがあります。これらについては、2.1.3 章 で簡単に説明した。 テーブル内では、アニメーションのトラックは行として表示され、アニメーション時間は左から右に増加して表示されます。テーブルの最初の行には、Time というシンプルなラベルが付いており、アニメーションがカバーできる合計時間が表示されます。現在表示されている時間は、上部のTimeフィールドと、テーブル内のドラッグ可能な太い縦線の両方に示されます。

Animation View の左側には、アニメーショントラックの名前(つまり、アニメーション化する特定のオブジェクトとプロパティ)の展開可能なリストが表示されます。データソースを選択し、一番下の行でデータソースの特定のプロパティを選択します。そのプロパティのキーフレームを持つアニメーショントラックを作成するには、左側の + をクリックします。新しいトラックが作成されます。この図では、SphereSource1Phi Resolution プロパティとカメラの位置に対応するトラックがすでに存在しています。トラックを削除するには、 X ボタンを押します。トラックを一時的に無効にするには、トラックの右側にあるチェックボックスをオフにします。プロパティの値を入力するには、トラック名の右側の白い領域内をダブルクリックします。すると Animation Keyframes ダイアログが表示されます。カメラエントリをダブルクリックすると、図 7.2 のようなダイアログが表示されます。

../_images/AnimationCameraInterpolationEditor.png

図 7.2 カメラトラックの編集

Animation Keyframes ダイアログボックスで New を押すと、新しいキーフレームを作成できます。キーフレームの一部またはすべてを削除するには、 Delete キーまたは Delete All キーを押します。 New をクリックすると、テーブルに新しいローが追加されます。どの行でも、 Time 列をクリックしてキーフレームの特定の時間を選択したり、右側の列をクリックしてパラメータの値を入力したりできます。キーフレーム時間でプロパティの値を設定できる正確なユーザインタフェースコンポーネントは、さまざまです。使用可能な場合は、中央の補間カラムをダブルクリックして、2つのキーフレーム間の補間を変更できます

Animation View のトラックでは、各キーフレームが発生する時間内の位置が縦線で表示されます。その時点でプロパティに選択された値と、その値と次の値の間で使用される補間関数は、必要に応じてテキストで表示されます。たとえば、上の図では、球体の解像度は10から始まり、リニア補間によって20に変化します。カメラ値が長すぎてテキストとして表示できないため、トラックには表示されませんが、アニメーション全体で4つのキーフレームの間隔があることがわかります。トラック自体の垂直線をドラッグできるため、各キーフレームが発生する時間を簡単に調整できます。

Did you know?

アニメーションショートカット Animation Shortcut を使えば、アニメーションビューを使わなくても、簡単なアニメーショントラックを追加し、キーフレームを編集することができます。まず、Settings ダイアログから Show Animation Shortcut を有効にします( General タブで、名前でオプションを検索するか、アドバンスビューに切り替えてください)。すると、Properties パネルにあるアニメーション可能なプロパティのいくつかに、 pqVcrPlay アイコンが表示されるようになります。このアイコンをクリックすると、このプロパティに新しいアニメーショントラックを追加し、編集することができます。

../_images/AnimationShortcut.png

7.2. アニメーションビューヘッダ

Animation View には、図 7.3 に示すように、アニメーション自体のプロパティを制御できるヘッドバーがあります。

../_images/AnimationViewHeader.png

図 7.3 アニメーションビューヘッダー

Mode はアニメーションの再生モードを制御します。 ParaView では、3つのモードでアニメーションを再生できます。 Sequence モードでは、アニメーションは次々に生成されるイメージ(またはフレーム)のシーケンスとして再生され、連続してレンダリングされます。フレーム数はヘッダの最後にある No. Frames スピンボックスで制御します。フレームはできるだけ速くレンダリングされることに注意してください。したがって、表示フレームレートは、各フレームの生成とレンダリングに必要な時間に依存します。これは、非時間的なデータを扱うときに推奨されるモードです。

|**非推奨**| Real Time モードでは、Duration スピンボックス (No. Frames``スピンボックスを置き換える) は、アニメーション全体が実行される時間を秒単位で示します。 各フレームは、開始時間に対する現在の壁時計の秒単位の時間を使用してレンダリングされます。 アニメーションは ``Duration (secs) スピンボックスで指定された秒数近く実行されます。 次に、実際に生成 (またはレンダリング) されるフレームの数は、各フレームを生成 (またはレンダリング) する時間に依存します。 シーンのレンダリングには時間がかかる可能性があるため、リアルタイムの側面はほとんど期待どおりに機能しないことに注意してください。 Sequence モードを使用し、ビデオとしてエクスポートするときにフレームレートを制御することをお勧めします。

Snap To TimeSteps モードでは、アニメーションのフレーム数は、アニメーション化されているデータセットの時間値の数によって決定されるため、変更できません。 これは ParaView のデフォルトアニメーションに使用されるアニメーションモードです: データセット内の時間値を順番に再生します。 時間値を持つデータセットがロードされると、ParaView によってデフォルトのアニメーションが作成されます。アニメーションを作成するためのアクションは必要ありません。 時変データがロードされていないときにこのモードを使用すると、アニメーションがまったく表示されないことに注意してください。

Time エントリボックスには、現在のアニメーション時間が表示されます。これは、このビューで縦のマーカーで表示されるものと同じです。現在のアニメーション時間を変更するには、このボックスに値を入力するか(使用可能な場合)、垂直マーカーをドラッグします。エントリボックス Start Time および End Time には、アニメーションの開始時間と終了時間が表示されます。デフォルトでは、時変データセットをロードすると、開始時間と終了時間が自動的に調整されて、データ内の時間範囲全体をカバーします。 Start Time ウィジェットと End Time ウィジェットの右側にあるロックチェックボタンを使用すると、このような動作を防ぐことができるため、選択した特定のタイムドメインをアニメーションが確実にカバーできるようになります。

Did you know?

Settings/Properties Panel Options/Advanced にある Animation Time Precision の値を変更すると、アニメーションクロックで表示される精度(有効桁数)を変更できます。

../_images/AnimationTimePrecision.png

7.3. 時系列データのアニメーション化

時系列データをロードすると、ParaView によって自動的にデフォルトのアニメーションが作成され、手動でアニメーションを作成しなくてもデータの時間領域を再生できます。 Animation View を使用すると、アニメーション時間とデータ時間のカップリングを解除して、アニメーション中にデータ時間を操作するキーフレームを作成できます。

TimeKeeper Time トラックをダブルクリックすると、図 7.4 に示すような Animation Keyframes ダイアログが表示されます。このダイアログでは、3つの基本的に異なる方法でデータ時間を進行させることができます。 Animation Time ラジオボタンが選択されている場合は、データ時間がアニメーション時間に関連付けられてスケーリングされるため、アニメーションの進行に伴ってデータが自然に変化します。時間によって変化するデータの性質を無視する場合は、代わりに Constant Time を選択します。この場合、アニメーションの期間中にデータが表示される特定の時間値を選択します。最後に、 Variable Time ラジオボタンを選択してデータ時間を完全に制御し、可視化パイプラインの他のアニメート可能なプロパティと同様にデータ時間を制御できます。図 7.4 に示す例では、時間はアニメーションの最初の15フレームでは前に進み、次の30フレームでは後ろに進み、最後の15フレームでは前に進みます。

../_images/ParaViewUsersGuideAnimationKeyframesTime.png

図 7.4 キーフレームを使用したデータ時間の制御

7.4. アニメーションを再生する

アニメーションを設計したら、図 2.8 に示すVCRコントロールツールバーを使用してアニメーションを再生できます。

../_images/VCRAndTimeControls.png

図 7.5 paraviewVCR ControlsCurrent Time Controls ツールバー

7.5. Pythonを使ったアニメーションの探索

以下のPythonコマンドで、アニメーションシーンを取得し、探索することができます。

paraview のユーザーインターフェースでタイムステップをナビゲートするのと同じように、Pythonのコマンドを使用して同じことを行うことができます。これらのコマンドは、アニメーションシーンオブジェクトから利用できます。

>>> scene = GetAnimationScene()

このオブジェクトには、どのアニメーションのタイムステップを表示するかを変更するためのメソッドがいくつか用意されています。

>>> scene.GoToFirst()
>>> scene.GoToLast()
>>> scene.GoToNext()
>>> scene.GoToPrevious()

アニメーションの再生を開始・停止するためのメソッドを追加で用意しました。

Play() は現在のタイムステップから最後のタイムステップまでアニメーションを再生します。Reverse() は現在のタイムステップから最初のタイムステップまでアニメーションを逆再生します。

最後に、ロードされたすべてのデータセットで利用可能な時間にアクセスするには、次のようにします。

時間はPythonのリストで返されます。

7.6. カメラのアニメーション

../_images/AnimationCameraAddTrack.png

図 7.6 カメラトラックの追加

アニメーションのソースとフィルターのパラメーターを変更できるように、カメラのパラメーターも変更できます。 図 7.6 に見られるように、アニメーション トラックを追加して、セットアップ内のすべての3Dレンダービューのカメラを個別にアニメーション化できます。 ビューにカメラアニメーショントラックを追加するには、ビューを選択した状態で、最初のドロップダウンメニューから Camera を選択します。2番目のドロップダウンリストでは、カメラをアニメートする方法を選択できます。 次に + ボタンをクリックします。 3つのオプションがあり、それぞれがキーフレームを指定するための異なるメカニズムを提供します。 アニメーション トラックを追加した後でモードを変更することはできませんが、トラックを削除して新しいトラックを作成するだけです。

7.6.1. Follow data

このモードでは、データをビューの中心に維持するために、カメラの焦点と位置が変更されます。ただし、カメラのズームレベルは変更されません。

7.6.2. カメラの補間

このモードでは、各キーフレームでカメラ位置、焦点、ビュー角度、上方向を指定します。アニメーションプレーヤは、これらの指定された位置の間を補間します。他のパラメータと同様に、キーフレームを編集するには、トラックをダブルクリックします。 Use Current ボタンを使用して、現在の位置をキーフレームとしてキャプチャすることもできます。

../_images/AnimationCameraInterpolationEditor.png

図 7.7 カメラアニメーションパラメータを設定します。

このモードを使用してアニメーションがスムーズに可視化されるようにするために、キーフレームを正しく頻繁に追加することが非常に難しい場合があります。 数台のカメラを細かく制御したい場合に適したモードです。

ここではカメラ custom viewpoints が非常に役に立ちます。

7.6.3. 経路

このモードでは、カメラ位置とカメラの焦点によって取られるパスを指定できます。デフォルトでは、パスは選択したオブジェクトの周りを周回するように設定されています。その後、キーフレームを編集してパスを変更できます。これは、正確な視点よりもグローバルモーションを制御する場合に適したモードです。

図 7.8 に、キーフレームのパスを編集するためのダイアログを示します。カメラ位置(Camera Position)またはカメラフォーカス(Camera Focus)を選択すると、パスの設定に使用できるウィジェットが3Dビューに表示されます。CTRL + Left Click を使用して新しい制御点を挿入し、 + Left Click を使用して制御点を削除します。パスを閉じるかどうかを切り替えることもできます。

../_images/AnimationCameraPathEditor.png

図 7.8 カメラ経路の作成

このモードでは、カメラが対象オブジェクトの周りを回転するカメラ アニメーションをすばやく作成できます。 Orbit ボタンをクリックするとダイアログが表示され、回転中心、回転面の法線、原点 (つまり、回転面上の点) などの軌道パラメータを編集できます。 始まります)。 デフォルトでは、 Center は選択されたオブジェクトの境界の中心であり、 Normal はカメラが使用する現在の上方向であり、原点は現在のカメラ位置です。

../_images/ParaViewUsersGuideCameraOrbit.png

図 7.9 カメラ軌道の作成