おれおれプレゼン用Groovyコード「Orenote」
なんどか同じようなコードを書いているのですが,昨日の珍幹線で書いたやつです.吹き出しバブルは手書きで書いてスキャンしました.
今週末から来月にかけてLTしたり客先プレゼンする機会が何度かあるし,ガッツリとスライドつくったりするのも得意ではないのでキーワードになることばを並べていくっていうじぶんのつかい方だとこれぐらいの機能で必要十分なのです.
ちなみにコードを見ていただければわかるのですが,背景の色は音量で変化します.つまりお話が盛りあがれば色がどんどん変わるというしくみです.それからoキーでジョブスが出てきます.なんとなく期待が大きそうな・すごいっぽそうなことをいうときに出しておくと注目されるかもしれないのでつけておきました.
何度かGrocessingのプレゼンコードを書いてるってのは,世にあるプレゼンソフトには絶対に実装されない機能を実装したくて書いちゃ消し書いちゃ消しをくりかえしてるわけです.実装したい機能ってのは,たとえばこんなかんじ.
- Markdown記法パーサを搭載していて,webサーバ上のwikiとかのドキュメントをひっぱってきてそのままスライドにしちゃう機能
- スライドつくること自体をDSLにしちゃう
- jottitとかjgateとかと絡みたいよ機能
- Rhino組みこみでjavascriptによるプラグイン機能
- epubリーダ機能
- 形態素解析してマルコフ連鎖でロシアンルーレット的なスライド生成して即興プレゼン機能
あ,あとGrocessingコードをフルスクリーン表示するやつをつかっておりますので詳しくは以前の記事をご覧ください.以下今回のコードです.
import processing.core.* import ddf.minim.* import org.tritonus.share.sampled.FloatSampleBuffer import static Fullscreen.* class Orenote extends PApplet{ String txt def num = 0 PImage img PImage jobs def jobs_mode = false PFont font Minim minim def input def slide = [ "お世話さまです", "nbqxです", "Orenoteは", "Processing.orgと", "Groovyによる", "まったく新しい", "画期的な", "プレゼンアプリです", "ウソですが", "Yes, Orenote!!", "One More Thing...", "Jobsモード搭載", "oキーでtoggle", "Keynoteなんて", "知らないよ", "おしまいです" ] void setup(){ size(320,240) smooth() font = createFont("AxisStd-Medium",100) img = loadImage("bubble.png") jobs = loadImage("onemorething.png"); //186x241 minim = new Minim(this) input = minim.getLineIn(Minim.MONO,32) } void draw(){ noCursor() def val = input.mix.level()*1000 as String colorMode(HSB, 256) background(val as Float, (mouseY/height * 256) as Float, (mouseX/width * 256) as Float) image(img,0,0,width,height) textFont(font) txt = slide[num] def _tw = textWidth(txt) smooth() fill(0) text(txt, width/2 - _tw/2 as Float, height/2 as Float) if(jobs_mode){ image(jobs, 0, height-241 as Float) } } void stop(){ super.stop() } void keyReleased(){ //println(keyCode) if(keyCode==37 || keyCode==38){ num = num-1 if(num<0){ num = 0}} if(keyCode==39 || keyCode==40){ num = num+1 if(num==slide.size()){ num = 0}} //press 'o' one more thing...(jobs mode) if(keyCode==79){ jobs_mode = (jobs_mode==false)? true : false} } } app = new Orenote() app.init() Fullscreen.view(app)