こんにちは、蓬莱です!
研究の忘備録として書いた「paraview,vtkの使い方とフォーマットを学んで、好きな形を作ってみよう!」が、予想以上に人気があって驚いています。
やっぱり日本にはparaviewの初心者向け記事が少ないのでしょうか? 無料で誰でも使えるだけに、この状況は非常に残念であります。
そこで今回は「vtkを用いたアニメーションの作り方」をテーマに、記事をお送りしたいと思います!
こんな人に読んでほしい!
- VTKでアニメーションを作りたい人
- pythonが使えなくても、オリジナルなアニメーションを作れるのか知りたい人
この記事では、vtkを用いたアニメーションの作成技術を提供したいと思います。正直なところ自分も勉強したばかりでガバガバな部分がありますが、参考程度に読み進めてみてください。
先に申し上げておきますと、筆者はpythonがまったく使えません。ゆえにこの記事では、pythonでアニメーションを作成する方法についての記載がないことを、あらかじめご了承ください。
しかし、pythonが使えなくてもある程度のアニメーションは作れることを、この記事では保証したいと思います。色々なサイトを調べて、「pythonが使えないとアニメーションは作れないのか」と諦めかけた人には、お勧めの記事だと思いますよ!
簡単なアニメーションを作ってみよう
ひとえにアニメーションと聞くと、何だか難しそうな操作が必要だと考えがちですが、vtkを使う場合はそんなことはありません。
アニメーションにしたいvtkをいくつか作成し、ファイル名を連番にするだけでアニメーションが作成できます。
基本的な考え方
まずは、このような簡単なアニメーションを作ってみましょう。
アニメーションは、いくつかのvtkファイルを作成し、それらのファイル名の語尾を連番にするだけで完成します。
このように、同じフォルダに連番のvtkを入れて読み込みましょう。
左側の画像は見えにくいですが、parts00001 , parts00002 , parts00003…と、連番で設定しています。paraviewで読み込む際は、勝手に番号を認識して1つのグループvtkとして読み込むことができます(右図)。
後はこれらをparaviewに読み込み、再生するだけです。vtkを使ったアニメーションは、たったこれだけの操作でできるのですね。
yoko.vtkの動画が完成しました!
複数vtkの同時再生
一つだけのアニメーションだと、何となく迫力がないものです。ここでは、いくつかのグループvtkを同時に再生する方法を学びましょう。
同じコマ数であれば、複数のアニメーションを同時に流すことができます。先ほどのファイルは横に動いていくアニメーションでしたが、上に動くもの、斜めに動くものを追加します。
各グループvtkの動きは、以下の通りです。
tate.vtkの動き
slan.vtkの動き
これらのグループファイルは、yoko.vtkのコマ数と同じです(すべて5コマのアニメ)。したがって、すべての動画を同じ時間軸で流すことができます。
3つのグループファイルを表示して、動画を流してみましょう。
全ての動画を一気に流せましたね!
これが複数vtkの同時再生です。同じコマ数のグループファイルを複数作り、再生ボタンを押す。ただそれだけの操作で、ここまでのことができます。
こんなアニメーションが作れる
さて、四角形が動くだけのアニメーションを見せても、面白みがありません。
読者はきっと、「アニメーションは意外と簡単に作れることは分かった。じゃあ、その方法でどこまで凄いことができるの?」と思うはずです。
そういうわけで、画像のような橋モデルを使ってアニメーションを表示したいと思います。徐々に中央に荷重を掛けていき、橋がどのように変位していくかを動画化しています。
いやぁ…壮観ですね(感慨)
入門者さんは、どうやってこんなもの作ってるのかと戸惑われるかもしれませんが、すべてvtkで作っているだけです。
モデルの形状や、実験や解析で得られた変位量などは必要ですが、それさえ得られればvtkで表現することが可能というわけですね!
paraviewで大切なこと
自分は他サイト様のように、フィルター機能を活用していろいろやっているわけではありません。そして、paraviewの真価を遺憾なく発揮できるpythonも使えません。
しかし、そんな自分でさえも、今回紹介したアニメーションはもちろんのこと、画像のような複雑な形状を作ることさえできています。
複雑な形もアニメーションも、すべてvtkが材料になっている。このことを考えると、アニメーションを作る際も、結局のところ「vtkをいかにして作るか」が鍵になるわけですね。
最後に
ここまで読んでくださり、ありがとうございました! vtkを使ったアニメーションが主流かは分かりませんが、参考になりましたら幸いです。
この記事で一番言いたかったことは、「vtkファイルさえ作れれば、アニメーションが簡単に作れる」ということです。
pythonが使えなくても、vtkを自動的に出力できる機能がある言語(C++ , Ruby , R言語など)をマスターしていれば、橋のようなアニメーションを作ることも夢ではありません。
vtkによるアニメーションは誰にでもできることから、自分はおすすめしますよ!!