2012/02/15

ProcessingとTwitterをくっつける

くろねこさんが、昨日のサンプルをさっそく fork して下さいました(→くろねこさんの記事)。

パーティクルの動きの改良に加え、ソースコードもリファクタリングされて品質が上がっています。さすが!



さてさて、今日は Processing を Twitter に組み合わせてへんなのを作りますよー∩( ・ω・)∩

なんか、テキスト領域に Twitter のユーザ名を入れると、フォローしているおともだちが3次元空間を漂うというなんとも愉快なスケッチです。


実は、ほとんど昨日のソースコードを流用しただけの手抜き更新というのは内緒だよ。



【Processing と GUI】

本日一発目のテーマは、Processing スケッチへの GUI コンポーネントの組み込みです。 とりあえず完成すると以下のようになります(少し見づらいですが、動画の下の方にある藍色の矩形がテキストフィールドです)。


Processing 公式サイトにはいくつかのサードパーティ製ライブラリが紹介されています。僕はその中から、ControlP5 というライブラリを選びました(現時点の最新バージョンは ControlP5 0.5.4)。

OpenGL レンダラの環境でテキストフィールドを使用するためのミニマルなサンプルコードは以下の通り。なお、外部ライブラリの設置方法に関しては、うえちょこさんの記事に詳しく書かれています。

【ソースコード(展開してご覧ください)

デモ動画のソースコードは……適当に作ったため、あまり見せられる代物ではありませんが、たぶん昔の僕だったら「汚くてもいいからソースコードを知りたい」と思ったでしょうから、こっそり晒しておきますね。

【おまけソースコード(展開してご覧ください)



【Processing と Twitter】

GUI は一旦おいといて(つ´∀`)つ

今度は Twitter との連繋を考えてみます。ここでのゴールは、ひとまず Twitter でフォローしている方々のアイコンを 3次元空間中に散りばめる事です。


Twitter API を直叩きするのも面倒なので、Twitter4J という便利なライブラリをちょこっと使います。ライブラリは公式サイト あるいは GitHub から入手できます。今回は最新安定版である twitter4j-2.2.5.zip を選択しました。

今日はもう疲れ始めたので、OAuth 認証の要らないフォロー/フォロワー一覧を取得するところまでやろうかと思います。

JavaDoc などを参照しつつ、フレンド(自分がフォローしているアカウント) を調べるプログラムを Processing で書いてみました。

【ソースコード(展開してご覧ください)

実行すると、コンソールにフレンド一覧が列挙されます。

ただこれ、けっこう時間がかかります。ですので、フォロー一覧の読み込み処理は別スレッドに移した方がよいでしょう。適当にマルチスレッド化するとこうなります(本当に適当なので、よい子はマネしないでね)。

【ソースコード(展開してご覧ください)

これさえできれば、デモ動画の作品を作るのは簡単です。ほとんど昨日のパーティクルをユーザのアイコンに差し換えただけです。

【おまけソースコード(展開してご覧ください)

あとはこの 2 つを適当に組み合わせれば、冒頭の動画のようなものが作れると思います。

なしくずしてきにめでたしめでたし。



そんなこんなで久しぶりに Twitter ネタを書きましたが、このプログラムにはまだまだアラがあります。

まず、Twitter の API 呼び出しには制限が設けられており、このプログラムを試しているとあっという間に API 上限に引っかかってしまいます。フォローしているアカウントの情報を一人ずつ取得していくと、アホみたいなスピードで限界に近付いていきます。

次に、計算機資源の問題があります。今はとりあえずフレンド情報を全読みしていますが、それこそ何十万人もフォローしているような人が動かしたら、あっという間にメモリを喰い尽くして死ぬでしょう。

それでもまぁ、とりあえず Twitter と P5 をくっつけてそれっぽい事ができたので今日はよしとします。ふぅ、つかれた(´-ω-`)

2 件のコメント:

ひとことどうぞφ(・ω・,,)