田所 淳( たどころ・あつし)|1972年、千葉県生まれ。前橋工科大学工学部総合デザイン工学科准教授。東京藝術大学芸術情報センター非常勤講師。慶應義塾大学環境情報学部非常勤講師。アルゴリズムを用いた音響合成による音楽作品の創作、ラップトップコンピュータを用いた音と映像による即興演奏などを行う。大学では、openFrameworks、Processing、Arduino、Pure Data、SupreColliderといった「クリエイティブ・コーディング」についての講義を行う。講義資料はWebサイトhttp://yoppa.orgで公開、多くの学生やクリエイターに活用されている。
Beyond Interaction[改訂第3版]
クリエイティブ・コーディングのためのopenFrameworks実践ガイド
Description
クリエイティブ・コーディングの基本書が7年ぶりの大改訂!
インタラクションデザイン/メディアアート制作のためのオープンソースのツールキット、openFrameworksの解説書です。
前版にも収録したかんたんな図形の生成からアニメーション、サウンド、OpenCVによる動体検知といった初級〜中級レベルのコンテンツに加え、今回の改訂版には3D表現やシェーディング(陰影)を学ぶ上級編も追加しました。プログラミングの初歩から応用までを、yoppa.orgで有名な田所氏が丁寧に解説します。
ビジュアルプログラミング言語など様々なソフトウェアがあるなかで、C++に直接触れながら遊べるopenFrameworksは今もなお「コーディングによる表現」の入門にぴったりです。
*- - - -*
アーティストのkynd(米田研一)がopenFrameworksで生成したビジュアルを、デザイナーのhydekick(吉松英輝)がまとめあげたカバーデザインにも注目です!
*- - - -*
ISBN:978-4-8025-1179-7
定価:本体3,500円+税
仕様:B5判/280ページ
発売日:2020年10月14日
著者:田所淳
デザイン:吉松英輝(hydekick)
Profile
Contents
はじめに
作業環境について/サンプルコードについて/ご注意
Chapter 1 openFrameworks入門
1-1 openFrameworkについて
1-1-1 openFrameworksって何?
1-1-2 openFrameworks開発の歴史
1-1-3 「糊 glue」としてのopenFrameworks
1-1-4 openFrameworksの特徴—既存のインタラクションを超えて
1-2 作例とコミュニティ
1-2-1 openFrameworksを使用した作品例
1-2-2 openFrameworks情報の入手
Chapter 2 openFrameworksプログラミング初級編
2-1 プログラムの入手とインストール
2-1-1 openFrameworks開発のための環境設定
2-1-2 macOSの場合—Xcodeをインストールする
2-1-3 Windowsの場合—Visual Studioをインストールする
2-1-4 openFrameworksのダウンロード
2-1-5 openFrameworksのファイル構成
2-1-6 openFrameworksのフォルダ構造
2-2 サンプルプログラムの起動
2-2-1 サンプルプログラムを起動してみる
2-3 openFrameworksプログラムを始めよう
2-3-1 このセクションの流れ
2-4 ProjectGeneratorで新規プロジェクトを作成
2-4-1 ProjectGeneratorとは
2-4-2 新規プロジェクトを作成する
2-4-3 重要な3つのファイル
2-4-4 関数—処理をまとめる
2-5 図形を描く
2-5-1 座標系について
2-5-2 直線を描く—ofDrawLine
2-5-3 四角形を描く—ofDrawRectangle
2-5-4 円、楕円を描く—ofDrawCircle、ofDrawEllipse
2-5-5 三角形を描く—ofDrawTriangle
2-6 色の設定
2-6-1 コンピュータ上での色の表現
2-6-2 背景色と描画色
2-6-3 色を塗り分ける
2-6-4 透明度の付加
2-7 数値の記憶と計算
2-7-1 数値の計算
2-7-2 変数について
2-7-3 変数を使って図形を描く
2-7-4 画面の幅と高さを取得
2-8 たくさんの図形を一気に描く
2-8-1 繰り返し—for文
2-8-2 規則的に配置する—カウンタ変数を利用した演算
2-8-3 繰り返しを繰り返す
2-9 たくさんの値を記憶する―配列
2-9-1 配列の概念
2-9-2 繰り返しと配列の組み合せ
2-9-3 乱数の使用
2-9-4 乱数で位置を指定する
2-9-5 乱数で色を指定する
2-10 移動する—アニメーション
2-10-1 図形を移動する
2-10-2 アニメーションのプログラムの構造
2-10-3 物体を直線運動させる
2-11 条件分岐—「もし○○なら××せよ」
2-11-1 もし画面からはみ出たら反対から出現させよ
2-11-2 条件分岐の応用編—壁でバウンドさせる
2-12 たくさんの図形を移動する
2-12-1 たくさんの円を同時に動かす
2-12-2 配列を利用してたくさんの図形をまとめてコントロールする
2-13 図形に触れる—インタラクション
2-13-1 インタラクションとは
2-13-2 マウスの位置の検知
2-13-3 マウスによるインタラクション
2-13-4 インタラクションとアニメーションを組み合わせる
2-14 より高度な表現へ
2-14-1 表現に現実味を持たせる
2-14-2 パーティクル—重力と摩擦力を導入
2-14-3 動きの軌跡をフェード
Chapter 3 openFrameworksプログラミング中級編
3-1 プロジェクトの構造をより深く理解する
3-1-1 openFrameworksのプロジェクト構造について
3-1-2 openFrameworksとC++の関係
3-1-3 オブジェクト指向プログラミングとは
3-1-4 オブジェクト = 属性 + 動
3-1-5 クラス = オブジェクトの設計図
3-1-6 C++ でのクラスの作成
3-1-7 ファイルを分割して管理する
3-1-8 UMLクラス図
3-1-9 クラスとしてofAppを捉え直す
3-1-10 ofAppはofBaseAppの子供
3-1-11 openFrameworksプロジェクト構造
3-2 いろいろなメディアを扱う
3-2-1 openFrameworksで扱うことのできるメディア
3-2-2 音を扱う—音とは何か
3-2-3 コンピュータで音を扱うには
3-2-4 波形の生成—ofSoundStream
3-2-5 サウンドの入力—ofSoundStream
3-2-6 サウンドファイルの再生—ofSoundPlayer
3-2-7 画像ファイルを扱う—ofImage
3-2-8 フォントデータを扱う—ofTrueTypeFont
3-2-9 動画の再生—ofVideoPlayer
3-2-10 動画のキャプチャ—ofVideoGrabber
3-3 OOOF:オブジェクト指向oFプログラミング
3-3-1 openFrameworksでオブジェクト指向プログラミング
3-3-2 新規クラスの生成
3-3-3 画面の中心に円を表示する—メソッドの追加①
3-3-4 円の大きさと場所の初期値を指定する—コントラスタの作成
3-3-5 円の大きさと場所の情報を取得、設定する—セッターとゲッター
3-3-6 円をアニメーションする—メソッドの追加②
3-3-7 円が拡大縮小する動きを加える—メソッドの追加③
3-3-8 画面をクリックすると、どんどん円が増殖する—複数のクラスの生成①
3-3-9 円をクリックすると、細かな円に分裂する—複数のクラスの生成②
3-4 アドオンの利用
3-4-1 アドオンとは
3-4-2 アドオンの使用①—ofxBox2dを使う
3-4-3 アドオンの使用②—ofxOpenCvを使用する
3-4-4 ofxBox2DとofxOpenCvを組み合せる
3-5 楽器を作る
3-5-1 ここまでの内容を統合する
3-5-2 楽器の構想
3-5-3 楽器の設計
3-5-4 プロジェクトの設計
3-5-5 実装
3-5-6 プロジェクト完成
Chapter 4 openFrameworksプログラミング上級編
4-1 3Dグラフィクスプログラミングの基本
4-1-1 3Dで図形を描くということ
4-1-2 3D基本図形
4-1-3 視点 (カメラ) の設定
4-1-4 光と影 (ライト、シェーディング)
4-1-5 光と影に色をつける
4-1-6 3D基本図形
4-2 より自由な3D図形を描く—ポリゴンメッシュの操作
4-2-1 より自由に3D図形を描く—ポリゴンメッシュについて
4-2-2 3D基本図形からメッシュを生成する
4-2-3 メッシュの頂点の座標をランダムに移動する
4-2-4 三角関数で波打つ立体を描く
4-2-5 ノイズによる不規則な波を描く
4-2-6 球体をノイズで変形する
4-2-7 ノイズで変形した球の面をレンダリング
4-2-8 カメラからの映像をテクスチャーに
4-3 GLSL (シェーダー) を使う—ofShader
4-3-1 シェーダーとは
4-3-2 レンダリングパイプラインとシェーダー
4-3-3 GLSLのバージョン
4-3-4 GLSLをopenFrameworksで表示する
Chapter 5 openFrameworksの現状と未来
5-1 openFrameworksは終わったのか?
5-2 クリエイティブ・コーディング環境の発展と進化
5-2-1 ビジュアルプログラミング言語—Max、Pure Data、vvvv、TouchDesigner
5-2-2 ゲームエンジンの活用—Unreal Engine、Unity
5-2-3 もっとフィジカルにリアルタイムに—ライブコーディング
5-3 クリエイティブ・コーディングの歴史の継承
5-3-1 コンピュータアート黎明期のパイオニア達
5-3-2 Muriel Cooper—Visible Language Workshop (1974)
5-3-3 Jhon Maeda—MIT Aesthetics + Computation Group (1996)
5-3-4 Casey Reas、Ben Fry - Processing (2001)
5-3-5 Golan Levin, Zach Lieberman, Theo Watson—openFrameworks (2005)
5-3-6 クリエイティブ・コーディングの歴史の中のopenFrameworks
5-4 「ツール」ではなく「マテリアル」としてのコンピューティング
5-5 オープンなフレームワークであること
5-6 openFrameworksを超えて
Index