2012-12-13
■非モテP5erに贈る!イケメン言語 ruby-processing のご紹介
Processing Advent Calendar 2012 12月13日参加企画
はじめに
Processingユーザの皆さん、始めまして。橋本幸樹(@koki_h)と申します。
今日はProcessingユーザ向けにruby-processingをご紹介します。
ruby-processingはProcessingの機能をruby言語の文法をつかって記述できるようにした処理系で、Processingのかっこいいグラフィックをrubyのかっこいい構文で記述できるという究極のイケメン言語です。
今回はruby-processingのインストールから簡単なプログラム作成までを紹介したいと思います。*1
環境はWindows Vista Business SP2です。他のWindowsを使っている人は適当に読み替えてください。LinuxやMacでも動くはずですが、rubyのインストールなどはそれぞれの環境に合わせて行ってください。
Processingのインストール
Processingのインストールは不要です。
rubyのインストール
rubyの処理系はいろいろあるのですが、今回は、Ruby-1.9.3-p327 Microsoft Installer Package(2012-11-10) を使います。
ruby-processingのインストール
スタートメニューの すべてのプログラム > Ruby-1.9.3 > Ruby-1.9 console (Administrator)
をクリックしてコマンドプロンプトを開き、以下のコマンドを打ち込みます。
> gem install ruby-processing
エラーメッセージのようなものも出てきますが、気にせずに以下のコマンドを打ち込みましょう。
> rp5 -v
ここででてきた"rp5"というのがruby-processingの本体です。このコマンドを使ってruby-prosessingのプログラムを実行します。
"Ruby-Processing version 1.0.11"と出てきたら成功です。
必要な設定
早速サンプルスケッチでも動かしてみたいところですが、このままではエラーが出て動きません。
以下の内容のテキストファイルを作成し、ユーザディレクトリに*2 .rp5rc という名前で保存します。
sketchbook_path : C:\Users\koki\Processing
"C:\Users\koki\Processing"の部分は各自の好きなディレクトリのパスでOKです。
これでサンプルを動かす準備ができました。
サンプルを動かす
ruby-processingはruby consoleから実行します。
スタートメニューの すべてのプログラム > Ruby-1.9.3 > Ruby-1.9 console
ruby consoleを開いたらサンプルを展開するディレクトリに移動します。適当なディレクトリでOKです。
> cd C:\Users\koki\rp5
つぎにサンプルを展開します。
> rp5 unpack samples
現在のディレクトリにsamplesというディレクトリが作成されます。この中にruby-processingのサンプルが入っています。
サンプルの実行は以下のようにします。
> rp5 run samples\contributed\jwishy.rb
なんかProcessingっぽいのが出てきましたね。成功です。
スケッチの作成
ではスケッチを作っていきましょう。
まず雛形を作ります。
> rp5 create --bare first 200 200
これで現在のディレクトリにfirst.rbという名前のファイルができます。
中身はこんな感じ。
def setup size 200, 200 end def draw end
これだけでもprocessingとそっくりなのがわかると思います(当たり前か)。この雛形をエディタで次のように編集します*4。
load_libraries :opengl def setup size 200, 200, OPENGL $rotation_rate = 0.02 end def draw background 50, 50, 50 translate 100, 100, 0; rotateX frameCount * $rotation_rate; rotateY frameCount * $rotation_rate; rotateZ frameCount * $rotation_rate; box 100 end
そして次のように実行します。
> rp5 run first.rb
すると、
ちなみに、同じのをProcessingでやると以下のようになります。
import processing.opengl.*; public float rotation_rate = 0.02; void setup(){ size(200,200,OPENGL); } void draw(){ background(50,50,50); translate(100,100,0); rotateX(frameCount * rotation_rate); rotateY(frameCount * rotation_rate); rotateZ(frameCount * rotation_rate); box(100); }
ruby-processingだとカッコが省略できたり、セミコロンがいらなかったり、変数の型指定がいらなかったり、すっきりしていてなかなかステキなんじゃじゃないでしょうか。この辺がRubyのイケメンっぷりですね。他にもオープンクラスだとかlambdaだとかrubyの面白い機能を使ってスケッチを作ることができます*5。
その他便利な機能
> rp5 watch first.rb
とやるとfirst.rbを編集して保存した瞬間にプログラムが再起動して変更内容が実行結果に反映されます。
普通のProcessingだとCtrl+rを押したときみたいな動きですね。
> rp5 live first.rb
実行中のスケッチをコマンドプロンプトから動的に変更できます。
かなり面白いのですが、ちょっと癖があって使いにくいかもしれません。
終わりに
インストールのやり方と簡単なプログラムの作成をご紹介しましたがいかがだったでしょうか?
インストールやコマンドプロンプトを使うところが若干面倒で、ドキュメントが少なかったりここ1年くらいメンテされていなかったり、あまりいけてない面もありますが、rubyならではのプログラムがサクサク書ける感覚は他ではあまり味わえないと思います*6。普通のProcessingと一味違った楽しみ方ができると思います。ぜひ一度チャレンジしてみてください!
リンク
- no title
- ruby-processingの本家ページ
- KPFX07_LT_ruby-processingでイケメンになりたい.ppt - Google ドライブ
- no title
- いろいろやってみたサンプル。何かの参考になれば。
*1:途中まで書いてよく見たら、ruby-processingのGetting Startedとほとんど同じ内容ですね。https://github.com/jashkenas/ruby-processing/wiki/getting-started
*2:ユーザディレクトリのパスはコマンドプロンプトで、echo %USERPROFILE% と打ち込むと出てきます。
*3:ruby-processingのインストールのところでも似たようなのが出てきましたね。あっちはコマンドを管理者権限で実行するためのものです。
*4:ちなみにProcessingのようなIDEはありません。好みのエディタを使ってください
*5:詳しくはrubyの本などを参照してください。本当に面白いです。
*6:この記事の内容ではわかりづらいかもしれませんが。。
- 336 https://www.google.co.jp/
- 58 http://hoshi-sano.hatenablog.com/entry/2013/12/09/000154
- 47 http://atnd.org/events/33755
- 36 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=20&ved=0CGMQFjAJOAo&url=http://d.hatena.ne.jp/koki-h/20121213/1355326737&ei=ufsRUbLLN4mjkwWgpYGoAQ&usg=AFQjCNFcMjI5Tq7c-NGF7b-rrvVvBSpLYg
- 34 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0CD4QFjAC&url=http://d.hatena.ne.jp/koki-h/20121213/1355326737&ei=wgEuUcjuOdHvmAXFjYH4Aw&usg=AFQjCNFcMjI5Tq7c-NGF7b-rrvVvBSpLYg&sig2=FNkgS5S_DVAXMe8CqJ-4jw&bvm=bv.42965579,d.
- 32 https://www.google.com/
- 28 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=10&ved=0CGkQFjAJ&url=http://d.hatena.ne.jp/koki-h/200912&ei=mO_yUK6QIseLkAXysoD4Aw&usg=AFQjCNGWjTGhEL33zAe1lTTYXtrWhvOecg&bvm=bv.1357700187,d.dGI
- 24 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0CEUQFjAD&url=http://d.hatena.ne.jp/koki-h/20121213/1355326737&ei=BguzUZaaHejNiAeMnYCIBw&usg=AFQjCNFcMjI5Tq7c-NGF7b-rrvVvBSpLYg&sig2=cSz_ryd720wgkfHy87uGTA&bvm=bv.47534661,d.
- 17 https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCsQFjAA&url=http://d.hatena.ne.jp/koki-h/20121213/1355326737&ei=V9JUUvL-HoKRigf38YCgBw&usg=AFQjCNFcMjI5Tq7c-NGF7b-rrvVvBSpLYg&sig2=T12IUH-yT_za6T_j2GpJqA
- 15 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=3&ved=0CDoQFjAC&url=http://d.hatena.ne.jp/koki-h/20121213/1355326737&ei=0-yzUdKDIYa_kgXqoYGwDg&usg=AFQjCNFcMjI5Tq7c-NGF7b-rrvVvBSpLYg