見出し画像

Processingライブラリと振り返る2020年

これはProcessing Advent Calendar 2020の2日目の記事です。

2020年もProcessingで色々なことをしたけれど、「ライブラリの使い方を覚えた!」というのが今年の個人的な成長ポイント。なのでこの記事では、今年使ったProcessingのライブラリに関してまとめてみます。

ライブラリの使い方

そもそも私がこれまでProcessingのライブラリを使っていなかった理由は「pythonモードでのライブラリの使い方が分からなかった」からでした。

Javaモードなら普通にライブラリ使えていたのですが、できれば普段使っているpythonモードで書きたい... という思いがあり、pythonモードでライブラリを使用したブログ記事とかないか検索してみたのですが見つからず。

そもそもpythonモードではJava版のライブラリは使えないのかもしれない、と諦めかけていたのですが、なんとここで

Processing.pyの公式ページにライブラリの使い方が書かれてたということに気づきます。

いや、あらためて考えると当然のことなのですが、まずは公式の情報を調べるのが大切ですね... ちなみにpythonモードでJava版ライブラリを使う方法については下記noteにまとめたので、私の二の舞は防がれるはず。

今年遊んだProcessingのライブラリ

で、Processing.pyでライブラリが使えるようになったのですが...

・音がなる!
・しゃべる!
・流体計算できる!
・弾性体も計算できる!
・その他いろいろできる!

という感じで非常に楽しい。以下、私が今年遊んだライブラリを3つ紹介します。

Sound

まずは音系ライブラリのSound.

Processing Foundationが直接管理するシンプルな音系ライブラリ。「必要最低限の関数を分かりやすい名前で提供したので、あとはこれで各自好きなものを作ってくれ」という、実にProcessingっぽいコンセプトを感じます。
(実際にそういうコンセプトなのかは分からないけれど)

上の動画はSoundでピアノを作った例。音は周波数で指定するので、ドレミの周波数がどういう関係なのか調べることになって面白かったです。
(でも上の動画ではドの音(261Hz)を216Hzと書き間違える痛恨のミスをしていて、実は調律が狂っています。もっというと厳密に整数の261Hzでもないので、きっちり整数で定義されてるラの音(220Hz)を基準に使うといいのかも)

ttslib

お次は音系ライブラリの中でも一風変わったttslib。なんとProcessingを喋らせることができます!

基本的にspeak()メソッドに喋らせたい内容を入力するだけ。ただし入力した内容を喋り終わるまで次のフレームに移らないのに注意。

PixelFlow

最後に紹介するのはProcessing標準ライブラリ界に燦然と輝くヤバいやつ。GPU計算ライブラリのPixelFlow!

GPUを利用した高速な流体計算や流体&粒子の相互作用系の計算に加え、様々なレンダラやポスト処理フィルタが同梱された贅沢なライブラリ。
(GPUではなくCPU計算だけど弾性体計算もできる)

とてもいろんなことができる便利なライブラリなのですが、難点としてはドキュメントへのリンクが切れてるらしく、使い方が分かりにくいこと。

ただ、GitHubにたくさんサンプルがあったり、ソースコードに分かりやすい名前で変数が定義されてたりするので、そこから何となく使い方を察することができます。

ちなみに流体計算と弾性体計算についてはnoteにまとめたので、もしPixelFlowを使ってみたい方がいれば参考にしてみてください。

まとめ

今年はProcessingのライブラリを使って、いろいろとできることが広がった年でした。

Processing&豊富なProcessingライブラリ、楽しい一年をありがとう。
来年もよろしく!

この記事が気に入ったらサポートをしてみませんか?