Help us understand the problem. What is going on with this article?

Ruby-Processingのインストール方法

More than 5 years have passed since last update.

はじめに

Processing をRubyでラップした Ruby-Processing というライブラリがある。
Rubyによる簡潔な表現で記述できるため生産性が高まるし書いていて楽しい。

ここではMacにRuby-Processingを導入する方法を紹介する。
基本的には本家のwikiに書いてあることの翻訳です。

Ruby-processingのインストール手順

  1. (大多数の人はすでにインストール済みだと思いますが)homebrew, wget, rbenv をインストールする。
  2. Oracleのjavaを入れる
  3. processingをインストールする
  4. jrubyをインストールする
    • rbenv install jruby-1.7.13
  5. jruby用のディレクトリを作る
      • mkdir jruby-dev (ディレクトリ名は任意)
      • cd jruby-dev
      • rbenv local jruby-1.7.13
      • ruby -vjruby 1.7.13 (1.9.3p392) になっていることを確認
  6. ruby-processingのインストール
    • gem install ruby-processing && rbenv rehash を実行
  7. ~/.rp5rc の作成と編集

    • 本家のwikiページには https://gist.github.com/monkstone/7438749 をProcessingで実行すればよいと書いてあるが、うまくrp5rcを作ってくれなかった。
      • ちなみにp5というのはProcessingの通称みたいなものらしい。昔processingのドメインが取れなかった時に、proce55ingというドメインを使っていたのが名前の由来とか。rp5はruby-processingのこと。
    • touch ~/.rp5rc でファイル作成後、以下のように手動で編集する。
    .rp5rc
      PROCESSING_ROOT: "/Applications/Processing.app/Contents/Java"
      JRUBY: 'true'
    
  8. jruby-complete をインストールする。(jruby-completeってなんなのかよくわかってない...)

    • rp5 setup install
  9. sampleを展開する

    • rp5 setup unpack_samples
  10. sampleを実行してみる

    • cd rp_samples && rake
    • 次々にサンプルが実行されるはず
      • サンプルの終了は Command+Q
      • いくつかうまく実行されないものもあるかも。レインボーマークがぐるぐるし続けるサンプルはCommand-Qで終了させる
      • サンプルの数が多いので、途中で終わらせたいときはコンソール上で Ctrl-C する
  11. サンプルがうまく動けば完了です!

自作のプログラムを動かしてみる

  • スクリプトのひな形を作る
    • rp5 create my_sketch 800 600 を実行。my_sketch.rb が作られる。(もしくは rp5 create my_sketch 800 600 --wrap でもよい。)
my_sketch.rb
def setup
  size 800 600
end

def draw

end
  • この setupdraw メソッドを実装していくのが、Ruby-Processingプログラムの基本
  • 以下のページに振り子のサンプルプログラムがあるので、今回はこれをコピー&ペーストする
  • 実行するときには rp5 run my_sketch.rb を実行する
    • 普通のRubyスクリプトに比べるとだいぶ起動が遅いかも。jvmの起動に時間がかかっているから?
  • ウインドウ内で振り子が動けばOK!

ProcessingプログラミングのTips、注意点等

  • setupdraw という二つの関数を実装するのがProcessingの基本仕様
    • アプリの起動時に setup メソッドが呼ばれて、各フレームごとに draw メソッドが呼ばれる。
  • Processingの関数は snake_case に変換して呼び出すことができる
    • 例えば Processing の frameRate() という関数は、Rubyからだと frame_rate で呼ぶことができる。(この関数名のマッピングはjrubyの機能)
  • 自作のクラスの中でProcessingのAPIを呼ぶ場合は、$app というグローバル変数を経由して実行する
    • 例えば幅を取得したい場合は、$app.widthとする。
  • スクリプトを編集するたびに rp5 run を実行していると時間がかかりすぎるので rp5 watch コマンドを使うと良い
    • スクリプトの変更を監視して、スクリプトが変更されるたびにアプリを起動し直す
    • rp5 watch my_sketch.rb を実行しておきながら、my_sketch.rb を編集するのが良い
  • ProcessingのAPIはこちらのページで参照できる

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした