SlideShare une entreprise Scribd logo
1  sur  89
Télécharger pour lire hors ligne
デジタルアートセミナー#2
openFrameworksで学ぶ、
クリエイティブ・コーディング
Session 1: openFrameworks入門
2013年10月5日
田所 淳
ご挨拶
Workshop メンバー紹介
‣ デジタルアートセミナー#2 - openFrameworksで学ぶ、クリエ
イティブ・コーディング
‣ 主催:公益財団法人 大学セミナーハウス
‣ 企画・ディレクション:藤本直明
‣ 講師:藤本直明、田所淳、神田竜(Kezzardrix)、赤川智洋、堀
口淳史、大海悠太
‣ 運営:デバイスアートガレージ
‣ 協力:東京工芸大学 大海研究室
‣ このセッションの担当:田所 淳
講師、自己紹介
‣ 田所淳 (たどころ あつし)
‣ クリエイティブ・コーダー
‣ 大学非常勤講師など (多摩美術大学、東京藝術大学)
講師、自己紹介
‣ http://yoppa.org/
screenshot_679
講師、自己紹介
‣ 『Beyond Interaction[改訂第2版] -クリエイティブ・コーディ
ングのためのopenFrameworks実践ガイド』絶賛販売中!!
screenshot_679
このセッションのゴール
‣ openFrameworks入門
‣ 開発環境の構築 (Xcode、code::blocks)
‣ サンプルプログラムを動かしてみる
‣ 簡単なアニメーションをつくる
openFrameworksって何?
openFrameworksって何?
openFrameworks とは?
‣ C++によるクリエイティブなコーディングのためのオープン
ソースのツールキット
‣ http://openframeworks.cc/ 
‣ 現在のバージョンは、v0.8.0
事前準備
‣ 以下のファイルが手元にあるか確認
‣ openFrameworks v.0.8.0 本体
‣ Mac: of_v0.8.0_osx_release
‣ Win: of_v0.8.0_win_cb_release.zip
‣ 開発環境
‣ Mac: Xcode
‣ Win: Code::Blocks
‣ 手元にない方は、HDD経由でお渡しします。お知らせを!
openFrameworks とは?
‣ openFrameworksを紹介した映像を鑑賞 (10minくらい)
簡単な歴史
‣ 2004年Zachary Liebermanがニューヨークのパーソンズ美術
大学での大学院のクラスの作品制作のためのツールとして開発
‣ その後、Zachary Lieberman、Theo Watson、Arturo Castroを
主要メンバーとして、世界中の開発者と協力しながら発展
Zachary Lieberman
school for poetic computation
‣ Zachary Liebermanさん達による新しい学校
‣ http://sfpc.io/
school for poetic computation
‣ SFPCに留学中の、清水基さんのblog
‣ http://www.cbc-net.com/blog/motoishmz/
何故openFrameworksを使うのか?
様々なメディアを駆使した作品を作りたい!!
→ 様々な技術に精通しなくてはならない
サウンド、ビデオ、フォント、画像解析...etc.
openFrameworksを利用すると…
既存の道具(ライブラリ)を設定なしに使用可能
→ 作品制作のための「糊」
開発のための「糊」
OpenGL GLUT FreeImage FreeType
fmod RtAudio QuickTime OpenCV
main.cpp
testApp.h testApp.cpp
ofSimpleApp, ofGraphics, ofImage, ofTrueTypeFont,
ofVideoPlayer, ofVideoGrabber, ofTexture,
ofSoundPlayer, ofSoundStream, ofSerial, ofMath,
ofUtils ...etc.
開発のための「糊」
OpenGL GLUT FreeImage FreeType
fmod RtAudio QuickTime OpenCV
main.cpp
testApp.h testApp.cpp
ofSimpleApp, ofGraphics, ofImage, ofTrueTypeFont,
ofVideoPlayer, ofVideoGrabber, ofTexture,
ofSoundPlayer, ofSoundStream, ofSerial, ofMath,
ofUtils ...etc.
実際に編集する部分
開発のための「糊」
OpenGL GLUT FreeImage FreeType
fmod RtAudio QuickTime OpenCV
main.cpp
testApp.h testApp.cpp
ofSimpleApp, ofGraphics, ofImage, ofTrueTypeFont,
ofVideoPlayer, ofVideoGrabber, ofTexture,
ofSoundPlayer, ofSoundStream, ofSerial, ofMath,
ofUtils ...etc.
実際に編集する部分
openFrameworksの様々な機能
開発のための「糊」
OpenGL GLUT FreeImage FreeType
fmod RtAudio QuickTime OpenCV
main.cpp
testApp.h testApp.cpp
ofSimpleApp, ofGraphics, ofImage, ofTrueTypeFont,
ofVideoPlayer, ofVideoGrabber, ofTexture,
ofSoundPlayer, ofSoundStream, ofSerial, ofMath,
ofUtils ...etc.
実際に編集する部分
openFrameworksの様々な機能
既存のフリーなライブラリ群
openFrameworksを活用した作品
‣ 参考サイト:creative applications
‣ openFrameworksのカテゴリーに多くの作品が掲載
‣ http://www.creativeapplications.net/category/openframeworks/
openFrameworks
開発環境の構築
openFrameworksをダウンロード
‣ openFrameworksのダウンロードページより
‣ http://www.openframeworks.cc/download
openFrameworksをダウンロード
‣ Mac OS Xの方
‣ osx - xcode版をダウンロード
‣ Windowsの方
‣ windows - code::blocks版をダウンロード
openFrameworksの開発環境
‣ openFrameworksには、ProcessingやFlashなどのように専用
の開発環境があるわけではない
‣ それぞれのOSに応じた、C++の開発環境を使用する
‣ Mac OSXの場合 - XCode
‣ Windowsの場合 - Code::Blocks もしくは Visual Studio 2010
‣ Linuxの場合 - Code::Blocks
openFrameworksの開発環境
‣ XCodeをを入手するには → App Store.app を利用する
‣ App Storeで「Xcode」で検索
openFrameworksの開発環境
‣ XCodeのバージョン
‣ OSX 10.6 Snow Leopard以前 → XCode 3.x
‣ OSX 10.7 Lion、 10.8 Mountain Lion → XCode 4.x
‣ Xcodeのバージョンでインタフェイスや設定方法が若干違う
‣ Xcode4にはGitによるバージョン管理機能も
openFrameworksの開発環境
‣ Windowsの方には、code::blocks がおススメ!
‣ フリーウェア
‣ http://www.codeblocks.org/
サンプルを実行してみよう!!
‣ openFrameworksには、大量のサンプルが付属している
‣ どれも素晴しいサンプル!
サンプルを実行してみよう!!
‣ サンプルの内容 1 of 2
‣ 3d - 3次元表現いろいろ
‣ addons - 拡張機能のサンプル
‣ communication - 外部デバイスとの通信(シリアル通信)
‣ empty - 制作のテンプレートとなる「空」サンプル
‣ events - イベント(プログラムへの外部からのアクション)処理
‣ gl - OpenGLの活用(Shader、VBO、カメラなど)
サンプルを実行してみよう!!
‣ サンプルの内容 2 of 2
‣ graphics - グラフィクスプログラミング
‣ math - 数式による表現、ノイズ、周期など
‣ sound - 音響生成、サウンドファイルの再生
‣ utils - 補助的な機能の例
‣ video - 動画の再生、カメラからの入力
サンプルを実行してみよう!!
‣ 「of_v0.8.0_osx_release/examples/」以下のフォルダ内
‣ プロジェクトファイル「.xcodeproj」を開く
‣ 例えば、graphicsExample.xcodeproj
‣ プロジェクトファイルを開くと、自動的にXcodeが起動する
サンプルを実行してみよう!!
‣ プログラムを実行するには
‣ まず、Schemeのプルダウンより「サンプル名 Debug」を選択
する
サンプルを実行してみよう!!
‣ 左上の「Run」ボタンを押す
サンプルを実行してみよう!!
‣ 実行例:graphics example
実習:いろいろなサンプルを実行してみる
‣ まずは、examples以下のサンプルをいろいろ実行してみま
しょう!
‣ いったい何をやっているのかを類推しつつ
‣ うまく実行できない場合は、質問してください
openFrameworks
プログラミング、はじめの一歩
新規にプロジェクトを作成する
‣ 新規にプロジェクトを作成する方法は2つ
‣ 方法1: ProjectGeneratorを利用する
‣ 方法2: 空プロジェクト(EmptyProject)をコピーする
新規にプロジェクトを作成する
‣ 方法1: ProjectGeneratorを利用する方法 ー とても簡単!
‣ projectGeneratorフォルダ内のprojectGenerator.appを起動
新規にプロジェクトを作成する
‣ 方法1: ProjectGeneratorを利用する方法
‣ 新規プロジェクトの作成手順
‣ 「CLICK TO CHANGE THE NAME」を選択して名前を設定
‣ (もし必要なら)「CLICK TO CHANGE THE NAME」で場所を変更
‣ 「GENERATE PROJECT」で生成
‣ これで新規プロジェクトに必要なファイル一式が生成される
新規にプロジェクトを作成する
‣ 方法2: 空プロジェクトをコピーする方法
‣ 新規にプロジェクトを作成するには、空プロジェクトをコピー
‣ 空プロジェクトは、下記のものをコピーしてつかう
‣ examples > empty > emptyExample
openFrameworks、フォルダの階層構造
‣ openFrameworksは、フォルダの階層構造がとても大事!!
‣ ここを間違えるとBuildできなくなってしまう
openFrameworks、フォルダの階層構造
‣ oFルートフォルダ (oF root folder)
‣ openFramewroksの一番先頭(root = 根っこ)の階層
oF root folder
openFrameworks、フォルダの階層構造
‣ ワークスペース (Workspace)
‣ プロジェクトのまとまりを分類して整理 (examples など)
Workspace
openFrameworks、フォルダの階層構造
‣ プロジェクト群 (Projects)
‣ この階層に一つ一つのプロジェクトのフォルダが格納
Projects
openFrameworks、フォルダの階層構造
‣ プロジェクト単体 (a project)
‣ Xcodeのプロジェクトファイルを含んだ単一のプロジェクトの
中身
a project
openFrameworks、フォルダの階層構造
‣ 今回のワークショップ用に、ワークスペースに一つ専用のフォ
ルダを用意しておきましょう
‣ 例えば、myAppsというフォルダを作成した場合
openFrameworksのコード構造
‣ さしあたって編集するのは、testApp.hとtestApp.cpp
OpenGL GLUT FreeImage FreeType
fmod RtAudio QuickTime OpenCV
main.cpp
testApp.h testApp.cpp
ofSimpleApp, ofGraphics, ofImage, ofTrueTypeFont,
ofVideoPlayer, ofVideoGrabber, ofTexture,
ofSoundPlayer, ofSoundStream, ofSerial, ofMath,
ofUtils ...etc.
ココ
openFrameworksのコード構造
‣ testApp.cppとtestApp.h XCode内の場所
ココ
プロジェクトの中身を開いてみよう!
‣ testApp.cpp を開いてみる!
2つのファイル
‣ testApp.h - ヘッダファイル
‣ プログラム全体で使用される部品 (変数、関数) を宣言
‣ testApp.cpp - 実装ファイル
‣ 実際に何をするかを記述
2つのファイル
‣ ヘッダファイル(.h)と実装ファイル(.cpp)を料理にたとえると…
ヘッダファイル = レシピ
必要な材料の一覧
料理の手順を書き出す
2つのファイル
‣ ヘッダファイル(.h)と実装ファイル(.cpp)を料理にたとえると…
ヘッダファイル = レシピ
必要な材料の一覧
料理の手順を書き出す
実装ファイル = 料理
料理完成までの過程を
具体的に全て記述
重要な3つのブロック
‣ とりあえず今の段階で重要になるのは、下記の3つ処理のブ
ロック (関数, function)
‣ setup - 準備
‣ update - 更新
‣ draw - 描画
‣ つまり...
‣ 絵を描く準備をしたら継続的に更新しながら描画する
testApp.h では
準備
#pragma once
#include "ofMain.h"
#include "ofxiPhone.h"
#include "ofxiPhoneExtras.h"
class testApp : public ofxiPhoneApp {
!
public:
! void setup();
! void update();
! void draw();
! void exit();
!
! void touchDown(ofTouchEventArgs &touch);
! void touchMoved(ofTouchEventArgs &touch);
! void touchUp(ofTouchEventArgs &touch);
! void touchDoubleTap(ofTouchEventArgs &touch);
! void lostFocus();
! void gotFocus();
! void gotMemoryWarning();
! void deviceOrientationChanged(int newOrientation);
準備
testApp.h では
準備
#pragma once
#include "ofMain.h"
#include "ofxiPhone.h"
#include "ofxiPhoneExtras.h"
class testApp : public ofxiPhoneApp {
!
public:
! void setup();
! void update();
! void draw();
! void exit();
!
! void touchDown(ofTouchEventArgs &touch);
! void touchMoved(ofTouchEventArgs &touch);
! void touchUp(ofTouchEventArgs &touch);
! void touchDoubleTap(ofTouchEventArgs &touch);
! void lostFocus();
! void gotFocus();
! void gotMemoryWarning();
! void deviceOrientationChanged(int newOrientation);
更新
testApp.h では
準備
#pragma once
#include "ofMain.h"
#include "ofxiPhone.h"
#include "ofxiPhoneExtras.h"
class testApp : public ofxiPhoneApp {
!
public:
! void setup();
! void update();
! void draw();
! void exit();
!
! void touchDown(ofTouchEventArgs &touch);
! void touchMoved(ofTouchEventArgs &touch);
! void touchUp(ofTouchEventArgs &touch);
! void touchDoubleTap(ofTouchEventArgs &touch);
! void lostFocus();
! void gotFocus();
! void gotMemoryWarning();
! void deviceOrientationChanged(int newOrientation);
描画
testApp.cpp では
準備
#include "testApp.h"
//--------------------------------------------------------------
void testApp::setup(){
}
//--------------------------------------------------------------
void testApp::update(){
}
//--------------------------------------------------------------
void testApp::draw(){
}
//--------------------------------------------------------------
void testApp::keyPressed(int key){
}
//--------------------------------------------------------------
void testApp::keyReleased(int key){
}
//--------- 後略 ---------
準備
testApp.cpp では
準備
#include "testApp.h"
//--------------------------------------------------------------
void testApp::setup(){
}
//--------------------------------------------------------------
void testApp::update(){
}
//--------------------------------------------------------------
void testApp::draw(){
}
//--------------------------------------------------------------
void testApp::keyPressed(int key){
}
//--------------------------------------------------------------
void testApp::keyReleased(int key){
}
//--------- 後略 ---------
更新
testApp.cpp では
準備
#include "testApp.h"
//--------------------------------------------------------------
void testApp::setup(){
}
//--------------------------------------------------------------
void testApp::update(){
}
//--------------------------------------------------------------
void testApp::draw(){
}
//--------------------------------------------------------------
void testApp::keyPressed(int key){
}
//--------------------------------------------------------------
void testApp::keyReleased(int key){
}
//--------- 後略 ---------
描画
図形を描いてみる!
‣ まず円を描いてみましょう
‣ 何を指定したら円を描けるのか、を考える
図形を描いてみる!
‣ 座標系:画面の中の場所(点)を指定するしくみ
‣ 横 (x座標) と 縦 (y座標) で考える
‣ openFramewroksの場合、原点 (0, 0) は左上
x座標
y座標
原点 (0, 0)
図形を描いてみる!
‣ 例えば、(80, 60) の点(x = 80, y = 60)だったら
‣ 左上の点から、80pixel右、上から60pixel下にいったところ
80
60
(0, 0)
図形を描いてみる!
‣ 中心の位置(座標 = x, y)と半径( r )の長さがわかれば円は描くこ
とができる!
(x, y)
r
図形を描いてみる!
‣ openFrameworksでは、下記のように指定する
‣ ofCircle (中心のx座標, 中心のy座標, 半径の長さ);
‣ 例:
‣ ofCircle (100, 200, 50); 
‣ 座標(100, 200) を中心に、半径50の円を描く
やってみよう!!
< 前略 >
//--------------------------------------------------------------
void testApp::update(){
}
//--------------------------------------------------------------
void testApp::draw(){
ofCircle(512, 384, 200);
}
//--------------------------------------------------------------
void testApp::exit(){
}
< 後略 >
Text
やってみよう!!
‣ 円が描けた!
参考:oFの命令を調べる
‣ 円以外の形を描きたくなったとき、どうやって調べる?
‣ リファレンスを参考にすると良い
‣ http://www.openframeworks.cc/documentation
色を塗ってみる
‣ コンピュータの画面はどうなっているのか?
‣ コンピュータの画面を拡大していくと...
‣ 縦横に並んだ点の集合 → ピクセル (Pixel)
‣ 一つのピクセルは赤、緑、青の三原色から成り立っている
色を塗ってみる
‣ 色を指定するには?
‣ R(赤) G(緑) B(青)の三原色で指定する
‣ 加法混色 (光の三原色であることに注意) ←→ 色料の三原色
色を指定するには?
‣ openFrameworks で色を指定するには?
‣ ofSetColor を使用する
‣ ofSetColor (Red, Green, Blue, Alpha);
‣ それぞれの色の範囲は 0 ∼ 255
‣ Alphaは透明度をあらわす
‣ 色を指定した以降の図形に適用される
‣ 例:
‣ ofSetColor(0, 127, 255, 127);
色を指定するには?
#include "testApp.h"
//--------------------------------------------------------------
void testApp::setup(){
}
//--------------------------------------------------------------
void testApp::update(){
}
//--------------------------------------------------------------
void testApp::draw(){
ofSetColor(0, 127, 255, 200);
ofCircle(512, 384, 200);
}
< 後略 >
色を指定するには?
‣ 色がついた!
背景色や描画方法の初期設定
‣ setup() に様々な初期設定を行う
‣ 透明度を有効に - ofEnableAlphaBlending();
‣ 円を描画する精度 - ofSetCircleResolution(分割数);
‣ 背景色 - ofBackground(R, G, B);
背景色や描画方法の初期設定
#include "testApp.h"
//--------------------------------------------------------------
void testApp::setup(){
ofEnableAlphaBlending();
! ofSetCircleResolution(64);
! ofBackground(0, 0, 0);
}
//--------------------------------------------------------------
void testApp::update(){
}
//--------------------------------------------------------------
void testApp::draw(){
ofSetColor(0, 127, 255, 200);
ofCircle(512, 384, 200);
}
< 後略 >
背景色や描画方法の初期設定
‣ 背景色 + 円がきれいに!
‣ いよいよ図形を動かしてみましょう!
‣ 円を直線運動させてみる!
‣ 円を動かすには、現在の位置からの変化を記述していく
‣ そのためには、前回の位置を記憶しておく必要がある!!
図形を動かしてみよう!
‣ 変数とは?
‣ 一時的に値(文字、文字列、数字など)を記憶しておく場所
‣ データを入れておく「箱」のようなもの
変数
ver
‣ データ型 - 値の種類
‣ よく用いられるデータ型
‣ int:整数 (-1, 0, 1, 2, 3....)
‣ float:少数 (-0.01, 3.14, 21.314)
‣ bool:ブール値、真か偽か、(true, false)
‣ char:1文字分のデータ(a, b, c, d...)
‣ string:文字列 Hello World!
変数
int float char
‣ 宣言:使用する変数の名前の箱を準備する
‣ 代入:変数の箱に値を入れる
‣ 演算:変数の値を計算する
変数
int hoo;
hoo = 0;
hoo = hoo + 1;
図形を動かしてみよう!
‣ 回転角度を記録する箱
‣ 小数点以下の値は必要ないので、int の箱 (int型という) で
‣ testApp全体で使用する変数は、ヘッダファイル( = レシピ ! )に
記述する
ヘッダファイル = レシピ
回転角度 (int rotation)
#pragma once
#include "ofMain.h"
class testApp : public ofBaseApp{
public:
void setup();
void update();
void draw();
void keyPressed(int key);
void keyReleased(int key);
void mouseMoved(int x, int y );
void mouseDragged(int x, int y, int button);
void mousePressed(int x, int y, int button);
void mouseReleased(int x, int y, int button);
void windowResized(int w, int h);
void dragEvent(ofDragInfo dragInfo);
void gotMessage(ofMessage msg);
float positionX;
float positionY;
};
図形を動かしてみよう!
‣ testApp.h を編集
追加
図形を動かしてみよう!
‣ 実装ファイル testApp.cpp にも変更を加える
‣ setup( ):
‣ フレームレート(1秒間に更新する回数)を設定
‣ update( ):
‣ 前のフレームからの(x, y)の変化量を指定
‣ draw( ):
‣ 更新した位置で円を描く
//--------------------------------------------------------------
void testApp::setup(){
ofEnableAlphaBlending();
! ofSetCircleResolution(64);
! ofBackground(0, 0, 0);
ofSetFrameRate(60);
positionX = 0;
positionY = 0;
}
図形を動かしてみよう!
‣ testApp.cpp を編集
追加
追加
//--------------------------------------------------------------
void testApp::update(){
positionX = positionX + 3;
positionY = positionY + 2;
}
//--------------------------------------------------------------
void testApp::draw(){
ofSetColor(0, 127, 255, 200);
ofCircle(positionX, positionY, 20);
}
図形を動かしてみよう!
‣ testApp.cpp を編集
追加
変更
図形を動かしてみよう!
‣ 円が、左上から右下にむかってアニメーションするはず!!
休憩

Contenu connexe

Tendances

メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
メディア・アートII  第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーションメディア・アートII  第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーションAtsushi Tadokoro
 
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oFメディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oFAtsushi Tadokoro
 
プログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようプログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようAtsushi Tadokoro
 
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングWebデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングAtsushi Tadokoro
 
AsyncTask アンチパターン
AsyncTask アンチパターンAsyncTask アンチパターン
AsyncTask アンチパターンHiroshi Kurokawa
 
GroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hackGroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hackTakahiro Yoshimura
 
基礎からのCode Contracts
基礎からのCode Contracts基礎からのCode Contracts
基礎からのCode ContractsYoshifumi Kawai
 
ReduxとSwiftの組み合わせ:改訂版
ReduxとSwiftの組み合わせ:改訂版ReduxとSwiftの組み合わせ:改訂版
ReduxとSwiftの組み合わせ:改訂版Fumiya Sakai
 
怪しいWindowsプログラミング
怪しいWindowsプログラミング怪しいWindowsプログラミング
怪しいWindowsプログラミングnagoya313
 
Swift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftSwift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftTomohiro Kumagai
 
Inside frogc in Dart
Inside frogc in DartInside frogc in Dart
Inside frogc in DartGoro Fuji
 
OSCによるソフトウェア連携
OSCによるソフトウェア連携�OSCによるソフトウェア連携�
OSCによるソフトウェア連携Ryo Kanda
 
Go1.8 for Google App Engine
Go1.8 for Google App EngineGo1.8 for Google App Engine
Go1.8 for Google App EngineTakuya Ueda
 
Chromeでjavascriptデバッグ!まず半歩♪
Chromeでjavascriptデバッグ!まず半歩♪Chromeでjavascriptデバッグ!まず半歩♪
Chromeでjavascriptデバッグ!まず半歩♪Yuji Nojima
 
条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化Takuya Ueda
 
Swiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことSwiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことyohei sugigami
 

Tendances (20)

メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
メディア・アートII  第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーションメディア・アートII  第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
 
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oFメディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
メディア・アートII 第3回 openFrameworks基礎 OOoF : オブジェクト指向 oF
 
プログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようプログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめよう
 
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングWebデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
 
AsyncTask アンチパターン
AsyncTask アンチパターンAsyncTask アンチパターン
AsyncTask アンチパターン
 
GroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hackGroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hack
 
基礎からのCode Contracts
基礎からのCode Contracts基礎からのCode Contracts
基礎からのCode Contracts
 
ReduxとSwiftの組み合わせ:改訂版
ReduxとSwiftの組み合わせ:改訂版ReduxとSwiftの組み合わせ:改訂版
ReduxとSwiftの組み合わせ:改訂版
 
Synverll
SynverllSynverll
Synverll
 
怪しいWindowsプログラミング
怪しいWindowsプログラミング怪しいWindowsプログラミング
怪しいWindowsプログラミング
 
Swift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftSwift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswift
 
Deep Dive C# 6.0
Deep Dive C# 6.0Deep Dive C# 6.0
Deep Dive C# 6.0
 
もしトラ
もしトラもしトラ
もしトラ
 
Inside frogc in Dart
Inside frogc in DartInside frogc in Dart
Inside frogc in Dart
 
OSCによるソフトウェア連携
OSCによるソフトウェア連携�OSCによるソフトウェア連携�
OSCによるソフトウェア連携
 
Go1.8 for Google App Engine
Go1.8 for Google App EngineGo1.8 for Google App Engine
Go1.8 for Google App Engine
 
FlexUnit4とMockitoFlex
FlexUnit4とMockitoFlexFlexUnit4とMockitoFlex
FlexUnit4とMockitoFlex
 
Chromeでjavascriptデバッグ!まず半歩♪
Chromeでjavascriptデバッグ!まず半歩♪Chromeでjavascriptデバッグ!まず半歩♪
Chromeでjavascriptデバッグ!まず半歩♪
 
条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
 
Swiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことSwiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったこと
 

Similaire à デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 1: openFrameworks入門

Media Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用するMedia Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用するAtsushi Tadokoro
 
SwiftのOptionalを理解する
SwiftのOptionalを理解するSwiftのOptionalを理解する
SwiftのOptionalを理解する幸雄 村上
 
Howtoよいデザイン
HowtoよいデザインHowtoよいデザイン
HowtoよいデザインHiroki Yagita
 
Go Friday 傑作選
Go Friday 傑作選Go Friday 傑作選
Go Friday 傑作選Takuya Ueda
 
GoによるiOSアプリの開発
GoによるiOSアプリの開発GoによるiOSアプリの開発
GoによるiOSアプリの開発Takuya Ueda
 
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)Shinya Nakajima
 
フィジカルコンピューティングとその可能性
フィジカルコンピューティングとその可能性フィジカルコンピューティングとその可能性
フィジカルコンピューティングとその可能性Shigeru Kobayashi
 
わんくまT78 mfcを始めようとしてみた
わんくまT78 mfcを始めようとしてみたわんくまT78 mfcを始めようとしてみた
わんくまT78 mfcを始めようとしてみた伸男 伊藤
 
Androidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーションAndroidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーションKoji Shigemura
 
iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜Yusuke SAITO
 
MetroStyleAppsさわってみた わんくま
MetroStyleAppsさわってみた わんくまMetroStyleAppsさわってみた わんくま
MetroStyleAppsさわってみた わんくまc-mitsuba
 
インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...
インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...
インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...Yosuke Sakai
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Yuki Higuchi
 
PhoneGapユーザー会@大阪 講演資料
PhoneGapユーザー会@大阪 講演資料PhoneGapユーザー会@大阪 講演資料
PhoneGapユーザー会@大阪 講演資料Monaca
 
これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門Hiramatsu Ryosuke
 
Sencha touchのはじめかた
Sencha touchのはじめかたSencha touchのはじめかた
Sencha touchのはじめかたYuki Naotori
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Saki Homma
 

Similaire à デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 1: openFrameworks入門 (20)

openFrameworks iOS 入門
openFrameworks iOS 入門openFrameworks iOS 入門
openFrameworks iOS 入門
 
Media Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用するMedia Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用する
 
SwiftのOptionalを理解する
SwiftのOptionalを理解するSwiftのOptionalを理解する
SwiftのOptionalを理解する
 
Howtoよいデザイン
HowtoよいデザインHowtoよいデザイン
Howtoよいデザイン
 
Swift勉強会
Swift勉強会Swift勉強会
Swift勉強会
 
Go Friday 傑作選
Go Friday 傑作選Go Friday 傑作選
Go Friday 傑作選
 
GoによるiOSアプリの開発
GoによるiOSアプリの開発GoによるiOSアプリの開発
GoによるiOSアプリの開発
 
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
 
フィジカルコンピューティングとその可能性
フィジカルコンピューティングとその可能性フィジカルコンピューティングとその可能性
フィジカルコンピューティングとその可能性
 
わんくまT78 mfcを始めようとしてみた
わんくまT78 mfcを始めようとしてみたわんくまT78 mfcを始めようとしてみた
わんくまT78 mfcを始めようとしてみた
 
Androidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーションAndroidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーション
 
iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜
 
MetroStyleAppsさわってみた わんくま
MetroStyleAppsさわってみた わんくまMetroStyleAppsさわってみた わんくま
MetroStyleAppsさわってみた わんくま
 
インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...
インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...
インタラクションデザインおよびメディアアートにおける オープン化方法の検討と実践(Study in Method and Practice of Open...
 
Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.Android Lecture #01 @PRO&BSC Inc.
Android Lecture #01 @PRO&BSC Inc.
 
PhoneGapユーザー会@大阪 講演資料
PhoneGapユーザー会@大阪 講演資料PhoneGapユーザー会@大阪 講演資料
PhoneGapユーザー会@大阪 講演資料
 
これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門
 
Xamarin.Forms概要
Xamarin.Forms概要Xamarin.Forms概要
Xamarin.Forms概要
 
Sencha touchのはじめかた
Sencha touchのはじめかたSencha touchのはじめかた
Sencha touchのはじめかた
 
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
Visual Studio Codeを使い倒そう! ~プログラミングから機械学習、クラウド連携、遠隔ペアプロまで~
 

Plus de Atsushi Tadokoro

Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Atsushi Tadokoro
 
Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Atsushi Tadokoro
 
Interactive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションInteractive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションAtsushi Tadokoro
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本Atsushi Tadokoro
 
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Atsushi Tadokoro
 
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス Atsushi Tadokoro
 
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Atsushi Tadokoro
 
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くiTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くAtsushi Tadokoro
 
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリメディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリAtsushi Tadokoro
 
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使うAtsushi Tadokoro
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Atsushi Tadokoro
 
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得Atsushi Tadokoro
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Atsushi Tadokoro
 
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するiTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するAtsushi Tadokoro
 
Media Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替えMedia Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替えAtsushi Tadokoro
 
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習  オリジナルの楽器を作ろう!Interactive Music II SuperCollider実習  オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!Atsushi Tadokoro
 
Interactive Music II SuperCollider入門 5 時間構造をつくる
Interactive Music II SuperCollider入門 5  時間構造をつくるInteractive Music II SuperCollider入門 5  時間構造をつくる
Interactive Music II SuperCollider入門 5 時間構造をつくるAtsushi Tadokoro
 
iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現する
iTamabi 13  第7回:ARTSAT API 実践 2 衛星の情報で表現するiTamabi 13  第7回:ARTSAT API 実践 2 衛星の情報で表現する
iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現するAtsushi Tadokoro
 

Plus de Atsushi Tadokoro (20)

Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2
 
Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1
 
Interactive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションInteractive Music II Processingによるアニメーション
Interactive Music II Processingによるアニメーション
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本
 
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
 
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
 
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
 
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くiTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
 
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリメディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
 
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
 
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
 
Tamabi media131118
Tamabi media131118Tamabi media131118
Tamabi media131118
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
 
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するiTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
 
Media Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替えMedia Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替え
 
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習  オリジナルの楽器を作ろう!Interactive Music II SuperCollider実習  オリジナルの楽器を作ろう!
Interactive Music II SuperCollider実習 オリジナルの楽器を作ろう!
 
Geidai music131107
Geidai music131107Geidai music131107
Geidai music131107
 
Interactive Music II SuperCollider入門 5 時間構造をつくる
Interactive Music II SuperCollider入門 5  時間構造をつくるInteractive Music II SuperCollider入門 5  時間構造をつくる
Interactive Music II SuperCollider入門 5 時間構造をつくる
 
iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現する
iTamabi 13  第7回:ARTSAT API 実践 2 衛星の情報で表現するiTamabi 13  第7回:ARTSAT API 実践 2 衛星の情報で表現する
iTamabi 13 第7回:ARTSAT API 実践 2 衛星の情報で表現する
 

デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 1: openFrameworks入門